From c55aff63798d20673e7656a052d712b050597c7a Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Wed, 24 Mar 2021 10:30:31 +0100 Subject: [PATCH] API feedback (WorkspaceTrustRequest -> WorkspaceTrustRequestOptions) (#119658) --- .../workspace/common/workspaceTrust.ts | 8 +++---- src/vs/vscode.proposed.d.ts | 6 ++--- .../api/browser/mainThreadWorkspace.ts | 6 ++--- .../workbench/api/common/extHost.api.impl.ts | 4 ++-- .../workbench/api/common/extHost.protocol.ts | 4 ++-- .../workbench/api/common/extHostWorkspace.ts | 4 ++-- .../browser/workspace.contribution.ts | 10 ++++---- .../workspaces/common/workspaceTrust.ts | 24 +++++++++---------- .../test/common/testWorkspaceTrustService.ts | 4 ++-- 9 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/vs/platform/workspace/common/workspaceTrust.ts b/src/vs/platform/workspace/common/workspaceTrust.ts index 74bc4625793..d01d2742ab2 100644 --- a/src/vs/platform/workspace/common/workspaceTrust.ts +++ b/src/vs/platform/workspace/common/workspaceTrust.ts @@ -49,20 +49,20 @@ export interface WorkspaceTrustRequestButton { type: 'ContinueWithTrust' | 'ContinueWithoutTrust' | 'Manage' | 'Cancel' } -export interface WorkspaceTrustRequest { +export interface WorkspaceTrustRequestOptions { buttons?: WorkspaceTrustRequestButton[]; message?: string; modal: boolean; } export interface IWorkspaceTrustRequestModel { - readonly trustRequest: WorkspaceTrustRequest | undefined; + readonly trustRequestOptions: WorkspaceTrustRequestOptions | undefined; readonly onDidInitiateRequest: Event; readonly onDidCompleteRequest: Event; readonly onDidCancelRequest: Event; - initiateRequest(request?: WorkspaceTrustRequest): void; + initiateRequest(options?: WorkspaceTrustRequestOptions): void; completeRequest(trustState?: WorkspaceTrustState): void; cancelRequest(): void; } @@ -84,7 +84,7 @@ export interface IWorkspaceTrustService { onDidChangeTrustState: WorkspaceTrustChangeEvent; getWorkspaceTrustState(): WorkspaceTrustState; isWorkspaceTrustEnabled(): boolean; - requireWorkspaceTrust(request?: WorkspaceTrustRequest): Promise; + requireWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise; } export interface IWorkspaceTrustFolderInfo { diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index d78a87836d1..129d1b324b4 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -2792,7 +2792,7 @@ declare module 'vscode' { /** * The object describing the properties of the workspace trust request */ - export interface WorkspaceTrustRequest { + export interface WorkspaceTrustRequestOptions { /** * When true, a modal dialog will be used to request workspace trust. * When false, a badge will be displayed on the Setting activity bar item @@ -2808,10 +2808,10 @@ declare module 'vscode' { /** * Prompt the user to chose whether to trust the current workspace - * @param request Optional object describing the properties of the + * @param options Optional object describing the properties of the * workspace trust request */ - export function requireWorkspaceTrust(request?: WorkspaceTrustRequest): Thenable; + export function requireWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Thenable; /** * Event that fires when the trust state of the current workspace changes diff --git a/src/vs/workbench/api/browser/mainThreadWorkspace.ts b/src/vs/workbench/api/browser/mainThreadWorkspace.ts index 87735e94efa..fd65baf6741 100644 --- a/src/vs/workbench/api/browser/mainThreadWorkspace.ts +++ b/src/vs/workbench/api/browser/mainThreadWorkspace.ts @@ -16,7 +16,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { ILabelService } from 'vs/platform/label/common/label'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { IRequestService } from 'vs/platform/request/common/request'; -import { WorkspaceTrustStateChangeEvent, IWorkspaceTrustService, WorkspaceTrustRequest, WorkspaceTrustState } from 'vs/platform/workspace/common/workspaceTrust'; +import { WorkspaceTrustStateChangeEvent, IWorkspaceTrustService, WorkspaceTrustRequestOptions, WorkspaceTrustState } from 'vs/platform/workspace/common/workspaceTrust'; import { IWorkspace, IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { isUntitledWorkspace } from 'vs/platform/workspaces/common/workspaces'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; @@ -208,8 +208,8 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { // --- trust --- - $requireWorkspaceTrust(request?: WorkspaceTrustRequest): Promise { - return this._workspaceTrustService.requireWorkspaceTrust(request); + $requireWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise { + return this._workspaceTrustService.requireWorkspaceTrust(options); } private getWorkspaceTrustState(): WorkspaceTrustState { diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts index b1285f37734..6d52bf9902b 100644 --- a/src/vs/workbench/api/common/extHost.api.impl.ts +++ b/src/vs/workbench/api/common/extHost.api.impl.ts @@ -913,10 +913,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I checkRequiresWorkspaceTrust(extension); return extHostWorkspace.trustState; }, - requireWorkspaceTrust: (request?: vscode.WorkspaceTrustRequest) => { + requireWorkspaceTrust: (options?: vscode.WorkspaceTrustRequestOptions) => { checkProposedApiEnabled(extension); checkRequiresWorkspaceTrust(extension); - return extHostWorkspace.requireWorkspaceTrust(request); + return extHostWorkspace.requireWorkspaceTrust(options); }, onDidChangeWorkspaceTrustState: (listener, thisArgs?, disposables?) => { return extHostWorkspace.onDidChangeWorkspaceTrustState(listener, thisArgs, disposables); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index b59617130d8..3f0b30d3ab8 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -58,7 +58,7 @@ import { IAccessibilityInformation } from 'vs/platform/accessibility/common/acce import { IExtensionIdWithVersion } from 'vs/platform/userDataSync/common/extensionsStorageSync'; import { InternalTestItem, ITestState, RunTestForProviderRequest, RunTestsRequest, TestIdWithSrc, TestsDiff, ISerializedTestResults } from 'vs/workbench/contrib/testing/common/testCollection'; import { CandidatePort } from 'vs/workbench/services/remote/common/remoteExplorerService'; -import { WorkspaceTrustRequest, WorkspaceTrustStateChangeEvent } from 'vs/platform/workspace/common/workspaceTrust'; +import { WorkspaceTrustRequestOptions, WorkspaceTrustStateChangeEvent } from 'vs/platform/workspace/common/workspaceTrust'; import { ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable'; import { IShellLaunchConfig, ITerminalDimensions, ITerminalLaunchError } from 'vs/platform/terminal/common/terminal'; import { ITerminalProfile } from 'vs/workbench/contrib/terminal/common/terminal'; @@ -891,7 +891,7 @@ export interface MainThreadWorkspaceShape extends IDisposable { $saveAll(includeUntitled?: boolean): Promise; $updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, workspaceFoldersToAdd: { uri: UriComponents, name?: string; }[]): Promise; $resolveProxy(url: string): Promise; - $requireWorkspaceTrust(request?: WorkspaceTrustRequest): Promise; + $requireWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise; } export interface IFileChangeDto { diff --git a/src/vs/workbench/api/common/extHostWorkspace.ts b/src/vs/workbench/api/common/extHostWorkspace.ts index e26905f23f2..07e1a00e390 100644 --- a/src/vs/workbench/api/common/extHostWorkspace.ts +++ b/src/vs/workbench/api/common/extHostWorkspace.ts @@ -563,8 +563,8 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape, IExtHostWorkspac return this._workspaceTrustState; } - requireWorkspaceTrust(request?: vscode.WorkspaceTrustRequest): Promise { - return this._proxy.$requireWorkspaceTrust(request); + requireWorkspaceTrust(options?: vscode.WorkspaceTrustRequestOptions): Promise { + return this._proxy.$requireWorkspaceTrust(options); } $onDidChangeWorkspaceTrustState(state: WorkspaceTrustStateChangeEvent): void { diff --git a/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts b/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts index 8b285d2e546..00c1906c177 100644 --- a/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts +++ b/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts @@ -72,7 +72,7 @@ export class WorkspaceTrustRequestHandler extends Disposable implements IWorkben private registerListeners(): void { this._register(this.requestModel.onDidInitiateRequest(async () => { - if (this.requestModel.trustRequest) { + if (this.requestModel.trustRequestOptions) { this.toggleRequestBadge(true); type WorkspaceTrustRequestedEventClassification = { @@ -88,18 +88,18 @@ export class WorkspaceTrustRequestHandler extends Disposable implements IWorkben }; this.telemetryService.publicLog2('workspaceTrustRequested', { - modal: this.requestModel.trustRequest.modal, + modal: this.requestModel.trustRequestOptions.modal, workspaceId: this.workspaceContextService.getWorkspace().id, extensions: (await this.extensionService.getExtensions()).filter(ext => !!ext.workspaceTrust).map(ext => ext.identifier.value) }); - if (this.requestModel.trustRequest.modal) { + if (this.requestModel.trustRequestOptions.modal) { // Message const defaultMessage = localize('immediateTrustRequestMessage', "A feature you are trying to use may be a security risk if you do not trust the source of the files or folders you currently have open."); - const message = this.requestModel.trustRequest.message ?? defaultMessage; + const message = this.requestModel.trustRequestOptions.message ?? defaultMessage; // Buttons - const buttons = this.requestModel.trustRequest.buttons ?? [ + const buttons = this.requestModel.trustRequestOptions.buttons ?? [ { label: localize('grantWorkspaceTrustButton', "Continue"), type: 'ContinueWithTrust' }, { label: localize('manageWorkspaceTrustButton', "Learn More"), type: 'Manage' } ]; diff --git a/src/vs/workbench/services/workspaces/common/workspaceTrust.ts b/src/vs/workbench/services/workspaces/common/workspaceTrust.ts index 607d6c29305..fba1e83e641 100644 --- a/src/vs/workbench/services/workspaces/common/workspaceTrust.ts +++ b/src/vs/workbench/services/workspaces/common/workspaceTrust.ts @@ -11,7 +11,7 @@ import { IContextKey, IContextKeyService, RawContextKey } from 'vs/platform/cont import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; import { IWorkspace, IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; -import { IWorkspaceTrustModel, WorkspaceTrustRequest, IWorkspaceTrustRequestModel, IWorkspaceTrustService, IWorkspaceTrustStateInfo, WorkspaceTrustState, WorkspaceTrustStateChangeEvent, IWorkspaceTrustFolderInfo } from 'vs/platform/workspace/common/workspaceTrust'; +import { IWorkspaceTrustModel, WorkspaceTrustRequestOptions, IWorkspaceTrustRequestModel, IWorkspaceTrustService, IWorkspaceTrustStateInfo, WorkspaceTrustState, WorkspaceTrustStateChangeEvent, IWorkspaceTrustFolderInfo } from 'vs/platform/workspace/common/workspaceTrust'; import { isEqual, isEqualOrParent } from 'vs/base/common/extpath'; import { EditorModel } from 'vs/workbench/common/editor'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; @@ -184,7 +184,7 @@ export class WorkspaceTrustModel extends Disposable implements IWorkspaceTrustMo } export class WorkspaceTrustRequestModel extends Disposable implements IWorkspaceTrustRequestModel { - trustRequest: WorkspaceTrustRequest | undefined; + trustRequestOptions: WorkspaceTrustRequestOptions | undefined; private readonly _onDidInitiateRequest = this._register(new Emitter()); readonly onDidInitiateRequest: Event = this._onDidInitiateRequest.event; @@ -195,22 +195,22 @@ export class WorkspaceTrustRequestModel extends Disposable implements IWorkspace private readonly _onDidCancelRequest = this._register(new Emitter()); readonly onDidCancelRequest = this._onDidCancelRequest.event; - initiateRequest(request: WorkspaceTrustRequest): void { - if (this.trustRequest && (!request.modal || this.trustRequest.modal)) { + initiateRequest(options: WorkspaceTrustRequestOptions): void { + if (this.trustRequestOptions && (!options.modal || this.trustRequestOptions.modal)) { return; } - this.trustRequest = request; + this.trustRequestOptions = options; this._onDidInitiateRequest.fire(); } completeRequest(trustState?: WorkspaceTrustState): void { - this.trustRequest = undefined; + this.trustRequestOptions = undefined; this._onDidCompleteRequest.fire(trustState); } cancelRequest(): void { - this.trustRequest = undefined; + this.trustRequestOptions = undefined; this._onDidCancelRequest.fire(); } } @@ -416,17 +416,17 @@ export class WorkspaceTrustService extends Disposable implements IWorkspaceTrust return this.configurationService.getValue(WORKSPACE_TRUST_ENABLED) ?? false; } - async requireWorkspaceTrust(request: WorkspaceTrustRequest = { modal: true }): Promise { + async requireWorkspaceTrust(options: WorkspaceTrustRequestOptions = { modal: true }): Promise { // Trusted workspace if (this.currentTrustState === WorkspaceTrustState.Trusted) { return this.currentTrustState; } // Untrusted workspace - soft request - if (this.currentTrustState === WorkspaceTrustState.Untrusted && !request.modal) { + if (this.currentTrustState === WorkspaceTrustState.Untrusted && !options.modal) { return this.currentTrustState; } - if (request.modal) { + if (options.modal) { // Modal request if (!this._modalTrustRequestPromise) { // Create promise @@ -449,10 +449,10 @@ export class WorkspaceTrustService extends Disposable implements IWorkspaceTrust } } - this.requestModel.initiateRequest(request); + this.requestModel.initiateRequest(options); this._ctxWorkspaceTrustPendingRequest.set(true); - return request.modal ? this._modalTrustRequestPromise! : this._trustRequestPromise!; + return options.modal ? this._modalTrustRequestPromise! : this._trustRequestPromise!; } } diff --git a/src/vs/workbench/services/workspaces/test/common/testWorkspaceTrustService.ts b/src/vs/workbench/services/workspaces/test/common/testWorkspaceTrustService.ts index f861677ebf0..2953fcb2328 100644 --- a/src/vs/workbench/services/workspaces/test/common/testWorkspaceTrustService.ts +++ b/src/vs/workbench/services/workspaces/test/common/testWorkspaceTrustService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { Event } from 'vs/base/common/event'; -import { WorkspaceTrustRequest, IWorkspaceTrustRequestModel, IWorkspaceTrustService, WorkspaceTrustChangeEvent, WorkspaceTrustState } from 'vs/platform/workspace/common/workspaceTrust'; +import { WorkspaceTrustRequestOptions, IWorkspaceTrustRequestModel, IWorkspaceTrustService, WorkspaceTrustChangeEvent, WorkspaceTrustState } from 'vs/platform/workspace/common/workspaceTrust'; import { WorkspaceTrustRequestModel } from 'vs/workbench/services/workspaces/common/workspaceTrust'; export class TestWorkspaceTrustService implements IWorkspaceTrustService { @@ -22,7 +22,7 @@ export class TestWorkspaceTrustService implements IWorkspaceTrustService { return true; } - requireWorkspaceTrust(request: WorkspaceTrustRequest): Promise { + requireWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise { return Promise.resolve(WorkspaceTrustState.Trusted); } }