Skip to content

Commit 74d29f0

Browse files
authored
fix installing extensions in web (microsoft#166063)
1 parent 4d95abc commit 74d29f0

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

src/vs/platform/extensionManagement/common/abstractExtensionManagementService.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ export abstract class AbstractExtensionManagementService extends Disposable impl
127127
const installExtensionTaskOptions: InstallExtensionTaskOptions = {
128128
...options,
129129
installOnlyNewlyAddedFromExtensionPack: URI.isUri(extension) ? options.installOnlyNewlyAddedFromExtensionPack : true, /* always true for gallery extensions */
130-
profileLocation: !options.profileLocation || isApplicationScopedExtension(manifest) ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation
130+
profileLocation: isApplicationScopedExtension(manifest) ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation ?? this.getCurrentExtensionsManifestLocation()
131131
};
132132
const getInstallExtensionTaskKey = (extension: IGalleryExtension) => `${ExtensionKey.create(extension).toString()}${installExtensionTaskOptions.profileLocation ? `-${installExtensionTaskOptions.profileLocation.toString()}` : ''}`;
133133

@@ -467,7 +467,7 @@ export abstract class AbstractExtensionManagementService extends Disposable impl
467467
private async uninstallExtension(extension: ILocalExtension, options: UninstallOptions): Promise<void> {
468468
const uninstallOptions: UninstallExtensionTaskOptions = {
469469
...options,
470-
profileLocation: !options.profileLocation || extension.isApplicationScoped ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation
470+
profileLocation: extension.isApplicationScoped ? this.userDataProfilesService.defaultProfile.extensionsResource : options.profileLocation ?? this.getCurrentExtensionsManifestLocation()
471471
};
472472
const getUninstallExtensionTaskKey = (identifier: IExtensionIdentifier) => `${identifier.id.toLowerCase()}${uninstallOptions.versionOnly ? `-${extension.manifest.version}` : ''}${uninstallOptions.profileLocation ? `@${uninstallOptions.profileLocation.toString()}` : ''}`;
473473
const uninstallExtensionTask = this.uninstallingExtensions.get(getUninstallExtensionTaskKey(extension.identifier));
@@ -659,6 +659,7 @@ export abstract class AbstractExtensionManagementService extends Disposable impl
659659
abstract updateMetadata(local: ILocalExtension, metadata: IGalleryMetadata): Promise<ILocalExtension>;
660660
abstract updateExtensionScope(local: ILocalExtension, isMachineScoped: boolean): Promise<ILocalExtension>;
661661

662+
protected abstract getCurrentExtensionsManifestLocation(): URI;
662663
protected abstract createInstallExtensionTask(manifest: IExtensionManifest, extension: URI | IGalleryExtension, options: InstallExtensionTaskOptions): IInstallExtensionTask;
663664
protected abstract createUninstallExtensionTask(extension: ILocalExtension, options: UninstallExtensionTaskOptions): IUninstallExtensionTask;
664665
}

src/vs/platform/extensionManagement/node/extensionManagementService.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,10 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
230230
return { location, cleanup };
231231
}
232232

233+
protected getCurrentExtensionsManifestLocation(): URI {
234+
return this.userDataProfilesService.defaultProfile.extensionsResource;
235+
}
236+
233237
protected createInstallExtensionTask(manifest: IExtensionManifest, extension: URI | IGalleryExtension, options: InstallExtensionTaskOptions): IInstallExtensionTask {
234238
let installExtensionTask: IInstallExtensionTask | undefined;
235239
if (URI.isUri(extension)) {

src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ export class WebExtensionManagementService extends AbstractExtensionManagementSe
129129
return local;
130130
}
131131

132+
protected getCurrentExtensionsManifestLocation(): URI {
133+
return this.userDataProfileService.currentProfile.extensionsResource;
134+
}
135+
132136
protected createInstallExtensionTask(manifest: IExtensionManifest, extension: URI | IGalleryExtension, options: InstallExtensionTaskOptions): IInstallExtensionTask {
133137
return new InstallExtensionTask(manifest, extension, options, this.webExtensionsScannerService);
134138
}

0 commit comments

Comments
 (0)