src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts/WebExtensionManagementService/installFromGallery
class WebExtensionManagementService:	async installFromGallery(gallery: IGalleryExtension): Promise<ILocalExtension> {
		this.logService.info('Installing extension:', gallery.identifier.id);
		this._onInstallExtension.fire({ identifier: gallery.identifier, gallery });
		try {
			const compatibleExtension = await this.extensionGalleryService.getCompatibleExtension(gallery);
			if (!compatibleExtension) {
				throw new ExtensionManagementError(localize('notFoundCompatibleDependency', "Unable to install '{0}' extension because it is not compatible with the current version of VS Code (version {1}).", gallery.identifier.id, this.productService.version), INSTALL_ERROR_INCOMPATIBLE);
			}
			const scannedExtension = await this.webExtensionsScannerService.addExtensionFromGallery(compatibleExtension);
			const local = this.toLocalExtension(scannedExtension);
			this._onDidInstallExtension.fire({ local, identifier: compatibleExtension.identifier, operation: InstallOperation.Install, gallery: compatibleExtension });
			return local;
		} catch (error) {
			this._onDidInstallExtension.fire({ error, identifier: gallery.identifier, operation: InstallOperation.Install, gallery });
			throw error;
		}
	}