@codingame/monaco-vscode-extensions-service-override 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/extensions.js +6 -6
  2. package/package.json +9 -9
  3. package/_virtual/semver.js +0 -3
  4. package/external/vscode-semver/semver.js +0 -985
  5. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +0 -8
  6. package/vscode/src/vs/base/common/console.js +0 -62
  7. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +0 -497
  8. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +0 -44
  9. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +0 -27
  10. package/vscode/src/vs/platform/remote/common/managedSocket.js +0 -98
  11. package/vscode/src/vs/workbench/api/browser/extensionHost.contribution.js +0 -104
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +0 -31
  13. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +0 -35
  14. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +0 -254
  15. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +0 -68
  16. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +0 -103
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +0 -70
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +0 -207
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +0 -41
  20. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +0 -24
  21. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +0 -108
  22. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +0 -98
  23. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +0 -560
  24. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +0 -80
  25. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +0 -35
  26. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +0 -579
  27. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +0 -435
  28. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +0 -102
  29. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +0 -69
  30. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +0 -68
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +0 -79
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +0 -253
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +0 -370
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +0 -22
  35. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +0 -41
  36. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +0 -414
  37. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +0 -501
  38. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +0 -227
  39. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +0 -24
  40. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +0 -317
  41. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +0 -208
  42. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +0 -369
  43. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -72
  44. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +0 -28
  45. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +0 -50
  46. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +0 -27
  47. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +0 -1016
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +0 -185
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +0 -78
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +0 -35
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +0 -78
  52. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +0 -93
  53. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +0 -137
  54. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +0 -194
  55. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +0 -123
  56. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +0 -188
  57. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +0 -129
  58. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +0 -131
  59. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +0 -374
  60. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +0 -25
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +0 -48
  62. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +0 -76
  63. package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +0 -38
  64. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +0 -68
  65. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +0 -42
  66. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +0 -185
  67. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +0 -30
  68. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +0 -493
  69. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +0 -49
  70. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +0 -168
  71. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +0 -70
  72. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +0 -50
  73. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +0 -99
  74. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +0 -53
  75. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +0 -72
  76. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +0 -731
  77. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +0 -53
  78. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +0 -409
  79. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +0 -51
  80. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +0 -219
  81. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +0 -24
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +0 -55
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +0 -312
  84. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +0 -223
  85. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +0 -110
  86. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +0 -61
  87. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +0 -29
  88. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +0 -283
  89. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +0 -100
  90. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +0 -135
  91. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +0 -57
  92. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +0 -268
  93. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +0 -35
  94. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +0 -76
  95. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +0 -83
  96. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +0 -285
  97. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +0 -276
  98. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +0 -52
  99. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +0 -1149
  100. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +0 -41
  101. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +0 -25
  102. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +0 -512
  103. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +0 -274
  104. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +0 -58
  105. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +0 -80
  106. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +0 -64
  107. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +0 -161
  108. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +0 -49
  109. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +0 -222
@@ -1,285 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
3
- import { Schemas } from 'vscode/vscode/vs/base/common/network';
4
- import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
5
- import '../../../../../../../override/vs/platform/dialogs/common/dialogs.js';
6
- import { IFileService } from 'vscode/vscode/vs/platform/files/common/files';
7
- import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
8
- import { getLogs } from 'vscode/vscode/vs/platform/log/browser/log';
9
- import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
10
- import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
11
- import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService';
12
- import { IRemoteAuthorityResolverService, RemoteAuthorityResolverError } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver';
13
- import { IRemoteExtensionsScannerService } from 'vscode/vscode/vs/platform/remote/common/remoteExtensionsScanner';
14
- import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
15
- import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
16
- import { IWorkspaceTrustManagementService } from 'vscode/vscode/vs/platform/workspace/common/workspaceTrust';
17
- import { IBrowserWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/browser/environmentService';
18
- import { IWorkbenchExtensionEnablementService, IWorkbenchExtensionManagementService, IWebExtensionsScannerService } from 'vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement';
19
- import { WebWorkerExtensionHost } from './webWorkerExtensionHost.js';
20
- import { FetchFileSystemProvider } from './webWorkerFileSystemProvider.js';
21
- import { AbstractExtensionService, ResolvedExtensions, checkEnabledAndProposedAPI } from '../common/abstractExtensionService.js';
22
- import { extensionRunningPreferenceToString, extensionHostKindToString } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
23
- import { IExtensionManifestPropertiesService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService';
24
- import { filterExtensionDescriptions } from '../common/extensionRunningLocationTracker.js';
25
- import { toExtensionDescription, ExtensionHostExtensions } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
26
- import '../common/extensionsProposedApi.js';
27
- import { dedupExtensions } from '../common/extensionsUtil.js';
28
- import { RemoteExtensionHost } from '../common/remoteExtensionHost.js';
29
- import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
30
- import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService';
31
- import { IRemoteExplorerService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService';
32
- import { IUserDataInitializationService } from 'vscode/vscode/vs/workbench/services/userData/browser/userDataInit';
33
- import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile';
34
- import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
35
-
36
- var BrowserExtensionHostKindPicker_1;
37
- let ExtensionService = class ExtensionService extends AbstractExtensionService {
38
- constructor(extensionsProposedApi, extensionHostFactory, extensionHostKindPicker, instantiationService, notificationService, _browserEnvironmentService, telemetryService, extensionEnablementService, fileService, productService, extensionManagementService, contextService, configurationService, extensionManifestPropertiesService, _webExtensionsScannerService, logService, remoteAgentService, remoteExtensionsScannerService, lifecycleService, remoteAuthorityResolverService, _userDataInitializationService, _userDataProfileService, _workspaceTrustManagementService, _remoteExplorerService, dialogService) {
39
- super(extensionsProposedApi, extensionHostFactory, extensionHostKindPicker, instantiationService, notificationService, _browserEnvironmentService, telemetryService, extensionEnablementService, fileService, productService, extensionManagementService, contextService, configurationService, extensionManifestPropertiesService, logService, remoteAgentService, remoteExtensionsScannerService, lifecycleService, remoteAuthorityResolverService, dialogService);
40
- this._browserEnvironmentService = _browserEnvironmentService;
41
- this._webExtensionsScannerService = _webExtensionsScannerService;
42
- this._userDataInitializationService = _userDataInitializationService;
43
- this._userDataProfileService = _userDataProfileService;
44
- this._workspaceTrustManagementService = _workspaceTrustManagementService;
45
- this._remoteExplorerService = _remoteExplorerService;
46
- lifecycleService.when(2 ).then(async () => {
47
- await this._userDataInitializationService.initializeInstalledExtensions(this._instantiationService);
48
- this._initialize();
49
- });
50
- this._initFetchFileSystem();
51
- }
52
- async _scanSingleExtension(extension) {
53
- if (extension.location.scheme === Schemas.vscodeRemote) {
54
- return this._remoteExtensionsScannerService.scanSingleExtension(extension.location, extension.type === 0 );
55
- }
56
- const scannedExtension = await this._webExtensionsScannerService.scanExistingExtension(extension.location, extension.type, this._userDataProfileService.currentProfile.extensionsResource);
57
- if (scannedExtension) {
58
- return toExtensionDescription(scannedExtension);
59
- }
60
- return null;
61
- }
62
- _initFetchFileSystem() {
63
- const provider = ( new FetchFileSystemProvider());
64
- this._register(this._fileService.registerProvider(Schemas.http, provider));
65
- this._register(this._fileService.registerProvider(Schemas.https, provider));
66
- }
67
- async _scanWebExtensions() {
68
- const system = [], user = [], development = [];
69
- try {
70
- await Promise.all([
71
- this._webExtensionsScannerService.scanSystemExtensions().then(extensions => system.push(...( extensions.map(e => toExtensionDescription(e))))),
72
- this._webExtensionsScannerService.scanUserExtensions(this._userDataProfileService.currentProfile.extensionsResource, { skipInvalidExtensions: true }).then(extensions => user.push(...( extensions.map(e => toExtensionDescription(e))))),
73
- this._webExtensionsScannerService.scanExtensionsUnderDevelopment().then(extensions => development.push(...( extensions.map(e => toExtensionDescription(e, true)))))
74
- ]);
75
- }
76
- catch (error) {
77
- this._logService.error(error);
78
- }
79
- return dedupExtensions(system, user, development, this._logService);
80
- }
81
- async _resolveExtensionsDefault() {
82
- const [localExtensions, remoteExtensions] = await Promise.all([
83
- this._scanWebExtensions(),
84
- this._remoteExtensionsScannerService.scanExtensions()
85
- ]);
86
- return ( new ResolvedExtensions(
87
- localExtensions,
88
- remoteExtensions,
89
- false,
90
- true
91
- ));
92
- }
93
- async _resolveExtensions() {
94
- if (!this._browserEnvironmentService.expectsResolverExtension) {
95
- return this._resolveExtensionsDefault();
96
- }
97
- const remoteAuthority = this._environmentService.remoteAuthority;
98
- await this._workspaceTrustManagementService.workspaceResolved;
99
- let resolverResult;
100
- try {
101
- resolverResult = await this._resolveAuthorityInitial(remoteAuthority);
102
- }
103
- catch (err) {
104
- if (RemoteAuthorityResolverError.isHandled(err)) {
105
- console.log(`Error handled: Not showing a notification for the error`);
106
- }
107
- this._remoteAuthorityResolverService._setResolvedAuthorityError(remoteAuthority, err);
108
- return this._resolveExtensionsDefault();
109
- }
110
- this._remoteAuthorityResolverService._setResolvedAuthority(resolverResult.authority, resolverResult.options);
111
- this._remoteExplorerService.setTunnelInformation(resolverResult.tunnelInformation);
112
- const connection = this._remoteAgentService.getConnection();
113
- if (connection) {
114
- connection.onDidStateChange(async (e) => {
115
- if (e.type === 0 ) {
116
- this._remoteAuthorityResolverService._clearResolvedAuthority(remoteAuthority);
117
- }
118
- });
119
- connection.onReconnecting(() => this._resolveAuthorityAgain());
120
- }
121
- return this._resolveExtensionsDefault();
122
- }
123
- async _onExtensionHostExit(code) {
124
- this._doStopExtensionHosts();
125
- const automatedWindow = mainWindow;
126
- if (typeof automatedWindow.codeAutomationExit === 'function') {
127
- automatedWindow.codeAutomationExit(code, await getLogs(this._fileService, this._environmentService));
128
- }
129
- }
130
- async _resolveAuthority(remoteAuthority) {
131
- return this._resolveAuthorityOnExtensionHosts(2 , remoteAuthority);
132
- }
133
- };
134
- ExtensionService = ( __decorate([
135
- ( __param(3, IInstantiationService)),
136
- ( __param(4, INotificationService)),
137
- ( __param(5, IBrowserWorkbenchEnvironmentService)),
138
- ( __param(6, ITelemetryService)),
139
- ( __param(7, IWorkbenchExtensionEnablementService)),
140
- ( __param(8, IFileService)),
141
- ( __param(9, IProductService)),
142
- ( __param(10, IWorkbenchExtensionManagementService)),
143
- ( __param(11, IWorkspaceContextService)),
144
- ( __param(12, IConfigurationService)),
145
- ( __param(13, IExtensionManifestPropertiesService)),
146
- ( __param(14, IWebExtensionsScannerService)),
147
- ( __param(15, ILogService)),
148
- ( __param(16, IRemoteAgentService)),
149
- ( __param(17, IRemoteExtensionsScannerService)),
150
- ( __param(18, ILifecycleService)),
151
- ( __param(19, IRemoteAuthorityResolverService)),
152
- ( __param(20, IUserDataInitializationService)),
153
- ( __param(21, IUserDataProfileService)),
154
- ( __param(22, IWorkspaceTrustManagementService)),
155
- ( __param(23, IRemoteExplorerService)),
156
- ( __param(24, IDialogService))
157
- ], ExtensionService));
158
- let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
159
- constructor(_extensionsProposedApi, _scanWebExtensions, _getExtensionRegistrySnapshotWhenReady, _instantiationService, _remoteAgentService, _remoteAuthorityResolverService, _extensionEnablementService, _logService) {
160
- this._extensionsProposedApi = _extensionsProposedApi;
161
- this._scanWebExtensions = _scanWebExtensions;
162
- this._getExtensionRegistrySnapshotWhenReady = _getExtensionRegistrySnapshotWhenReady;
163
- this._instantiationService = _instantiationService;
164
- this._remoteAgentService = _remoteAgentService;
165
- this._remoteAuthorityResolverService = _remoteAuthorityResolverService;
166
- this._extensionEnablementService = _extensionEnablementService;
167
- this._logService = _logService;
168
- }
169
- createExtensionHost(runningLocations, runningLocation, isInitialStart) {
170
- switch (runningLocation.kind) {
171
- case 1 : {
172
- return null;
173
- }
174
- case 2 : {
175
- const startup = ((isInitialStart ? 2 : 1) );
176
- return this._instantiationService.createInstance(WebWorkerExtensionHost, runningLocation, startup, this._createLocalExtensionHostDataProvider(runningLocations, runningLocation, isInitialStart));
177
- }
178
- case 3 : {
179
- const remoteAgentConnection = this._remoteAgentService.getConnection();
180
- if (remoteAgentConnection) {
181
- return this._instantiationService.createInstance(RemoteExtensionHost, runningLocation, this._createRemoteExtensionHostDataProvider(runningLocations, remoteAgentConnection.remoteAuthority));
182
- }
183
- return null;
184
- }
185
- }
186
- }
187
- _createLocalExtensionHostDataProvider(runningLocations, desiredRunningLocation, isInitialStart) {
188
- return {
189
- getInitData: async () => {
190
- if (isInitialStart) {
191
- const localExtensions = checkEnabledAndProposedAPI(this._logService, this._extensionEnablementService, this._extensionsProposedApi, await this._scanWebExtensions(), true);
192
- const runningLocation = runningLocations.computeRunningLocation(localExtensions, [], false);
193
- const myExtensions = filterExtensionDescriptions(localExtensions, runningLocation, extRunningLocation => desiredRunningLocation.equals(extRunningLocation));
194
- const extensions = ( new ExtensionHostExtensions(0, localExtensions, ( myExtensions.map(extension => extension.identifier))));
195
- return { extensions };
196
- }
197
- else {
198
- const snapshot = await this._getExtensionRegistrySnapshotWhenReady();
199
- const myExtensions = runningLocations.filterByRunningLocation(snapshot.extensions, desiredRunningLocation);
200
- const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
201
- return { extensions };
202
- }
203
- }
204
- };
205
- }
206
- _createRemoteExtensionHostDataProvider(runningLocations, remoteAuthority) {
207
- return {
208
- remoteAuthority: remoteAuthority,
209
- getInitData: async () => {
210
- const snapshot = await this._getExtensionRegistrySnapshotWhenReady();
211
- const remoteEnv = await this._remoteAgentService.getEnvironment();
212
- if (!remoteEnv) {
213
- throw new Error('Cannot provide init data for remote extension host!');
214
- }
215
- const myExtensions = runningLocations.filterByExtensionHostKind(snapshot.extensions, 3 );
216
- const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
217
- return {
218
- connectionData: this._remoteAuthorityResolverService.getConnectionData(remoteAuthority),
219
- pid: remoteEnv.pid,
220
- appRoot: remoteEnv.appRoot,
221
- extensionHostLogsPath: remoteEnv.extensionHostLogsPath,
222
- globalStorageHome: remoteEnv.globalStorageHome,
223
- workspaceStorageHome: remoteEnv.workspaceStorageHome,
224
- extensions,
225
- };
226
- }
227
- };
228
- }
229
- };
230
- BrowserExtensionHostFactory = ( __decorate([
231
- ( __param(3, IInstantiationService)),
232
- ( __param(4, IRemoteAgentService)),
233
- ( __param(5, IRemoteAuthorityResolverService)),
234
- ( __param(6, IWorkbenchExtensionEnablementService)),
235
- ( __param(7, ILogService))
236
- ], BrowserExtensionHostFactory));
237
- let BrowserExtensionHostKindPicker = BrowserExtensionHostKindPicker_1 = class BrowserExtensionHostKindPicker {
238
- constructor(_logService) {
239
- this._logService = _logService;
240
- }
241
- pickExtensionHostKind(extensionId, extensionKinds, isInstalledLocally, isInstalledRemotely, preference) {
242
- const result = BrowserExtensionHostKindPicker_1.pickRunningLocation(extensionKinds, isInstalledLocally, isInstalledRemotely, preference);
243
- this._logService.trace(`pickRunningLocation for ${extensionId.value}, extension kinds: [${extensionKinds.join(', ')}], isInstalledLocally: ${isInstalledLocally}, isInstalledRemotely: ${isInstalledRemotely}, preference: ${extensionRunningPreferenceToString(preference)} => ${extensionHostKindToString(result)}`);
244
- return result;
245
- }
246
- static pickRunningLocation(extensionKinds, isInstalledLocally, isInstalledRemotely, preference) {
247
- const result = [];
248
- let canRunRemotely = false;
249
- for (const extensionKind of extensionKinds) {
250
- if (extensionKind === 'ui' && isInstalledRemotely) {
251
- if (preference === 2 ) {
252
- return 3 ;
253
- }
254
- else {
255
- canRunRemotely = true;
256
- }
257
- }
258
- if (extensionKind === 'workspace' && isInstalledRemotely) {
259
- if (preference === 0 || preference === 2 ) {
260
- return 3 ;
261
- }
262
- else {
263
- result.push(3 );
264
- }
265
- }
266
- if (extensionKind === 'web' && (isInstalledLocally || isInstalledRemotely)) {
267
- if (preference === 0 || preference === 1 ) {
268
- return 2 ;
269
- }
270
- else {
271
- result.push(2 );
272
- }
273
- }
274
- }
275
- if (canRunRemotely) {
276
- result.push(3 );
277
- }
278
- return (result.length > 0 ? result[0] : null);
279
- }
280
- };
281
- BrowserExtensionHostKindPicker = BrowserExtensionHostKindPicker_1 = ( __decorate([
282
- ( __param(0, ILogService))
283
- ], BrowserExtensionHostKindPicker));
284
-
285
- export { BrowserExtensionHostFactory, BrowserExtensionHostKindPicker, ExtensionService };
@@ -1,276 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { addDisposableListener } from 'vscode/vscode/vs/base/browser/dom';
3
- import { parentOriginHash } from 'vscode/vscode/vs/base/browser/iframe';
4
- import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
5
- import { Barrier } from 'vscode/vscode/vs/base/common/async';
6
- import { VSBuffer } from 'vscode/vscode/vs/base/common/buffer';
7
- import { canceled, onUnexpectedError } from 'vscode/vscode/vs/base/common/errors';
8
- import { Emitter, Event } from 'vscode/vscode/vs/base/common/event';
9
- import { Disposable, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
10
- import { COI, FileAccess } from 'vscode/vscode/vs/base/common/network';
11
- import { isWeb, Language, language } from 'vscode/vscode/vs/base/common/platform';
12
- import { joinPath } from 'vscode/vscode/vs/base/common/resources';
13
- import { URI } from 'vscode/vscode/vs/base/common/uri';
14
- import { generateUuid } from 'vscode/vscode/vs/base/common/uuid';
15
- import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label';
16
- import { ILayoutService } from 'vscode/vscode/vs/platform/layout/browser/layoutService';
17
- import { ILogService, ILoggerService } from 'vscode/vscode/vs/platform/log/common/log';
18
- import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService';
19
- import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
20
- import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
21
- import { isLoggingOnly } from 'vscode/vscode/vs/platform/telemetry/common/telemetryUtils';
22
- import { IUserDataProfilesService } from 'vscode/vscode/vs/platform/userDataProfile/common/userDataProfile';
23
- import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
24
- import { IBrowserWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/browser/environmentService';
25
- import { isMessageOfType, createMessageOfType, UIKind } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostProtocol';
26
-
27
- let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
28
- constructor(runningLocation, startup, _initDataProvider, _telemetryService, _contextService, _labelService, _logService, _loggerService, _environmentService, _userDataProfilesService, _productService, _layoutService, _storageService) {
29
- super();
30
- this.runningLocation = runningLocation;
31
- this.startup = startup;
32
- this._initDataProvider = _initDataProvider;
33
- this._telemetryService = _telemetryService;
34
- this._contextService = _contextService;
35
- this._labelService = _labelService;
36
- this._logService = _logService;
37
- this._loggerService = _loggerService;
38
- this._environmentService = _environmentService;
39
- this._userDataProfilesService = _userDataProfilesService;
40
- this._productService = _productService;
41
- this._layoutService = _layoutService;
42
- this._storageService = _storageService;
43
- this.pid = null;
44
- this.remoteAuthority = null;
45
- this.extensions = null;
46
- this._onDidExit = this._register(( new Emitter()));
47
- this.onExit = this._onDidExit.event;
48
- this._isTerminating = false;
49
- this._protocolPromise = null;
50
- this._protocol = null;
51
- this._extensionHostLogsLocation = joinPath(this._environmentService.extHostLogsPath, 'webWorker');
52
- }
53
- async _getWebWorkerExtensionHostIframeSrc() {
54
- const suffixSearchParams = ( new URLSearchParams());
55
- if (this._environmentService.debugExtensionHost && this._environmentService.debugRenderer) {
56
- suffixSearchParams.set('debugged', '1');
57
- }
58
- COI.addSearchParam(suffixSearchParams, true, true);
59
- const suffix = `?${( suffixSearchParams.toString())}`;
60
- const iframeModulePath = 'vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html';
61
- if (isWeb) {
62
- const webEndpointUrlTemplate = this._productService.webEndpointUrlTemplate;
63
- const commit = this._productService.commit;
64
- const quality = this._productService.quality;
65
- if (webEndpointUrlTemplate && commit && quality) {
66
- const key = 'webWorkerExtensionHostIframeStableOriginUUID';
67
- let stableOriginUUID = this._storageService.get(key, 1 );
68
- if (typeof stableOriginUUID === 'undefined') {
69
- stableOriginUUID = generateUuid();
70
- this._storageService.store(key, stableOriginUUID, 1 , 1 );
71
- }
72
- const hash = await parentOriginHash(mainWindow.origin, stableOriginUUID);
73
- const baseUrl = (webEndpointUrlTemplate
74
- .replace('{{uuid}}', `v--${hash}`)
75
- .replace('{{commit}}', commit)
76
- .replace('{{quality}}', quality));
77
- const res = ( new URL(`${baseUrl}/out/${iframeModulePath}${suffix}`));
78
- res.searchParams.set('parentOrigin', mainWindow.origin);
79
- res.searchParams.set('salt', stableOriginUUID);
80
- return ( res.toString());
81
- }
82
- }
83
- const relativeExtensionHostIframeSrc = ( FileAccess.asBrowserUri(iframeModulePath));
84
- return `${( relativeExtensionHostIframeSrc.toString(true))}${suffix}`;
85
- }
86
- async start() {
87
- if (!this._protocolPromise) {
88
- this._protocolPromise = this._startInsideIframe();
89
- this._protocolPromise.then(protocol => this._protocol = protocol);
90
- }
91
- return this._protocolPromise;
92
- }
93
- async _startInsideIframe() {
94
- const webWorkerExtensionHostIframeSrc = await this._getWebWorkerExtensionHostIframeSrc();
95
- const emitter = this._register(( new Emitter()));
96
- const iframe = document.createElement('iframe');
97
- iframe.setAttribute('class', 'web-worker-ext-host-iframe');
98
- iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin');
99
- iframe.setAttribute('allow', 'usb; serial; hid; cross-origin-isolated;');
100
- iframe.setAttribute('aria-hidden', 'true');
101
- iframe.style.display = 'none';
102
- const vscodeWebWorkerExtHostId = generateUuid();
103
- iframe.setAttribute('src', `${webWorkerExtensionHostIframeSrc}&vscodeWebWorkerExtHostId=${vscodeWebWorkerExtHostId}`);
104
- const barrier = ( new Barrier());
105
- let port;
106
- let barrierError = null;
107
- let barrierHasError = false;
108
- let startTimeout = null;
109
- const rejectBarrier = (exitCode, error) => {
110
- barrierError = error;
111
- barrierHasError = true;
112
- onUnexpectedError(barrierError);
113
- clearTimeout(startTimeout);
114
- this._onDidExit.fire([81 , barrierError.message]);
115
- barrier.open();
116
- };
117
- const resolveBarrier = (messagePort) => {
118
- port = messagePort;
119
- clearTimeout(startTimeout);
120
- barrier.open();
121
- };
122
- startTimeout = setTimeout(() => {
123
- console.warn(`The Web Worker Extension Host did not start in 60s, that might be a problem.`);
124
- }, 60000);
125
- this._register(addDisposableListener(mainWindow, 'message', (event) => {
126
- if (event.source !== iframe.contentWindow) {
127
- return;
128
- }
129
- if (event.data.vscodeWebWorkerExtHostId !== vscodeWebWorkerExtHostId) {
130
- return;
131
- }
132
- if (event.data.error) {
133
- const { name, message, stack } = event.data.error;
134
- const err = ( new Error());
135
- err.message = message;
136
- err.name = name;
137
- err.stack = stack;
138
- return rejectBarrier(81 , err);
139
- }
140
- const { data } = event.data;
141
- if (barrier.isOpen() || !(data instanceof MessagePort)) {
142
- console.warn('UNEXPECTED message', event);
143
- const err = ( new Error('UNEXPECTED message'));
144
- return rejectBarrier(81 , err);
145
- }
146
- resolveBarrier(data);
147
- }));
148
- this._layoutService.mainContainer.appendChild(iframe);
149
- this._register(toDisposable(() => iframe.remove()));
150
- await barrier.wait();
151
- if (barrierHasError) {
152
- throw barrierError;
153
- }
154
- const messagePorts = this._environmentService.options?.messagePorts ?? ( new Map());
155
- iframe.contentWindow.postMessage({ type: 'vscode.init', data: messagePorts }, '*', [...( messagePorts.values())]);
156
- port.onmessage = (event) => {
157
- const { data } = event;
158
- if (!(data instanceof ArrayBuffer)) {
159
- console.warn('UNKNOWN data received', data);
160
- this._onDidExit.fire([77, 'UNKNOWN data received']);
161
- return;
162
- }
163
- emitter.fire(VSBuffer.wrap(( new Uint8Array(data, 0, data.byteLength))));
164
- };
165
- const protocol = {
166
- onMessage: emitter.event,
167
- send: vsbuf => {
168
- const data = vsbuf.buffer.buffer.slice(vsbuf.buffer.byteOffset, vsbuf.buffer.byteOffset + vsbuf.buffer.byteLength);
169
- port.postMessage(data, [data]);
170
- }
171
- };
172
- return this._performHandshake(protocol);
173
- }
174
- async _performHandshake(protocol) {
175
- await Event.toPromise(Event.filter(protocol.onMessage, msg => isMessageOfType(msg, 1 )));
176
- if (this._isTerminating) {
177
- throw canceled();
178
- }
179
- protocol.send(VSBuffer.fromString(JSON.stringify(await this._createExtHostInitData())));
180
- if (this._isTerminating) {
181
- throw canceled();
182
- }
183
- await Event.toPromise(Event.filter(protocol.onMessage, msg => isMessageOfType(msg, 0 )));
184
- if (this._isTerminating) {
185
- throw canceled();
186
- }
187
- return protocol;
188
- }
189
- dispose() {
190
- if (this._isTerminating) {
191
- return;
192
- }
193
- this._isTerminating = true;
194
- this._protocol?.send(createMessageOfType(2 ));
195
- super.dispose();
196
- }
197
- getInspectPort() {
198
- return undefined;
199
- }
200
- enableInspectPort() {
201
- return Promise.resolve(false);
202
- }
203
- async _createExtHostInitData() {
204
- const initData = await this._initDataProvider.getInitData();
205
- this.extensions = initData.extensions;
206
- const workspace = this._contextService.getWorkspace();
207
- const nlsBaseUrl = this._productService.extensionsGallery?.nlsBaseUrl;
208
- let nlsUrlWithDetails = undefined;
209
- if (nlsBaseUrl && this._productService.commit && !Language.isDefaultVariant()) {
210
- nlsUrlWithDetails = URI.joinPath(( URI.parse(nlsBaseUrl)), this._productService.commit, this._productService.version, Language.value());
211
- }
212
- return {
213
- commit: this._productService.commit,
214
- version: this._productService.version,
215
- quality: this._productService.quality,
216
- parentPid: 0,
217
- environment: {
218
- isExtensionDevelopmentDebug: this._environmentService.debugRenderer,
219
- appName: this._productService.nameLong,
220
- appHost: this._productService.embedderIdentifier ?? (isWeb ? 'web' : 'desktop'),
221
- appUriScheme: this._productService.urlProtocol,
222
- appLanguage: language,
223
- extensionTelemetryLogResource: this._environmentService.extHostTelemetryLogFile,
224
- isExtensionTelemetryLoggingOnly: isLoggingOnly(this._productService, this._environmentService),
225
- extensionDevelopmentLocationURI: this._environmentService.extensionDevelopmentLocationURI,
226
- extensionTestsLocationURI: this._environmentService.extensionTestsLocationURI,
227
- globalStorageHome: this._userDataProfilesService.defaultProfile.globalStorageHome,
228
- workspaceStorageHome: this._environmentService.workspaceStorageHome,
229
- extensionLogLevel: this._environmentService.extensionLogLevel
230
- },
231
- workspace: this._contextService.getWorkbenchState() === 1 ? undefined : {
232
- configuration: workspace.configuration || undefined,
233
- id: workspace.id,
234
- name: this._labelService.getWorkspaceLabel(workspace),
235
- transient: workspace.transient
236
- },
237
- consoleForward: {
238
- includeStack: false,
239
- logNative: this._environmentService.debugRenderer
240
- },
241
- extensions: this.extensions.toSnapshot(),
242
- nlsBaseUrl: nlsUrlWithDetails,
243
- telemetryInfo: {
244
- sessionId: this._telemetryService.sessionId,
245
- machineId: this._telemetryService.machineId,
246
- sqmId: this._telemetryService.sqmId,
247
- firstSessionDate: this._telemetryService.firstSessionDate,
248
- msftInternal: this._telemetryService.msftInternal
249
- },
250
- logLevel: this._logService.getLevel(),
251
- loggers: [...this._loggerService.getRegisteredLoggers()],
252
- logsLocation: this._extensionHostLogsLocation,
253
- autoStart: ((this.startup === 1) ),
254
- remote: {
255
- authority: this._environmentService.remoteAuthority,
256
- connectionData: null,
257
- isRemote: false
258
- },
259
- uiKind: isWeb ? UIKind.Web : UIKind.Desktop
260
- };
261
- }
262
- };
263
- WebWorkerExtensionHost = ( __decorate([
264
- ( __param(3, ITelemetryService)),
265
- ( __param(4, IWorkspaceContextService)),
266
- ( __param(5, ILabelService)),
267
- ( __param(6, ILogService)),
268
- ( __param(7, ILoggerService)),
269
- ( __param(8, IBrowserWorkbenchEnvironmentService)),
270
- ( __param(9, IUserDataProfilesService)),
271
- ( __param(10, IProductService)),
272
- ( __param(11, ILayoutService)),
273
- ( __param(12, IStorageService))
274
- ], WebWorkerExtensionHost));
275
-
276
- export { WebWorkerExtensionHost };
@@ -1,52 +0,0 @@
1
- import { createFileSystemProviderError, FileSystemProviderErrorCode, FileType } from 'vscode/vscode/vs/platform/files/common/files';
2
- import { Event } from 'vscode/vscode/vs/base/common/event';
3
- import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
4
- import { NotSupportedError } from 'vscode/vscode/vs/base/common/errors';
5
-
6
- class FetchFileSystemProvider {
7
- constructor() {
8
- this.capabilities = 2048 + 2 + 1024 ;
9
- this.onDidChangeCapabilities = Event.None;
10
- this.onDidChangeFile = Event.None;
11
- }
12
- async readFile(resource) {
13
- try {
14
- const res = await fetch(( resource.toString(true)));
15
- if (res.status === 200) {
16
- return ( new Uint8Array(await res.arrayBuffer()));
17
- }
18
- throw createFileSystemProviderError(res.statusText, FileSystemProviderErrorCode.Unknown);
19
- }
20
- catch (err) {
21
- throw createFileSystemProviderError(err, FileSystemProviderErrorCode.Unknown);
22
- }
23
- }
24
- async stat(_resource) {
25
- return {
26
- type: FileType.File,
27
- size: 0,
28
- mtime: 0,
29
- ctime: 0
30
- };
31
- }
32
- watch() {
33
- return Disposable.None;
34
- }
35
- writeFile(_resource, _content, _opts) {
36
- throw new NotSupportedError();
37
- }
38
- readdir(_resource) {
39
- throw new NotSupportedError();
40
- }
41
- mkdir(_resource) {
42
- throw new NotSupportedError();
43
- }
44
- delete(_resource, _opts) {
45
- throw new NotSupportedError();
46
- }
47
- rename(_from, _to, _opts) {
48
- throw new NotSupportedError();
49
- }
50
- }
51
-
52
- export { FetchFileSystemProvider };