diff --git a/src/vs/platform/workspace/common/workspaceTrust.ts b/src/vs/platform/workspace/common/workspaceTrust.ts index 74bc462579381b548ccd42fed1d0004221c75d5a..d01d2742ab221af0f67c7c5562ccbec957138ba1 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 d78a87836d1075a3426486c1cb422b198da77f6e..129d1b324b4639e055a3ca579ee5f7adfc58bf49 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 87735e94efa5acb3a75f2746ea9de939c807a51d..fd65baf67412a63cf75dbbf23734c5201dac8b2d 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 b1285f37734f5847442a54eba404cf4516dbc22c..6d52bf9902bf224c80c3f9c1a1b1b59aaa774e46 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 b59617130d85f8af7efad1d64dbf669f7ad50ee5..3f0b30d3ab88bb9b75b96b476c94828b8a51f0bf 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 e26905f23f218660f6557c373c8da7161ce37c2e..07e1a00e390511f6789acfae3882ce29c8b294f9 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 8b285d2e546b2f640589cf54b5ec757948448937..00c1906c177aabbecd4a7454d1be8311897cf7a5 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 607d6c29305a846dc6cc40c30d2c6fab92e85f2c..fba1e83e6416fba155dbe0f6e44915afa1f0a963 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 f861677ebf07e4bbf469df9ef73f0a3a240b14ab..2953fcb2328cacdc174c0e42c8a752f97c78873e 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); } }