@codingame/monaco-vscode-extensions-service-override 11.1.2 → 12.0.1
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/index.d.ts +40 -2
- package/index.js +266 -1
- package/package.json +81 -11
- package/vscode/src/vs/base/common/console.d.ts +22 -0
- package/vscode/src/vs/base/common/console.js +3 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.d.ts +24 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +54 -53
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.d.ts +14 -0
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +4 -2
- package/vscode/src/vs/platform/lifecycle/common/lifecycle.d.ts +1 -0
- package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +1 -0
- package/vscode/src/vs/platform/remote/common/managedSocket.d.ts +30 -0
- package/vscode/src/vs/platform/remote/common/managedSocket.js +1 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.d.ts +12 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.d.ts +15 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.d.ts +73 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +67 -39
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.d.ts +18 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +5 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.d.ts +1 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +12 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.d.ts +65 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +33 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.d.ts +15 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.d.ts +15 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.d.ts +9 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.d.ts +21 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadCommands.d.ts +20 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.d.ts +169 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +50 -58
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.d.ts +20 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +13 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadConsole.d.ts +13 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.d.ts +38 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +82 -75
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.d.ts +53 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +7 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.d.ts +14 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.d.ts +21 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.d.ts +13 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.d.ts +21 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.d.ts +58 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +5 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.d.ts +40 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +23 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.d.ts +10 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.d.ts +9 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +8 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.d.ts +65 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +15 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.d.ts +37 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +53 -52
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.d.ts +60 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +97 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.d.ts +34 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadErrors.d.ts +6 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.d.ts +42 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +42 -45
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.d.ts +32 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +7 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.d.ts +25 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +64 -60
- package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.d.ts +9 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.d.ts +12 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +108 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +31 -28
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.d.ts +18 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.d.ts +42 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +23 -22
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.d.ts +29 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.d.ts +13 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadLogService.d.ts +20 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.d.ts +27 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +6 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.d.ts +22 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +46 -47
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.d.ts +22 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.d.ts +24 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.d.ts +29 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.d.ts +17 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +5 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.d.ts +27 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.d.ts +49 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.d.ts +10 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.d.ts +9 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +9 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.d.ts +26 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +39 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.d.ts +12 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.d.ts +17 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +13 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.d.ts +13 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +4 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.d.ts +19 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.d.ts +9 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.d.ts +52 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +11 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.d.ts +9 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +9 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.d.ts +24 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +9 -19
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.d.ts +21 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadShare.d.ts +13 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.d.ts +21 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.d.ts +15 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +6 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.d.ts +22 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +4 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.d.ts +28 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +174 -195
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.d.ts +20 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.d.ts +80 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +27 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.d.ts +12 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +7 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.d.ts +44 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +6 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadTheming.d.ts +10 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.d.ts +16 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.d.ts +45 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +41 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.d.ts +44 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +29 -30
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.d.ts +25 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +21 -25
- package/vscode/src/vs/workbench/api/browser/mainThreadUrls.d.ts +17 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.d.ts +6 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.d.ts +42 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +9 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.d.ts +26 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.d.ts +29 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +19 -18
- package/vscode/src/vs/workbench/api/browser/mainThreadWindow.d.ts +22 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +10 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.d.ts +71 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +34 -35
- package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.d.ts +12 -0
- package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +1 -0
- package/vscode/src/vs/workbench/common/comments.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +14 -12
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +6 -4
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.d.ts +25 -0
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +62 -60
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +74 -0
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +63 -45
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.d.ts +57 -0
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +16 -12
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.d.ts +20 -0
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +3 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +203 -0
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +217 -180
- package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.d.ts +32 -0
- package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +4 -2
- package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.d.ts +8 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +1 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +68 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +37 -39
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManagers.d.ts +40 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.d.ts +38 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +15 -14
- package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.d.ts +2 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +4 -2
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.d.ts +14 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +18 -19
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.d.ts +3 -0
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +8 -7
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.d.ts +54 -0
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +4 -3
- package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.d.ts +4 -0
- package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +1 -0
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.d.ts +68 -0
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +12 -9
- package/_virtual/semver.js +0 -5
- package/extensions.js +0 -257
- package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +0 -11
- package/tools/url.js +0 -10
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6';
|
|
2
3
|
import { localize, localize2 } from 'vscode/vscode/vs/nls';
|
|
3
4
|
import { IExtensionManagementService, IGlobalExtensionEnablementService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
|
|
5
|
+
import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
4
6
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
5
|
-
import { isResolverExtension } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
7
|
+
import { isResolverExtension, ExtensionType } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
8
|
+
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
6
9
|
import { NotificationPriority } from 'vscode/vscode/vs/platform/notification/common/notification';
|
|
7
10
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification.service';
|
|
8
11
|
import { IHostService } from 'vscode/vscode/vs/workbench/services/host/browser/host.service';
|
|
@@ -10,6 +13,7 @@ import { registerAction2, Action2, MenuId } from 'vscode/vscode/vs/platform/acti
|
|
|
10
13
|
import { RawContextKey, ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
11
14
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
12
15
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
16
|
+
import { LifecyclePhase } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
13
17
|
import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
|
|
14
18
|
import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
|
|
15
19
|
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
@@ -20,7 +24,7 @@ import { areSameExtensions } from 'vscode/vscode/vs/platform/extensionManagement
|
|
|
20
24
|
import { Categories } from 'vscode/vscode/vs/platform/action/common/actionCommonCategories';
|
|
21
25
|
import { IWorkbenchExtensionEnablementService } from 'vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service';
|
|
22
26
|
import { IExtensionBisectService } from 'vscode/vscode/vs/workbench/services/extensionManagement/browser/extensionBisect.service';
|
|
23
|
-
import Severity
|
|
27
|
+
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
24
28
|
|
|
25
29
|
var ExtensionBisectService_1, ExtensionBisectUi_1;
|
|
26
30
|
class BisectState {
|
|
@@ -30,9 +34,7 @@ class BisectState {
|
|
|
30
34
|
}
|
|
31
35
|
try {
|
|
32
36
|
const data = JSON.parse(raw);
|
|
33
|
-
return (
|
|
34
|
-
(new BisectState(data.extensions, data.low, data.high, data.mid))
|
|
35
|
-
);
|
|
37
|
+
return ( new BisectState(data.extensions, data.low, data.high, data.mid));
|
|
36
38
|
}
|
|
37
39
|
catch {
|
|
38
40
|
return undefined;
|
|
@@ -51,8 +53,8 @@ let ExtensionBisectService = class ExtensionBisectService {
|
|
|
51
53
|
constructor(logService, _storageService, _envService) {
|
|
52
54
|
this._storageService = _storageService;
|
|
53
55
|
this._envService = _envService;
|
|
54
|
-
this._disabled = (
|
|
55
|
-
const raw = _storageService.get(ExtensionBisectService_1._storageKey,
|
|
56
|
+
this._disabled = ( new Map());
|
|
57
|
+
const raw = _storageService.get(ExtensionBisectService_1._storageKey, StorageScope.APPLICATION);
|
|
56
58
|
this._state = BisectState.fromJSON(raw);
|
|
57
59
|
if (this._state) {
|
|
58
60
|
const { mid, high } = this._state;
|
|
@@ -83,20 +85,20 @@ let ExtensionBisectService = class ExtensionBisectService {
|
|
|
83
85
|
return disabled ?? false;
|
|
84
86
|
}
|
|
85
87
|
_isEnabledInEnv(extension) {
|
|
86
|
-
return Array.isArray(this._envService.enableExtensions) && (
|
|
88
|
+
return Array.isArray(this._envService.enableExtensions) && ( this._envService.enableExtensions.some(id => areSameExtensions({ id }, extension.identifier)));
|
|
87
89
|
}
|
|
88
90
|
async start(extensions) {
|
|
89
91
|
if (this._state) {
|
|
90
|
-
throw (
|
|
92
|
+
throw ( new Error('invalid state'));
|
|
91
93
|
}
|
|
92
|
-
const extensionIds = (
|
|
93
|
-
const newState = (
|
|
94
|
-
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(newState),
|
|
94
|
+
const extensionIds = ( extensions.map(ext => ext.identifier.id));
|
|
95
|
+
const newState = ( new BisectState(extensionIds, 0, extensionIds.length, 0));
|
|
96
|
+
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(newState), StorageScope.APPLICATION, StorageTarget.MACHINE);
|
|
95
97
|
await this._storageService.flush();
|
|
96
98
|
}
|
|
97
99
|
async next(seeingBad) {
|
|
98
100
|
if (!this._state) {
|
|
99
|
-
throw (
|
|
101
|
+
throw ( new Error('invalid state'));
|
|
100
102
|
}
|
|
101
103
|
if (seeingBad && this._state.mid === 0 && this._state.high === this._state.extensions.length) {
|
|
102
104
|
return { bad: true, id: '' };
|
|
@@ -105,28 +107,28 @@ let ExtensionBisectService = class ExtensionBisectService {
|
|
|
105
107
|
await this.reset();
|
|
106
108
|
return { id: this._state.extensions[this._state.low], bad: seeingBad };
|
|
107
109
|
}
|
|
108
|
-
const nextState = (
|
|
110
|
+
const nextState = ( new BisectState(
|
|
109
111
|
this._state.extensions,
|
|
110
112
|
seeingBad ? this._state.low : this._state.mid,
|
|
111
113
|
seeingBad ? this._state.mid : this._state.high
|
|
112
|
-
))
|
|
113
|
-
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(nextState),
|
|
114
|
+
));
|
|
115
|
+
this._storageService.store(ExtensionBisectService_1._storageKey, JSON.stringify(nextState), StorageScope.APPLICATION, StorageTarget.MACHINE);
|
|
114
116
|
await this._storageService.flush();
|
|
115
117
|
return undefined;
|
|
116
118
|
}
|
|
117
119
|
async reset() {
|
|
118
|
-
this._storageService.remove(ExtensionBisectService_1._storageKey,
|
|
120
|
+
this._storageService.remove(ExtensionBisectService_1._storageKey, StorageScope.APPLICATION);
|
|
119
121
|
await this._storageService.flush();
|
|
120
122
|
}
|
|
121
123
|
};
|
|
122
|
-
ExtensionBisectService = ExtensionBisectService_1 = (
|
|
123
|
-
(
|
|
124
|
-
(
|
|
125
|
-
(
|
|
126
|
-
], ExtensionBisectService))
|
|
124
|
+
ExtensionBisectService = ExtensionBisectService_1 = ( __decorate([
|
|
125
|
+
( __param(0, ILogService)),
|
|
126
|
+
( __param(1, IStorageService)),
|
|
127
|
+
( __param(2, IWorkbenchEnvironmentService))
|
|
128
|
+
], ExtensionBisectService));
|
|
127
129
|
let ExtensionBisectUi = class ExtensionBisectUi {
|
|
128
130
|
static { ExtensionBisectUi_1 = this; }
|
|
129
|
-
static { this.ctxIsBisectActive = (
|
|
131
|
+
static { this.ctxIsBisectActive = ( new RawContextKey('isExtensionBisectActive', false)); }
|
|
130
132
|
constructor(contextKeyService, _extensionBisectService, _notificationService, _commandService) {
|
|
131
133
|
this._extensionBisectService = _extensionBisectService;
|
|
132
134
|
this._notificationService = _notificationService;
|
|
@@ -138,11 +140,11 @@ let ExtensionBisectUi = class ExtensionBisectUi {
|
|
|
138
140
|
}
|
|
139
141
|
_showBisectPrompt() {
|
|
140
142
|
const goodPrompt = {
|
|
141
|
-
label: ( localize(
|
|
143
|
+
label: ( localize(11393, "I can't reproduce")),
|
|
142
144
|
run: () => this._commandService.executeCommand('extension.bisect.next', false)
|
|
143
145
|
};
|
|
144
146
|
const badPrompt = {
|
|
145
|
-
label: ( localize(
|
|
147
|
+
label: ( localize(11394, "I can reproduce")),
|
|
146
148
|
run: () => this._commandService.executeCommand('extension.bisect.next', true)
|
|
147
149
|
};
|
|
148
150
|
const stop = {
|
|
@@ -151,35 +153,35 @@ let ExtensionBisectUi = class ExtensionBisectUi {
|
|
|
151
153
|
};
|
|
152
154
|
const message = this._extensionBisectService.disabledCount === 1
|
|
153
155
|
? ( localize(
|
|
154
|
-
|
|
156
|
+
11395,
|
|
155
157
|
"Extension Bisect is active and has disabled 1 extension. Check if you can still reproduce the problem and proceed by selecting from these options."
|
|
156
158
|
))
|
|
157
159
|
: ( localize(
|
|
158
|
-
|
|
160
|
+
11396,
|
|
159
161
|
"Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
|
|
160
162
|
this._extensionBisectService.disabledCount
|
|
161
163
|
));
|
|
162
|
-
this._notificationService.prompt(Severity
|
|
164
|
+
this._notificationService.prompt(Severity.Info, message, [goodPrompt, badPrompt, stop], { sticky: true, priority: NotificationPriority.URGENT });
|
|
163
165
|
}
|
|
164
166
|
};
|
|
165
|
-
ExtensionBisectUi = ExtensionBisectUi_1 = (
|
|
166
|
-
(
|
|
167
|
-
(
|
|
168
|
-
(
|
|
169
|
-
(
|
|
170
|
-
], ExtensionBisectUi))
|
|
171
|
-
(
|
|
167
|
+
ExtensionBisectUi = ExtensionBisectUi_1 = ( __decorate([
|
|
168
|
+
( __param(0, IContextKeyService)),
|
|
169
|
+
( __param(1, IExtensionBisectService)),
|
|
170
|
+
( __param(2, INotificationService)),
|
|
171
|
+
( __param(3, ICommandService))
|
|
172
|
+
], ExtensionBisectUi));
|
|
173
|
+
( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(ExtensionBisectUi, LifecyclePhase.Restored);
|
|
172
174
|
registerAction2(class extends Action2 {
|
|
173
175
|
constructor() {
|
|
174
176
|
super({
|
|
175
177
|
id: 'extension.bisect.start',
|
|
176
|
-
title: ( localize2(
|
|
178
|
+
title: ( localize2(11397, 'Start Extension Bisect')),
|
|
177
179
|
category: Categories.Help,
|
|
178
180
|
f1: true,
|
|
179
|
-
precondition: (
|
|
181
|
+
precondition: ( ExtensionBisectUi.ctxIsBisectActive.negate()),
|
|
180
182
|
menu: {
|
|
181
183
|
id: MenuId.ViewContainerTitle,
|
|
182
|
-
when: (
|
|
184
|
+
when: ( ContextKeyExpr.equals('viewContainer', 'workbench.view.extensions')),
|
|
183
185
|
group: '2_enablement',
|
|
184
186
|
order: 4
|
|
185
187
|
}
|
|
@@ -191,15 +193,15 @@ registerAction2(class extends Action2 {
|
|
|
191
193
|
const extensionManagement = accessor.get(IExtensionManagementService);
|
|
192
194
|
const extensionEnablementService = accessor.get(IWorkbenchExtensionEnablementService);
|
|
193
195
|
const extensionsBisect = accessor.get(IExtensionBisectService);
|
|
194
|
-
const extensions = (await extensionManagement.getInstalled(
|
|
196
|
+
const extensions = (await extensionManagement.getInstalled(ExtensionType.User)).filter(ext => extensionEnablementService.isEnabled(ext));
|
|
195
197
|
const res = await dialogService.confirm({
|
|
196
|
-
message: ( localize(
|
|
198
|
+
message: ( localize(11398, "Extension Bisect")),
|
|
197
199
|
detail: ( localize(
|
|
198
|
-
|
|
200
|
+
11399,
|
|
199
201
|
"Extension Bisect will use binary search to find an extension that causes a problem. During the process the window reloads repeatedly (~{0} times). Each time you must confirm if you are still seeing problems.",
|
|
200
202
|
2 + Math.log2(extensions.length) | 0
|
|
201
203
|
)),
|
|
202
|
-
primaryButton: ( localize(
|
|
204
|
+
primaryButton: ( localize(11400, "&&Start Extension Bisect"))
|
|
203
205
|
});
|
|
204
206
|
if (res.confirmed) {
|
|
205
207
|
await extensionsBisect.start(extensions);
|
|
@@ -211,7 +213,7 @@ registerAction2(class extends Action2 {
|
|
|
211
213
|
constructor() {
|
|
212
214
|
super({
|
|
213
215
|
id: 'extension.bisect.next',
|
|
214
|
-
title: ( localize2(
|
|
216
|
+
title: ( localize2(11401, 'Continue Extension Bisect')),
|
|
215
217
|
category: Categories.Help,
|
|
216
218
|
f1: true,
|
|
217
219
|
precondition: ExtensionBisectUi.ctxIsBisectActive
|
|
@@ -245,24 +247,24 @@ registerAction2(class extends Action2 {
|
|
|
245
247
|
return;
|
|
246
248
|
}
|
|
247
249
|
if (done.bad) {
|
|
248
|
-
await dialogService.info(( localize(
|
|
249
|
-
|
|
250
|
+
await dialogService.info(( localize(11402, "Extension Bisect")), ( localize(
|
|
251
|
+
11403,
|
|
250
252
|
"Extension Bisect is done but no extension has been identified. This might be a problem with {0}.",
|
|
251
253
|
productService.nameShort
|
|
252
254
|
)));
|
|
253
255
|
}
|
|
254
256
|
else {
|
|
255
257
|
const res = await dialogService.confirm({
|
|
256
|
-
type: Severity
|
|
257
|
-
message: ( localize(
|
|
258
|
-
primaryButton: ( localize(
|
|
259
|
-
cancelButton: ( localize(
|
|
258
|
+
type: Severity.Info,
|
|
259
|
+
message: ( localize(11402, "Extension Bisect")),
|
|
260
|
+
primaryButton: ( localize(11404, "&&Report Issue & Continue")),
|
|
261
|
+
cancelButton: ( localize(11405, "Continue")),
|
|
260
262
|
detail: ( localize(
|
|
261
|
-
|
|
263
|
+
11406,
|
|
262
264
|
"Extension Bisect is done and has identified {0} as the extension causing the problem.",
|
|
263
265
|
done.id
|
|
264
266
|
)),
|
|
265
|
-
checkbox: { label: ( localize(
|
|
267
|
+
checkbox: { label: ( localize(11407, "Keep this extension disabled")), checked: true }
|
|
266
268
|
});
|
|
267
269
|
if (res.checkboxChecked) {
|
|
268
270
|
await extensionEnablementService.disableExtension({ id: done.id }, undefined);
|
|
@@ -276,29 +278,29 @@ registerAction2(class extends Action2 {
|
|
|
276
278
|
}
|
|
277
279
|
async _checkForBad(dialogService, bisectService) {
|
|
278
280
|
const { result } = await dialogService.prompt({
|
|
279
|
-
type: Severity
|
|
280
|
-
message: ( localize(
|
|
281
|
+
type: Severity.Info,
|
|
282
|
+
message: ( localize(11408, "Extension Bisect")),
|
|
281
283
|
detail: ( localize(
|
|
282
|
-
|
|
284
|
+
11409,
|
|
283
285
|
"Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
|
|
284
286
|
bisectService.disabledCount
|
|
285
287
|
)),
|
|
286
288
|
buttons: [
|
|
287
289
|
{
|
|
288
|
-
label: ( localize(
|
|
290
|
+
label: ( localize(11410, "I ca&&n't reproduce")),
|
|
289
291
|
run: () => false
|
|
290
292
|
},
|
|
291
293
|
{
|
|
292
|
-
label: ( localize(
|
|
294
|
+
label: ( localize(11411, "I can &&reproduce")),
|
|
293
295
|
run: () => true
|
|
294
296
|
},
|
|
295
297
|
{
|
|
296
|
-
label: ( localize(
|
|
298
|
+
label: ( localize(11412, "&&Stop Bisect")),
|
|
297
299
|
run: () => undefined
|
|
298
300
|
}
|
|
299
301
|
],
|
|
300
302
|
cancelButton: {
|
|
301
|
-
label: ( localize(
|
|
303
|
+
label: ( localize(11413, "&&Cancel Bisect")),
|
|
302
304
|
run: () => null
|
|
303
305
|
}
|
|
304
306
|
});
|
|
@@ -309,7 +311,7 @@ registerAction2(class extends Action2 {
|
|
|
309
311
|
constructor() {
|
|
310
312
|
super({
|
|
311
313
|
id: 'extension.bisect.stop',
|
|
312
|
-
title: ( localize2(
|
|
314
|
+
title: ( localize2(11414, 'Stop Extension Bisect')),
|
|
313
315
|
category: Categories.Help,
|
|
314
316
|
f1: true,
|
|
315
317
|
precondition: ExtensionBisectUi.ctxIsBisectActive
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { IConfigurationService } from "vscode/vscode/vs/platform/configuration/common/configuration.service";
|
|
2
|
+
import { IDialogService } from "vscode/vscode/vs/platform/dialogs/common/dialogs.service";
|
|
3
|
+
import { ExtensionKind } from "vscode/vscode/vs/platform/environment/common/environment";
|
|
4
|
+
import { ExtensionIdentifier, IExtensionDescription } from "vscode/vscode/vs/platform/extensions/common/extensions";
|
|
5
|
+
import { IFileService } from "vscode/vscode/vs/platform/files/common/files.service";
|
|
6
|
+
import { IInstantiationService } from "vscode/vscode/vs/platform/instantiation/common/instantiation";
|
|
7
|
+
import { ILogService } from "vscode/vscode/vs/platform/log/common/log.service";
|
|
8
|
+
import { INotificationService } from "vscode/vscode/vs/platform/notification/common/notification.service";
|
|
9
|
+
import { IProductService } from "vscode/vscode/vs/platform/product/common/productService.service";
|
|
10
|
+
import { ResolverResult } from "vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver";
|
|
11
|
+
import { IRemoteAuthorityResolverService } from "vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver.service";
|
|
12
|
+
import { IRemoteExtensionsScannerService } from "vscode/vscode/vs/platform/remote/common/remoteExtensionsScanner.service";
|
|
13
|
+
import { ITelemetryService } from "vscode/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
14
|
+
import { IWorkspaceContextService } from "vscode/vscode/vs/platform/workspace/common/workspace.service";
|
|
15
|
+
import { IWorkspaceTrustManagementService } from "vscode/vscode/vs/platform/workspace/common/workspaceTrust.service";
|
|
16
|
+
import { IBrowserWorkbenchEnvironmentService } from "vscode/vscode/vs/workbench/services/environment/browser/environmentService.service";
|
|
17
|
+
import { IWebExtensionsScannerService } from "vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service";
|
|
18
|
+
import { IWorkbenchExtensionEnablementService } from "vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service";
|
|
19
|
+
import { IWorkbenchExtensionManagementService } from "vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service";
|
|
20
|
+
import { IWebWorkerExtensionHostDataProvider } from "./webWorkerExtensionHost.js";
|
|
21
|
+
import { AbstractExtensionService, IExtensionHostFactory, ResolvedExtensions } from "../common/abstractExtensionService.js";
|
|
22
|
+
import { ExtensionDescriptionRegistrySnapshot } from "vscode/vscode/vs/workbench/services/extensions/common/extensionDescriptionRegistry";
|
|
23
|
+
import { ExtensionHostKind, ExtensionRunningPreference, IExtensionHostKindPicker } from "vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind";
|
|
24
|
+
import { IExtensionManifestPropertiesService } from "vscode/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service";
|
|
25
|
+
import { ExtensionRunningLocation } from "@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common/vscode/vs/workbench/services/extensions/common/extensionRunningLocation";
|
|
26
|
+
import { ExtensionRunningLocationTracker } from "../common/extensionRunningLocationTracker.js";
|
|
27
|
+
import { IExtensionHost } from "vscode/vscode/vs/workbench/services/extensions/common/extensions";
|
|
28
|
+
import { IExtensionService } from "vscode/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
29
|
+
import { ExtensionsProposedApi } from "../common/extensionsProposedApi.js";
|
|
30
|
+
import { ILifecycleService } from "vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
|
|
31
|
+
import { IRemoteAgentService } from "vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service";
|
|
32
|
+
import { IRemoteExplorerService } from "vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService.service";
|
|
33
|
+
import { IUserDataInitializationService } from "vscode/vscode/vs/workbench/services/userData/browser/userDataInit.service";
|
|
34
|
+
import { IUserDataProfileService } from "vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service";
|
|
35
|
+
export declare class ExtensionService extends AbstractExtensionService implements IExtensionService {
|
|
36
|
+
private readonly _browserEnvironmentService;
|
|
37
|
+
private readonly _webExtensionsScannerService;
|
|
38
|
+
private readonly _userDataInitializationService;
|
|
39
|
+
private readonly _userDataProfileService;
|
|
40
|
+
private readonly _workspaceTrustManagementService;
|
|
41
|
+
private readonly _remoteExplorerService;
|
|
42
|
+
constructor(extensionsProposedApi: ExtensionsProposedApi, extensionHostFactory: IExtensionHostFactory, extensionHostKindPicker: IExtensionHostKindPicker, instantiationService: IInstantiationService, notificationService: INotificationService, _browserEnvironmentService: IBrowserWorkbenchEnvironmentService, telemetryService: ITelemetryService, extensionEnablementService: IWorkbenchExtensionEnablementService, fileService: IFileService, productService: IProductService, extensionManagementService: IWorkbenchExtensionManagementService, contextService: IWorkspaceContextService, configurationService: IConfigurationService, extensionManifestPropertiesService: IExtensionManifestPropertiesService, _webExtensionsScannerService: IWebExtensionsScannerService, logService: ILogService, remoteAgentService: IRemoteAgentService, remoteExtensionsScannerService: IRemoteExtensionsScannerService, lifecycleService: ILifecycleService, remoteAuthorityResolverService: IRemoteAuthorityResolverService, _userDataInitializationService: IUserDataInitializationService, _userDataProfileService: IUserDataProfileService, _workspaceTrustManagementService: IWorkspaceTrustManagementService, _remoteExplorerService: IRemoteExplorerService, dialogService: IDialogService);
|
|
43
|
+
private _initFetchFileSystem;
|
|
44
|
+
private _scanWebExtensionsPromise;
|
|
45
|
+
protected _scanWebExtensions(): Promise<IExtensionDescription[]>;
|
|
46
|
+
private _resolveExtensionsDefault;
|
|
47
|
+
protected _resolveExtensions(): AsyncIterable<ResolvedExtensions>;
|
|
48
|
+
private _doResolveExtensions;
|
|
49
|
+
protected _onExtensionHostExit(code: number): Promise<void>;
|
|
50
|
+
protected _resolveAuthority(remoteAuthority: string): Promise<ResolverResult>;
|
|
51
|
+
}
|
|
52
|
+
export declare class BrowserExtensionHostFactory implements IExtensionHostFactory {
|
|
53
|
+
private readonly _extensionsProposedApi;
|
|
54
|
+
private readonly _scanWebExtensions;
|
|
55
|
+
private readonly _getExtensionRegistrySnapshotWhenReady;
|
|
56
|
+
protected readonly _instantiationService: IInstantiationService;
|
|
57
|
+
protected readonly _remoteAgentService: IRemoteAgentService;
|
|
58
|
+
protected readonly _remoteAuthorityResolverService: IRemoteAuthorityResolverService;
|
|
59
|
+
protected readonly _extensionEnablementService: IWorkbenchExtensionEnablementService;
|
|
60
|
+
private readonly _logService;
|
|
61
|
+
constructor(_extensionsProposedApi: ExtensionsProposedApi, _scanWebExtensions: () => Promise<IExtensionDescription[]>, _getExtensionRegistrySnapshotWhenReady: () => Promise<ExtensionDescriptionRegistrySnapshot>, _instantiationService: IInstantiationService, _remoteAgentService: IRemoteAgentService, _remoteAuthorityResolverService: IRemoteAuthorityResolverService, _extensionEnablementService: IWorkbenchExtensionEnablementService, _logService: ILogService);
|
|
62
|
+
createExtensionHost(runningLocations: ExtensionRunningLocationTracker, runningLocation: ExtensionRunningLocation, isInitialStart: boolean): IExtensionHost | null;
|
|
63
|
+
protected _createLocalExtensionHostDataProvider(runningLocations: ExtensionRunningLocationTracker, desiredRunningLocation: ExtensionRunningLocation, isInitialStart: boolean): IWebWorkerExtensionHostDataProvider;
|
|
64
|
+
private _createRemoteExtensionHostDataProvider;
|
|
65
|
+
}
|
|
66
|
+
export declare class BrowserExtensionHostKindPicker implements IExtensionHostKindPicker {
|
|
67
|
+
private readonly _logService;
|
|
68
|
+
constructor(_logService: ILogService);
|
|
69
|
+
pickExtensionHostKind(extensionId: ExtensionIdentifier, extensionKinds: ExtensionKind[], isInstalledLocally: boolean, isInstalledRemotely: boolean, preference: ExtensionRunningPreference): ExtensionHostKind | null;
|
|
70
|
+
static pickRunningLocation(extensionKinds: ExtensionKind[], isInstalledLocally: boolean, isInstalledRemotely: boolean, preference: ExtensionRunningPreference): ExtensionHostKind | null;
|
|
71
|
+
}
|
|
72
|
+
export declare class BrowserExtensionService extends ExtensionService {
|
|
73
|
+
constructor(instantiationService: IInstantiationService, notificationService: INotificationService, browserEnvironmentService: IBrowserWorkbenchEnvironmentService, telemetryService: ITelemetryService, extensionEnablementService: IWorkbenchExtensionEnablementService, fileService: IFileService, productService: IProductService, extensionManagementService: IWorkbenchExtensionManagementService, contextService: IWorkspaceContextService, configurationService: IConfigurationService, extensionManifestPropertiesService: IExtensionManifestPropertiesService, webExtensionsScannerService: IWebExtensionsScannerService, logService: ILogService, remoteAgentService: IRemoteAgentService, remoteExtensionsScannerService: IRemoteExtensionsScannerService, lifecycleService: ILifecycleService, remoteAuthorityResolverService: IRemoteAuthorityResolverService, userDataInitializationService: IUserDataInitializationService, userDataProfileService: IUserDataProfileService, workspaceTrustManagementService: IWorkspaceTrustManagementService, remoteExplorerService: IRemoteExplorerService, dialogService: IDialogService);
|
|
74
|
+
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6';
|
|
2
3
|
import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
3
4
|
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
4
5
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
5
6
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
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
|
-
import { getLogs } from 'vscode/vscode/vs/platform/log/browser/log';
|
|
10
|
+
import { getLogs } from '@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common/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 '@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common/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';
|
|
@@ -19,31 +22,33 @@ import { IBrowserWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/
|
|
|
19
22
|
import { IWorkbenchExtensionEnablementService, IWorkbenchExtensionManagementService, IWebExtensionsScannerService } from 'vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service';
|
|
20
23
|
import { WebWorkerExtensionHost } from './webWorkerExtensionHost.js';
|
|
21
24
|
import { FetchFileSystemProvider } from './webWorkerFileSystemProvider.js';
|
|
22
|
-
import { AbstractExtensionService,
|
|
23
|
-
import { extensionRunningPreferenceToString, extensionHostKindToString } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
25
|
+
import { AbstractExtensionService, RemoteExtensions, LocalExtensions, isResolverExtension, ResolverExtensions, checkEnabledAndProposedAPI } from '../common/abstractExtensionService.js';
|
|
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';
|
|
33
37
|
import { IUserDataInitializationService } from 'vscode/vscode/vs/workbench/services/userData/browser/userDataInit.service';
|
|
34
38
|
import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
39
|
+
import { AsyncIterableObject } from 'vscode/vscode/vs/base/common/async';
|
|
35
40
|
|
|
36
41
|
var BrowserExtensionHostKindPicker_1;
|
|
37
42
|
let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
38
43
|
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);
|
|
44
|
+
super({ hasLocalProcess: false, allowRemoteExtensionsInLocalWebWorker: true }, extensionsProposedApi, extensionHostFactory, extensionHostKindPicker, instantiationService, notificationService, _browserEnvironmentService, telemetryService, extensionEnablementService, fileService, productService, extensionManagementService, contextService, configurationService, extensionManifestPropertiesService, logService, remoteAgentService, remoteExtensionsScannerService, lifecycleService, remoteAuthorityResolverService, dialogService);
|
|
40
45
|
this._browserEnvironmentService = _browserEnvironmentService;
|
|
41
46
|
this._webExtensionsScannerService = _webExtensionsScannerService;
|
|
42
47
|
this._userDataInitializationService = _userDataInitializationService;
|
|
43
48
|
this._userDataProfileService = _userDataProfileService;
|
|
44
49
|
this._workspaceTrustManagementService = _workspaceTrustManagementService;
|
|
45
50
|
this._remoteExplorerService = _remoteExplorerService;
|
|
46
|
-
lifecycleService.when(
|
|
51
|
+
lifecycleService.when(LifecyclePhase.Ready).then(async () => {
|
|
47
52
|
await this._userDataInitializationService.initializeInstalledExtensions(this._instantiationService);
|
|
48
53
|
this._initialize();
|
|
49
54
|
});
|
|
@@ -55,37 +60,48 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
55
60
|
this._register(this._fileService.registerProvider(Schemas.https, provider));
|
|
56
61
|
}
|
|
57
62
|
async _scanWebExtensions() {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
if (!this._scanWebExtensionsPromise) {
|
|
64
|
+
this._scanWebExtensionsPromise = (async () => {
|
|
65
|
+
const system = [], user = [], development = [];
|
|
66
|
+
try {
|
|
67
|
+
await Promise.all([
|
|
68
|
+
this._webExtensionsScannerService.scanSystemExtensions().then(extensions => system.push(...( extensions.map(e => toExtensionDescription(e))))),
|
|
69
|
+
this._webExtensionsScannerService.scanUserExtensions(this._userDataProfileService.currentProfile.extensionsResource, { skipInvalidExtensions: true }).then(extensions => user.push(...( extensions.map(e => toExtensionDescription(e))))),
|
|
70
|
+
this._webExtensionsScannerService.scanExtensionsUnderDevelopment().then(extensions => development.push(...( extensions.map(e => toExtensionDescription(e, true)))))
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
this._logService.error(error);
|
|
75
|
+
}
|
|
76
|
+
return dedupExtensions(system, user, [], development, this._logService);
|
|
77
|
+
})();
|
|
68
78
|
}
|
|
69
|
-
return
|
|
79
|
+
return this._scanWebExtensionsPromise;
|
|
70
80
|
}
|
|
71
|
-
async _resolveExtensionsDefault() {
|
|
81
|
+
async _resolveExtensionsDefault(emitter) {
|
|
72
82
|
const [localExtensions, remoteExtensions] = await Promise.all([
|
|
73
83
|
this._scanWebExtensions(),
|
|
74
84
|
this._remoteExtensionsScannerService.scanExtensions()
|
|
75
85
|
]);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
true
|
|
81
|
-
));
|
|
86
|
+
if (remoteExtensions.length) {
|
|
87
|
+
emitter.emitOne(( new RemoteExtensions(remoteExtensions)));
|
|
88
|
+
}
|
|
89
|
+
emitter.emitOne(( new LocalExtensions(localExtensions)));
|
|
82
90
|
}
|
|
83
|
-
|
|
91
|
+
_resolveExtensions() {
|
|
92
|
+
return ( new AsyncIterableObject(emitter => this._doResolveExtensions(emitter)));
|
|
93
|
+
}
|
|
94
|
+
async _doResolveExtensions(emitter) {
|
|
84
95
|
if (!this._browserEnvironmentService.expectsResolverExtension) {
|
|
85
|
-
return this._resolveExtensionsDefault();
|
|
96
|
+
return this._resolveExtensionsDefault(emitter);
|
|
86
97
|
}
|
|
87
98
|
const remoteAuthority = this._environmentService.remoteAuthority;
|
|
88
99
|
await this._workspaceTrustManagementService.workspaceResolved;
|
|
100
|
+
const localExtensions = await this._scanWebExtensions();
|
|
101
|
+
const resolverExtensions = localExtensions.filter(extension => isResolverExtension(extension));
|
|
102
|
+
if (resolverExtensions.length) {
|
|
103
|
+
emitter.emitOne(( new ResolverExtensions(resolverExtensions)));
|
|
104
|
+
}
|
|
89
105
|
let resolverResult;
|
|
90
106
|
try {
|
|
91
107
|
resolverResult = await this._resolveAuthorityInitial(remoteAuthority);
|
|
@@ -95,20 +111,20 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
95
111
|
console.log(`Error handled: Not showing a notification for the error`);
|
|
96
112
|
}
|
|
97
113
|
this._remoteAuthorityResolverService._setResolvedAuthorityError(remoteAuthority, err);
|
|
98
|
-
return this._resolveExtensionsDefault();
|
|
114
|
+
return this._resolveExtensionsDefault(emitter);
|
|
99
115
|
}
|
|
100
116
|
this._remoteAuthorityResolverService._setResolvedAuthority(resolverResult.authority, resolverResult.options);
|
|
101
117
|
this._remoteExplorerService.setTunnelInformation(resolverResult.tunnelInformation);
|
|
102
118
|
const connection = this._remoteAgentService.getConnection();
|
|
103
119
|
if (connection) {
|
|
104
120
|
connection.onDidStateChange(async (e) => {
|
|
105
|
-
if (e.type ===
|
|
121
|
+
if (e.type === PersistentConnectionEventType.ConnectionLost) {
|
|
106
122
|
this._remoteAuthorityResolverService._clearResolvedAuthority(remoteAuthority);
|
|
107
123
|
}
|
|
108
124
|
});
|
|
109
125
|
connection.onReconnecting(() => this._resolveAuthorityAgain());
|
|
110
126
|
}
|
|
111
|
-
return this._resolveExtensionsDefault();
|
|
127
|
+
return this._resolveExtensionsDefault(emitter);
|
|
112
128
|
}
|
|
113
129
|
async _onExtensionHostExit(code) {
|
|
114
130
|
await this._doStopExtensionHosts();
|
|
@@ -118,7 +134,7 @@ let ExtensionService = class ExtensionService extends AbstractExtensionService {
|
|
|
118
134
|
}
|
|
119
135
|
}
|
|
120
136
|
async _resolveAuthority(remoteAuthority) {
|
|
121
|
-
return this._resolveAuthorityOnExtensionHosts(
|
|
137
|
+
return this._resolveAuthorityOnExtensionHosts(ExtensionHostKind.LocalWebWorker, remoteAuthority);
|
|
122
138
|
}
|
|
123
139
|
};
|
|
124
140
|
ExtensionService = ( __decorate([
|
|
@@ -158,14 +174,16 @@ let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
|
|
|
158
174
|
}
|
|
159
175
|
createExtensionHost(runningLocations, runningLocation, isInitialStart) {
|
|
160
176
|
switch (runningLocation.kind) {
|
|
161
|
-
case
|
|
177
|
+
case ExtensionHostKind.LocalProcess: {
|
|
162
178
|
return null;
|
|
163
179
|
}
|
|
164
|
-
case
|
|
165
|
-
const startup = (
|
|
180
|
+
case ExtensionHostKind.LocalWebWorker: {
|
|
181
|
+
const startup = (isInitialStart
|
|
182
|
+
? ExtensionHostStartup.EagerManualStart
|
|
183
|
+
: ExtensionHostStartup.EagerAutoStart);
|
|
166
184
|
return this._instantiationService.createInstance(WebWorkerExtensionHost, runningLocation, startup, this._createLocalExtensionHostDataProvider(runningLocations, runningLocation, isInitialStart));
|
|
167
185
|
}
|
|
168
|
-
case
|
|
186
|
+
case ExtensionHostKind.Remote: {
|
|
169
187
|
const remoteAgentConnection = this._remoteAgentService.getConnection();
|
|
170
188
|
if (remoteAgentConnection) {
|
|
171
189
|
return this._instantiationService.createInstance(RemoteExtensionHost, runningLocation, this._createRemoteExtensionHostDataProvider(runningLocations, remoteAgentConnection.remoteAuthority));
|
|
@@ -202,7 +220,7 @@ let BrowserExtensionHostFactory = class BrowserExtensionHostFactory {
|
|
|
202
220
|
if (!remoteEnv) {
|
|
203
221
|
throw ( new Error('Cannot provide init data for remote extension host!'));
|
|
204
222
|
}
|
|
205
|
-
const myExtensions = runningLocations.filterByExtensionHostKind(snapshot.extensions,
|
|
223
|
+
const myExtensions = runningLocations.filterByExtensionHostKind(snapshot.extensions, ExtensionHostKind.Remote);
|
|
206
224
|
const extensions = ( new ExtensionHostExtensions(snapshot.versionId, snapshot.extensions, ( myExtensions.map(extension => extension.identifier))));
|
|
207
225
|
return {
|
|
208
226
|
connectionData: this._remoteAuthorityResolverService.getConnectionData(remoteAuthority),
|
|
@@ -238,32 +256,32 @@ let BrowserExtensionHostKindPicker = BrowserExtensionHostKindPicker_1 = class Br
|
|
|
238
256
|
let canRunRemotely = false;
|
|
239
257
|
for (const extensionKind of extensionKinds) {
|
|
240
258
|
if (extensionKind === 'ui' && isInstalledRemotely) {
|
|
241
|
-
if (preference ===
|
|
242
|
-
return
|
|
259
|
+
if (preference === ExtensionRunningPreference.Remote) {
|
|
260
|
+
return ExtensionHostKind.Remote;
|
|
243
261
|
}
|
|
244
262
|
else {
|
|
245
263
|
canRunRemotely = true;
|
|
246
264
|
}
|
|
247
265
|
}
|
|
248
266
|
if (extensionKind === 'workspace' && isInstalledRemotely) {
|
|
249
|
-
if (preference ===
|
|
250
|
-
return
|
|
267
|
+
if (preference === ExtensionRunningPreference.None || preference === ExtensionRunningPreference.Remote) {
|
|
268
|
+
return ExtensionHostKind.Remote;
|
|
251
269
|
}
|
|
252
270
|
else {
|
|
253
|
-
result.push(
|
|
271
|
+
result.push(ExtensionHostKind.Remote);
|
|
254
272
|
}
|
|
255
273
|
}
|
|
256
274
|
if (extensionKind === 'web' && (isInstalledLocally || isInstalledRemotely)) {
|
|
257
|
-
if (preference ===
|
|
258
|
-
return
|
|
275
|
+
if (preference === ExtensionRunningPreference.None || preference === ExtensionRunningPreference.Local) {
|
|
276
|
+
return ExtensionHostKind.LocalWebWorker;
|
|
259
277
|
}
|
|
260
278
|
else {
|
|
261
|
-
result.push(
|
|
279
|
+
result.push(ExtensionHostKind.LocalWebWorker);
|
|
262
280
|
}
|
|
263
281
|
}
|
|
264
282
|
}
|
|
265
283
|
if (canRunRemotely) {
|
|
266
|
-
result.push(
|
|
284
|
+
result.push(ExtensionHostKind.Remote);
|
|
267
285
|
}
|
|
268
286
|
return (result.length > 0 ? result[0] : null);
|
|
269
287
|
}
|