diff options
author | Sandeep Somavarapu <sasomava@microsoft.com> | 2022-11-11 04:39:47 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-11 04:39:47 +0300 |
commit | 74d29f09b295c0ca424bd5f6b7f2fa86486759df (patch) | |
tree | 706ae9738c071175f35709bf7539fdd5191672c1 | |
parent | 4d95abc564fef719988f2d58981e7e93ff54188e (diff) |
fix installing extensions in web (#166063)
3 files changed, 11 insertions, 2 deletions
diff --git a/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.ts b/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.ts index 52d10a4497b..c39011fbe23 100644 --- a/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.ts +++ b/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.ts @@ -127,7 +127,7 @@ export abstract class AbstractExtensionManagementService extends Disposable impl const installExtensionTaskOptions: InstallExtensionTaskOptions = { ...options, installOnlyNewlyAddedFromExtensionPack: URI.isUri(extension) ? options.installOnlyNewlyAddedFromExtensionPack : true, /* always true for gallery extensions */ - profileLocation: !options.profileLocation || isApplicationScopedExtension(manifest) ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation + profileLocation: isApplicationScopedExtension(manifest) ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation ?? this.getCurrentExtensionsManifestLocation() }; const getInstallExtensionTaskKey = (extension: IGalleryExtension) => `${ExtensionKey.create(extension).toString()}${installExtensionTaskOptions.profileLocation ? `-${installExtensionTaskOptions.profileLocation.toString()}` : ''}`; @@ -467,7 +467,7 @@ export abstract class AbstractExtensionManagementService extends Disposable impl private async uninstallExtension(extension: ILocalExtension, options: UninstallOptions): Promise<void> { const uninstallOptions: UninstallExtensionTaskOptions = { ...options, - profileLocation: !options.profileLocation || extension.isApplicationScoped ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation + profileLocation: extension.isApplicationScoped ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation ?? this.getCurrentExtensionsManifestLocation() }; const getUninstallExtensionTaskKey = (identifier: IExtensionIdentifier) => `${identifier.id.toLowerCase()}${uninstallOptions.versionOnly ? `-${extension.manifest.version}` : ''}${uninstallOptions.profileLocation ? `@${uninstallOptions.profileLocation.toString()}` : ''}`; const uninstallExtensionTask = this.uninstallingExtensions.get(getUninstallExtensionTaskKey(extension.identifier)); @@ -659,6 +659,7 @@ export abstract class AbstractExtensionManagementService extends Disposable impl abstract updateMetadata(local: ILocalExtension, metadata: IGalleryMetadata): Promise<ILocalExtension>; abstract updateExtensionScope(local: ILocalExtension, isMachineScoped: boolean): Promise<ILocalExtension>; + protected abstract getCurrentExtensionsManifestLocation(): URI; protected abstract createInstallExtensionTask(manifest: IExtensionManifest, extension: URI | IGalleryExtension, options: InstallExtensionTaskOptions): IInstallExtensionTask; protected abstract createUninstallExtensionTask(extension: ILocalExtension, options: UninstallExtensionTaskOptions): IUninstallExtensionTask; } diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index 25fd3b13f17..ff30d8e3e68 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts @@ -230,6 +230,10 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi return { location, cleanup }; } + protected getCurrentExtensionsManifestLocation(): URI { + return this.userDataProfilesService.defaultProfile.extensionsResource; + } + protected createInstallExtensionTask(manifest: IExtensionManifest, extension: URI | IGalleryExtension, options: InstallExtensionTaskOptions): IInstallExtensionTask { let installExtensionTask: IInstallExtensionTask | undefined; if (URI.isUri(extension)) { diff --git a/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts b/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts index 0deec1d3631..e6cbbf605d1 100644 --- a/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts +++ b/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts @@ -129,6 +129,10 @@ export class WebExtensionManagementService extends AbstractExtensionManagementSe return local; } + protected getCurrentExtensionsManifestLocation(): URI { + return this.userDataProfileService.currentProfile.extensionsResource; + } + protected createInstallExtensionTask(manifest: IExtensionManifest, extension: URI | IGalleryExtension, options: InstallExtensionTaskOptions): IInstallExtensionTask { return new InstallExtensionTask(manifest, extension, options, this.webExtensionsScannerService); } |