diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index da5f77daa4c..f03df1a9104 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -54,7 +54,8 @@ import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemPro import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; -import { IIssueMainService, IssueMainService } from 'vs/platform/issue/electron-main/issueMainService'; +import { IIssueMainService } from 'vs/platform/issue/common/issue'; +import { IssueMainService } from 'vs/platform/issue/electron-main/issueMainService'; import { IKeyboardLayoutMainService, KeyboardLayoutMainService } from 'vs/platform/keyboardLayout/electron-main/keyboardLayoutMainService'; import { ILaunchMainService, LaunchMainService } from 'vs/platform/launch/electron-main/launchMainService'; import { ILifecycleMainService, LifecycleMainPhase, ShutdownReason } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; diff --git a/src/vs/platform/issue/common/issue.ts b/src/vs/platform/issue/common/issue.ts index 0c2b9eb130e..27546bac535 100644 --- a/src/vs/platform/issue/common/issue.ts +++ b/src/vs/platform/issue/common/issue.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes'; +import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; // Since data sent through the service is serialized to JSON, functions will be lost, so Color objects // should not be sent as their 'toString' method will be stripped. Instead convert to strings before sending. @@ -95,13 +96,6 @@ export interface ProcessExplorerData extends WindowData { applicationName: string; } -export interface ICommonIssueService { - readonly _serviceBrand: undefined; - openReporter(data: IssueReporterData): Promise; - openProcessExplorer(data: ProcessExplorerData): Promise; - getSystemStatus(): Promise; -} - export interface IssueReporterWindowConfiguration extends ISandboxConfiguration { disableExtensions: boolean; data: IssueReporterData; @@ -115,3 +109,13 @@ export interface IssueReporterWindowConfiguration extends ISandboxConfiguration export interface ProcessExplorerWindowConfiguration extends ISandboxConfiguration { data: ProcessExplorerData; } + +export const IIssueMainService = createDecorator('issueService'); + +export interface IIssueMainService { + readonly _serviceBrand: undefined; + stopTracing(): Promise; + openReporter(data: IssueReporterData): Promise; + openProcessExplorer(data: ProcessExplorerData): Promise; + getSystemStatus(): Promise; +} diff --git a/src/vs/platform/issue/electron-main/issueMainService.ts b/src/vs/platform/issue/electron-main/issueMainService.ts index 759240c3276..1f4abd8f8b1 100644 --- a/src/vs/platform/issue/electron-main/issueMainService.ts +++ b/src/vs/platform/issue/electron-main/issueMainService.ts @@ -15,8 +15,7 @@ import { IDiagnosticsService, isRemoteDiagnosticError, PerformanceInfo } from 'v import { IDiagnosticsMainService } from 'vs/platform/diagnostics/electron-main/diagnosticsMainService'; import { IDialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; -import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { ICommonIssueService, IssueReporterData, IssueReporterWindowConfiguration, ProcessExplorerData, ProcessExplorerWindowConfiguration } from 'vs/platform/issue/common/issue'; +import { IIssueMainService, IssueReporterData, IssueReporterWindowConfiguration, ProcessExplorerData, ProcessExplorerWindowConfiguration } from 'vs/platform/issue/common/issue'; import { ILogService } from 'vs/platform/log/common/log'; import { INativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; import product from 'vs/platform/product/common/product'; @@ -33,7 +32,6 @@ import { URI } from 'vs/base/common/uri'; import { IWindowsMainService } from 'vs/platform/windows/electron-main/windows'; import { Promises, timeout } from 'vs/base/common/async'; -export const IIssueMainService = createDecorator('issueMainService'); const processExplorerWindowState = 'issue.processExplorerWindowState'; interface IBrowserWindowOptions { @@ -45,10 +43,6 @@ interface IBrowserWindowOptions { type IStrictWindowState = Required>; -export interface IIssueMainService extends ICommonIssueService { - stopTracing(): Promise; -} - export class IssueMainService implements IIssueMainService { declare readonly _serviceBrand: undefined; diff --git a/src/vs/workbench/contrib/issue/browser/issue.contribution.ts b/src/vs/workbench/contrib/issue/browser/issue.contribution.ts index 8c4fc893445..7d19d1cd3c6 100644 --- a/src/vs/workbench/contrib/issue/browser/issue.contribution.ts +++ b/src/vs/workbench/contrib/issue/browser/issue.contribution.ts @@ -10,7 +10,7 @@ import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle import { IProductService } from 'vs/platform/product/common/productService'; import { Registry } from 'vs/platform/registry/common/platform'; import { Extensions, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions'; -import { WebIssueService } from 'vs/workbench/contrib/issue/browser/issueService'; +import { WebIssueService } from 'vs/workbench/services/issue/browser/issueService'; import { IWorkbenchIssueService } from 'vs/workbench/services/issue/common/issue'; import { BaseIssueContribution } from 'vs/workbench/contrib/issue/common/issue.contribution'; diff --git a/src/vs/workbench/contrib/issue/electron-sandbox/issue.contribution.ts b/src/vs/workbench/contrib/issue/electron-sandbox/issue.contribution.ts index 6bfe5ee7765..ccaafef7cdd 100644 --- a/src/vs/workbench/contrib/issue/electron-sandbox/issue.contribution.ts +++ b/src/vs/workbench/contrib/issue/electron-sandbox/issue.contribution.ts @@ -5,11 +5,8 @@ import { localize } from 'vs/nls'; import { MenuRegistry, MenuId, registerAction2, Action2 } from 'vs/platform/actions/common/actions'; -import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IWorkbenchIssueService } from 'vs/workbench/services/issue/common/issue'; -import { NativeIssueService } from 'vs/workbench/services/issue/electron-sandbox/issueService'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; -import { IIssueService } from 'vs/platform/issue/electron-sandbox/issue'; import { BaseIssueContribution } from 'vs/workbench/contrib/issue/common/issue.contribution'; import { IProductService } from 'vs/platform/product/common/productService'; import { Registry } from 'vs/platform/registry/common/platform'; @@ -21,12 +18,10 @@ import { INativeEnvironmentService } from 'vs/platform/environment/common/enviro import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; import { INativeHostService } from 'vs/platform/native/common/native'; import { IProgressService, ProgressLocation } from 'vs/platform/progress/common/progress'; -import { IssueType } from 'vs/platform/issue/common/issue'; +import { IIssueMainService, IssueType } from 'vs/platform/issue/common/issue'; //#region Issue Contribution -registerSingleton(IWorkbenchIssueService, NativeIssueService, InstantiationType.Delayed); - class NativeIssueContribution extends BaseIssueContribution { constructor( @@ -108,7 +103,7 @@ class StopTracing extends Action2 { } override async run(accessor: ServicesAccessor): Promise { - const issueService = accessor.get(IIssueService); + const issueService = accessor.get(IIssueMainService); const environmentService = accessor.get(INativeEnvironmentService); const dialogService = accessor.get(IDialogService); const nativeHostService = accessor.get(INativeHostService); @@ -136,7 +131,7 @@ class StopTracing extends Action2 { registerAction2(StopTracing); CommandsRegistry.registerCommand('_issues.getSystemStatus', (accessor) => { - return accessor.get(IIssueService).getSystemStatus(); + return accessor.get(IIssueMainService).getSystemStatus(); }); //#endregion diff --git a/src/vs/workbench/contrib/issue/browser/issueService.ts b/src/vs/workbench/services/issue/browser/issueService.ts similarity index 100% rename from src/vs/workbench/contrib/issue/browser/issueService.ts rename to src/vs/workbench/services/issue/browser/issueService.ts diff --git a/src/vs/platform/issue/electron-sandbox/issue.ts b/src/vs/workbench/services/issue/electron-sandbox/issueMainService.ts similarity index 52% rename from src/vs/platform/issue/electron-sandbox/issue.ts rename to src/vs/workbench/services/issue/electron-sandbox/issueMainService.ts index 478a49e8625..a3cb28473af 100644 --- a/src/vs/platform/issue/electron-sandbox/issue.ts +++ b/src/vs/workbench/services/issue/electron-sandbox/issueMainService.ts @@ -3,11 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { ICommonIssueService } from 'vs/platform/issue/common/issue'; +import { registerMainProcessRemoteService } from 'vs/platform/ipc/electron-sandbox/services'; +import { IIssueMainService } from 'vs/platform/issue/common/issue'; -export const IIssueService = createDecorator('issueService'); - -export interface IIssueService extends ICommonIssueService { - stopTracing(): Promise; -} +registerMainProcessRemoteService(IIssueMainService, 'issue'); diff --git a/src/vs/workbench/services/issue/electron-sandbox/issueService.ts b/src/vs/workbench/services/issue/electron-sandbox/issueService.ts index 5f5350507a4..948d9a4902e 100644 --- a/src/vs/workbench/services/issue/electron-sandbox/issueService.ts +++ b/src/vs/workbench/services/issue/electron-sandbox/issueService.ts @@ -3,8 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { IssueReporterStyles, IssueReporterData, ProcessExplorerData, IssueReporterExtensionData } from 'vs/platform/issue/common/issue'; -import { IIssueService } from 'vs/platform/issue/electron-sandbox/issue'; +import { IssueReporterStyles, IssueReporterData, ProcessExplorerData, IssueReporterExtensionData, IIssueMainService } from 'vs/platform/issue/common/issue'; import { IColorTheme, IThemeService } from 'vs/platform/theme/common/themeService'; import { textLinkForeground, inputBackground, inputBorder, inputForeground, buttonBackground, buttonHoverBackground, buttonForeground, inputValidationErrorBorder, foreground, inputActiveOptionBorder, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, editorBackground, editorForeground, listHoverBackground, listHoverForeground, textLinkActiveForeground, inputValidationErrorBackground, inputValidationErrorForeground, listActiveSelectionBackground, listActiveSelectionForeground, listFocusOutline, listFocusBackground, listFocusForeground, activeContrastBorder, scrollbarShadow } from 'vs/platform/theme/common/colorRegistry'; import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme'; @@ -18,13 +17,13 @@ import { platform } from 'vs/base/common/process'; import { IProductService } from 'vs/platform/product/common/productService'; import { IWorkbenchAssignmentService } from 'vs/workbench/services/assignment/common/assignmentService'; import { IAuthenticationService } from 'vs/workbench/services/authentication/common/authentication'; -import { registerMainProcessRemoteService } from 'vs/platform/ipc/electron-sandbox/services'; import { IWorkspaceTrustManagementService } from 'vs/platform/workspace/common/workspaceTrust'; import { IIntegrityService } from 'vs/workbench/services/integrity/common/integrity'; import { ipcRenderer, process } from 'vs/base/parts/sandbox/electron-sandbox/globals'; import { IDisposable } from 'vs/base/common/lifecycle'; import { CancellationToken } from 'vs/base/common/cancellation'; import { URI } from 'vs/base/common/uri'; +import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions'; export class NativeIssueService implements IWorkbenchIssueService { declare readonly _serviceBrand: undefined; @@ -32,7 +31,7 @@ export class NativeIssueService implements IWorkbenchIssueService { private readonly _handlers = new Map(); constructor( - @IIssueService private readonly issueService: IIssueService, + @IIssueMainService private readonly issueMainService: IIssueMainService, @IThemeService private readonly themeService: IThemeService, @IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService, @IWorkbenchExtensionEnablementService private readonly extensionEnablementService: IWorkbenchExtensionEnablementService, @@ -115,7 +114,7 @@ export class NativeIssueService implements IWorkbenchIssueService { githubAccessToken, isSandboxed: process.sandboxed }, dataOverrides); - return this.issueService.openReporter(issueReporterData); + return this.issueMainService.openReporter(issueReporterData); } openProcessExplorer(): Promise { @@ -142,7 +141,7 @@ export class NativeIssueService implements IWorkbenchIssueService { platform: platform, applicationName: this.productService.applicationName }; - return this.issueService.openProcessExplorer(data); + return this.issueMainService.openProcessExplorer(data); } registerIssueUriRequestHandler(extensionId: string, handler: IIssueUriRequestHandler): IDisposable { @@ -188,4 +187,4 @@ function getColor(theme: IColorTheme, key: string): string | undefined { return color ? color.toString() : undefined; } -registerMainProcessRemoteService(IIssueService, 'issue'); +registerSingleton(IWorkbenchIssueService, NativeIssueService, InstantiationType.Delayed); diff --git a/src/vs/workbench/workbench.desktop.main.ts b/src/vs/workbench/workbench.desktop.main.ts index ed2f032ea8f..7d80c504a02 100644 --- a/src/vs/workbench/workbench.desktop.main.ts +++ b/src/vs/workbench/workbench.desktop.main.ts @@ -38,6 +38,7 @@ import 'vs/workbench/services/textfile/electron-sandbox/nativeTextFileService'; import 'vs/workbench/services/dialogs/electron-sandbox/fileDialogService'; import 'vs/workbench/services/workspaces/electron-sandbox/workspacesService'; import 'vs/workbench/services/menubar/electron-sandbox/menubarService'; +import 'vs/workbench/services/issue/electron-sandbox/issueMainService'; import 'vs/workbench/services/issue/electron-sandbox/issueService'; import 'vs/workbench/services/update/electron-sandbox/updateService'; import 'vs/workbench/services/url/electron-sandbox/urlService';