mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 13:46:13 +00:00
Add ResolvedOptions.isTrusted
This commit is contained in:
parent
49e96be2fc
commit
c650993dd3
|
@ -15,15 +15,9 @@ export interface ResolvedAuthority {
|
|||
readonly connectionToken: string | undefined;
|
||||
}
|
||||
|
||||
export enum RemoteTrustOption {
|
||||
Unknown = 0,
|
||||
DisableTrust = 1,
|
||||
MachineTrusted = 2
|
||||
}
|
||||
|
||||
export interface ResolvedOptions {
|
||||
readonly extensionHostEnv?: { [key: string]: string | null };
|
||||
readonly trust?: RemoteTrustOption;
|
||||
readonly isTrusted?: boolean;
|
||||
}
|
||||
|
||||
export interface TunnelDescription {
|
||||
|
|
8
src/vs/vscode.proposed.d.ts
vendored
8
src/vs/vscode.proposed.d.ts
vendored
|
@ -80,16 +80,10 @@ declare module 'vscode' {
|
|||
constructor(host: string, port: number, connectionToken?: string);
|
||||
}
|
||||
|
||||
export enum RemoteTrustOption {
|
||||
Unknown = 0,
|
||||
DisableTrust = 1,
|
||||
MachineTrusted = 2
|
||||
}
|
||||
|
||||
export interface ResolvedOptions {
|
||||
extensionHostEnv?: { [key: string]: string | null; };
|
||||
|
||||
trust?: RemoteTrustOption;
|
||||
isTrusted?: boolean;
|
||||
}
|
||||
|
||||
export interface TunnelOptions {
|
||||
|
|
|
@ -84,7 +84,6 @@ import { IExtHostSecretState } from 'vs/workbench/api/common/exHostSecretState';
|
|||
import { IExtHostEditorTabs } from 'vs/workbench/api/common/extHostEditorTabs';
|
||||
import { IExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry';
|
||||
import { ExtHostNotebookKernels } from 'vs/workbench/api/common/extHostNotebookKernels';
|
||||
import { RemoteTrustOption } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
import { TextSearchCompleteMessageType } from 'vs/workbench/services/search/common/searchExtTypes';
|
||||
import { ExtHostNotebookRenderers } from 'vs/workbench/api/common/extHostNotebookRenderers';
|
||||
import { Schemas } from 'vs/base/common/network';
|
||||
|
@ -1250,7 +1249,6 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
|
|||
InlayHint: extHostTypes.InlayHint,
|
||||
InlayHintKind: extHostTypes.InlayHintKind,
|
||||
RemoteAuthorityResolverError: extHostTypes.RemoteAuthorityResolverError,
|
||||
RemoteTrustOption: RemoteTrustOption,
|
||||
ResolvedAuthority: extHostTypes.ResolvedAuthority,
|
||||
SourceControlInputBoxValidationType: extHostTypes.SourceControlInputBoxValidationType,
|
||||
ExtensionRuntime: extHostTypes.ExtensionRuntime,
|
||||
|
|
|
@ -668,7 +668,7 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme
|
|||
};
|
||||
const options: ResolvedOptions = {
|
||||
extensionHostEnv: result.extensionHostEnv,
|
||||
trust: result.trust
|
||||
isTrusted: result.isTrusted
|
||||
};
|
||||
|
||||
return {
|
||||
|
|
|
@ -15,7 +15,7 @@ import { IWorkbenchExtensionEnablementService, EnablementState, IWebExtensionsSc
|
|||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { IRemoteExtensionHostDataProvider, RemoteExtensionHost, IRemoteExtensionHostInitData } from 'vs/workbench/services/extensions/common/remoteExtensionHost';
|
||||
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
|
||||
import { IRemoteAuthorityResolverService, RemoteAuthorityResolverError, RemoteTrustOption, ResolverResult } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
import { IRemoteAuthorityResolverService, RemoteAuthorityResolverError, ResolverResult } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { ILifecycleService, LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle';
|
||||
import { INotificationService, Severity } from 'vs/platform/notification/common/notification';
|
||||
|
@ -42,13 +42,9 @@ import { Schemas } from 'vs/base/common/network';
|
|||
import { ExtensionHostExitCode } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
|
||||
import { updateProxyConfigurationsScope } from 'vs/platform/request/common/request';
|
||||
import { ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry';
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IWorkspaceTrustManagementService } from 'vs/platform/workspace/common/workspaceTrust';
|
||||
import { IExtensionManifestPropertiesService } from 'vs/workbench/services/extensions/common/extensionManifestPropertiesService';
|
||||
|
||||
const MACHINE_PROMPT = false;
|
||||
|
||||
export class ExtensionService extends AbstractExtensionService implements IExtensionService {
|
||||
|
||||
private readonly _enableLocalWebWorker: boolean;
|
||||
|
@ -75,7 +71,6 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
@IRemoteExplorerService private readonly _remoteExplorerService: IRemoteExplorerService,
|
||||
@IExtensionGalleryService private readonly _extensionGalleryService: IExtensionGalleryService,
|
||||
@ILogService private readonly _logService: ILogService,
|
||||
@IDialogService private readonly _dialogService: IDialogService,
|
||||
@IWorkspaceTrustManagementService private readonly _workspaceTrustManagementService: IWorkspaceTrustManagementService,
|
||||
@IExtensionManifestPropertiesService extensionManifestPropertiesService: IExtensionManifestPropertiesService,
|
||||
) {
|
||||
|
@ -368,36 +363,8 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
return;
|
||||
}
|
||||
|
||||
let promptForMachineTrust = MACHINE_PROMPT;
|
||||
|
||||
if (resolverResult.options?.trust === RemoteTrustOption.DisableTrust) {
|
||||
promptForMachineTrust = false;
|
||||
if (resolverResult.options?.isTrusted) {
|
||||
await this._workspaceTrustManagementService.setWorkspaceTrust(true);
|
||||
} else if (resolverResult.options?.trust === RemoteTrustOption.MachineTrusted) {
|
||||
promptForMachineTrust = false;
|
||||
}
|
||||
|
||||
if (promptForMachineTrust) {
|
||||
const dialogResult = await this._dialogService.show(
|
||||
Severity.Info,
|
||||
nls.localize('machineTrustQuestion', "Do you trust the machine you're connecting to?"),
|
||||
[nls.localize('yes', "Yes, connect."), nls.localize('no', "No, do not connect.")],
|
||||
{
|
||||
cancelId: 1,
|
||||
custom: {
|
||||
icon: Codicon.remoteExplorer
|
||||
},
|
||||
// checkbox: { label: nls.localize('remember', "Remember my choice"), checked: true }
|
||||
}
|
||||
);
|
||||
|
||||
if (dialogResult.choice !== 0) {
|
||||
// Did not confirm trust
|
||||
this._notificationService.notify({ severity: Severity.Warning, message: nls.localize('trustFailure', "Refused to connect to untrusted machine.") });
|
||||
// Proceed with the local extension host
|
||||
await this._startLocalExtensionHost(localExtensions);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// set the resolved authority
|
||||
|
|
Loading…
Reference in a new issue