@codingame/monaco-vscode-extensions-service-override 5.3.0 → 6.0.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.
- package/extensions.js +4 -4
- package/package.json +3 -3
- package/vscode/src/vs/base/common/console.js +2 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +6 -6
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +1 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +35 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +72 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +3 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +25 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +11 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +22 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +18 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +12 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +14 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +38 -38
- package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +73 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +9 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +18 -15
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +28 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +8 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +4 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +42 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +6 -17
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +34 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +16 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +5 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +8 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +6 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +3 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +4 -4
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +2 -1
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +2 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +12 -10
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +27 -21
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +15 -11
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +2 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +19 -16
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +7 -6
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +12 -12
- package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +3 -2
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +15 -2
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +2 -2
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +10 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -72
|
@@ -11,7 +11,7 @@ import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label.serv
|
|
|
11
11
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification.service';
|
|
12
12
|
import { IRequestService } from 'vscode/vscode/vs/platform/request/common/request.service';
|
|
13
13
|
import { IWorkspaceTrustManagementService, IWorkspaceTrustRequestService } from 'vscode/vscode/vs/platform/workspace/common/workspaceTrust.service';
|
|
14
|
-
import { isUntitledWorkspace } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
14
|
+
import { WorkbenchState, isUntitledWorkspace } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
15
15
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace.service';
|
|
16
16
|
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
|
|
17
17
|
import { checkGlobFileExists } from 'vscode/vscode/vs/workbench/services/extensions/common/workspaceContains';
|
|
@@ -21,7 +21,7 @@ import { ISearchService } from 'vscode/vscode/vs/workbench/services/search/commo
|
|
|
21
21
|
import { IWorkspaceEditingService } from 'vscode/vscode/vs/workbench/services/workspaces/common/workspaceEditing.service';
|
|
22
22
|
import { ExtHostContext, MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
|
|
23
23
|
import { IEditSessionIdentityService } from 'vscode/vscode/vs/platform/workspace/common/editSessions.service';
|
|
24
|
-
import { SideBySideEditor, EditorResourceAccessor } from 'vscode/vscode/vs/workbench/common/editor';
|
|
24
|
+
import { SideBySideEditor, SaveReason, EditorResourceAccessor } from 'vscode/vscode/vs/workbench/common/editor';
|
|
25
25
|
import { firstOrDefault, coalesce } from 'vscode/vscode/vs/base/common/arrays';
|
|
26
26
|
import { ICanonicalUriService } from 'vscode/vscode/vs/platform/workspace/common/canonicalUri.service';
|
|
27
27
|
|
|
@@ -126,7 +126,7 @@ let MainThreadWorkspace = class MainThreadWorkspace {
|
|
|
126
126
|
this._proxy.$acceptWorkspaceData(this.getWorkspaceData(this._contextService.getWorkspace()));
|
|
127
127
|
}
|
|
128
128
|
getWorkspaceData(workspace) {
|
|
129
|
-
if (this._contextService.getWorkbenchState() ===
|
|
129
|
+
if (this._contextService.getWorkbenchState() === WorkbenchState.EMPTY) {
|
|
130
130
|
return null;
|
|
131
131
|
}
|
|
132
132
|
return {
|
|
@@ -181,7 +181,7 @@ let MainThreadWorkspace = class MainThreadWorkspace {
|
|
|
181
181
|
const uri = URI.revive(uriComponents);
|
|
182
182
|
const editors = [...this._editorService.findEditors(uri, { supportSideBySide: SideBySideEditor.PRIMARY })];
|
|
183
183
|
const result = await this._editorService.save(editors, {
|
|
184
|
-
reason:
|
|
184
|
+
reason: SaveReason.EXPLICIT,
|
|
185
185
|
saveAs: options.saveAs,
|
|
186
186
|
force: !options.saveAs
|
|
187
187
|
});
|
|
@@ -3,6 +3,7 @@ import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
|
3
3
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
4
|
import { isEqual } from 'vscode/vscode/vs/base/common/resources';
|
|
5
5
|
import { ITextModelService } from 'vscode/vscode/vs/editor/common/services/resolverService';
|
|
6
|
+
import { TextFileEditorModelState } from 'vscode/vscode/vs/workbench/services/textfile/common/textfiles';
|
|
6
7
|
import { ITextFileService } from 'vscode/vscode/vs/workbench/services/textfile/common/textfiles.service';
|
|
7
8
|
|
|
8
9
|
var CustomTextEditorModel_1;
|
|
@@ -57,7 +58,7 @@ let CustomTextEditorModel = CustomTextEditorModel_1 = class CustomTextEditorMode
|
|
|
57
58
|
return this.textFileService.isDirty(this.resource);
|
|
58
59
|
}
|
|
59
60
|
isOrphaned() {
|
|
60
|
-
return !!this._textFileModel?.hasState(
|
|
61
|
+
return !!this._textFileModel?.hasState(TextFileEditorModelState.ORPHAN);
|
|
61
62
|
}
|
|
62
63
|
async revert(options) {
|
|
63
64
|
return this.textFileService.revert(this.resource, options);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
3
|
+
import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
3
4
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
4
5
|
import { Memento } from 'vscode/vscode/vs/workbench/common/memento';
|
|
5
6
|
import { updateContributedOpeners } from 'vscode/vscode/vs/workbench/contrib/externalUriOpener/common/configuration';
|
|
@@ -14,7 +15,7 @@ let ContributedExternalUriOpenersStore = class ContributedExternalUriOpenersStor
|
|
|
14
15
|
this._extensionService = _extensionService;
|
|
15
16
|
this._openers = ( new Map());
|
|
16
17
|
this._memento = ( new Memento(ContributedExternalUriOpenersStore_1.STORAGE_ID, storageService));
|
|
17
|
-
this._mementoObject = this._memento.getMemento(
|
|
18
|
+
this._mementoObject = this._memento.getMemento(StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
18
19
|
for (const [id, value] of Object.entries(this._mementoObject || {})) {
|
|
19
20
|
this.add(id, value.extensionId, { isCurrentlyRegistered: false });
|
|
20
21
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import { localizeWithPath, localize2WithPath } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { IExtensionManagementService, IGlobalExtensionEnablementService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
|
|
4
|
+
import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
4
5
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
5
|
-
import { isResolverExtension } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
6
|
+
import { isResolverExtension, ExtensionType } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
7
|
+
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
6
8
|
import { NotificationPriority } from 'vscode/vscode/vs/platform/notification/common/notification';
|
|
7
9
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification.service';
|
|
8
10
|
import { IHostService } from 'vscode/vscode/vs/workbench/services/host/browser/host.service';
|
|
@@ -10,12 +12,12 @@ import { registerAction2, Action2, MenuId } from 'vscode/vscode/vs/platform/acti
|
|
|
10
12
|
import { RawContextKey, ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
11
13
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
12
14
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
15
|
+
import { LifecyclePhase } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
13
16
|
import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
|
|
14
17
|
import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
|
|
15
18
|
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
16
19
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
17
20
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
18
|
-
import { IWorkbenchIssueService } from 'vscode/vscode/vs/workbench/services/issue/common/issue.service';
|
|
19
21
|
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
20
22
|
import { areSameExtensions } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagementUtil';
|
|
21
23
|
import { Categories } from 'vscode/vscode/vs/platform/action/common/actionCommonCategories';
|
|
@@ -54,7 +56,7 @@ let ExtensionBisectService = class ExtensionBisectService {
|
|
|
54
56
|
this._storageService = _storageService;
|
|
55
57
|
this._envService = _envService;
|
|
56
58
|
this._disabled = ( (new Map()));
|
|
57
|
-
const raw = _storageService.get(ExtensionBisectService_1._storageKey,
|
|
59
|
+
const raw = _storageService.get(ExtensionBisectService_1._storageKey, StorageScope.APPLICATION);
|
|
58
60
|
this._state = BisectState.fromJSON(raw);
|
|
59
61
|
if (this._state) {
|
|
60
62
|
const { mid, high } = this._state;
|
|
@@ -93,7 +95,7 @@ let ExtensionBisectService = class ExtensionBisectService {
|
|
|
93
95
|
}
|
|
94
96
|
const extensionIds = ( (extensions.map(ext => ext.identifier.id)));
|
|
95
97
|
const newState = ( (new BisectState(extensionIds, 0, extensionIds.length, 0)));
|
|
96
|
-
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(newState),
|
|
98
|
+
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(newState), StorageScope.APPLICATION, StorageTarget.MACHINE);
|
|
97
99
|
await this._storageService.flush();
|
|
98
100
|
}
|
|
99
101
|
async next(seeingBad) {
|
|
@@ -112,12 +114,12 @@ let ExtensionBisectService = class ExtensionBisectService {
|
|
|
112
114
|
seeingBad ? this._state.low : this._state.mid,
|
|
113
115
|
seeingBad ? this._state.mid : this._state.high
|
|
114
116
|
)));
|
|
115
|
-
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(nextState),
|
|
117
|
+
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(nextState), StorageScope.APPLICATION, StorageTarget.MACHINE);
|
|
116
118
|
await this._storageService.flush();
|
|
117
119
|
return undefined;
|
|
118
120
|
}
|
|
119
121
|
async reset() {
|
|
120
|
-
this._storageService.remove(ExtensionBisectService_1._storageKey,
|
|
122
|
+
this._storageService.remove(ExtensionBisectService_1._storageKey, StorageScope.APPLICATION);
|
|
121
123
|
await this._storageService.flush();
|
|
122
124
|
}
|
|
123
125
|
};
|
|
@@ -172,7 +174,7 @@ ExtensionBisectUi = ExtensionBisectUi_1 = ( (__decorate([
|
|
|
172
174
|
( (__param(2, INotificationService))),
|
|
173
175
|
( (__param(3, ICommandService)))
|
|
174
176
|
], ExtensionBisectUi)));
|
|
175
|
-
( (Registry.as(Extensions.Workbench))).registerWorkbenchContribution(ExtensionBisectUi,
|
|
177
|
+
( (Registry.as(Extensions.Workbench))).registerWorkbenchContribution(ExtensionBisectUi, LifecyclePhase.Restored);
|
|
176
178
|
registerAction2(class extends Action2 {
|
|
177
179
|
constructor() {
|
|
178
180
|
super({
|
|
@@ -195,7 +197,7 @@ registerAction2(class extends Action2 {
|
|
|
195
197
|
const extensionManagement = accessor.get(IExtensionManagementService);
|
|
196
198
|
const extensionEnablementService = accessor.get(IWorkbenchExtensionEnablementService);
|
|
197
199
|
const extensionsBisect = accessor.get(IExtensionBisectService);
|
|
198
|
-
const extensions = (await extensionManagement.getInstalled(
|
|
200
|
+
const extensions = (await extensionManagement.getInstalled(ExtensionType.User)).filter(ext => extensionEnablementService.isEnabled(ext));
|
|
199
201
|
const res = await dialogService.confirm({
|
|
200
202
|
message: ( localizeWithPath(_moduleId, 5, "Extension Bisect")),
|
|
201
203
|
detail: ( localizeWithPath(
|
|
@@ -228,7 +230,7 @@ registerAction2(class extends Action2 {
|
|
|
228
230
|
const bisectService = accessor.get(IExtensionBisectService);
|
|
229
231
|
const productService = accessor.get(IProductService);
|
|
230
232
|
const extensionEnablementService = accessor.get(IGlobalExtensionEnablementService);
|
|
231
|
-
const
|
|
233
|
+
const commandService = accessor.get(ICommandService);
|
|
232
234
|
if (!bisectService.isActive) {
|
|
233
235
|
return;
|
|
234
236
|
}
|
|
@@ -275,7 +277,7 @@ registerAction2(class extends Action2 {
|
|
|
275
277
|
await extensionEnablementService.disableExtension({ id: done.id }, undefined);
|
|
276
278
|
}
|
|
277
279
|
if (res.confirmed) {
|
|
278
|
-
await
|
|
280
|
+
await commandService.executeCommand('workbench.action.openIssueReporter', done.id);
|
|
279
281
|
}
|
|
280
282
|
}
|
|
281
283
|
await bisectService.reset();
|
|
@@ -3,12 +3,15 @@ import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
|
3
3
|
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
4
4
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
5
5
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
6
|
+
import { ExtensionType } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
6
7
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
8
|
+
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
7
9
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
8
10
|
import { getLogs } from 'vscode/vscode/vs/platform/log/browser/log';
|
|
9
11
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
10
12
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification.service';
|
|
11
13
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
14
|
+
import { PersistentConnectionEventType } from 'vscode/vscode/vs/platform/remote/common/remoteAgentConnection';
|
|
12
15
|
import { RemoteAuthorityResolverError } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver';
|
|
13
16
|
import { IRemoteAuthorityResolverService } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver.service';
|
|
14
17
|
import { IRemoteExtensionsScannerService } from 'vscode/vscode/vs/platform/remote/common/remoteExtensionsScanner.service';
|
|
@@ -20,13 +23,14 @@ import { IWorkbenchExtensionEnablementService, IWorkbenchExtensionManagementServ
|
|
|
20
23
|
import { WebWorkerExtensionHost } from './webWorkerExtensionHost.js';
|
|
21
24
|
import { FetchFileSystemProvider } from './webWorkerFileSystemProvider.js';
|
|
22
25
|
import { AbstractExtensionService, ResolvedExtensions, checkEnabledAndProposedAPI } from '../common/abstractExtensionService.js';
|
|
23
|
-
import { extensionRunningPreferenceToString, extensionHostKindToString } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
26
|
+
import { ExtensionHostKind, extensionRunningPreferenceToString, extensionHostKindToString, ExtensionRunningPreference } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
24
27
|
import { IExtensionManifestPropertiesService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service';
|
|
25
28
|
import { filterExtensionDescriptions } from '../common/extensionRunningLocationTracker.js';
|
|
26
|
-
import { toExtensionDescription, ExtensionHostExtensions } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
29
|
+
import { toExtensionDescription, ExtensionHostStartup, ExtensionHostExtensions } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
27
30
|
import '../common/extensionsProposedApi.js';
|
|
28
31
|
import { dedupExtensions } from '../common/extensionsUtil.js';
|
|
29
32
|
import { RemoteExtensionHost } from '../common/remoteExtensionHost.js';
|
|
33
|
+
import { LifecyclePhase } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
30
34
|
import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
31
35
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
32
36
|
import { IRemoteExplorerService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService.service';
|
|
@@ -43,7 +47,7 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
43
47
|
this._userDataProfileService = _userDataProfileService;
|
|
44
48
|
this._workspaceTrustManagementService = _workspaceTrustManagementService;
|
|
45
49
|
this._remoteExplorerService = _remoteExplorerService;
|
|
46
|
-
lifecycleService.when(
|
|
50
|
+
lifecycleService.when(LifecyclePhase.Ready).then(async () => {
|
|
47
51
|
await this._userDataInitializationService.initializeInstalledExtensions(this._instantiationService);
|
|
48
52
|
this._initialize();
|
|
49
53
|
});
|
|
@@ -51,7 +55,7 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
51
55
|
}
|
|
52
56
|
async _scanSingleExtension(extension) {
|
|
53
57
|
if (extension.location.scheme === Schemas.vscodeRemote) {
|
|
54
|
-
return this._remoteExtensionsScannerService.scanSingleExtension(extension.location, extension.type ===
|
|
58
|
+
return this._remoteExtensionsScannerService.scanSingleExtension(extension.location, extension.type === ExtensionType.System);
|
|
55
59
|
}
|
|
56
60
|
const scannedExtension = await this._webExtensionsScannerService.scanExistingExtension(extension.location, extension.type, this._userDataProfileService.currentProfile.extensionsResource);
|
|
57
61
|
if (scannedExtension) {
|
|
@@ -76,7 +80,7 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
76
80
|
catch (error) {
|
|
77
81
|
this._logService.error(error);
|
|
78
82
|
}
|
|
79
|
-
return dedupExtensions(system, user, development, this._logService);
|
|
83
|
+
return dedupExtensions(system, user, [], development, this._logService);
|
|
80
84
|
}
|
|
81
85
|
async _resolveExtensionsDefault() {
|
|
82
86
|
const [localExtensions, remoteExtensions] = await Promise.all([
|
|
@@ -112,7 +116,7 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
112
116
|
const connection = this._remoteAgentService.getConnection();
|
|
113
117
|
if (connection) {
|
|
114
118
|
connection.onDidStateChange(async (e) => {
|
|
115
|
-
if (e.type ===
|
|
119
|
+
if (e.type === PersistentConnectionEventType.ConnectionLost) {
|
|
116
120
|
this._remoteAuthorityResolverService._clearResolvedAuthority(remoteAuthority);
|
|
117
121
|
}
|
|
118
122
|
});
|
|
@@ -128,7 +132,7 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
128
132
|
}
|
|
129
133
|
}
|
|
130
134
|
async _resolveAuthority(remoteAuthority) {
|
|
131
|
-
return this._resolveAuthorityOnExtensionHosts(
|
|
135
|
+
return this._resolveAuthorityOnExtensionHosts(ExtensionHostKind.LocalWebWorker, remoteAuthority);
|
|
132
136
|
}
|
|
133
137
|
};
|
|
134
138
|
ExtensionService = ( __decorate([
|
|
@@ -168,14 +172,16 @@ let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
|
|
|
168
172
|
}
|
|
169
173
|
createExtensionHost(runningLocations, runningLocation, isInitialStart) {
|
|
170
174
|
switch (runningLocation.kind) {
|
|
171
|
-
case
|
|
175
|
+
case ExtensionHostKind.LocalProcess: {
|
|
172
176
|
return null;
|
|
173
177
|
}
|
|
174
|
-
case
|
|
175
|
-
const startup = (
|
|
178
|
+
case ExtensionHostKind.LocalWebWorker: {
|
|
179
|
+
const startup = (isInitialStart
|
|
180
|
+
? ExtensionHostStartup.EagerManualStart
|
|
181
|
+
: ExtensionHostStartup.EagerAutoStart);
|
|
176
182
|
return this._instantiationService.createInstance(WebWorkerExtensionHost, runningLocation, startup, this._createLocalExtensionHostDataProvider(runningLocations, runningLocation, isInitialStart));
|
|
177
183
|
}
|
|
178
|
-
case
|
|
184
|
+
case ExtensionHostKind.Remote: {
|
|
179
185
|
const remoteAgentConnection = this._remoteAgentService.getConnection();
|
|
180
186
|
if (remoteAgentConnection) {
|
|
181
187
|
return this._instantiationService.createInstance(RemoteExtensionHost, runningLocation, this._createRemoteExtensionHostDataProvider(runningLocations, remoteAgentConnection.remoteAuthority));
|
|
@@ -212,7 +218,7 @@ let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
|
|
|
212
218
|
if (!remoteEnv) {
|
|
213
219
|
throw ( new Error('Cannot provide init data for remote extension host!'));
|
|
214
220
|
}
|
|
215
|
-
const myExtensions = runningLocations.filterByExtensionHostKind(snapshot.extensions,
|
|
221
|
+
const myExtensions = runningLocations.filterByExtensionHostKind(snapshot.extensions, ExtensionHostKind.Remote);
|
|
216
222
|
const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
|
|
217
223
|
return {
|
|
218
224
|
connectionData: this._remoteAuthorityResolverService.getConnectionData(remoteAuthority),
|
|
@@ -248,32 +254,32 @@ let BrowserExtensionHostKindPicker = BrowserExtensionHostKindPicker_1 = class Br
|
|
|
248
254
|
let canRunRemotely = false;
|
|
249
255
|
for (const extensionKind of extensionKinds) {
|
|
250
256
|
if (extensionKind === 'ui' && isInstalledRemotely) {
|
|
251
|
-
if (preference ===
|
|
252
|
-
return
|
|
257
|
+
if (preference === ExtensionRunningPreference.Remote) {
|
|
258
|
+
return ExtensionHostKind.Remote;
|
|
253
259
|
}
|
|
254
260
|
else {
|
|
255
261
|
canRunRemotely = true;
|
|
256
262
|
}
|
|
257
263
|
}
|
|
258
264
|
if (extensionKind === 'workspace' && isInstalledRemotely) {
|
|
259
|
-
if (preference ===
|
|
260
|
-
return
|
|
265
|
+
if (preference === ExtensionRunningPreference.None || preference === ExtensionRunningPreference.Remote) {
|
|
266
|
+
return ExtensionHostKind.Remote;
|
|
261
267
|
}
|
|
262
268
|
else {
|
|
263
|
-
result.push(
|
|
269
|
+
result.push(ExtensionHostKind.Remote);
|
|
264
270
|
}
|
|
265
271
|
}
|
|
266
272
|
if (extensionKind === 'web' && (isInstalledLocally || isInstalledRemotely)) {
|
|
267
|
-
if (preference ===
|
|
268
|
-
return
|
|
273
|
+
if (preference === ExtensionRunningPreference.None || preference === ExtensionRunningPreference.Local) {
|
|
274
|
+
return ExtensionHostKind.LocalWebWorker;
|
|
269
275
|
}
|
|
270
276
|
else {
|
|
271
|
-
result.push(
|
|
277
|
+
result.push(ExtensionHostKind.LocalWebWorker);
|
|
272
278
|
}
|
|
273
279
|
}
|
|
274
280
|
}
|
|
275
281
|
if (canRunRemotely) {
|
|
276
|
-
result.push(
|
|
282
|
+
result.push(ExtensionHostKind.Remote);
|
|
277
283
|
}
|
|
278
284
|
return (result.length > 0 ? result[0] : null);
|
|
279
285
|
}
|
|
@@ -16,13 +16,16 @@ import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label.serv
|
|
|
16
16
|
import { ILayoutService } from 'vscode/vscode/vs/platform/layout/browser/layoutService.service';
|
|
17
17
|
import { ILogService, ILoggerService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
18
18
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
19
|
+
import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
19
20
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
20
21
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
21
22
|
import { isLoggingOnly } from 'vscode/vscode/vs/platform/telemetry/common/telemetryUtils';
|
|
22
23
|
import { IUserDataProfilesService } from 'vscode/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
|
|
24
|
+
import { WorkbenchState } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
23
25
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace.service';
|
|
24
26
|
import { IBrowserWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/browser/environmentService.service';
|
|
25
|
-
import { isMessageOfType, createMessageOfType, UIKind } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostProtocol';
|
|
27
|
+
import { ExtensionHostExitCode, isMessageOfType, MessageType, createMessageOfType, UIKind } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostProtocol';
|
|
28
|
+
import { ExtensionHostStartup } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
26
29
|
|
|
27
30
|
let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
28
31
|
constructor(runningLocation, startup, _initDataProvider, _telemetryService, _contextService, _labelService, _logService, _loggerService, _environmentService, _userDataProfilesService, _productService, _layoutService, _storageService) {
|
|
@@ -64,10 +67,10 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
64
67
|
const quality = this._productService.quality;
|
|
65
68
|
if (webEndpointUrlTemplate && commit && quality) {
|
|
66
69
|
const key = 'webWorkerExtensionHostIframeStableOriginUUID';
|
|
67
|
-
let stableOriginUUID = this._storageService.get(key,
|
|
70
|
+
let stableOriginUUID = this._storageService.get(key, StorageScope.WORKSPACE);
|
|
68
71
|
if (typeof stableOriginUUID === 'undefined') {
|
|
69
72
|
stableOriginUUID = generateUuid();
|
|
70
|
-
this._storageService.store(key, stableOriginUUID,
|
|
73
|
+
this._storageService.store(key, stableOriginUUID, StorageScope.WORKSPACE, StorageTarget.MACHINE);
|
|
71
74
|
}
|
|
72
75
|
const hash = await parentOriginHash(mainWindow.origin, stableOriginUUID);
|
|
73
76
|
const baseUrl = (webEndpointUrlTemplate
|
|
@@ -111,7 +114,7 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
111
114
|
barrierHasError = true;
|
|
112
115
|
onUnexpectedError(barrierError);
|
|
113
116
|
clearTimeout(startTimeout);
|
|
114
|
-
this._onDidExit.fire([
|
|
117
|
+
this._onDidExit.fire([ExtensionHostExitCode.UnexpectedError, barrierError.message]);
|
|
115
118
|
barrier.open();
|
|
116
119
|
};
|
|
117
120
|
const resolveBarrier = (messagePort) => {
|
|
@@ -135,13 +138,13 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
135
138
|
err.message = message;
|
|
136
139
|
err.name = name;
|
|
137
140
|
err.stack = stack;
|
|
138
|
-
return rejectBarrier(
|
|
141
|
+
return rejectBarrier(ExtensionHostExitCode.UnexpectedError, err);
|
|
139
142
|
}
|
|
140
143
|
const { data } = event.data;
|
|
141
144
|
if (barrier.isOpen() || !(data instanceof MessagePort)) {
|
|
142
145
|
console.warn('UNEXPECTED message', event);
|
|
143
146
|
const err = ( new Error('UNEXPECTED message'));
|
|
144
|
-
return rejectBarrier(
|
|
147
|
+
return rejectBarrier(ExtensionHostExitCode.UnexpectedError, err);
|
|
145
148
|
}
|
|
146
149
|
resolveBarrier(data);
|
|
147
150
|
}));
|
|
@@ -172,7 +175,7 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
172
175
|
return this._performHandshake(protocol);
|
|
173
176
|
}
|
|
174
177
|
async _performHandshake(protocol) {
|
|
175
|
-
await Event.toPromise(Event.filter(protocol.onMessage, msg => isMessageOfType(msg,
|
|
178
|
+
await Event.toPromise(Event.filter(protocol.onMessage, msg => isMessageOfType(msg, MessageType.Ready)));
|
|
176
179
|
if (this._isTerminating) {
|
|
177
180
|
throw canceled();
|
|
178
181
|
}
|
|
@@ -180,7 +183,7 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
180
183
|
if (this._isTerminating) {
|
|
181
184
|
throw canceled();
|
|
182
185
|
}
|
|
183
|
-
await Event.toPromise(Event.filter(protocol.onMessage, msg => isMessageOfType(msg,
|
|
186
|
+
await Event.toPromise(Event.filter(protocol.onMessage, msg => isMessageOfType(msg, MessageType.Initialized)));
|
|
184
187
|
if (this._isTerminating) {
|
|
185
188
|
throw canceled();
|
|
186
189
|
}
|
|
@@ -191,7 +194,7 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
191
194
|
return;
|
|
192
195
|
}
|
|
193
196
|
this._isTerminating = true;
|
|
194
|
-
this._protocol?.send(createMessageOfType(
|
|
197
|
+
this._protocol?.send(createMessageOfType(MessageType.Terminate));
|
|
195
198
|
super.dispose();
|
|
196
199
|
}
|
|
197
200
|
getInspectPort() {
|
|
@@ -228,7 +231,7 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
228
231
|
workspaceStorageHome: this._environmentService.workspaceStorageHome,
|
|
229
232
|
extensionLogLevel: this._environmentService.extensionLogLevel
|
|
230
233
|
},
|
|
231
|
-
workspace: this._contextService.getWorkbenchState() ===
|
|
234
|
+
workspace: this._contextService.getWorkbenchState() === WorkbenchState.EMPTY ? undefined : {
|
|
232
235
|
configuration: workspace.configuration || undefined,
|
|
233
236
|
id: workspace.id,
|
|
234
237
|
name: this._labelService.getWorkspaceLabel(workspace),
|
|
@@ -244,13 +247,14 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
244
247
|
sessionId: this._telemetryService.sessionId,
|
|
245
248
|
machineId: this._telemetryService.machineId,
|
|
246
249
|
sqmId: this._telemetryService.sqmId,
|
|
250
|
+
devDeviceId: this._telemetryService.devDeviceId,
|
|
247
251
|
firstSessionDate: this._telemetryService.firstSessionDate,
|
|
248
252
|
msftInternal: this._telemetryService.msftInternal
|
|
249
253
|
},
|
|
250
254
|
logLevel: this._logService.getLevel(),
|
|
251
255
|
loggers: [...this._loggerService.getRegisteredLoggers()],
|
|
252
256
|
logsLocation: this._extensionHostLogsLocation,
|
|
253
|
-
autoStart: (
|
|
257
|
+
autoStart: (this.startup === ExtensionHostStartup.EagerAutoStart),
|
|
254
258
|
remote: {
|
|
255
259
|
authority: this._environmentService.remoteAuthority,
|
|
256
260
|
connectionData: null,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { createFileSystemProviderError, FileSystemProviderErrorCode, FileType } from 'vscode/vscode/vs/platform/files/common/files';
|
|
1
|
+
import { FileSystemProviderCapabilities, createFileSystemProviderError, FileSystemProviderErrorCode, FileType } from 'vscode/vscode/vs/platform/files/common/files';
|
|
2
2
|
import { Event } from 'vscode/vscode/vs/base/common/event';
|
|
3
3
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
4
|
import { NotSupportedError } from 'vscode/vscode/vs/base/common/errors';
|
|
5
5
|
|
|
6
6
|
class FetchFileSystemProvider {
|
|
7
7
|
constructor() {
|
|
8
|
-
this.capabilities =
|
|
8
|
+
this.capabilities = FileSystemProviderCapabilities.Readonly + FileSystemProviderCapabilities.FileReadWrite + FileSystemProviderCapabilities.PathCaseSensitive;
|
|
9
9
|
this.onDidChangeCapabilities = Event.None;
|
|
10
10
|
this.onDidChangeFile = Event.None;
|
|
11
11
|
}
|
|
@@ -13,6 +13,7 @@ import { isDefined } from 'vscode/vscode/vs/base/common/types';
|
|
|
13
13
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
14
14
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
15
15
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
16
|
+
import { InstallOperation } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
16
17
|
import { ImplicitActivationEvents } from 'vscode/vscode/vs/platform/extensionManagement/common/implicitActivationEvents';
|
|
17
18
|
import { ExtensionIdentifierMap, ExtensionIdentifier } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
18
19
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
@@ -34,13 +35,15 @@ import { Extensions } from 'vscode/vscode/vs/workbench/services/extensionManagem
|
|
|
34
35
|
import { IWorkbenchExtensionEnablementService, IWorkbenchExtensionManagementService } from 'vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service';
|
|
35
36
|
import { LockableExtensionDescriptionRegistry } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionDescriptionRegistry';
|
|
36
37
|
import { parseExtensionDevOptions } from './extensionDevOptions.js';
|
|
38
|
+
import { ExtensionRunningPreference, ExtensionHostKind } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
37
39
|
import { ExtensionHostManager } from './extensionHostManager.js';
|
|
38
40
|
import { IExtensionManifestPropertiesService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service';
|
|
39
41
|
import { RemoteRunningLocation, LocalProcessRunningLocation, LocalWebWorkerRunningLocation } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionRunningLocation';
|
|
40
42
|
import { ExtensionRunningLocationTracker, filterExtensionIdentifiers } from './extensionRunningLocationTracker.js';
|
|
41
|
-
import { ExtensionPointContribution, ActivationTimes, toExtension } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
43
|
+
import { ExtensionHostStartup, ActivationKind, ExtensionPointContribution, ActivationTimes, toExtension } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
42
44
|
import { ExtensionsRegistry, ExtensionMessageCollector } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
|
|
43
45
|
import { LazyCreateExtensionHostManager } from './lazyCreateExtensionHostManager.js';
|
|
46
|
+
import { ResponsiveState } from 'vscode/vscode/vs/workbench/services/extensions/common/rpcProtocol';
|
|
44
47
|
import { checkGlobFileExists, checkActivateWorkspaceContainsExtension } from 'vscode/vscode/vs/workbench/services/extensions/common/workspaceContains';
|
|
45
48
|
import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
46
49
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
@@ -143,7 +146,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
143
146
|
this._register(this._extensionManagementService.onDidInstallExtensions((result) => {
|
|
144
147
|
const extensions = [];
|
|
145
148
|
for (const { local, operation } of result) {
|
|
146
|
-
if (local && local.isValid && operation !==
|
|
149
|
+
if (local && local.isValid && operation !== InstallOperation.Migrate && this._safeInvokeIsEnabled(local)) {
|
|
147
150
|
extensions.push(local);
|
|
148
151
|
}
|
|
149
152
|
}
|
|
@@ -289,7 +292,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
289
292
|
}
|
|
290
293
|
const extensionKinds = this._runningLocations.readExtensionKinds(extension);
|
|
291
294
|
const isRemote = extension.extensionLocation.scheme === Schemas.vscodeRemote;
|
|
292
|
-
const extensionHostKind = this._extensionHostKindPicker.pickExtensionHostKind(extension.identifier, extensionKinds, !isRemote, isRemote,
|
|
295
|
+
const extensionHostKind = this._extensionHostKindPicker.pickExtensionHostKind(extension.identifier, extensionKinds, !isRemote, isRemote, ExtensionRunningPreference.None);
|
|
293
296
|
if (extensionHostKind === null) {
|
|
294
297
|
return false;
|
|
295
298
|
}
|
|
@@ -363,7 +366,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
363
366
|
this._processExtensions(lock, resolvedExtensions);
|
|
364
367
|
const snapshot = this._registry.getSnapshot();
|
|
365
368
|
for (const extHostManager of this._extensionHostManagers) {
|
|
366
|
-
if (extHostManager.startup !==
|
|
369
|
+
if (extHostManager.startup !== ExtensionHostStartup.EagerAutoStart) {
|
|
367
370
|
const extensions = this._runningLocations.filterByExtensionHostManager(snapshot.extensions, extHostManager);
|
|
368
371
|
extHostManager.start(snapshot.versionId, snapshot.extensions, ( (extensions.map(extension => extension.identifier))));
|
|
369
372
|
}
|
|
@@ -382,10 +385,10 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
382
385
|
let remoteExtensions = checkEnabledAndProposedAPI(this._logService, this._extensionEnablementService, this._extensionsProposedApi, resolvedExtensions.remote, false);
|
|
383
386
|
this._runningLocations.initializeRunningLocation(localExtensions, remoteExtensions);
|
|
384
387
|
this._startExtensionHostsIfNecessary(true, []);
|
|
385
|
-
const remoteExtensionsThatNeedToRunLocally = (allowRemoteExtensionsInLocalWebWorker ? this._runningLocations.filterByExtensionHostKind(remoteExtensions,
|
|
386
|
-
const localProcessExtensions = (hasLocalProcess ? this._runningLocations.filterByExtensionHostKind(localExtensions,
|
|
387
|
-
const localWebWorkerExtensions = this._runningLocations.filterByExtensionHostKind(localExtensions,
|
|
388
|
-
remoteExtensions = this._runningLocations.filterByExtensionHostKind(remoteExtensions,
|
|
388
|
+
const remoteExtensionsThatNeedToRunLocally = (allowRemoteExtensionsInLocalWebWorker ? this._runningLocations.filterByExtensionHostKind(remoteExtensions, ExtensionHostKind.LocalWebWorker) : []);
|
|
389
|
+
const localProcessExtensions = (hasLocalProcess ? this._runningLocations.filterByExtensionHostKind(localExtensions, ExtensionHostKind.LocalProcess) : []);
|
|
390
|
+
const localWebWorkerExtensions = this._runningLocations.filterByExtensionHostKind(localExtensions, ExtensionHostKind.LocalWebWorker);
|
|
391
|
+
remoteExtensions = this._runningLocations.filterByExtensionHostKind(remoteExtensions, ExtensionHostKind.Remote);
|
|
389
392
|
for (const ext of remoteExtensionsThatNeedToRunLocally) {
|
|
390
393
|
if (!includes(localWebWorkerExtensions, ext.identifier)) {
|
|
391
394
|
localWebWorkerExtensions.push(ext);
|
|
@@ -638,10 +641,10 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
638
641
|
const processManager = this._doCreateExtensionHostManager(extensionHost, initialActivationEvents);
|
|
639
642
|
processManager.onDidExit(([code, signal]) => this._onExtensionHostCrashOrExit(processManager, code, signal));
|
|
640
643
|
processManager.onDidChangeResponsiveState((responsiveState) => {
|
|
641
|
-
this._logService.info(`Extension host (${processManager.friendyName}) is ${responsiveState ===
|
|
644
|
+
this._logService.info(`Extension host (${processManager.friendyName}) is ${responsiveState === ResponsiveState.Responsive ? 'responsive' : 'unresponsive'}.`);
|
|
642
645
|
this._onDidChangeResponsiveChange.fire({
|
|
643
646
|
extensionHostKind: processManager.kind,
|
|
644
|
-
isResponsive: responsiveState ===
|
|
647
|
+
isResponsive: responsiveState === ResponsiveState.Responsive,
|
|
645
648
|
getInspectListener: (tryEnableInspector) => {
|
|
646
649
|
return processManager.getInspectPort(tryEnableInspector);
|
|
647
650
|
}
|
|
@@ -651,7 +654,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
651
654
|
}
|
|
652
655
|
_doCreateExtensionHostManager(extensionHost, initialActivationEvents) {
|
|
653
656
|
const internalExtensionService = this._acquireInternalAPI(extensionHost);
|
|
654
|
-
if (extensionHost.startup ===
|
|
657
|
+
if (extensionHost.startup === ExtensionHostStartup.Lazy && initialActivationEvents.length === 0) {
|
|
655
658
|
return this._instantiationService.createInstance(LazyCreateExtensionHostManager, extensionHost, internalExtensionService);
|
|
656
659
|
}
|
|
657
660
|
return this._instantiationService.createInstance(ExtensionHostManager, extensionHost, initialActivationEvents, internalExtensionService);
|
|
@@ -666,10 +669,10 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
666
669
|
}
|
|
667
670
|
_onExtensionHostCrashed(extensionHost, code, signal) {
|
|
668
671
|
console.error(`Extension host (${extensionHost.friendyName}) terminated unexpectedly. Code: ${code}, Signal: ${signal}`);
|
|
669
|
-
if (extensionHost.kind ===
|
|
672
|
+
if (extensionHost.kind === ExtensionHostKind.LocalProcess) {
|
|
670
673
|
this._doStopExtensionHosts();
|
|
671
674
|
}
|
|
672
|
-
else if (extensionHost.kind ===
|
|
675
|
+
else if (extensionHost.kind === ExtensionHostKind.Remote) {
|
|
673
676
|
if (signal) {
|
|
674
677
|
this._onRemoteExtensionHostCrashed(extensionHost, signal);
|
|
675
678
|
}
|
|
@@ -750,14 +753,14 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
750
753
|
const lock = await this._registry.acquireLock('startExtensionHosts');
|
|
751
754
|
try {
|
|
752
755
|
this._startExtensionHostsIfNecessary(false, Array.from(( (this._allRequestedActivateEvents.keys()))));
|
|
753
|
-
const localProcessExtensionHosts = this._getExtensionHostManagers(
|
|
756
|
+
const localProcessExtensionHosts = this._getExtensionHostManagers(ExtensionHostKind.LocalProcess);
|
|
754
757
|
await Promise.all(( (localProcessExtensionHosts.map(extHost => extHost.ready()))));
|
|
755
758
|
}
|
|
756
759
|
finally {
|
|
757
760
|
lock.dispose();
|
|
758
761
|
}
|
|
759
762
|
}
|
|
760
|
-
activateByEvent(activationEvent, activationKind =
|
|
763
|
+
activateByEvent(activationEvent, activationKind = ActivationKind.Normal) {
|
|
761
764
|
if (this._installedExtensionsReady.isOpen()) {
|
|
762
765
|
this._allRequestedActivateEvents.add(activationEvent);
|
|
763
766
|
if (!this._registry.containsActivationEvent(activationEvent)) {
|
|
@@ -767,7 +770,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
767
770
|
}
|
|
768
771
|
else {
|
|
769
772
|
this._allRequestedActivateEvents.add(activationEvent);
|
|
770
|
-
if (activationKind ===
|
|
773
|
+
if (activationKind === ActivationKind.Immediate) {
|
|
771
774
|
return this._activateByEvent(activationEvent, activationKind);
|
|
772
775
|
}
|
|
773
776
|
return this._installedExtensionsReady.wait().then(() => this._activateByEvent(activationEvent, activationKind));
|
|
@@ -16,7 +16,8 @@ import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/commo
|
|
|
16
16
|
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
17
17
|
import { ExtHostCustomersRegistry } from './extHostCustomers.js';
|
|
18
18
|
import { extensionHostKindToString } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
19
|
-
import {
|
|
19
|
+
import { ActivationKind } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
20
|
+
import { RPCProtocol, RequestInitiator } from 'vscode/vscode/vs/workbench/services/extensions/common/rpcProtocol';
|
|
20
21
|
|
|
21
22
|
var ExtensionHostManager_1;
|
|
22
23
|
const _moduleId = "vs/workbench/services/extensions/common/extensionHostManager";
|
|
@@ -85,7 +86,7 @@ let ExtensionHostManager = ExtensionHostManager_1 = class ExtensionHostManager e
|
|
|
85
86
|
return null;
|
|
86
87
|
});
|
|
87
88
|
this._proxy.then(() => {
|
|
88
|
-
initialActivationEvents.forEach((activationEvent) => this.activateByEvent(activationEvent,
|
|
89
|
+
initialActivationEvents.forEach((activationEvent) => this.activateByEvent(activationEvent, ActivationKind.Normal));
|
|
89
90
|
this._register(registerLatencyTestProvider({
|
|
90
91
|
measure: () => this.measure()
|
|
91
92
|
}));
|
|
@@ -228,7 +229,7 @@ let ExtensionHostManager = ExtensionHostManager_1 = class ExtensionHostManager e
|
|
|
228
229
|
return proxy.activate(extension, reason);
|
|
229
230
|
}
|
|
230
231
|
activateByEvent(activationEvent, activationKind) {
|
|
231
|
-
if (activationKind ===
|
|
232
|
+
if (activationKind === ActivationKind.Immediate && !this._hasStarted) {
|
|
232
233
|
return Promise.resolve();
|
|
233
234
|
}
|
|
234
235
|
if (!( (this._cachedActivationEvents.has(activationEvent)))) {
|
|
@@ -434,7 +435,7 @@ let TelemetryRPCLogger = class TelemetryRPCLogger {
|
|
|
434
435
|
this._pendingRequests = ( (new Map()));
|
|
435
436
|
}
|
|
436
437
|
logIncoming(msgLength, req, initiator, str) {
|
|
437
|
-
if (initiator ===
|
|
438
|
+
if (initiator === RequestInitiator.LocalSide && /^receiveReply(Err)?:/.test(str)) {
|
|
438
439
|
const requestStr = this._pendingRequests.get(req) ?? 'unknown_reply';
|
|
439
440
|
this._pendingRequests.delete(req);
|
|
440
441
|
this._telemetryService.publicLog2('extensionhost.incoming', {
|
|
@@ -442,7 +443,7 @@ let TelemetryRPCLogger = class TelemetryRPCLogger {
|
|
|
442
443
|
length: msgLength
|
|
443
444
|
});
|
|
444
445
|
}
|
|
445
|
-
if (initiator ===
|
|
446
|
+
if (initiator === RequestInitiator.OtherSide && /^receiveRequest /.test(str)) {
|
|
446
447
|
this._telemetryService.publicLog2('extensionhost.incoming', {
|
|
447
448
|
type: `${str}`,
|
|
448
449
|
length: msgLength
|
|
@@ -450,7 +451,7 @@ let TelemetryRPCLogger = class TelemetryRPCLogger {
|
|
|
450
451
|
}
|
|
451
452
|
}
|
|
452
453
|
logOutgoing(msgLength, req, initiator, str) {
|
|
453
|
-
if (initiator ===
|
|
454
|
+
if (initiator === RequestInitiator.LocalSide && str.startsWith('request: ')) {
|
|
454
455
|
this._pendingRequests.set(req, str);
|
|
455
456
|
this._telemetryService.publicLog2('extensionhost.outgoing', {
|
|
456
457
|
type: str,
|