update wt static declarations (#120443)

* update wt static declarations

* add description

* fix hygiene
This commit is contained in:
SteVen Batten 2021-04-06 09:27:15 -07:00 committed by GitHub
parent baeae37965
commit c7faaf0ea0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 21 deletions

View file

@ -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"

View file

@ -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';

View file

@ -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.");
}
}

View file

@ -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);

View file

@ -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);
}

View file

@ -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."),