Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/vs/workbench/services/extensions/common/remoteExtensionHost.ts')
-rw-r--r--src/vs/workbench/services/extensions/common/remoteExtensionHost.ts25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts
index bd382d7f168..b6eb37647f8 100644
--- a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts
+++ b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts
@@ -25,10 +25,9 @@ import { ISignService } from 'vs/platform/sign/common/sign';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace';
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
-import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/common/extensionDescriptionRegistry';
import { parseExtensionDevOptions } from 'vs/workbench/services/extensions/common/extensionDevOptions';
import { createMessageOfType, isMessageOfType, MessageType, IExtensionHostInitData, UIKind } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
-import { ExtensionHostLogFileName, IExtensionHost, RemoteRunningLocation } from 'vs/workbench/services/extensions/common/extensions';
+import { ExtensionHostExtensions, ExtensionHostLogFileName, IExtensionHost, RemoteRunningLocation } from 'vs/workbench/services/extensions/common/extensions';
import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle';
import { Extensions, IOutputChannelRegistry } from 'vs/workbench/services/output/common/output';
@@ -39,8 +38,8 @@ export interface IRemoteExtensionHostInitData {
readonly extensionHostLogsPath: URI;
readonly globalStorageHome: URI;
readonly workspaceStorageHome: URI;
- readonly extensions: IExtensionDescription[];
readonly allExtensions: IExtensionDescription[];
+ readonly myExtensions: ExtensionIdentifier[];
}
export interface IRemoteExtensionHostDataProvider {
@@ -52,7 +51,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost {
public readonly remoteAuthority: string;
public readonly lazyStart = false;
- public readonly extensions = new ExtensionDescriptionRegistry([]);
+ public readonly extensions = new ExtensionHostExtensions();
private _onExit: Emitter<[number, string | null]> = this._register(new Emitter<[number, string | null]>());
public readonly onExit: Event<[number, string | null]> = this._onExit.event;
@@ -213,19 +212,8 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost {
private async _createExtHostInitData(isExtensionDevelopmentDebug: boolean): Promise<IExtensionHostInitData> {
const [telemetryInfo, remoteInitData] = await Promise.all([this._telemetryService.getTelemetryInfo(), this._initDataProvider.getInitData()]);
-
- // Collect all identifiers for extension ids which can be considered "resolved"
- const remoteExtensions = new Set<string>();
- remoteInitData.extensions.forEach((extension) => remoteExtensions.add(ExtensionIdentifier.toKey(extension.identifier.value)));
-
- const resolvedExtensions = remoteInitData.allExtensions.filter(extension => !extension.main && !extension.browser).map(extension => extension.identifier);
- const hostExtensions = (
- remoteInitData.allExtensions
- .filter(extension => !remoteExtensions.has(ExtensionIdentifier.toKey(extension.identifier.value)))
- .filter(extension => (extension.main || extension.browser) && extension.api === 'none').map(extension => extension.identifier)
- );
const workspace = this._contextService.getWorkspace();
- this.extensions.deltaExtensions(remoteInitData.extensions, []);
+ const deltaExtensions = this.extensions.set(remoteInitData.allExtensions, remoteInitData.myExtensions);
return {
commit: this._productService.commit,
version: this._productService.version,
@@ -253,9 +241,8 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost {
authority: this._initDataProvider.remoteAuthority,
connectionData: remoteInitData.connectionData
},
- resolvedExtensions: resolvedExtensions,
- hostExtensions: hostExtensions,
- extensions: this.extensions.getAllExtensionDescriptions(),
+ allExtensions: deltaExtensions.toAdd,
+ myExtensions: deltaExtensions.myToAdd,
telemetryInfo,
logLevel: this._logService.getLevel(),
logsLocation: remoteInitData.extensionHostLogsPath,