From 2e20b451a522b59db2f6a81be426a239f8a4ade2 Mon Sep 17 00:00:00 2001 From: Tyler James Leonhardt Date: Thu, 3 Aug 2023 14:05:52 -0700 Subject: [PATCH] Fix `--disable-keytar` handling in the renderer process (#189578) * Don't notify if we have opted to disableKeytar * actually hook up disableKeytar * remove main override --- src/vs/platform/environment/common/environmentService.ts | 3 +++ .../environment/electron-main/environmentMainService.ts | 3 --- src/vs/platform/secrets/common/secrets.ts | 1 + .../services/secrets/electron-sandbox/secretStorageService.ts | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/vs/platform/environment/common/environmentService.ts b/src/vs/platform/environment/common/environmentService.ts index 78eccd30b05..3d1adfa7619 100644 --- a/src/vs/platform/environment/common/environmentService.ts +++ b/src/vs/platform/environment/common/environmentService.ts @@ -236,6 +236,9 @@ export abstract class AbstractNativeEnvironmentService implements INativeEnviron @memoize get disableWorkspaceTrust(): boolean { return !!this.args['disable-workspace-trust']; } + @memoize + get disableKeytar(): boolean { return !!this.args['disable-keytar']; } + @memoize get policyFile(): URI | undefined { if (this.args['__enable-file-policy']) { diff --git a/src/vs/platform/environment/electron-main/environmentMainService.ts b/src/vs/platform/environment/electron-main/environmentMainService.ts index 1fd54c5997b..748ff075783 100644 --- a/src/vs/platform/environment/electron-main/environmentMainService.ts +++ b/src/vs/platform/environment/electron-main/environmentMainService.ts @@ -59,9 +59,6 @@ export class EnvironmentMainService extends NativeEnvironmentService implements @memoize get disableUpdates(): boolean { return !!this.args['disable-updates']; } - @memoize - get disableKeytar(): boolean { return !!this.args['disable-keytar']; } - @memoize get crossOriginIsolated(): boolean { return !!this.args['enable-coi']; } diff --git a/src/vs/platform/secrets/common/secrets.ts b/src/vs/platform/secrets/common/secrets.ts index 26f254eb031..87d2653f6ef 100644 --- a/src/vs/platform/secrets/common/secrets.ts +++ b/src/vs/platform/secrets/common/secrets.ts @@ -124,6 +124,7 @@ export class BaseSecretStorageService implements ISecretStorageService { private async initialize(): Promise { let storageService; if (!this._useInMemoryStorage && await this._encryptionService.isEncryptionAvailable()) { + this._logService.trace(`[SecretStorageService] Encryption is available, using persisted storage`); this._type = 'persisted'; storageService = this._storageService; } else { diff --git a/src/vs/workbench/services/secrets/electron-sandbox/secretStorageService.ts b/src/vs/workbench/services/secrets/electron-sandbox/secretStorageService.ts index b22b1cedca6..70ae34239f7 100644 --- a/src/vs/workbench/services/secrets/electron-sandbox/secretStorageService.ts +++ b/src/vs/workbench/services/secrets/electron-sandbox/secretStorageService.ts @@ -43,7 +43,7 @@ export class NativeSecretStorageService extends BaseSecretStorageService { this._sequencer.queue(key, async () => { await this.resolvedStorageService; - if (this.type !== 'persisted') { + if (this.type !== 'persisted' && !this._environmentService.disableKeytar) { this._logService.trace('[NativeSecretStorageService] Notifying user that secrets are not being stored on disk.'); await this.notifyOfNoEncryptionOnce(); }