Move pty to shared process

This commit is contained in:
Daniel Imms
2021-02-10 14:03:34 -08:00
parent 1abb2d9534
commit 67dda13a3a
10 changed files with 148 additions and 70 deletions
@@ -81,6 +81,10 @@ import { DeprecatedExtensionsCleaner } from 'vs/code/electron-browser/sharedProc
import { onUnexpectedError, setUnexpectedErrorHandler } from 'vs/base/common/errors';
import { toErrorMessage } from 'vs/base/common/errorMessage';
import { join } from 'vs/base/common/path';
import { LocalPtyChannel } from 'vs/platform/terminal/electron-browser/terminalIpc';
import { TerminalIpcChannels } from 'vs/platform/terminal/common/terminal';
import { LocalPtyService } from 'vs/platform/terminal/electron-browser/localPtyService';
import { ILocalPtyService } from 'vs/platform/terminal/electron-sandbox/terminal';
class SharedProcessMain extends Disposable {
@@ -259,6 +263,10 @@ class SharedProcessMain extends Disposable {
services.set(IUserDataSyncResourceEnablementService, new SyncDescriptor(UserDataSyncResourceEnablementService));
services.set(IUserDataSyncService, new SyncDescriptor(UserDataSyncService));
// Terminal
// TODO: Move out of electron-main
services.set(ILocalPtyService, new SyncDescriptor(LocalPtyService));
return new InstantiationService(services);
}
@@ -304,6 +312,11 @@ class SharedProcessMain extends Disposable {
const userDataAutoSync = this._register(accessor.get(IInstantiationService).createInstance(UserDataAutoSyncService));
const userDataAutoSyncChannel = new UserDataAutoSyncChannel(userDataAutoSync);
this.server.registerChannel('userDataAutoSync', userDataAutoSyncChannel);
// Terminal
const localPtyMainService = accessor.get(ILocalPtyService);
const localPtyMainChannel = new LocalPtyChannel(localPtyMainService);
this.server.registerChannel(TerminalIpcChannels.LocalPty, localPtyMainChannel);
}
private registerErrorHandler(logService: ILogService): void {
-6
View File
@@ -89,7 +89,6 @@ import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cance
import { IExtensionUrlTrustService } from 'vs/platform/extensionManagement/common/extensionUrlTrust';
import { ExtensionUrlTrustService } from 'vs/platform/extensionManagement/node/extensionUrlTrustService';
import { once } from 'vs/base/common/functional';
import { ILocalPtyMainService, LocalPtyMainService } from 'vs/platform/terminal/electron-main/localPtyMainService';
export class CodeApplication extends Disposable {
private windowsMainService: IWindowsMainService | undefined;
@@ -528,7 +527,6 @@ export class CodeApplication extends Disposable {
services.set(ILaunchMainService, new SyncDescriptor(LaunchMainService));
services.set(IDiagnosticsService, ProxyChannel.toService(getDelayedChannel(sharedProcessReady.then(client => client.getChannel('diagnostics')))));
services.set(ILocalPtyMainService, new SyncDescriptor(LocalPtyMainService));
services.set(IIssueMainService, new SyncDescriptor(IssueMainService, [machineId, this.userEnv]));
services.set(IEncryptionMainService, new SyncDescriptor(EncryptionMainService, [machineId]));
services.set(IKeyboardLayoutMainService, new SyncDescriptor(KeyboardLayoutMainService));
@@ -616,10 +614,6 @@ export class CodeApplication extends Disposable {
const updateChannel = new UpdateChannel(updateService);
electronIpcServer.registerChannel('update', updateChannel);
const localPtyMainService = accessor.get(ILocalPtyMainService);
const localPtyChannel = createChannelReceiver(localPtyMainService);
electronIpcServer.registerChannel('localPty', localPtyChannel);
const issueMainService = accessor.get(IIssueMainService);
const issueChannel = ProxyChannel.fromService(issueMainService);
electronIpcServer.registerChannel('issue', issueChannel);