align extension scanning

- Extract extension scanning, validating and nls replacement into `INativeExtensionsScannerService`
- Use `INativeExtensionsScannerService` for scanning in Desktop and Remote extension managements and extension hosts
- Represent invalid extensions in Extensions UI
- Remove prompting for invalid extensions while scanning in Desktop Extension Host in Dev mode
This commit is contained in:
Sandeep Somavarapu
2022-04-01 11:02:02 +05:30
parent 8b7086afdb
commit a51801b465
20 changed files with 1048 additions and 1318 deletions

View File

@@ -68,6 +68,7 @@ import { REMOTE_TERMINAL_CHANNEL_NAME } from 'vs/workbench/contrib/terminal/comm
import { RemoteExtensionLogFileName } from 'vs/workbench/services/remote/common/remoteAgentService';
import { REMOTE_FILE_SYSTEM_CHANNEL_NAME } from 'vs/workbench/services/remote/common/remoteFileSystemProviderClient';
import { ExtensionHostStatusService, IExtensionHostStatusService } from 'vs/server/node/extensionHostStatusService';
import { NativeExtensionsScannerService, INativeExtensionsScannerService } from 'vs/platform/extensionManagement/common/extensionsScannerService';
const eventPrefix = 'monacoworkbench';
@@ -152,6 +153,7 @@ export async function setupServerServices(connectionToken: ServerConnectionToken
const downloadChannel = socketServer.getChannel('download', router);
services.set(IDownloadService, new DownloadServiceChannelClient(downloadChannel, () => getUriTransformer('renderer') /* TODO: @Sandy @Joao need dynamic context based router */));
services.set(INativeExtensionsScannerService, new SyncDescriptor(NativeExtensionsScannerService));
services.set(IExtensionManagementService, new SyncDescriptor(ExtensionManagementService));
const instantiationService: IInstantiationService = new InstantiationService(services);
@@ -176,7 +178,8 @@ export async function setupServerServices(connectionToken: ServerConnectionToken
instantiationService.invokeFunction(accessor => {
const extensionManagementService = accessor.get(IExtensionManagementService);
const remoteExtensionEnvironmentChannel = new RemoteAgentEnvironmentChannel(connectionToken, environmentService, extensionManagementCLIService, extensionManagementService, logService, productService, extensionHostStatusService, fileService);
const extensionsScannerService = accessor.get(INativeExtensionsScannerService);
const remoteExtensionEnvironmentChannel = new RemoteAgentEnvironmentChannel(connectionToken, environmentService, extensionManagementCLIService, logService, extensionHostStatusService, extensionsScannerService);
socketServer.registerChannel('remoteextensionsenvironment', remoteExtensionEnvironmentChannel);
const telemetryChannel = new ServerTelemetryChannel(accessor.get(IServerTelemetryService), appInsightsAppender);