提交 d591cb7e 编写于 作者: J Joao Moreno

fixes #80054

上级 a00cb247
...@@ -28,7 +28,6 @@ const FIVE_MINUTES = 5 * 60 * 1000; ...@@ -28,7 +28,6 @@ const FIVE_MINUTES = 5 * 60 * 1000;
const THIRTY_SECONDS = 30 * 1000; const THIRTY_SECONDS = 30 * 1000;
const URL_TO_HANDLE = 'extensionUrlHandler.urlToHandle'; const URL_TO_HANDLE = 'extensionUrlHandler.urlToHandle';
const CONFIRMED_EXTENSIONS_CONFIGURATION_KEY = 'extensions.confirmedUriHandlerExtensionIds'; const CONFIRMED_EXTENSIONS_CONFIGURATION_KEY = 'extensions.confirmedUriHandlerExtensionIds';
const CONFIRMED_EXTENSIONS_STORAGE_KEY = 'extensionUrlHandler.confirmedExtensions';
function isExtensionId(value: string): boolean { function isExtensionId(value: string): boolean {
return /^[a-z0-9][a-z0-9\-]*\.[a-z0-9][a-z0-9\-]*$/i.test(value); 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 { ...@@ -128,7 +127,7 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
} }
if (result.checkboxChecked) { if (result.checkboxChecked) {
this.addConfirmedExtensionIdToStorage(extensionId); await this.addConfirmedExtensionIdToStorage(extensionId);
} }
} }
...@@ -290,10 +289,8 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler { ...@@ -290,10 +289,8 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
} }
private getConfirmedExtensionIds(): Set<string> { private getConfirmedExtensionIds(): Set<string> {
const ids = [ const ids = this.getConfirmedExtensionIdsFromConfiguration()
...this.getConfirmedExtensionIdsFromStorage(), .map(extensionId => ExtensionIdentifier.toKey(extensionId));
...this.getConfirmedExtensionIdsFromConfiguration(),
].map(extensionId => ExtensionIdentifier.toKey(extensionId));
return new Set(ids); return new Set(ids);
} }
...@@ -308,26 +305,12 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler { ...@@ -308,26 +305,12 @@ class ExtensionUrlHandler implements IExtensionUrlHandler, IURLHandler {
return confirmedExtensionIds; return confirmedExtensionIds;
} }
private getConfirmedExtensionIdsFromStorage(): Array<string> { private async addConfirmedExtensionIdToStorage(extensionId: string): Promise<void> {
const confirmedExtensionIdsJson = this.storageService.get(CONFIRMED_EXTENSIONS_STORAGE_KEY, StorageScope.GLOBAL, '[]'); const confirmedExtensionIds = this.configurationService.getValue<Array<string>>(CONFIRMED_EXTENSIONS_CONFIGURATION_KEY);
const set = new Set(confirmedExtensionIds);
try { set.add(extensionId);
return JSON.parse(confirmedExtensionIdsJson);
} catch (err) {
return [];
}
}
private addConfirmedExtensionIdToStorage(extensionId: string): void { await this.configurationService.updateValue(CONFIRMED_EXTENSIONS_CONFIGURATION_KEY, [...set.values()]);
const existingConfirmedExtensionIds = this.getConfirmedExtensionIdsFromStorage();
this.storageService.store(
CONFIRMED_EXTENSIONS_STORAGE_KEY,
JSON.stringify([
...existingConfirmedExtensionIds,
ExtensionIdentifier.toKey(extensionId),
]),
StorageScope.GLOBAL,
);
} }
dispose(): void { dispose(): void {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册