Merge from vscode c873727e8bac95e7cbf5b154a9e6ae0986f2ce18 (#6446)

This commit is contained in:
Anthony Dresser
2019-07-19 19:21:54 -07:00
committed by GitHub
parent 5c63f7bdb5
commit b21435743d
63 changed files with 2049 additions and 1000 deletions

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { ResolvedAuthority, IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver';
import { ResolvedAuthority, IRemoteAuthorityResolverService, ResolverResult } from 'vs/platform/remote/common/remoteAuthorityResolver';
export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverService {
@@ -12,12 +12,16 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
constructor() {
}
resolveAuthority(authority: string): Promise<ResolvedAuthority> {
resolveAuthority(authority: string): Promise<ResolverResult> {
if (authority.indexOf(':') >= 0) {
const pieces = authority.split(':');
return Promise.resolve({ authority, host: pieces[0], port: parseInt(pieces[1], 10) });
return Promise.resolve({
authority: { authority, host: pieces[0], port: parseInt(pieces[1], 10) }
});
}
return Promise.resolve({ authority, host: authority, port: 80 });
return Promise.resolve({
authority: { authority, host: authority, port: 80 }
});
}
clearResolvedAuthority(authority: string): void {

View File

@@ -163,6 +163,7 @@ export interface IRemoteExtensionHostStartParams {
debugId?: string;
break?: boolean;
port?: number | null;
env?: { [key: string]: string | null };
}
interface IExtensionHostConnectionResult {

View File

@@ -13,6 +13,15 @@ export interface ResolvedAuthority {
readonly port: number;
}
export interface ResolvedOptions {
readonly extensionHostEnv?: { [key: string]: string | null };
}
export interface ResolverResult {
authority: ResolvedAuthority;
options?: ResolvedOptions;
}
export enum RemoteAuthorityResolverErrorCode {
Unknown = 'Unknown',
NotAvailable = 'NotAvailable',
@@ -61,9 +70,9 @@ export interface IRemoteAuthorityResolverService {
_serviceBrand: any;
resolveAuthority(authority: string): Promise<ResolvedAuthority>;
resolveAuthority(authority: string): Promise<ResolverResult>;
clearResolvedAuthority(authority: string): void;
setResolvedAuthority(resolvedAuthority: ResolvedAuthority): void;
setResolvedAuthority(resolvedAuthority: ResolvedAuthority, resolvedOptions?: ResolvedOptions): void;
setResolvedAuthorityError(authority: string, err: any): void;
}

View File

@@ -3,15 +3,15 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { ResolvedAuthority, IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver';
import { ResolvedAuthority, IRemoteAuthorityResolverService, ResolverResult, ResolvedOptions } from 'vs/platform/remote/common/remoteAuthorityResolver';
import { ipcRenderer as ipc } from 'electron';
import * as errors from 'vs/base/common/errors';
class PendingResolveAuthorityRequest {
constructor(
public readonly resolve: (value: ResolvedAuthority) => void,
public readonly resolve: (value: ResolverResult) => void,
public readonly reject: (err: any) => void,
public readonly promise: Promise<ResolvedAuthority>,
public readonly promise: Promise<ResolverResult>,
) {
}
}
@@ -26,11 +26,11 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
this._resolveAuthorityRequests = Object.create(null);
}
resolveAuthority(authority: string): Promise<ResolvedAuthority> {
resolveAuthority(authority: string): Promise<ResolverResult> {
if (!this._resolveAuthorityRequests[authority]) {
let resolve: (value: ResolvedAuthority) => void;
let resolve: (value: ResolverResult) => void;
let reject: (err: any) => void;
let promise = new Promise<ResolvedAuthority>((_resolve, _reject) => {
let promise = new Promise<ResolverResult>((_resolve, _reject) => {
resolve = _resolve;
reject = _reject;
});
@@ -46,11 +46,11 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
}
}
setResolvedAuthority(resolvedAuthority: ResolvedAuthority) {
setResolvedAuthority(resolvedAuthority: ResolvedAuthority, options?: ResolvedOptions) {
if (this._resolveAuthorityRequests[resolvedAuthority.authority]) {
let request = this._resolveAuthorityRequests[resolvedAuthority.authority];
ipc.send('vscode:remoteAuthorityResolved', resolvedAuthority);
request.resolve(resolvedAuthority);
request.resolve({ authority: resolvedAuthority, options });
}
}