mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
Respect resolver's trust options
This commit is contained in:
parent
78872ce611
commit
30ae7bde85
|
@ -203,7 +203,8 @@ export function activate(context: vscode.ExtensionContext) {
|
|||
proxyServer.listen(0, () => {
|
||||
const port = (<net.AddressInfo>proxyServer.address()).port;
|
||||
outputChannel.appendLine(`Going through proxy at port ${port}`);
|
||||
res(new vscode.ResolvedAuthority('127.0.0.1', port));
|
||||
const r: vscode.ResolverResult = new vscode.ResolvedAuthority('127.0.0.1', port);
|
||||
res(r);
|
||||
});
|
||||
context.subscriptions.push({
|
||||
dispose: () => {
|
||||
|
|
|
@ -18,12 +18,12 @@ export interface ResolvedAuthority {
|
|||
export enum RemoteTrustOption {
|
||||
Unknown = 0,
|
||||
DisableTrust = 1,
|
||||
MachineTrusted = 2,
|
||||
MachineUntrusted = 3
|
||||
MachineTrusted = 2
|
||||
}
|
||||
|
||||
export interface ResolvedOptions {
|
||||
readonly extensionHostEnv?: { [key: string]: string | null };
|
||||
readonly trust?: RemoteTrustOption;
|
||||
}
|
||||
|
||||
export interface TunnelDescription {
|
||||
|
|
3
src/vs/vscode.proposed.d.ts
vendored
3
src/vs/vscode.proposed.d.ts
vendored
|
@ -83,8 +83,7 @@ declare module 'vscode' {
|
|||
export enum RemoteTrustOption {
|
||||
Unknown = 0,
|
||||
DisableTrust = 1,
|
||||
MachineTrusted = 2,
|
||||
MachineUntrusted = 3
|
||||
MachineTrusted = 2
|
||||
}
|
||||
|
||||
export interface ResolvedOptions {
|
||||
|
|
|
@ -668,7 +668,8 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme
|
|||
connectionToken: result.connectionToken
|
||||
};
|
||||
const options: ResolvedOptions = {
|
||||
extensionHostEnv: result.extensionHostEnv
|
||||
extensionHostEnv: result.extensionHostEnv,
|
||||
trust: result.trust
|
||||
};
|
||||
|
||||
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, ResolverResult } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
import { IRemoteAuthorityResolverService, RemoteAuthorityResolverError, RemoteTrustOption, 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';
|
||||
|
@ -44,6 +44,7 @@ import { updateProxyConfigurationsScope } from 'vs/platform/request/common/reque
|
|||
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';
|
||||
|
||||
const MACHINE_PROMPT = false;
|
||||
|
||||
|
@ -74,6 +75,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
@IExtensionGalleryService private readonly _extensionGalleryService: IExtensionGalleryService,
|
||||
@ILogService private readonly _logService: ILogService,
|
||||
@IDialogService private readonly _dialogService: IDialogService,
|
||||
@IWorkspaceTrustManagementService private readonly _workspaceTrustManagementService: IWorkspaceTrustManagementService,
|
||||
) {
|
||||
super(
|
||||
new ExtensionRunningLocationClassifier(
|
||||
|
@ -363,11 +365,20 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
|||
return;
|
||||
}
|
||||
|
||||
if (MACHINE_PROMPT) {
|
||||
let promptForMachineTrust = MACHINE_PROMPT;
|
||||
|
||||
if (resolverResult.options?.trust === RemoteTrustOption.DisableTrust) {
|
||||
promptForMachineTrust = false;
|
||||
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, disconnect.")],
|
||||
[nls.localize('yes', "Yes, connect."), nls.localize('no', "No, do not connect.")],
|
||||
{
|
||||
cancelId: 1,
|
||||
custom: {
|
||||
|
|
Loading…
Reference in a new issue