mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-11 13:51:25 -05:00
Fix #53872
This commit is contained in:
@@ -43,6 +43,7 @@ import { LocalizationsChannel } from 'vs/platform/localizations/common/localizat
|
||||
import { DialogChannelClient } from 'vs/platform/dialogs/common/dialogIpc';
|
||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||
import { DefaultURITransformer } from 'vs/base/common/uriIpc';
|
||||
|
||||
export interface ISharedProcessConfiguration {
|
||||
readonly machineId: string;
|
||||
@@ -134,7 +135,7 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I
|
||||
|
||||
instantiationService2.invokeFunction(accessor => {
|
||||
const extensionManagementService = accessor.get(IExtensionManagementService);
|
||||
const channel = new ExtensionManagementChannel(extensionManagementService);
|
||||
const channel = new ExtensionManagementChannel(extensionManagementService, DefaultURITransformer);
|
||||
server.registerChannel('extensions', channel);
|
||||
|
||||
// clean up deprecated extensions
|
||||
|
||||
@@ -33,7 +33,7 @@ export class ExtensionManagementChannel implements IExtensionManagementChannel {
|
||||
onUninstallExtension: Event<IExtensionIdentifier>;
|
||||
onDidUninstallExtension: Event<DidUninstallExtensionEvent>;
|
||||
|
||||
constructor(private service: IExtensionManagementService) {
|
||||
constructor(private service: IExtensionManagementService, private uriTransformer: IURITransformer) {
|
||||
this.onInstallExtension = buffer(service.onInstallExtension, true);
|
||||
this.onDidInstallExtension = buffer(service.onDidInstallExtension, true);
|
||||
this.onUninstallExtension = buffer(service.onUninstallExtension, true);
|
||||
@@ -55,15 +55,19 @@ export class ExtensionManagementChannel implements IExtensionManagementChannel {
|
||||
switch (command) {
|
||||
case 'install': return this.service.install(args[0]);
|
||||
case 'installFromGallery': return this.service.installFromGallery(args[0]);
|
||||
case 'uninstall': return this.service.uninstall(args[0], args[1]);
|
||||
case 'reinstallFromGallery': return this.service.reinstallFromGallery(args[0]);
|
||||
case 'uninstall': return this.service.uninstall(this._transform(args[0]), args[1]);
|
||||
case 'reinstallFromGallery': return this.service.reinstallFromGallery(this._transform(args[0]));
|
||||
case 'getInstalled': return this.service.getInstalled(args[0]);
|
||||
case 'updateMetadata': return this.service.updateMetadata(args[0], args[1]);
|
||||
case 'updateMetadata': return this.service.updateMetadata(this._transform(args[0]), args[1]);
|
||||
case 'getExtensionsReport': return this.service.getExtensionsReport();
|
||||
}
|
||||
|
||||
throw new Error('Invalid call');
|
||||
}
|
||||
|
||||
private _transform(extension: ILocalExtension): ILocalExtension {
|
||||
return extension ? { ...extension, ...{ location: URI.revive(this.uriTransformer.transformIncoming(extension.location)) } } : extension;
|
||||
}
|
||||
}
|
||||
|
||||
export class ExtensionManagementChannelClient implements IExtensionManagementService {
|
||||
|
||||
Reference in New Issue
Block a user