Fixes #44956: Propagate extension activation errors in the activate() calls

This commit is contained in:
Alex Dima
2018-04-06 11:55:35 +02:00
parent 36358924de
commit 8e5a374372
3 changed files with 27 additions and 9 deletions

View File

@@ -208,6 +208,17 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
}
}
public activateByIdWithErrors(extensionId: string, reason: ExtensionActivationReason): TPromise<void> {
return this.activateById(extensionId, reason).then(() => {
const extension = this._activator.getActivatedExtension(extensionId);
if (extension.activationFailed) {
// activation failed => bubble up the error as the promise result
return TPromise.wrapError(extension.activationFailedError);
}
return void 0;
});
}
public getAllExtensionDescriptions(): IExtensionDescription[] {
return this._registry.getAllExtensionDescriptions();
}
@@ -371,7 +382,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
};
return this._callActivateOptional(logService, extensionId, extensionModule, context, activationTimesBuilder).then((extensionExports) => {
return new ActivatedExtension(false, activationTimesBuilder.build(), extensionModule, extensionExports, context.subscriptions);
return new ActivatedExtension(false, null, activationTimesBuilder.build(), extensionModule, extensionExports, context.subscriptions);
});
}