From 648f2b07d1a797f1a242799cd1efd380374624a7 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Wed, 22 Apr 2026 12:40:36 -0700 Subject: [PATCH 1/2] extensions: split devtoolsExtensionHost action into its own contribution Pull DebugExtensionHostInDevToolsAction registration out of extensions.contribution.ts into a new devtoolsExtensionHost.contribution.ts so the Agents app (vs/sessions) can opt into just this action without importing the full electron-browser extensions contribution. Mirrors the recent timeline.contribution split (#311882). The action only depends on services already registered in the Agents app: IExtensionService, INativeHostService, IQuickInputService. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/vs/sessions/sessions.desktop.main.ts | 3 +++ .../devtoolsExtensionHost.contribution.ts | 9 +++++++++ .../electron-browser/extensions.contribution.ts | 3 +-- src/vs/workbench/workbench.desktop.main.ts | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 src/vs/workbench/contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.ts diff --git a/src/vs/sessions/sessions.desktop.main.ts b/src/vs/sessions/sessions.desktop.main.ts index 8d06aa9417bf1..630c4d155560d 100644 --- a/src/vs/sessions/sessions.desktop.main.ts +++ b/src/vs/sessions/sessions.desktop.main.ts @@ -94,6 +94,9 @@ import '../workbench/services/browserView/electron-browser/playwrightWorkbenchSe import '../workbench/services/process/electron-browser/processService.js'; import '../workbench/services/power/electron-browser/powerService.js'; +// Contributions +import '../workbench/contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.js'; + import { registerSingleton } from '../platform/instantiation/common/extensions.js'; import { IUserDataInitializationService, UserDataInitializationService } from '../workbench/services/userData/browser/userDataInit.js'; import { SyncDescriptor } from '../platform/instantiation/common/descriptors.js'; diff --git a/src/vs/workbench/contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.ts b/src/vs/workbench/contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.ts new file mode 100644 index 0000000000000..6d5f07c920f66 --- /dev/null +++ b/src/vs/workbench/contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { registerAction2 } from '../../../../platform/actions/common/actions.js'; +import { DebugExtensionHostInDevToolsAction } from './debugExtensionHostAction.js'; + +registerAction2(DebugExtensionHostInDevToolsAction); diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts index a513f824372d9..393014254b6b1 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts @@ -19,7 +19,7 @@ import { EditorExtensions, IEditorFactoryRegistry, IEditorSerializer } from '../ import { EditorInput } from '../../../common/editor/editorInput.js'; import { LifecyclePhase } from '../../../services/lifecycle/common/lifecycle.js'; import { RuntimeExtensionsInput } from '../common/runtimeExtensionsInput.js'; -import { DebugExtensionHostInNewWindowAction, DebugExtensionsContribution, DebugExtensionHostInDevToolsAction, DebugRendererInNewWindowAction, DebugExtensionHostAndRendererAction } from './debugExtensionHostAction.js'; +import { DebugExtensionHostInNewWindowAction, DebugExtensionsContribution, DebugRendererInNewWindowAction, DebugExtensionHostAndRendererAction } from './debugExtensionHostAction.js'; import { ExtensionHostProfileService } from './extensionProfileService.js'; import { CleanUpExtensionsFolderAction, OpenExtensionsFolderAction } from './extensionsActions.js'; import { ExtensionsAutoProfiler } from './extensionsAutoProfiler.js'; @@ -83,4 +83,3 @@ registerAction2(StartExtensionHostProfileAction); registerAction2(StopExtensionHostProfileAction); registerAction2(SaveExtensionHostProfileAction); registerAction2(OpenExtensionHostProfileACtion); -registerAction2(DebugExtensionHostInDevToolsAction); diff --git a/src/vs/workbench/workbench.desktop.main.ts b/src/vs/workbench/workbench.desktop.main.ts index 8ecb4d298e49c..4277093b10389 100644 --- a/src/vs/workbench/workbench.desktop.main.ts +++ b/src/vs/workbench/workbench.desktop.main.ts @@ -125,6 +125,7 @@ import './contrib/debug/electron-browser/extensionHostDebugService.js'; // Extensions Management import './contrib/extensions/electron-browser/extensions.contribution.js'; +import './contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.js'; // Issues import './contrib/issue/electron-browser/issue.contribution.js'; From 4a7e1e3f0c700b3a6b7563ba4aa7117129bf5634 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Wed, 22 Apr 2026 12:46:35 -0700 Subject: [PATCH 2/2] extensions: move devtoolsExtensionHost import to debug section (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/vs/sessions/sessions.desktop.main.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vs/sessions/sessions.desktop.main.ts b/src/vs/sessions/sessions.desktop.main.ts index 630c4d155560d..0411c189ded57 100644 --- a/src/vs/sessions/sessions.desktop.main.ts +++ b/src/vs/sessions/sessions.desktop.main.ts @@ -94,9 +94,6 @@ import '../workbench/services/browserView/electron-browser/playwrightWorkbenchSe import '../workbench/services/process/electron-browser/processService.js'; import '../workbench/services/power/electron-browser/powerService.js'; -// Contributions -import '../workbench/contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.js'; - import { registerSingleton } from '../platform/instantiation/common/extensions.js'; import { IUserDataInitializationService, UserDataInitializationService } from '../workbench/services/userData/browser/userDataInit.js'; import { SyncDescriptor } from '../platform/instantiation/common/descriptors.js'; @@ -124,6 +121,9 @@ import '../workbench/contrib/codeEditor/electron-browser/codeEditor.contribution // Debug import '../workbench/contrib/debug/electron-browser/extensionHostDebugService.js'; +// Extension devtools +import '../workbench/contrib/extensions/electron-browser/devtoolsExtensionHost.contribution.js'; + // Issues import '../workbench/contrib/issue/electron-browser/issue.contribution.js';