提交 95454586 编写于 作者: S Sandeep Somavarapu

Update the extension when it is not from a server

上级 ee30d444
......@@ -12,7 +12,7 @@ import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
import { IPagedRenderer } from 'vs/base/browser/ui/list/listPaging';
import { Event } from 'vs/base/common/event';
import { domEvent } from 'vs/base/browser/event';
import { IExtension, ExtensionContainers } from 'vs/workbench/contrib/extensions/common/extensions';
import { IExtension, ExtensionContainers, ExtensionState, IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions';
import { InstallAction, UpdateAction, ManageExtensionAction, ReloadAction, MaliciousStatusLabelAction, ExtensionActionItem, StatusLabelAction, RemoteInstallAction } from 'vs/workbench/contrib/extensions/electron-browser/extensionsActions';
import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
import { Label, RatingsWidget, InstallCountWidget, RecommendationWidget, RemoteBadgeWidget } from 'vs/workbench/contrib/extensions/electron-browser/extensionsWidgets';
......@@ -54,7 +54,8 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
@IInstantiationService private readonly instantiationService: IInstantiationService,
@INotificationService private readonly notificationService: INotificationService,
@IExtensionService private readonly extensionService: IExtensionService,
@IExtensionManagementServerService private readonly extensionManagementServerService: IExtensionManagementServerService
@IExtensionManagementServerService private readonly extensionManagementServerService: IExtensionManagementServerService,
@IExtensionsWorkbenchService private readonly extensionsWorkbenchService: IExtensionsWorkbenchService
) { }
get templateId() { return 'extension'; }
......@@ -133,6 +134,11 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
renderElement(extension: IExtension, index: number, data: ITemplateData): void {
removeClass(data.element, 'loading');
if (extension.state !== ExtensionState.Uninstalled && !extension.server) {
// Get the extension if it is installed and has no server information
extension = this.extensionsWorkbenchService.local.filter(e => e.server === extension.server && areSameExtensions(e.identifier, extension.identifier))[0] || extension;
}
data.extensionDisposables = dispose(data.extensionDisposables);
const updateEnablement = async () => {
......
......@@ -502,7 +502,7 @@ class Extensions extends Disposable {
}
}
private getExtensionState(extension: Extension): ExtensionState {
getExtensionState(extension: Extension): ExtensionState {
if (extension.gallery && this.installing.some(e => !!e.gallery && areSameExtensions(e.gallery.identifier, extension.gallery!.identifier))) {
return ExtensionState.Installing;
}
......@@ -680,7 +680,7 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
if (installed) {
return installed;
}
const extension = new Extension(this.galleryService, ext => ExtensionState.Uninstalled, undefined, undefined, gallery, this.telemetryService, this.logService, this.fileService);
const extension = new Extension(this.galleryService, ext => this.getExtensionState(ext), undefined, undefined, gallery, this.telemetryService, this.logService, this.fileService);
if (maliciousExtensionSet.has(extension.identifier.id)) {
extension.isMalicious = true;
}
......@@ -702,6 +702,16 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
return null;
}
private getExtensionState(extension: Extension): ExtensionState {
if (this.remoteExtensions) {
const state = this.remoteExtensions.getExtensionState(extension);
if (state !== ExtensionState.Uninstalled) {
return state;
}
}
return this.localExtensions.getExtensionState(extension);
}
checkForUpdates(): Promise<void> {
return Promise.resolve(this.syncDelayer.trigger(() => this.syncWithGallery(), 0));
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册