diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 1cac6c41b1f..547d1bd99d6 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -43,7 +43,6 @@ 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; @@ -123,7 +122,7 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I instantiationService2.invokeFunction(accessor => { const extensionManagementService = accessor.get(IExtensionManagementService); - const channel = new ExtensionManagementChannel(extensionManagementService, DefaultURITransformer); + const channel = new ExtensionManagementChannel(extensionManagementService); server.registerChannel('extensions', channel); // clean up deprecated extensions diff --git a/src/vs/platform/extensionManagement/common/extensionManagementIpc.ts b/src/vs/platform/extensionManagement/common/extensionManagementIpc.ts index 13180261b7b..4180af7c8a3 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagementIpc.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagementIpc.ts @@ -33,7 +33,7 @@ export class ExtensionManagementChannel implements IExtensionManagementChannel { onUninstallExtension: Event; onDidUninstallExtension: Event; - constructor(private service: IExtensionManagementService, private uriTransformer: IURITransformer) { + constructor(private service: IExtensionManagementService) { this.onInstallExtension = buffer(service.onInstallExtension, true); this.onDidInstallExtension = buffer(service.onDidInstallExtension, true); this.onUninstallExtension = buffer(service.onUninstallExtension, true); @@ -66,7 +66,7 @@ export class ExtensionManagementChannel implements IExtensionManagementChannel { } private _transform(extension: ILocalExtension): ILocalExtension { - return extension ? { ...extension, ...{ location: URI.revive(this.uriTransformer.transformIncoming(extension.location)) } } : extension; + return extension ? { ...extension, ...{ location: URI.revive(extension.location) } } : extension; } } @@ -77,7 +77,7 @@ export class ExtensionManagementChannelClient implements IExtensionManagementSer constructor(private channel: IExtensionManagementChannel, private uriTransformer: IURITransformer) { } get onInstallExtension(): Event { return this.channel.listen('onInstallExtension'); } - get onDidInstallExtension(): Event { return mapEvent(this.channel.listen('onDidInstallExtension'), i => ({ ...i, local: this._transform(i.local) })); } + get onDidInstallExtension(): Event { return mapEvent(this.channel.listen('onDidInstallExtension'), i => ({ ...i, local: this._transformIncoming(i.local) })); } get onUninstallExtension(): Event { return this.channel.listen('onUninstallExtension'); } get onDidUninstallExtension(): Event { return this.channel.listen('onDidUninstallExtension'); } @@ -90,29 +90,33 @@ export class ExtensionManagementChannelClient implements IExtensionManagementSer } uninstall(extension: ILocalExtension, force = false): TPromise { - return this.channel.call('uninstall', [extension, force]); + return this.channel.call('uninstall', [this._transformOutgoing(extension), force]); } reinstallFromGallery(extension: ILocalExtension): TPromise { - return this.channel.call('reinstallFromGallery', [extension]); + return this.channel.call('reinstallFromGallery', [this._transformOutgoing(extension)]); } getInstalled(type: LocalExtensionType = null): TPromise { return this.channel.call('getInstalled', [type]) - .then(extensions => extensions.map(extension => this._transform(extension))); + .then(extensions => extensions.map(extension => this._transformIncoming(extension))); } updateMetadata(local: ILocalExtension, metadata: IGalleryMetadata): TPromise { - return this.channel.call('updateMetadata', [local, metadata]) - .then(extension => this._transform(extension)); + return this.channel.call('updateMetadata', [this._transformOutgoing(local), metadata]) + .then(extension => this._transformIncoming(extension)); } getExtensionsReport(): TPromise { return this.channel.call('getExtensionsReport'); } - private _transform(extension: ILocalExtension): ILocalExtension { + private _transformIncoming(extension: ILocalExtension): ILocalExtension { return extension ? { ...extension, ...{ location: URI.revive(this.uriTransformer.transformIncoming(extension.location)) } } : extension; } + private _transformOutgoing(extension: ILocalExtension): ILocalExtension { + return extension ? { ...extension, ...{ location: this.uriTransformer.transformOutgoing(extension.location) } } : extension; + } + } \ No newline at end of file