diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts index a0afbe7..7a4aaa5 100644 --- a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts +++ b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts @@ -1764,2 +1764,8 @@ export abstract class AbstractExtensionGalleryService implements IExtensionGalle + const excludeUnsafes = this.configurationService.getValue('extensions.excludeUnsafes') ?? true; + + if (!excludeUnsafes) { + return { malicious: [], deprecated: {}, search: [] }; + } + const context = await this.requestService.request({ diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts index 34a5326..ee0dd6c 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts @@ -357,3 +357,10 @@ Registry.as(ConfigurationExtensions.Configuration) } - } + }, + 'extensions.excludeUnsafes': { + scope: ConfigurationScope.MACHINE, + type: 'boolean', + default: true, + description: localize('extensionsExcludeUnsafes', "When enabled, it will download and cache the list of malicious and deprecated extensions. It's recommended to leave it enabled."), + tags: ['usesOnlineServices'] + }, }