Skip to content

Commit 29dd4e7

Browse files
committed
Keep track of activating extensions
1 parent 6531f25 commit 29dd4e7

4 files changed

Lines changed: 17 additions & 5 deletions

File tree

src/vs/workbench/api/electron-browser/mainThreadExtensionService.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ export class MainThreadExtensionService implements MainThreadExtensionServiceSha
3030
$localShowMessage(severity: Severity, msg: string): void {
3131
this._extensionService._logOrShowMessage(severity, msg);
3232
}
33-
$onExtensionActivated(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void {
34-
this._extensionService._onExtensionActivated(extensionId, startup, codeLoadingTime, activateCallTime, activateResolvedTime, activationEvent);
33+
$onWillActivateExtension(extensionId: string): void {
34+
this._extensionService._onWillActivateExtension(extensionId);
35+
}
36+
$onDidActivateExtension(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void {
37+
this._extensionService._onDidActivateExtension(extensionId, startup, codeLoadingTime, activateCallTime, activateResolvedTime, activationEvent);
3538
}
3639
$onExtensionRuntimeError(extensionId: string, data: SerializedError): void {
3740
const error = new Error();

src/vs/workbench/api/node/extHost.protocol.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,8 @@ export interface MainThreadTaskShape extends IDisposable {
538538

539539
export interface MainThreadExtensionServiceShape extends IDisposable {
540540
$localShowMessage(severity: Severity, msg: string): void;
541-
$onExtensionActivated(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void;
541+
$onWillActivateExtension(extensionId: string): void;
542+
$onDidActivateExtension(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void;
542543
$onExtensionActivationFailed(extensionId: string): void;
543544
$onExtensionRuntimeError(extensionId: string, error: SerializedError): void;
544545
$addMessage(extensionId: string, severity: Severity, message: string): void;

src/vs/workbench/api/node/extHostExtensionService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,11 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
345345
// --- impl
346346

347347
private _activateExtension(extensionDescription: IExtensionDescription, reason: ExtensionActivationReason): Promise<ActivatedExtension> {
348+
this._mainThreadExtensionsProxy.$onWillActivateExtension(extensionDescription.id);
348349
return this._doActivateExtension(extensionDescription, reason).then((activatedExtension) => {
349350
const activationTimes = activatedExtension.activationTimes;
350351
let activationEvent = (reason instanceof ExtensionActivatedByEvent ? reason.activationEvent : null);
351-
this._mainThreadExtensionsProxy.$onExtensionActivated(extensionDescription.id, activationTimes.startup, activationTimes.codeLoadingTime, activationTimes.activateCallTime, activationTimes.activateResolvedTime, activationEvent);
352+
this._mainThreadExtensionsProxy.$onDidActivateExtension(extensionDescription.id, activationTimes.startup, activationTimes.codeLoadingTime, activationTimes.activateCallTime, activationTimes.activateResolvedTime, activationEvent);
352353
this._logExtensionActivationTimes(extensionDescription, reason, 'success', activationTimes);
353354
return activatedExtension;
354355
}, (err) => {

src/vs/workbench/services/extensions/electron-browser/extensionService.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export class ExtensionService extends Disposable implements IExtensionService {
6161

6262
// --- Members used per extension host process
6363
private _extensionHostProcessManagers: ExtensionHostProcessManager[];
64+
private _extensionHostActiveExtensions: { [id: string]: boolean; };
6465
private _extensionHostProcessActivationTimes: { [id: string]: ActivationTimes; };
6566
private _extensionHostExtensionRuntimeErrors: { [id: string]: Error[]; };
6667

@@ -84,6 +85,7 @@ export class ExtensionService extends Disposable implements IExtensionService {
8485
this._extensionScanner = this._instantiationService.createInstance(CachedExtensionScanner);
8586

8687
this._extensionHostProcessManagers = [];
88+
this._extensionHostActiveExtensions = Object.create(null);
8789
this._extensionHostProcessActivationTimes = Object.create(null);
8890
this._extensionHostExtensionRuntimeErrors = Object.create(null);
8991

@@ -143,6 +145,7 @@ export class ExtensionService extends Disposable implements IExtensionService {
143145
this._extensionHostProcessManagers[i].dispose();
144146
}
145147
this._extensionHostProcessManagers = [];
148+
this._extensionHostActiveExtensions = Object.create(null);
146149
this._extensionHostProcessActivationTimes = Object.create(null);
147150
this._extensionHostExtensionRuntimeErrors = Object.create(null);
148151

@@ -518,7 +521,11 @@ export class ExtensionService extends Disposable implements IExtensionService {
518521
}
519522
}
520523

521-
public _onExtensionActivated(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void {
524+
public _onWillActivateExtension(extensionId: string): void {
525+
this._extensionHostActiveExtensions[extensionId] = true;
526+
}
527+
528+
public _onDidActivateExtension(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void {
522529
this._extensionHostProcessActivationTimes[extensionId] = new ActivationTimes(startup, codeLoadingTime, activateCallTime, activateResolvedTime, activationEvent);
523530
this._onDidChangeExtensionsStatus.fire([extensionId]);
524531
}

0 commit comments

Comments
 (0)