@codingame/monaco-vscode-extensions-service-override 3.2.3 → 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 (108) hide show
  1. package/extensions.js +6 -87
  2. package/override/vs/platform/dialogs/common/dialogs.js +2 -0
  3. package/package.json +9 -9
  4. package/_virtual/semver.js +0 -3
  5. package/external/vscode-semver/semver.js +0 -985
  6. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +0 -8
  7. package/vscode/src/vs/base/common/console.js +0 -59
  8. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +0 -497
  9. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +0 -44
  10. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +0 -27
  11. package/vscode/src/vs/platform/remote/common/managedSocket.js +0 -98
  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 -227
  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 -83
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +0 -203
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatProvider.js +0 -201
  20. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +0 -41
  21. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +0 -24
  22. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +0 -107
  23. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +0 -98
  24. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +0 -545
  25. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +0 -80
  26. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +0 -35
  27. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +0 -578
  28. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +0 -424
  29. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +0 -102
  30. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +0 -69
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +0 -68
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +0 -79
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +0 -253
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +0 -370
  35. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +0 -22
  36. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +0 -41
  37. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +0 -414
  38. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +0 -482
  39. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +0 -227
  40. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +0 -24
  41. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +0 -317
  42. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +0 -208
  43. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +0 -374
  44. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -72
  45. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +0 -28
  46. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +0 -50
  47. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +0 -27
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +0 -991
  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/mainThreadProfilContentHandlers.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 -146
  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 -408
  79. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +0 -195
  80. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +0 -24
  81. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +0 -55
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +0 -312
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +0 -223
  84. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +0 -110
  85. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +0 -61
  86. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +0 -29
  87. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +0 -283
  88. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +0 -100
  89. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +0 -135
  90. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +0 -57
  91. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +0 -268
  92. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +0 -35
  93. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +0 -73
  94. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +0 -83
  95. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +0 -284
  96. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +0 -276
  97. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +0 -52
  98. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +0 -1138
  99. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +0 -41
  100. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +0 -25
  101. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +0 -512
  102. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +0 -274
  103. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +0 -58
  104. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +0 -80
  105. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +0 -64
  106. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +0 -161
  107. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +0 -49
  108. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +0 -222
@@ -1,284 +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 { dedupExtensions } from '../common/extensionsUtil.js';
27
- import { RemoteExtensionHost } from '../common/remoteExtensionHost.js';
28
- import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
29
- import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService';
30
- import { IRemoteExplorerService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService';
31
- import { IUserDataInitializationService } from 'vscode/vscode/vs/workbench/services/userData/browser/userDataInit';
32
- import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile';
33
- import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
34
-
35
- var BrowserExtensionHostKindPicker_1;
36
- let ExtensionService = class ExtensionService extends AbstractExtensionService {
37
- 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) {
38
- super(extensionsProposedApi, extensionHostFactory, extensionHostKindPicker, instantiationService, notificationService, _browserEnvironmentService, telemetryService, extensionEnablementService, fileService, productService, extensionManagementService, contextService, configurationService, extensionManifestPropertiesService, logService, remoteAgentService, remoteExtensionsScannerService, lifecycleService, remoteAuthorityResolverService, dialogService);
39
- this._browserEnvironmentService = _browserEnvironmentService;
40
- this._webExtensionsScannerService = _webExtensionsScannerService;
41
- this._userDataInitializationService = _userDataInitializationService;
42
- this._userDataProfileService = _userDataProfileService;
43
- this._workspaceTrustManagementService = _workspaceTrustManagementService;
44
- this._remoteExplorerService = _remoteExplorerService;
45
- lifecycleService.when(2 ).then(async () => {
46
- await this._userDataInitializationService.initializeInstalledExtensions(this._instantiationService);
47
- this._initialize();
48
- });
49
- this._initFetchFileSystem();
50
- }
51
- async _scanSingleExtension(extension) {
52
- if (extension.location.scheme === Schemas.vscodeRemote) {
53
- return this._remoteExtensionsScannerService.scanSingleExtension(extension.location, extension.type === 0 );
54
- }
55
- const scannedExtension = await this._webExtensionsScannerService.scanExistingExtension(extension.location, extension.type, this._userDataProfileService.currentProfile.extensionsResource);
56
- if (scannedExtension) {
57
- return toExtensionDescription(scannedExtension);
58
- }
59
- return null;
60
- }
61
- _initFetchFileSystem() {
62
- const provider = ( new FetchFileSystemProvider());
63
- this._register(this._fileService.registerProvider(Schemas.http, provider));
64
- this._register(this._fileService.registerProvider(Schemas.https, provider));
65
- }
66
- async _scanWebExtensions() {
67
- const system = [], user = [], development = [];
68
- try {
69
- await Promise.all([
70
- this._webExtensionsScannerService.scanSystemExtensions().then(extensions => system.push(...( extensions.map(e => toExtensionDescription(e))))),
71
- this._webExtensionsScannerService.scanUserExtensions(this._userDataProfileService.currentProfile.extensionsResource, { skipInvalidExtensions: true }).then(extensions => user.push(...( extensions.map(e => toExtensionDescription(e))))),
72
- this._webExtensionsScannerService.scanExtensionsUnderDevelopment().then(extensions => development.push(...( extensions.map(e => toExtensionDescription(e, true)))))
73
- ]);
74
- }
75
- catch (error) {
76
- this._logService.error(error);
77
- }
78
- return dedupExtensions(system, user, development, this._logService);
79
- }
80
- async _resolveExtensionsDefault() {
81
- const [localExtensions, remoteExtensions] = await Promise.all([
82
- this._scanWebExtensions(),
83
- this._remoteExtensionsScannerService.scanExtensions()
84
- ]);
85
- return ( new ResolvedExtensions(
86
- localExtensions,
87
- remoteExtensions,
88
- false,
89
- true
90
- ));
91
- }
92
- async _resolveExtensions() {
93
- if (!this._browserEnvironmentService.expectsResolverExtension) {
94
- return this._resolveExtensionsDefault();
95
- }
96
- const remoteAuthority = this._environmentService.remoteAuthority;
97
- await this._workspaceTrustManagementService.workspaceResolved;
98
- let resolverResult;
99
- try {
100
- resolverResult = await this._resolveAuthorityInitial(remoteAuthority);
101
- }
102
- catch (err) {
103
- if (RemoteAuthorityResolverError.isHandled(err)) {
104
- console.log(`Error handled: Not showing a notification for the error`);
105
- }
106
- this._remoteAuthorityResolverService._setResolvedAuthorityError(remoteAuthority, err);
107
- return this._resolveExtensionsDefault();
108
- }
109
- this._remoteAuthorityResolverService._setResolvedAuthority(resolverResult.authority, resolverResult.options);
110
- this._remoteExplorerService.setTunnelInformation(resolverResult.tunnelInformation);
111
- const connection = this._remoteAgentService.getConnection();
112
- if (connection) {
113
- connection.onDidStateChange(async (e) => {
114
- if (e.type === 0 ) {
115
- this._remoteAuthorityResolverService._clearResolvedAuthority(remoteAuthority);
116
- }
117
- });
118
- connection.onReconnecting(() => this._resolveAuthorityAgain());
119
- }
120
- return this._resolveExtensionsDefault();
121
- }
122
- async _onExtensionHostExit(code) {
123
- this._doStopExtensionHosts();
124
- const automatedWindow = mainWindow;
125
- if (typeof automatedWindow.codeAutomationExit === 'function') {
126
- automatedWindow.codeAutomationExit(code, await getLogs(this._fileService, this._environmentService));
127
- }
128
- }
129
- async _resolveAuthority(remoteAuthority) {
130
- return this._resolveAuthorityOnExtensionHosts(2 , remoteAuthority);
131
- }
132
- };
133
- ExtensionService = ( __decorate([
134
- ( __param(3, IInstantiationService)),
135
- ( __param(4, INotificationService)),
136
- ( __param(5, IBrowserWorkbenchEnvironmentService)),
137
- ( __param(6, ITelemetryService)),
138
- ( __param(7, IWorkbenchExtensionEnablementService)),
139
- ( __param(8, IFileService)),
140
- ( __param(9, IProductService)),
141
- ( __param(10, IWorkbenchExtensionManagementService)),
142
- ( __param(11, IWorkspaceContextService)),
143
- ( __param(12, IConfigurationService)),
144
- ( __param(13, IExtensionManifestPropertiesService)),
145
- ( __param(14, IWebExtensionsScannerService)),
146
- ( __param(15, ILogService)),
147
- ( __param(16, IRemoteAgentService)),
148
- ( __param(17, IRemoteExtensionsScannerService)),
149
- ( __param(18, ILifecycleService)),
150
- ( __param(19, IRemoteAuthorityResolverService)),
151
- ( __param(20, IUserDataInitializationService)),
152
- ( __param(21, IUserDataProfileService)),
153
- ( __param(22, IWorkspaceTrustManagementService)),
154
- ( __param(23, IRemoteExplorerService)),
155
- ( __param(24, IDialogService))
156
- ], ExtensionService));
157
- let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
158
- constructor(_extensionsProposedApi, _scanWebExtensions, _getExtensionRegistrySnapshotWhenReady, _instantiationService, _remoteAgentService, _remoteAuthorityResolverService, _extensionEnablementService, _logService) {
159
- this._extensionsProposedApi = _extensionsProposedApi;
160
- this._scanWebExtensions = _scanWebExtensions;
161
- this._getExtensionRegistrySnapshotWhenReady = _getExtensionRegistrySnapshotWhenReady;
162
- this._instantiationService = _instantiationService;
163
- this._remoteAgentService = _remoteAgentService;
164
- this._remoteAuthorityResolverService = _remoteAuthorityResolverService;
165
- this._extensionEnablementService = _extensionEnablementService;
166
- this._logService = _logService;
167
- }
168
- createExtensionHost(runningLocations, runningLocation, isInitialStart) {
169
- switch (runningLocation.kind) {
170
- case 1 : {
171
- return null;
172
- }
173
- case 2 : {
174
- const startup = ((isInitialStart ? 2 : 1) );
175
- return this._instantiationService.createInstance(WebWorkerExtensionHost, runningLocation, startup, this._createLocalExtensionHostDataProvider(runningLocations, runningLocation, isInitialStart));
176
- }
177
- case 3 : {
178
- const remoteAgentConnection = this._remoteAgentService.getConnection();
179
- if (remoteAgentConnection) {
180
- return this._instantiationService.createInstance(RemoteExtensionHost, runningLocation, this._createRemoteExtensionHostDataProvider(runningLocations, remoteAgentConnection.remoteAuthority));
181
- }
182
- return null;
183
- }
184
- }
185
- }
186
- _createLocalExtensionHostDataProvider(runningLocations, desiredRunningLocation, isInitialStart) {
187
- return {
188
- getInitData: async () => {
189
- if (isInitialStart) {
190
- const localExtensions = checkEnabledAndProposedAPI(this._logService, this._extensionEnablementService, this._extensionsProposedApi, await this._scanWebExtensions(), true);
191
- const runningLocation = runningLocations.computeRunningLocation(localExtensions, [], false);
192
- const myExtensions = filterExtensionDescriptions(localExtensions, runningLocation, extRunningLocation => desiredRunningLocation.equals(extRunningLocation));
193
- const extensions = ( new ExtensionHostExtensions(0, localExtensions, ( myExtensions.map(extension => extension.identifier))));
194
- return { extensions };
195
- }
196
- else {
197
- const snapshot = await this._getExtensionRegistrySnapshotWhenReady();
198
- const myExtensions = runningLocations.filterByRunningLocation(snapshot.extensions, desiredRunningLocation);
199
- const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
200
- return { extensions };
201
- }
202
- }
203
- };
204
- }
205
- _createRemoteExtensionHostDataProvider(runningLocations, remoteAuthority) {
206
- return {
207
- remoteAuthority: remoteAuthority,
208
- getInitData: async () => {
209
- const snapshot = await this._getExtensionRegistrySnapshotWhenReady();
210
- const remoteEnv = await this._remoteAgentService.getEnvironment();
211
- if (!remoteEnv) {
212
- throw new Error('Cannot provide init data for remote extension host!');
213
- }
214
- const myExtensions = runningLocations.filterByExtensionHostKind(snapshot.extensions, 3 );
215
- const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
216
- return {
217
- connectionData: this._remoteAuthorityResolverService.getConnectionData(remoteAuthority),
218
- pid: remoteEnv.pid,
219
- appRoot: remoteEnv.appRoot,
220
- extensionHostLogsPath: remoteEnv.extensionHostLogsPath,
221
- globalStorageHome: remoteEnv.globalStorageHome,
222
- workspaceStorageHome: remoteEnv.workspaceStorageHome,
223
- extensions,
224
- };
225
- }
226
- };
227
- }
228
- };
229
- BrowserExtensionHostFactory = ( __decorate([
230
- ( __param(3, IInstantiationService)),
231
- ( __param(4, IRemoteAgentService)),
232
- ( __param(5, IRemoteAuthorityResolverService)),
233
- ( __param(6, IWorkbenchExtensionEnablementService)),
234
- ( __param(7, ILogService))
235
- ], BrowserExtensionHostFactory));
236
- let BrowserExtensionHostKindPicker = BrowserExtensionHostKindPicker_1 = class BrowserExtensionHostKindPicker {
237
- constructor(_logService) {
238
- this._logService = _logService;
239
- }
240
- pickExtensionHostKind(extensionId, extensionKinds, isInstalledLocally, isInstalledRemotely, preference) {
241
- const result = BrowserExtensionHostKindPicker_1.pickRunningLocation(extensionKinds, isInstalledLocally, isInstalledRemotely, preference);
242
- this._logService.trace(`pickRunningLocation for ${extensionId.value}, extension kinds: [${extensionKinds.join(', ')}], isInstalledLocally: ${isInstalledLocally}, isInstalledRemotely: ${isInstalledRemotely}, preference: ${extensionRunningPreferenceToString(preference)} => ${extensionHostKindToString(result)}`);
243
- return result;
244
- }
245
- static pickRunningLocation(extensionKinds, isInstalledLocally, isInstalledRemotely, preference) {
246
- const result = [];
247
- let canRunRemotely = false;
248
- for (const extensionKind of extensionKinds) {
249
- if (extensionKind === 'ui' && isInstalledRemotely) {
250
- if (preference === 2 ) {
251
- return 3 ;
252
- }
253
- else {
254
- canRunRemotely = true;
255
- }
256
- }
257
- if (extensionKind === 'workspace' && isInstalledRemotely) {
258
- if (preference === 0 || preference === 2 ) {
259
- return 3 ;
260
- }
261
- else {
262
- result.push(3 );
263
- }
264
- }
265
- if (extensionKind === 'web' && (isInstalledLocally || isInstalledRemotely)) {
266
- if (preference === 0 || preference === 1 ) {
267
- return 2 ;
268
- }
269
- else {
270
- result.push(2 );
271
- }
272
- }
273
- }
274
- if (canRunRemotely) {
275
- result.push(3 );
276
- }
277
- return (result.length > 0 ? result[0] : null);
278
- }
279
- };
280
- BrowserExtensionHostKindPicker = BrowserExtensionHostKindPicker_1 = ( __decorate([
281
- ( __param(0, ILogService))
282
- ], BrowserExtensionHostKindPicker));
283
-
284
- 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 };