From d591cb7e6d4e986ac177bc4465b8c70f481b5a98 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Thu, 5 Sep 2019 15:48:55 +0200 Subject: [PATCH] fixes #80054 --- .../extensions/common/extensionUrlHandler.ts | 33 +++++-------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/src/vs/workbench/services/extensions/common/extensionUrlHandler.ts b/src/vs/workbench/services/extensions/common/extensionUrlHandler.ts index f1afdb4562b..4299e57ff73 100644 --- a/src/vs/workbench/services/extensions/common/extensionUrlHandler.ts +++ b/src/vs/workbench/services/extensions/common/extensionUrlHandler.ts @@ -28,7 +28,6 @@ const FIVE_MINUTES = 5 * 60 * 1000; const THIRTY_SECONDS = 30 * 1000; const URL_TO_HANDLE = 'extensionUrlHandler.urlToHandle'; const CONFIRMED_EXTENSIONS_CONFIGURATION_KEY = 'extensions.confirmedUriHandlerExtensionIds'; -const CONFIRMED_EXTENSIONS_STORAGE_KEY = 'extensionUrlHandler.confirmedExtensions'; function isExtensionId(value: string): boolean { return /^[a-z0-9][a-z0-9\-]*\.[a-z0-9][a-z0-9\-]*$/i.test(value); @@ -128,7 +127,7 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler { } if (result.checkboxChecked) { - this.addConfirmedExtensionIdToStorage(extensionId); + await this.addConfirmedExtensionIdToStorage(extensionId); } } @@ -290,10 +289,8 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler { } private getConfirmedExtensionIds(): Set { - const ids = [ - ...this.getConfirmedExtensionIdsFromStorage(), - ...this.getConfirmedExtensionIdsFromConfiguration(), - ].map(extensionId => ExtensionIdentifier.toKey(extensionId)); + const ids = this.getConfirmedExtensionIdsFromConfiguration() + .map(extensionId => ExtensionIdentifier.toKey(extensionId)); return new Set(ids); } @@ -308,26 +305,12 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler { return confirmedExtensionIds; } - private getConfirmedExtensionIdsFromStorage(): Array { - const confirmedExtensionIdsJson = this.storageService.get(CONFIRMED_EXTENSIONS_STORAGE_KEY, StorageScope.GLOBAL, '[]'); - - try { - return JSON.parse(confirmedExtensionIdsJson); - } catch (err) { - return []; - } - } + private async addConfirmedExtensionIdToStorage(extensionId: string): Promise { + const confirmedExtensionIds = this.configurationService.getValue>(CONFIRMED_EXTENSIONS_CONFIGURATION_KEY); + const set = new Set(confirmedExtensionIds); + set.add(extensionId); - private addConfirmedExtensionIdToStorage(extensionId: string): void { - const existingConfirmedExtensionIds = this.getConfirmedExtensionIdsFromStorage(); - this.storageService.store( - CONFIRMED_EXTENSIONS_STORAGE_KEY, - JSON.stringify([ - ...existingConfirmedExtensionIds, - ExtensionIdentifier.toKey(extensionId), - ]), - StorageScope.GLOBAL, - ); + await this.configurationService.updateValue(CONFIRMED_EXTENSIONS_CONFIGURATION_KEY, [...set.values()]); } dispose(): void { -- GitLab