提交 45a1ac99 编写于 作者: S Sandeep Somavarapu

Fix #89823

上级 843a3e64
......@@ -240,8 +240,23 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse
}
if (added.length || updated.length) {
const installedExtensions = await this.extensionManagementService.getInstalled(ExtensionType.User);
await Promise.all([...added, ...updated].map(async e => {
const installedExtensions = await this.extensionManagementService.getInstalled();
const installedExtension = installedExtensions.filter(installed => areSameExtensions(installed.identifier, e.identifier))[0];
// Builtin Extension: Sync only enablement state
if (installedExtension && installedExtension.type === ExtensionType.System) {
if (e.enabled) {
this.logService.info('Extensions: Enabling extension.', e.identifier.id);
await this.extensionEnablementService.enableExtension(e.identifier);
} else {
this.logService.info('Extensions: Disabling extension.', e.identifier.id);
await this.extensionEnablementService.disableExtension(e.identifier);
}
removeFromSkipped.push(e.identifier);
return;
}
const extension = await this.extensionGalleryService.getCompatibleExtension(e.identifier, e.version);
if (extension) {
try {
......@@ -253,7 +268,7 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse
await this.extensionEnablementService.disableExtension(extension.identifier);
}
// Install only if the extension does not exist
if (!installedExtensions.some(installed => areSameExtensions(installed.identifier, extension.identifier) && installed.manifest.version === extension.version)) {
if (!installedExtension || installedExtension.manifest.version !== extension.version) {
this.logService.info('Extensions: Installing extension.', e.identifier.id, extension.version);
await this.extensionManagementService.installFromGallery(extension);
removeFromSkipped.push(extension.identifier);
......@@ -284,7 +299,7 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse
}
private async getLocalExtensions(): Promise<ISyncExtension[]> {
const installedExtensions = await this.extensionManagementService.getInstalled(ExtensionType.User);
const installedExtensions = await this.extensionManagementService.getInstalled();
const disabledExtensions = await this.extensionEnablementService.getDisabledExtensionsAsync();
return installedExtensions
.map(({ identifier }) => ({ identifier, enabled: !disabledExtensions.some(disabledExtension => areSameExtensions(disabledExtension, identifier)) }));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册