update wt static declarations (#120443)
* update wt static declarations * add description * fix hygiene
This commit is contained in:
parent
baeae37965
commit
c7faaf0ea0
6 changed files with 23 additions and 21 deletions
|
@ -10,7 +10,8 @@
|
|||
"aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
|
||||
"enableProposedApi": true,
|
||||
"workspaceTrust": {
|
||||
"required": "onDemand"
|
||||
"request": "onDemand",
|
||||
"description": "The extension requires workspace trust when the workspace version is used because it executes code specified by the workspace."
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.30.0"
|
||||
|
|
|
@ -158,8 +158,8 @@ export interface IExtensionContributions {
|
|||
}
|
||||
|
||||
export type ExtensionKind = 'ui' | 'workspace' | 'web';
|
||||
export type ExtensionWorkspaceTrustRequirement = false | 'onStart' | 'onDemand';
|
||||
export type ExtensionWorkspaceTrust = { required: ExtensionWorkspaceTrustRequirement, description?: string };
|
||||
export type ExtensionWorkspaceTrustRequestType = 'never' | 'onStart' | 'onDemand';
|
||||
export type ExtensionWorkspaceTrust = { request: 'never'; } | { request: 'onStart' | 'onDemand', description: string };
|
||||
|
||||
export function isIExtensionIdentifier(thing: any): thing is IExtensionIdentifier {
|
||||
return thing
|
||||
|
@ -307,13 +307,13 @@ export function isAuthenticaionProviderExtension(manifest: IExtensionManifest):
|
|||
return manifest.contributes && manifest.contributes.authentication ? manifest.contributes.authentication.length > 0 : false;
|
||||
}
|
||||
|
||||
export function getExtensionWorkspaceTrustRequirement(manifest: IExtensionManifest): ExtensionWorkspaceTrustRequirement {
|
||||
if (manifest.workspaceTrust?.required !== undefined) {
|
||||
return manifest.workspaceTrust.required;
|
||||
export function getExtensionWorkspaceTrustRequestType(manifest: IExtensionManifest): ExtensionWorkspaceTrustRequestType {
|
||||
if (manifest.workspaceTrust?.request !== undefined) {
|
||||
return manifest.workspaceTrust.request;
|
||||
}
|
||||
|
||||
if (!manifest.main) {
|
||||
return false;
|
||||
return 'never';
|
||||
}
|
||||
|
||||
return 'onStart';
|
||||
|
|
|
@ -20,7 +20,7 @@ import { Label, RatingsWidget, InstallCountWidget, RecommendationWidget, RemoteB
|
|||
import { IExtensionService, toExtension } from 'vs/workbench/services/extensions/common/extensions';
|
||||
import { IExtensionManagementServerService } from 'vs/workbench/services/extensionManagement/common/extensionManagement';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { getExtensionWorkspaceTrustRequirement, isLanguagePackExtension } from 'vs/platform/extensions/common/extensions';
|
||||
import { getExtensionWorkspaceTrustRequestType, isLanguagePackExtension } from 'vs/platform/extensions/common/extensions';
|
||||
import { registerThemingParticipant, IColorTheme, ICssStyleCollector } from 'vs/platform/theme/common/themeService';
|
||||
import { foreground, listActiveSelectionForeground, listActiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionBackground, listFocusForeground, listFocusBackground, listHoverForeground, listHoverBackground } from 'vs/platform/theme/common/colorRegistry';
|
||||
import { WORKBENCH_BACKGROUND } from 'vs/workbench/common/theme';
|
||||
|
@ -203,13 +203,14 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
|
|||
data.author.textContent = extension.publisherDisplayName;
|
||||
data.description.textContent = extension.description;
|
||||
|
||||
if (extension.local?.manifest.workspaceTrust?.required) {
|
||||
if (extension.local?.manifest.workspaceTrust?.request) {
|
||||
const trustRequirement = extension.local.manifest.workspaceTrust;
|
||||
if (trustRequirement.description) {
|
||||
const requestType = getExtensionWorkspaceTrustRequestType(extension.local.manifest);
|
||||
if (requestType !== 'never' && trustRequirement.request !== 'never') {
|
||||
data.workspaceTrustDescription.textContent = trustRequirement.description;
|
||||
} else if (getExtensionWorkspaceTrustRequirement(extension.local.manifest) === 'onStart') {
|
||||
} else if (requestType === 'onStart') {
|
||||
data.workspaceTrustDescription.textContent = localize('onStartDefaultText', "A trusted workspace is required to enable this extension.");
|
||||
} else if (getExtensionWorkspaceTrustRequirement(extension.local.manifest) === 'onDemand') {
|
||||
} else if (requestType === 'onDemand') {
|
||||
data.workspaceTrustDescription.textContent = localize('onDemandDefaultText', "Some features require a trusted workspace.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ import { URI } from 'vs/base/common/uri';
|
|||
import { localize } from 'vs/nls';
|
||||
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
|
||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { ExtensionWorkspaceTrustRequirement, getExtensionWorkspaceTrustRequirement } from 'vs/platform/extensions/common/extensions';
|
||||
import { ExtensionWorkspaceTrustRequestType, getExtensionWorkspaceTrustRequestType } from 'vs/platform/extensions/common/extensions';
|
||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IPromptChoiceWithMenu } from 'vs/platform/notification/common/notification';
|
||||
import { Link } from 'vs/platform/opener/browser/link';
|
||||
|
@ -295,8 +295,8 @@ export class WorkspaceTrustEditor extends EditorPane {
|
|||
|
||||
// Features List
|
||||
const installedExtensions = await this.instantiationService.invokeFunction(getInstalledExtensions);
|
||||
const onDemandExtensions = await this.getExtensionsByTrustRequirement(installedExtensions, 'onDemand');
|
||||
const onStartExtensions = await this.getExtensionsByTrustRequirement(installedExtensions, 'onStart');
|
||||
const onDemandExtensions = await this.getExtensionsByTrustRequestType(installedExtensions, 'onDemand');
|
||||
const onStartExtensions = await this.getExtensionsByTrustRequestType(installedExtensions, 'onStart');
|
||||
|
||||
this.renderExtensionList(
|
||||
localize('onStartExtensions', "Disabled Extensions"),
|
||||
|
@ -317,8 +317,8 @@ export class WorkspaceTrustEditor extends EditorPane {
|
|||
this.rendering = false;
|
||||
}
|
||||
|
||||
private async getExtensionsByTrustRequirement(extensions: IExtensionStatus[], trustRequirement: ExtensionWorkspaceTrustRequirement): Promise<IExtension[]> {
|
||||
const filtered = extensions.filter(ext => getExtensionWorkspaceTrustRequirement(ext.local.manifest) === trustRequirement);
|
||||
private async getExtensionsByTrustRequestType(extensions: IExtensionStatus[], trustRequestType: ExtensionWorkspaceTrustRequestType): Promise<IExtension[]> {
|
||||
const filtered = extensions.filter(ext => getExtensionWorkspaceTrustRequestType(ext.local.manifest) === trustRequestType);
|
||||
const ids = filtered.map(ext => ext.identifier.id);
|
||||
|
||||
return getExtensions(ids, this.extensionWorkbenchService);
|
||||
|
|
|
@ -12,7 +12,7 @@ import { areSameExtensions } from 'vs/platform/extensionManagement/common/extens
|
|||
import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace';
|
||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
||||
import { getExtensionWorkspaceTrustRequirement, IExtension, isAuthenticaionProviderExtension, isLanguagePackExtension } from 'vs/platform/extensions/common/extensions';
|
||||
import { getExtensionWorkspaceTrustRequestType, IExtension, isAuthenticaionProviderExtension, isLanguagePackExtension } from 'vs/platform/extensions/common/extensions';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { ExtensionKindController } from 'vs/workbench/services/extensions/common/extensionsUtil';
|
||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||
|
@ -276,7 +276,7 @@ export class ExtensionEnablementService extends Disposable implements IWorkbench
|
|||
private _isDisabledByTrustRequirement(extension: IExtension): boolean {
|
||||
const workspaceTrustState = this.workspaceTrustService.getWorkspaceTrustState();
|
||||
|
||||
if (getExtensionWorkspaceTrustRequirement(extension.manifest) === 'onStart') {
|
||||
if (getExtensionWorkspaceTrustRequestType(extension.manifest) === 'onStart') {
|
||||
if (workspaceTrustState !== WorkspaceTrustState.Trusted) {
|
||||
this._addToWorkspaceDisabledExtensionsByTrustRequirement(extension);
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import {
|
|||
ILocalExtension, IGalleryExtension, InstallExtensionEvent, DidInstallExtensionEvent, IExtensionIdentifier, DidUninstallExtensionEvent, IReportedExtension, IGalleryMetadata, IExtensionGalleryService, InstallOptions, UninstallOptions, INSTALL_ERROR_NOT_SUPPORTED
|
||||
} from 'vs/platform/extensionManagement/common/extensionManagement';
|
||||
import { IExtensionManagementServer, IExtensionManagementServerService, IWorkbenchExtensionManagementService } from 'vs/workbench/services/extensionManagement/common/extensionManagement';
|
||||
import { ExtensionType, isLanguagePackExtension, IExtensionManifest, getExtensionWorkspaceTrustRequirement } from 'vs/platform/extensions/common/extensions';
|
||||
import { ExtensionType, isLanguagePackExtension, IExtensionManifest, getExtensionWorkspaceTrustRequestType } from 'vs/platform/extensions/common/extensions';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
|
@ -361,7 +361,7 @@ export class ExtensionManagementService extends Disposable implements IWorkbench
|
|||
}
|
||||
|
||||
protected async checkForWorkspaceTrust(manifest: IExtensionManifest): Promise<void> {
|
||||
if (getExtensionWorkspaceTrustRequirement(manifest) === 'onStart') {
|
||||
if (getExtensionWorkspaceTrustRequestType(manifest) === 'onStart') {
|
||||
const trustState = await this.workspaceTrustService.requestWorkspaceTrust({
|
||||
modal: true,
|
||||
message: localize('extensionInstallWorkspaceTrustMessage', "Enabling this extension requires a trusted workspace."),
|
||||
|
|
Loading…
Reference in a new issue