Skip to content

Commit 74c4ecd

Browse files
authored
debt - remove AMD support of VSCode for web (#285230)
1 parent dcce2aa commit 74c4ecd

File tree

10 files changed

+186
-367
lines changed

10 files changed

+186
-367
lines changed

build/azure-pipelines/web/product-build-web.yml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -150,23 +150,14 @@ jobs:
150150
node build/azure-pipelines/upload-cdn.ts
151151
displayName: Upload to CDN
152152
153-
- script: |
154-
set -e
155-
AZURE_STORAGE_ACCOUNT="vscodeweb" \
156-
AZURE_TENANT_ID="$(AZURE_TENANT_ID)" \
157-
AZURE_CLIENT_ID="$(AZURE_CLIENT_ID)" \
158-
AZURE_ID_TOKEN="$(AZURE_ID_TOKEN)" \
159-
node build/azure-pipelines/upload-sourcemaps.ts out-vscode-web-min out-vscode-web-min/vs/workbench/workbench.web.main.js.map
160-
displayName: Upload sourcemaps (Web Main)
161-
162153
- script: |
163154
set -e
164155
AZURE_STORAGE_ACCOUNT="vscodeweb" \
165156
AZURE_TENANT_ID="$(AZURE_TENANT_ID)" \
166157
AZURE_CLIENT_ID="$(AZURE_CLIENT_ID)" \
167158
AZURE_ID_TOKEN="$(AZURE_ID_TOKEN)" \
168159
node build/azure-pipelines/upload-sourcemaps.ts out-vscode-web-min out-vscode-web-min/vs/workbench/workbench.web.main.internal.js.map
169-
displayName: Upload sourcemaps (Web Internal)
160+
displayName: Upload sourcemaps (Web)
170161
171162
- script: |
172163
set -e

build/buildfile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export const workbenchDesktop = [
2828
createModuleDescription('vs/workbench/workbench.desktop.main')
2929
];
3030

31-
export const workbenchWeb = createModuleDescription('vs/workbench/workbench.web.main');
31+
export const workbenchWeb = createModuleDescription('vs/workbench/workbench.web.main.internal');
3232

3333
export const keyboardMaps = [
3434
createModuleDescription('vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux'),

build/gulpfile.vscode.web.ts

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import vfs from 'vinyl-fs';
1919
import packageJson from '../package.json' with { type: 'json' };
2020
import { compileBuildWithManglingTask } from './gulpfile.compile.ts';
2121
import * as extensions from './lib/extensions.ts';
22-
import VinylFile from 'vinyl';
2322
import jsonEditor from 'gulp-json-editor';
2423
import buildfile from './buildfile.ts';
2524

@@ -82,7 +81,6 @@ const vscodeWebEntryPoints = [
8281
buildfile.workerBackgroundTokenization,
8382
buildfile.keyboardMaps,
8483
buildfile.workbenchWeb,
85-
buildfile.entrypoint('vs/workbench/workbench.web.main.internal') // TODO@esm remove line when we stop supporting web-amd-esm-bridge
8684
].flat();
8785

8886
/**
@@ -143,21 +141,8 @@ function packageTask(sourceFolderName: string, destinationFolderName: string) {
143141

144142
const extensions = gulp.src('.build/web/extensions/**', { base: '.build/web', dot: true });
145143

146-
const loader = gulp.src('build/loader.min', { base: 'build', dot: true }).pipe(rename('out/vs/loader.js')); // TODO@esm remove line when we stop supporting web-amd-esm-bridge
147-
148-
const sources = es.merge(src, extensions, loader)
149-
.pipe(filter(['**', '!**/*.{js,css}.map'], { dot: true }))
150-
// TODO@esm remove me once we stop supporting our web-esm-bridge
151-
.pipe(es.through(function (file) {
152-
if (file.relative === 'out/vs/workbench/workbench.web.main.internal.css') {
153-
this.emit('data', new VinylFile({
154-
contents: file.contents,
155-
path: file.path.replace('workbench.web.main.internal.css', 'workbench.web.main.css'),
156-
base: file.base
157-
}));
158-
}
159-
this.emit('data', file);
160-
}));
144+
const sources = es.merge(src, extensions)
145+
.pipe(filter(['**', '!**/*.{js,css}.map'], { dot: true }));
161146

162147
const name = product.nameShort;
163148
const packageJsonStream = gulp.src(['remote/web/package.json'], { base: 'remote/web' })

build/lib/optimize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ function bundleESMTask(opts: IBundleESMTaskOpts): NodeJS.ReadWriteStream {
152152
'.sh': 'file',
153153
},
154154
assetNames: 'media/[name]', // moves media assets into a sub-folder "media"
155-
banner: entryPoint.name === 'vs/workbench/workbench.web.main' ? undefined : banner, // TODO@esm remove line when we stop supporting web-amd-esm-bridge
155+
banner,
156156
entryPoints: [
157157
{
158158
in: path.join(REPO_ROOT_PATH, opts.src, `${entryPoint.name}.js`),

eslint.config.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -771,8 +771,6 @@ export default tseslint.config(
771771
'src/vs/workbench/test/browser/workbenchTestServices.ts',
772772
'src/vs/workbench/test/common/workbenchTestServices.ts',
773773
'src/vs/workbench/test/electron-browser/workbenchTestServices.ts',
774-
'src/vs/workbench/workbench.web.main.internal.ts',
775-
'src/vs/workbench/workbench.web.main.ts',
776774
// Server
777775
'src/vs/server/node/remoteAgentEnvironmentImpl.ts',
778776
'src/vs/server/node/remoteExtensionHostAgentServer.ts',
@@ -1860,7 +1858,7 @@ export default tseslint.config(
18601858
'vs/workbench/api/~',
18611859
'vs/workbench/services/*/~',
18621860
'vs/workbench/contrib/*/~',
1863-
'vs/workbench/workbench.common.main.js'
1861+
'vs/workbench/workbench.web.main.js'
18641862
]
18651863
},
18661864
{
@@ -1887,7 +1885,7 @@ export default tseslint.config(
18871885
]
18881886
},
18891887
{
1890-
'target': 'src/vs/{loader.d.ts,monaco.d.ts,nls.ts,nls.messages.ts}',
1888+
'target': 'src/vs/{monaco.d.ts,nls.ts}',
18911889
'restrictions': []
18921890
},
18931891
{

src/vs/nls.messages.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/vs/nls.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
// eslint-disable-next-line local/code-import-patterns
7-
import { getNLSLanguage, getNLSMessages } from './nls.messages.js';
8-
// eslint-disable-next-line local/code-import-patterns
9-
export { getNLSLanguage, getNLSMessages } from './nls.messages.js';
6+
export function getNLSMessages(): string[] {
7+
return globalThis._VSCODE_NLS_MESSAGES;
8+
}
9+
10+
export function getNLSLanguage(): string | undefined {
11+
return globalThis._VSCODE_NLS_LANGUAGE;
12+
}
1013

1114
declare const document: { location?: { hash?: string } } | undefined;
1215
const isPseudo = getNLSLanguage() === 'pseudo' || (typeof document !== 'undefined' && document.location && typeof document.location.hash === 'string' && document.location.hash.indexOf('pseudo=true') >= 0);

src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
8383
this._register(this.editorService.onDidActiveEditorChange(() => this.onDidActiveEditorChange()));
8484

8585
this._register(this.configurationService.onDidChangeConfiguration(e => {
86-
if (e.affectsConfiguration(product.defaultChatAgent.completionsEnablementSetting)) {
86+
if (e.affectsConfiguration(product.defaultChatAgent?.completionsEnablementSetting)) {
8787
this.update();
8888
}
8989
}));

src/vs/workbench/workbench.web.main.internal.ts

Lines changed: 2 additions & 209 deletions
Original file line numberDiff line numberDiff line change
@@ -3,180 +3,6 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
7-
// #######################################################################
8-
// ### ###
9-
// ### !!! PLEASE ADD COMMON IMPORTS INTO WORKBENCH.COMMON.MAIN.TS !!! ###
10-
// ### ###
11-
// #######################################################################
12-
13-
14-
//#region --- workbench common
15-
16-
import './workbench.common.main.js';
17-
18-
//#endregion
19-
20-
21-
//#region --- workbench parts
22-
23-
import './browser/parts/dialogs/dialog.web.contribution.js';
24-
25-
//#endregion
26-
27-
28-
//#region --- workbench (web main)
29-
30-
import './browser/web.main.js';
31-
32-
//#endregion
33-
34-
35-
//#region --- workbench services
36-
37-
import './services/integrity/browser/integrityService.js';
38-
import './services/search/browser/searchService.js';
39-
import './services/textfile/browser/browserTextFileService.js';
40-
import './services/keybinding/browser/keyboardLayoutService.js';
41-
import './services/extensions/browser/extensionService.js';
42-
import './services/extensionManagement/browser/extensionsProfileScannerService.js';
43-
import './services/extensions/browser/extensionsScannerService.js';
44-
import './services/extensionManagement/browser/webExtensionsScannerService.js';
45-
import './services/extensionManagement/common/extensionManagementServerService.js';
46-
import './services/mcp/browser/mcpWorkbenchManagementService.js';
47-
import './services/extensionManagement/browser/extensionGalleryManifestService.js';
48-
import './services/telemetry/browser/telemetryService.js';
49-
import './services/url/browser/urlService.js';
50-
import './services/update/browser/updateService.js';
51-
import './services/workspaces/browser/workspacesService.js';
52-
import './services/workspaces/browser/workspaceEditingService.js';
53-
import './services/dialogs/browser/fileDialogService.js';
54-
import './services/host/browser/browserHostService.js';
55-
import './services/lifecycle/browser/lifecycleService.js';
56-
import './services/clipboard/browser/clipboardService.js';
57-
import './services/localization/browser/localeService.js';
58-
import './services/path/browser/pathService.js';
59-
import './services/themes/browser/browserHostColorSchemeService.js';
60-
import './services/encryption/browser/encryptionService.js';
61-
import './services/imageResize/browser/imageResizeService.js';
62-
import './services/secrets/browser/secretStorageService.js';
63-
import './services/workingCopy/browser/workingCopyBackupService.js';
64-
import './services/tunnel/browser/tunnelService.js';
65-
import './services/files/browser/elevatedFileService.js';
66-
import './services/workingCopy/browser/workingCopyHistoryService.js';
67-
import './services/userDataSync/browser/webUserDataSyncEnablementService.js';
68-
import './services/userDataProfile/browser/userDataProfileStorageService.js';
69-
import './services/configurationResolver/browser/configurationResolverService.js';
70-
import '../platform/extensionResourceLoader/browser/extensionResourceLoaderService.js';
71-
import './services/auxiliaryWindow/browser/auxiliaryWindowService.js';
72-
import './services/browserElements/browser/webBrowserElementsService.js';
73-
74-
import { InstantiationType, registerSingleton } from '../platform/instantiation/common/extensions.js';
75-
import { IAccessibilityService } from '../platform/accessibility/common/accessibility.js';
76-
import { IContextMenuService } from '../platform/contextview/browser/contextView.js';
77-
import { ContextMenuService } from '../platform/contextview/browser/contextMenuService.js';
78-
import { IExtensionTipsService } from '../platform/extensionManagement/common/extensionManagement.js';
79-
import { ExtensionTipsService } from '../platform/extensionManagement/common/extensionTipsService.js';
80-
import { IWorkbenchExtensionManagementService } from './services/extensionManagement/common/extensionManagement.js';
81-
import { ExtensionManagementService } from './services/extensionManagement/common/extensionManagementService.js';
82-
import { LogLevel } from '../platform/log/common/log.js';
83-
import { UserDataSyncMachinesService, IUserDataSyncMachinesService } from '../platform/userDataSync/common/userDataSyncMachines.js';
84-
import { IUserDataSyncStoreService, IUserDataSyncService, IUserDataAutoSyncService, IUserDataSyncLocalStoreService, IUserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSync.js';
85-
import { UserDataSyncStoreService } from '../platform/userDataSync/common/userDataSyncStoreService.js';
86-
import { UserDataSyncLocalStoreService } from '../platform/userDataSync/common/userDataSyncLocalStoreService.js';
87-
import { UserDataSyncService } from '../platform/userDataSync/common/userDataSyncService.js';
88-
import { IUserDataSyncAccountService, UserDataSyncAccountService } from '../platform/userDataSync/common/userDataSyncAccount.js';
89-
import { UserDataAutoSyncService } from '../platform/userDataSync/common/userDataAutoSyncService.js';
90-
import { AccessibilityService } from '../platform/accessibility/browser/accessibilityService.js';
91-
import { ICustomEndpointTelemetryService } from '../platform/telemetry/common/telemetry.js';
92-
import { NullEndpointTelemetryService } from '../platform/telemetry/common/telemetryUtils.js';
93-
import { ITitleService } from './services/title/browser/titleService.js';
94-
import { BrowserTitleService } from './browser/parts/titlebar/titlebarPart.js';
95-
import { ITimerService, TimerService } from './services/timer/browser/timerService.js';
96-
import { IDiagnosticsService, NullDiagnosticsService } from '../platform/diagnostics/common/diagnostics.js';
97-
import { ILanguagePackService } from '../platform/languagePacks/common/languagePacks.js';
98-
import { WebLanguagePacksService } from '../platform/languagePacks/browser/languagePacks.js';
99-
import { IWebContentExtractorService, NullWebContentExtractorService, ISharedWebContentExtractorService, NullSharedWebContentExtractorService } from '../platform/webContentExtractor/common/webContentExtractor.js';
100-
import { IMcpGalleryManifestService } from '../platform/mcp/common/mcpGalleryManifest.js';
101-
import { WorkbenchMcpGalleryManifestService } from './services/mcp/browser/mcpGalleryManifestService.js';
102-
103-
registerSingleton(IWorkbenchExtensionManagementService, ExtensionManagementService, InstantiationType.Delayed);
104-
registerSingleton(IAccessibilityService, AccessibilityService, InstantiationType.Delayed);
105-
registerSingleton(IContextMenuService, ContextMenuService, InstantiationType.Delayed);
106-
registerSingleton(IUserDataSyncStoreService, UserDataSyncStoreService, InstantiationType.Delayed);
107-
registerSingleton(IUserDataSyncMachinesService, UserDataSyncMachinesService, InstantiationType.Delayed);
108-
registerSingleton(IUserDataSyncLocalStoreService, UserDataSyncLocalStoreService, InstantiationType.Delayed);
109-
registerSingleton(IUserDataSyncAccountService, UserDataSyncAccountService, InstantiationType.Delayed);
110-
registerSingleton(IUserDataSyncService, UserDataSyncService, InstantiationType.Delayed);
111-
registerSingleton(IUserDataSyncResourceProviderService, UserDataSyncResourceProviderService, InstantiationType.Delayed);
112-
registerSingleton(IUserDataAutoSyncService, UserDataAutoSyncService, InstantiationType.Eager /* Eager to start auto sync */);
113-
registerSingleton(ITitleService, BrowserTitleService, InstantiationType.Eager);
114-
registerSingleton(IExtensionTipsService, ExtensionTipsService, InstantiationType.Delayed);
115-
registerSingleton(ITimerService, TimerService, InstantiationType.Delayed);
116-
registerSingleton(ICustomEndpointTelemetryService, NullEndpointTelemetryService, InstantiationType.Delayed);
117-
registerSingleton(IDiagnosticsService, NullDiagnosticsService, InstantiationType.Delayed);
118-
registerSingleton(ILanguagePackService, WebLanguagePacksService, InstantiationType.Delayed);
119-
registerSingleton(IWebContentExtractorService, NullWebContentExtractorService, InstantiationType.Delayed);
120-
registerSingleton(ISharedWebContentExtractorService, NullSharedWebContentExtractorService, InstantiationType.Delayed);
121-
registerSingleton(IMcpGalleryManifestService, WorkbenchMcpGalleryManifestService, InstantiationType.Delayed);
122-
123-
//#endregion
124-
125-
126-
//#region --- workbench contributions
127-
128-
// Logs
129-
import './contrib/logs/browser/logs.contribution.js';
130-
131-
// Localization
132-
import './contrib/localization/browser/localization.contribution.js';
133-
134-
// Performance
135-
import './contrib/performance/browser/performance.web.contribution.js';
136-
137-
// Preferences
138-
import './contrib/preferences/browser/keyboardLayoutPicker.js';
139-
140-
// Debug
141-
import './contrib/debug/browser/extensionHostDebugService.js';
142-
143-
// Welcome Banner
144-
import './contrib/welcomeBanner/browser/welcomeBanner.contribution.js';
145-
146-
// Webview
147-
import './contrib/webview/browser/webview.web.contribution.js';
148-
149-
// Extensions Management
150-
import './contrib/extensions/browser/extensions.web.contribution.js';
151-
152-
// Terminal
153-
import './contrib/terminal/browser/terminal.web.contribution.js';
154-
import './contrib/externalTerminal/browser/externalTerminal.contribution.js';
155-
import './contrib/terminal/browser/terminalInstanceService.js';
156-
157-
// Tasks
158-
import './contrib/tasks/browser/taskService.js';
159-
160-
// Tags
161-
import './contrib/tags/browser/workspaceTagsService.js';
162-
163-
// Issues
164-
import './contrib/issue/browser/issue.contribution.js';
165-
166-
// Splash
167-
import './contrib/splash/browser/splash.contribution.js';
168-
169-
// Remote Start Entry for the Web
170-
import './contrib/remote/browser/remoteStartEntry.contribution.js';
171-
172-
// Process Explorer
173-
import './contrib/processExplorer/browser/processExplorer.web.contribution.js';
174-
175-
//#endregion
176-
177-
178-
//#region --- export workbench factory
179-
1806
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1817
//
1828
// Do NOT change these exports in a way that something is removed unless
@@ -185,46 +11,15 @@ import './contrib/processExplorer/browser/processExplorer.web.contribution.js';
18511
//
18612
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18713

14+
import './workbench.web.main.js';
18815
import { create, commands, env, window, workspace, logger } from './browser/web.factory.js';
18916
import { Menu } from './browser/web.api.js';
19017
import { URI } from '../base/common/uri.js';
19118
import { Event, Emitter } from '../base/common/event.js';
19219
import { Disposable } from '../base/common/lifecycle.js';
19320
import { GroupOrientation } from './services/editor/common/editorGroupsService.js';
194-
import { UserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSyncResourceProvider.js';
19521
import { RemoteAuthorityResolverError, RemoteAuthorityResolverErrorCode } from '../platform/remote/common/remoteAuthorityResolver.js';
196-
197-
// TODO@esm remove me once we stop supporting our web-esm-bridge
198-
// eslint-disable-next-line local/code-no-any-casts
199-
if ((globalThis as any).__VSCODE_WEB_ESM_PROMISE) {
200-
const exports = {
201-
202-
// Factory
203-
create: create,
204-
205-
// Basic Types
206-
URI: URI,
207-
Event: Event,
208-
Emitter: Emitter,
209-
Disposable: Disposable,
210-
// GroupOrientation,
211-
LogLevel: LogLevel,
212-
RemoteAuthorityResolverError: RemoteAuthorityResolverError,
213-
RemoteAuthorityResolverErrorCode: RemoteAuthorityResolverErrorCode,
214-
215-
// Facade API
216-
env: env,
217-
window: window,
218-
workspace: workspace,
219-
commands: commands,
220-
logger: logger,
221-
Menu: Menu
222-
};
223-
// eslint-disable-next-line local/code-no-any-casts
224-
(globalThis as any).__VSCODE_WEB_ESM_PROMISE(exports);
225-
// eslint-disable-next-line local/code-no-any-casts
226-
delete (globalThis as any).__VSCODE_WEB_ESM_PROMISE;
227-
}
22+
import { LogLevel } from '../platform/log/common/log.js';
22823

22924
export {
23025

@@ -249,5 +44,3 @@ export {
24944
logger,
25045
Menu
25146
};
252-
253-
//#endregion

0 commit comments

Comments
 (0)