Skip to content

Commit

Permalink
fixes #80054
Browse files Browse the repository at this point in the history
  • Loading branch information
joaomoreno committed Sep 5, 2019
1 parent a00cb24 commit d591cb7
Showing 1 changed file with 8 additions and 25 deletions.
33 changes: 8 additions & 25 deletions src/vs/workbench/services/extensions/common/extensionUrlHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -128,7 +127,7 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
}

if (result.checkboxChecked) {
this.addConfirmedExtensionIdToStorage(extensionId);
await this.addConfirmedExtensionIdToStorage(extensionId);
}
}

Expand Down Expand Up @@ -290,10 +289,8 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
}

private getConfirmedExtensionIds(): Set<string> {
const ids = [
...this.getConfirmedExtensionIdsFromStorage(),
...this.getConfirmedExtensionIdsFromConfiguration(),
].map(extensionId => ExtensionIdentifier.toKey(extensionId));
const ids = this.getConfirmedExtensionIdsFromConfiguration()
.map(extensionId => ExtensionIdentifier.toKey(extensionId));

return new Set(ids);
}
Expand All @@ -308,26 +305,12 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
return confirmedExtensionIds;
}

private getConfirmedExtensionIdsFromStorage(): Array<string> {
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<void> {
const confirmedExtensionIds = this.configurationService.getValue<Array<string>>(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 {
Expand Down

0 comments on commit d591cb7

Please sign in to comment.