提交 c5718c61 编写于 作者: J Johannes Rieken

remove logic to show an exthost-unresponsive message to the user, #60332

上级 6f594d08
...@@ -29,18 +29,16 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti ...@@ -29,18 +29,16 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import { ILifecycleService, LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle'; import { ILifecycleService, LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
import pkg from 'vs/platform/node/package'; import pkg from 'vs/platform/node/package';
import product from 'vs/platform/node/product'; import product from 'vs/platform/node/product';
import { INotificationHandle, INotificationService, Severity } from 'vs/platform/notification/common/notification'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IWindowService, IWindowsService } from 'vs/platform/windows/common/windows'; import { IWindowService, IWindowsService } from 'vs/platform/windows/common/windows';
import { ExtHostCustomersRegistry } from 'vs/workbench/api/electron-browser/extHostCustomers'; import { ExtHostCustomersRegistry } from 'vs/workbench/api/electron-browser/extHostCustomers';
import { ExtHostContext, ExtHostExtensionServiceShape, IExtHostContext, MainContext } from 'vs/workbench/api/node/extHost.protocol'; import { ExtHostContext, ExtHostExtensionServiceShape, IExtHostContext, MainContext } from 'vs/workbench/api/node/extHost.protocol';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
import { ActivationTimes, ExtensionPointContribution, IExtensionDescription, IExtensionService, IExtensionsStatus, IMessage, ProfileSession, IWillActivateEvent, IResponsiveStateChangeEvent } from 'vs/workbench/services/extensions/common/extensions'; import { ActivationTimes, ExtensionPointContribution, IExtensionDescription, IExtensionService, IExtensionsStatus, IMessage, ProfileSession, IWillActivateEvent, IResponsiveStateChangeEvent } from 'vs/workbench/services/extensions/common/extensions';
import { ExtensionMessageCollector, ExtensionPoint, ExtensionsRegistry, IExtensionPoint, IExtensionPointUser, schema } from 'vs/workbench/services/extensions/common/extensionsRegistry'; import { ExtensionMessageCollector, ExtensionPoint, ExtensionsRegistry, IExtensionPoint, IExtensionPointUser, schema } from 'vs/workbench/services/extensions/common/extensionsRegistry';
import { ExtensionHostProcessWorker, IExtensionHostStarter } from 'vs/workbench/services/extensions/electron-browser/extensionHost'; import { ExtensionHostProcessWorker, IExtensionHostStarter } from 'vs/workbench/services/extensions/electron-browser/extensionHost';
import { ExtensionHostProfiler } from 'vs/workbench/services/extensions/electron-browser/extensionHostProfiler'; import { ExtensionHostProfiler } from 'vs/workbench/services/extensions/electron-browser/extensionHostProfiler';
import { RuntimeExtensionsInput } from 'vs/workbench/services/extensions/electron-browser/runtimeExtensionsInput';
import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/node/extensionDescriptionRegistry'; import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/node/extensionDescriptionRegistry';
import { ExtensionScanner, ExtensionScannerInput, IExtensionReference, IExtensionResolver, ILog, IRelaxedExtensionDescription, Translations } from 'vs/workbench/services/extensions/node/extensionPoints'; import { ExtensionScanner, ExtensionScannerInput, IExtensionReference, IExtensionResolver, ILog, IRelaxedExtensionDescription, Translations } from 'vs/workbench/services/extensions/node/extensionPoints';
import { ProxyIdentifier } from 'vs/workbench/services/extensions/node/proxyIdentifier'; import { ProxyIdentifier } from 'vs/workbench/services/extensions/node/proxyIdentifier';
...@@ -284,8 +282,6 @@ export class ExtensionService extends Disposable implements IExtensionService { ...@@ -284,8 +282,6 @@ export class ExtensionService extends Disposable implements IExtensionService {
private readonly _onDidChangeResponsiveChange = new Emitter<IResponsiveStateChangeEvent>(); private readonly _onDidChangeResponsiveChange = new Emitter<IResponsiveStateChangeEvent>();
readonly onDidChangeResponsiveChange: Event<IResponsiveStateChangeEvent> = this._onDidChangeResponsiveChange.event; readonly onDidChangeResponsiveChange: Event<IResponsiveStateChangeEvent> = this._onDidChangeResponsiveChange.event;
private _unresponsiveNotificationHandle: INotificationHandle;
// --- Members used per extension host process // --- Members used per extension host process
private _extensionHostProcessManagers: ExtensionHostProcessManager[]; private _extensionHostProcessManagers: ExtensionHostProcessManager[];
private _extensionHostProcessActivationTimes: { [id: string]: ActivationTimes; }; private _extensionHostProcessActivationTimes: { [id: string]: ActivationTimes; };
...@@ -312,8 +308,6 @@ export class ExtensionService extends Disposable implements IExtensionService { ...@@ -312,8 +308,6 @@ export class ExtensionService extends Disposable implements IExtensionService {
this._onDidRegisterExtensions = new Emitter<void>(); this._onDidRegisterExtensions = new Emitter<void>();
this._unresponsiveNotificationHandle = null;
this._extensionHostProcessManagers = []; this._extensionHostProcessManagers = [];
this._extensionHostProcessActivationTimes = Object.create(null); this._extensionHostProcessActivationTimes = Object.create(null);
this._extensionHostExtensionRuntimeErrors = Object.create(null); this._extensionHostExtensionRuntimeErrors = Object.create(null);
...@@ -392,7 +386,7 @@ export class ExtensionService extends Disposable implements IExtensionService { ...@@ -392,7 +386,7 @@ export class ExtensionService extends Disposable implements IExtensionService {
const extHostProcessWorker = this._instantiationService.createInstance(ExtensionHostProcessWorker, this.getExtensions(), this._extensionHostLogsLocation); const extHostProcessWorker = this._instantiationService.createInstance(ExtensionHostProcessWorker, this.getExtensions(), this._extensionHostLogsLocation);
const extHostProcessManager = this._instantiationService.createInstance(ExtensionHostProcessManager, extHostProcessWorker, null, initialActivationEvents); const extHostProcessManager = this._instantiationService.createInstance(ExtensionHostProcessManager, extHostProcessWorker, null, initialActivationEvents);
extHostProcessManager.onDidCrash(([code, signal]) => this._onExtensionHostCrashed(code, signal)); extHostProcessManager.onDidCrash(([code, signal]) => this._onExtensionHostCrashed(code, signal));
extHostProcessManager.onDidChangeResponsiveState((responsiveState) => this._onResponsiveStateChanged(responsiveState, extHostProcessManager)); extHostProcessManager.onDidChangeResponsiveState((responsiveState) => { this._onDidChangeResponsiveChange.fire({ target: extHostProcessManager, isResponsive: responsiveState === ResponsiveState.Responsive }); });
this._extensionHostProcessManagers.push(extHostProcessManager); this._extensionHostProcessManagers.push(extHostProcessManager);
} }
...@@ -434,60 +428,6 @@ export class ExtensionService extends Disposable implements IExtensionService { ...@@ -434,60 +428,6 @@ export class ExtensionService extends Disposable implements IExtensionService {
); );
} }
private _onResponsiveStateChanged(state: ResponsiveState, manager: ExtensionHostProcessManager): void {
// fire an event when an extension host is changing its state.
this._onDidChangeResponsiveChange.fire({
target: manager,
isResponsive: state === ResponsiveState.Responsive
});
// Do not show the notification anymore
// See https://github.com/Microsoft/vscode/issues/60318
const DISABLE_PROMPT = true;
if (this._isDev || DISABLE_PROMPT) {
return; // do not show any notification when developing an extension (https://github.com/Microsoft/vscode/issues/59251)
}
if (this._unresponsiveNotificationHandle) {
this._unresponsiveNotificationHandle.close();
this._unresponsiveNotificationHandle = null;
}
const showRunningExtensions = {
keepOpen: true,
label: nls.localize('extensionHostProcess.unresponsive.inspect', "Show running extensions"),
run: () => {
this._instantiationService.invokeFunction((accessor) => {
const editorService = accessor.get(IEditorService);
editorService.openEditor(this._instantiationService.createInstance(RuntimeExtensionsInput), { revealIfOpened: true });
});
}
};
const restartExtensionHost = {
label: nls.localize('extensionHostProcess.unresponsive.restart', "Restart Extension Host"),
run: () => {
this.restartExtensionHost();
}
};
if (state === ResponsiveState.Unresponsive) {
this._unresponsiveNotificationHandle = this._notificationService.prompt(
Severity.Warning,
nls.localize('extensionHostProcess.unresponsive', "Extension Host is unresponsive."),
[showRunningExtensions, restartExtensionHost]
);
} else {
this._unresponsiveNotificationHandle = this._notificationService.prompt(
Severity.Info,
nls.localize('extensionHostProcess.responsive', "Extension Host is now responsive."),
[showRunningExtensions]
);
}
}
// ---- begin IExtensionService // ---- begin IExtensionService
public activateByEvent(activationEvent: string): Promise<void> { public activateByEvent(activationEvent: string): Promise<void> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册