mirror of
https://github.com/Microsoft/vscode
synced 2024-10-06 03:17:00 +00:00
Fixes #73656: Do not activate extensions if the search for glob patterns from workspaceContains
times out
This commit is contained in:
parent
39155b5711
commit
9fd6ee7095
|
@ -551,6 +551,7 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme
|
|||
|
||||
const localWithRemote = !this._initData.remote.isRemote && !!this._initData.remote.authority;
|
||||
const host: IExtensionActivationHost = {
|
||||
logService: this._logService,
|
||||
folders: folders.map(folder => folder.uri),
|
||||
forceUsingSearch: localWithRemote,
|
||||
exists: (uri) => this._hostUtils.exists(uri.fsPath),
|
||||
|
|
|
@ -12,10 +12,12 @@ import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiati
|
|||
import { QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder';
|
||||
import { ISearchService } from 'vs/workbench/services/search/common/search';
|
||||
import { toWorkspaceFolder } from 'vs/platform/workspace/common/workspace';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
|
||||
const WORKSPACE_CONTAINS_TIMEOUT = 7000;
|
||||
|
||||
export interface IExtensionActivationHost {
|
||||
readonly logService: ILogService;
|
||||
readonly folders: readonly UriComponents[];
|
||||
readonly forceUsingSearch: boolean;
|
||||
|
||||
|
@ -87,7 +89,7 @@ async function _activateIfGlobPatterns(host: IExtensionActivationHost, extension
|
|||
|
||||
const timer = setTimeout(async () => {
|
||||
tokenSource.cancel();
|
||||
activate(`workspaceContainsTimeout:${globPatterns.join(',')}`);
|
||||
host.logService.info(`Not activating extension '${extensionId.value}': Timed out while searching for 'workspaceContains' pattern ${globPatterns.join(',')}`);
|
||||
}, WORKSPACE_CONTAINS_TIMEOUT);
|
||||
|
||||
let exists: boolean = false;
|
||||
|
|
|
@ -47,13 +47,13 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
@IExtensionManagementService extensionManagementService: IExtensionManagementService,
|
||||
@IWorkspaceContextService contextService: IWorkspaceContextService,
|
||||
@IConfigurationService configurationService: IConfigurationService,
|
||||
@IExtensionManifestPropertiesService extensionManifestPropertiesService: IExtensionManifestPropertiesService,
|
||||
@IWebExtensionsScannerService webExtensionsScannerService: IWebExtensionsScannerService,
|
||||
@ILogService logService: ILogService,
|
||||
@IRemoteAuthorityResolverService private readonly _remoteAuthorityResolverService: IRemoteAuthorityResolverService,
|
||||
@IRemoteAgentService private readonly _remoteAgentService: IRemoteAgentService,
|
||||
@IWebExtensionsScannerService webExtensionsScannerService: IWebExtensionsScannerService,
|
||||
@ILifecycleService private readonly _lifecycleService: ILifecycleService,
|
||||
@IExtensionManifestPropertiesService extensionManifestPropertiesService: IExtensionManifestPropertiesService,
|
||||
@IUserDataInitializationService private readonly _userDataInitializationService: IUserDataInitializationService,
|
||||
@ILogService private readonly _logService: ILogService,
|
||||
) {
|
||||
super(
|
||||
instantiationService,
|
||||
|
@ -67,7 +67,8 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
contextService,
|
||||
configurationService,
|
||||
extensionManifestPropertiesService,
|
||||
webExtensionsScannerService
|
||||
webExtensionsScannerService,
|
||||
logService
|
||||
);
|
||||
|
||||
this._runningLocation = new Map<string, ExtensionRunningLocation>();
|
||||
|
|
|
@ -183,6 +183,7 @@ export abstract class AbstractExtensionService extends Disposable implements IEx
|
|||
@IConfigurationService protected readonly _configurationService: IConfigurationService,
|
||||
@IExtensionManifestPropertiesService protected readonly _extensionManifestPropertiesService: IExtensionManifestPropertiesService,
|
||||
@IWebExtensionsScannerService protected readonly _webExtensionsScannerService: IWebExtensionsScannerService,
|
||||
@ILogService protected readonly _logService: ILogService,
|
||||
) {
|
||||
super();
|
||||
|
||||
|
@ -495,6 +496,7 @@ export abstract class AbstractExtensionService extends Disposable implements IEx
|
|||
const workspace = await this._contextService.getCompleteWorkspace();
|
||||
const forceUsingSearch = !!this._environmentService.remoteAuthority;
|
||||
const host: IWorkspaceContainsActivationHost = {
|
||||
logService: this._logService,
|
||||
folders: workspace.folders.map(folder => folder.uri),
|
||||
forceUsingSearch: forceUsingSearch,
|
||||
exists: (uri) => this._fileService.exists(uri),
|
||||
|
|
|
@ -57,7 +57,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
constructor(
|
||||
@IInstantiationService instantiationService: IInstantiationService,
|
||||
@INotificationService notificationService: INotificationService,
|
||||
@IWorkbenchEnvironmentService _environmentService: IWorkbenchEnvironmentService,
|
||||
@IWorkbenchEnvironmentService environmentService: IWorkbenchEnvironmentService,
|
||||
@ITelemetryService telemetryService: ITelemetryService,
|
||||
@IWorkbenchExtensionEnablementService extensionEnablementService: IWorkbenchExtensionEnablementService,
|
||||
@IFileService fileService: IFileService,
|
||||
|
@ -65,22 +65,22 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
@IExtensionManagementService extensionManagementService: IExtensionManagementService,
|
||||
@IWorkspaceContextService contextService: IWorkspaceContextService,
|
||||
@IConfigurationService configurationService: IConfigurationService,
|
||||
@IExtensionManifestPropertiesService extensionManifestPropertiesService: IExtensionManifestPropertiesService,
|
||||
@IWebExtensionsScannerService webExtensionsScannerService: IWebExtensionsScannerService,
|
||||
@ILogService logService: ILogService,
|
||||
@IRemoteAgentService private readonly _remoteAgentService: IRemoteAgentService,
|
||||
@IRemoteAuthorityResolverService private readonly _remoteAuthorityResolverService: IRemoteAuthorityResolverService,
|
||||
@ILifecycleService private readonly _lifecycleService: ILifecycleService,
|
||||
@IWebExtensionsScannerService webExtensionsScannerService: IWebExtensionsScannerService,
|
||||
@INativeHostService private readonly _nativeHostService: INativeHostService,
|
||||
@IHostService private readonly _hostService: IHostService,
|
||||
@IRemoteExplorerService private readonly _remoteExplorerService: IRemoteExplorerService,
|
||||
@IExtensionGalleryService private readonly _extensionGalleryService: IExtensionGalleryService,
|
||||
@ILogService private readonly _logService: ILogService,
|
||||
@IWorkspaceTrustManagementService private readonly _workspaceTrustManagementService: IWorkspaceTrustManagementService,
|
||||
@IExtensionManifestPropertiesService extensionManifestPropertiesService: IExtensionManifestPropertiesService,
|
||||
) {
|
||||
super(
|
||||
instantiationService,
|
||||
notificationService,
|
||||
_environmentService,
|
||||
environmentService,
|
||||
telemetryService,
|
||||
extensionEnablementService,
|
||||
fileService,
|
||||
|
@ -89,7 +89,8 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
contextService,
|
||||
configurationService,
|
||||
extensionManifestPropertiesService,
|
||||
webExtensionsScannerService
|
||||
webExtensionsScannerService,
|
||||
logService
|
||||
);
|
||||
|
||||
[this._enableLocalWebWorker, this._lazyLocalWebWorker] = this._isLocalWebWorkerEnabled();
|
||||
|
|
Loading…
Reference in a new issue