Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 1ff35f1

Browse files
committedApr 29, 2020
Remove transformer file
Also remove some unused imports that were causing build errors (they were left over from the fix that allowed installing any extension kind).
1 parent f3edb1c commit 1ff35f1

File tree

1 file changed

+118
-47
lines changed

1 file changed

+118
-47
lines changed
 

‎ci/vscode.patch

Lines changed: 118 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ index 7a2320d828..5768890636 100644
5050
yarnInstallBuildDependencies(); // node modules for watching, specific to host node version, not electron
5151
diff --git a/coder.js b/coder.js
5252
new file mode 100644
53-
index 0000000000..6aee0e46bc
53+
index 0000000000..d0a8f37714
5454
--- /dev/null
5555
+++ b/coder.js
56-
@@ -0,0 +1,70 @@
56+
@@ -0,0 +1,69 @@
5757
+// This must be ran from VS Code's root.
5858
+const gulp = require("gulp");
5959
+const path = require("path");
@@ -77,7 +77,6 @@ index 0000000000..6aee0e46bc
7777
+
7878
+const vscodeResources = [
7979
+ "out-build/vs/server/fork.js",
80-
+ "out-build/vs/server/node/uriTransformer.js",
8180
+ "!out-build/vs/server/doc/**",
8281
+ "out-build/vs/workbench/services/extensions/worker/extensionHostWorkerMain.js",
8382
+ "out-build/bootstrap.js",
@@ -212,6 +211,72 @@ index c52f7b3774..08a87fa970 100644
212211
];
213212
const envKeys = Object.keys(env);
214213
envKeys
214+
diff --git a/src/vs/base/common/uriIpc.ts b/src/vs/base/common/uriIpc.ts
215+
index ef2291d49b..29b2f9dfc2 100644
216+
--- a/src/vs/base/common/uriIpc.ts
217+
+++ b/src/vs/base/common/uriIpc.ts
218+
@@ -5,6 +5,7 @@
219+
220+
import { URI, UriComponents } from 'vs/base/common/uri';
221+
import { MarshalledObject } from 'vs/base/common/marshalling';
222+
+import { Schemas } from './network';
223+
224+
export interface IURITransformer {
225+
transformIncoming(uri: UriComponents): UriComponents;
226+
@@ -31,29 +32,35 @@ function toJSON(uri: URI): UriComponents {
227+
228+
export class URITransformer implements IURITransformer {
229+
230+
- private readonly _uriTransformer: IRawURITransformer;
231+
-
232+
- constructor(uriTransformer: IRawURITransformer) {
233+
- this._uriTransformer = uriTransformer;
234+
+ constructor(private readonly remoteAuthority: string) {
235+
}
236+
237+
+ // NOTE@coder: Coming in from the browser it'll be vscode-remote so it needs
238+
+ // to be transformed into file.
239+
public transformIncoming(uri: UriComponents): UriComponents {
240+
- const result = this._uriTransformer.transformIncoming(uri);
241+
- return (result === uri ? uri : toJSON(URI.from(result)));
242+
+ return uri.scheme === Schemas.vscodeRemote
243+
+ ? toJSON(URI.file(uri.path))
244+
+ : uri;
245+
}
246+
247+
+ // NOTE@coder: Going out to the browser it'll be file so it needs to be
248+
+ // transformed into vscode-remote.
249+
public transformOutgoing(uri: UriComponents): UriComponents {
250+
- const result = this._uriTransformer.transformOutgoing(uri);
251+
- return (result === uri ? uri : toJSON(URI.from(result)));
252+
+ return uri.scheme === Schemas.file
253+
+ ? toJSON(URI.from({ authority: this.remoteAuthority, scheme: Schemas.vscodeRemote, path: uri.path }))
254+
+ : uri;
255+
}
256+
257+
public transformOutgoingURI(uri: URI): URI {
258+
- const result = this._uriTransformer.transformOutgoing(uri);
259+
- return (result === uri ? uri : URI.from(result));
260+
+ return uri.scheme === Schemas.file
261+
+ ? URI.from({ authority: this.remoteAuthority, scheme: Schemas.vscodeRemote, path:uri.path })
262+
+ : uri;
263+
}
264+
265+
public transformOutgoingScheme(scheme: string): string {
266+
- return this._uriTransformer.transformOutgoingScheme(scheme);
267+
+ return scheme === Schemas.file
268+
+ ? Schemas.vscodeRemote
269+
+ : scheme;
270+
}
271+
}
272+
273+
@@ -152,4 +159,4 @@ export function transformAndReviveIncomingURIs<T>(obj: T, transformer: IURITrans
274+
return obj;
275+
}
276+
return result;
277+
-}
278+
\ No newline at end of file
279+
+}
215280
diff --git a/src/vs/base/node/languagePacks.js b/src/vs/base/node/languagePacks.js
216281
index 2c64061da7..c0ef8faedd 100644
217282
--- a/src/vs/base/node/languagePacks.js
@@ -1604,10 +1669,10 @@ index 0000000000..1729ec2fa8
16041669
+}
16051670
diff --git a/src/vs/server/node/connection.ts b/src/vs/server/node/connection.ts
16061671
new file mode 100644
1607-
index 0000000000..e37ffb747a
1672+
index 0000000000..8f52462797
16081673
--- /dev/null
16091674
+++ b/src/vs/server/node/connection.ts
1610-
@@ -0,0 +1,158 @@
1675+
@@ -0,0 +1,157 @@
16111676
+import * as cp from 'child_process';
16121677
+import { getPathFromAmdModule } from 'vs/base/common/amd';
16131678
+import { VSBuffer } from 'vs/base/common/buffer';
@@ -1618,7 +1683,6 @@ index 0000000000..e37ffb747a
16181683
+import { ILogService } from 'vs/platform/log/common/log';
16191684
+import { getNlsConfiguration } from 'vs/server/node/nls';
16201685
+import { Protocol } from 'vs/server/node/protocol';
1621-
+import { uriTransformerPath } from 'vs/server/node/util';
16221686
+import { IExtHostReadyMessage } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
16231687
+
16241688
+export abstract class Connection {
@@ -1723,7 +1787,7 @@ index 0000000000..e37ffb747a
17231787
+ const config = await getNlsConfiguration(locale, this.environment.userDataPath);
17241788
+ const proc = cp.fork(
17251789
+ getPathFromAmdModule(require, 'bootstrap-fork'),
1726-
+ [ '--type=extensionHost', `--uriTransformerPath=${uriTransformerPath}` ],
1790+
+ [ '--type=extensionHost' ],
17271791
+ {
17281792
+ env: {
17291793
+ ...process.env,
@@ -2602,50 +2666,16 @@ index 0000000000..d1f14654cf
26022666
+ return undefined;
26032667
+ }
26042668
+}
2605-
diff --git a/src/vs/server/node/uriTransformer.js b/src/vs/server/node/uriTransformer.js
2606-
new file mode 100644
2607-
index 0000000000..fc69441cf0
2608-
--- /dev/null
2609-
+++ b/src/vs/server/node/uriTransformer.js
2610-
@@ -0,0 +1,24 @@
2611-
+// This file is included via a regular Node require. I'm not sure how (or if)
2612-
+// we can write this in Typescript and have it compile to non-AMD syntax.
2613-
+module.exports = (remoteAuthority) => {
2614-
+ return {
2615-
+ transformIncoming: (uri) => {
2616-
+ switch (uri.scheme) {
2617-
+ case "vscode-remote": return { scheme: "file", path: uri.path };
2618-
+ default: return uri;
2619-
+ }
2620-
+ },
2621-
+ transformOutgoing: (uri) => {
2622-
+ switch (uri.scheme) {
2623-
+ case "file": return { scheme: "vscode-remote", authority: remoteAuthority, path: uri.path };
2624-
+ default: return uri;
2625-
+ }
2626-
+ },
2627-
+ transformOutgoingScheme: (scheme) => {
2628-
+ switch (scheme) {
2629-
+ case "file": return "vscode-remote";
2630-
+ default: return scheme;
2631-
+ }
2632-
+ },
2633-
+ };
2634-
+};
26352669
diff --git a/src/vs/server/node/util.ts b/src/vs/server/node/util.ts
26362670
new file mode 100644
2637-
index 0000000000..dd7fdf7b58
2671+
index 0000000000..fa47e993b4
26382672
--- /dev/null
26392673
+++ b/src/vs/server/node/util.ts
2640-
@@ -0,0 +1,17 @@
2641-
+import { getPathFromAmdModule } from 'vs/base/common/amd';
2642-
+import { URITransformer, IRawURITransformer } from 'vs/base/common/uriIpc';
2674+
@@ -0,0 +1,13 @@
2675+
+import { URITransformer } from 'vs/base/common/uriIpc';
26432676
+
2644-
+export const uriTransformerPath = getPathFromAmdModule(require, 'vs/server/node/uriTransformer');
26452677
+export const getUriTransformer = (remoteAuthority: string): URITransformer => {
2646-
+ const rawURITransformerFactory = <any>require.__$__nodeRequire(uriTransformerPath);
2647-
+ const rawURITransformer = <IRawURITransformer>rawURITransformerFactory(remoteAuthority);
2648-
+ return new URITransformer(rawURITransformer);
2678+
+ return new URITransformer(remoteAuthority);
26492679
+};
26502680
+
26512681
+/**
@@ -3102,9 +3132,27 @@ index cfac383e8a..c535d38296 100644
31023132
return false;
31033133
}
31043134
diff --git a/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts b/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts
3105-
index 9f8c6ac6f5..34cbaf087c 100644
3135+
index 9f8c6ac6f5..69b5f36203 100644
31063136
--- a/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts
31073137
+++ b/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts
3138+
@@ -5,7 +5,7 @@
3139+
3140+
import { Event, EventMultiplexer } from 'vs/base/common/event';
3141+
import {
3142+
- IExtensionManagementService, ILocalExtension, IGalleryExtension, InstallExtensionEvent, DidInstallExtensionEvent, IExtensionIdentifier, DidUninstallExtensionEvent, IReportedExtension, IGalleryMetadata, IExtensionGalleryService, INSTALL_ERROR_NOT_SUPPORTED
3143+
+ IExtensionManagementService, ILocalExtension, IGalleryExtension, InstallExtensionEvent, DidInstallExtensionEvent, IExtensionIdentifier, DidUninstallExtensionEvent, IReportedExtension, IGalleryMetadata, IExtensionGalleryService
3144+
} from 'vs/platform/extensionManagement/common/extensionManagement';
3145+
import { IExtensionManagementServer, IExtensionManagementServerService } from 'vs/workbench/services/extensionManagement/common/extensionManagement';
3146+
import { ExtensionType, isLanguagePackExtension, IExtensionManifest } from 'vs/platform/extensions/common/extensions';
3147+
@@ -15,7 +15,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
3148+
import { CancellationToken } from 'vs/base/common/cancellation';
3149+
import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
3150+
import { localize } from 'vs/nls';
3151+
-import { prefersExecuteOnUI, canExecuteOnWorkspace } from 'vs/workbench/services/extensions/common/extensionsUtil';
3152+
+import { prefersExecuteOnUI } from 'vs/workbench/services/extensions/common/extensionsUtil';
3153+
import { IProductService } from 'vs/platform/product/common/productService';
3154+
import { Schemas } from 'vs/base/common/network';
3155+
import { IDownloadService } from 'vs/platform/download/common/download';
31083156
@@ -208,11 +208,7 @@ export class ExtensionManagementService extends Disposable implements IExtension
31093157
if (!manifest) {
31103158
return Promise.reject(localize('Manifest is not found', "Installing Extension {0} failed: Manifest is not found.", gallery.displayName || gallery.name));
@@ -3158,9 +3206,18 @@ index 9e8352ac88..22a2d296f9 100644
31583206

31593207
export function getExtensionKind(manifest: IExtensionManifest, productService: IProductService, configurationService: IConfigurationService): ExtensionKind[] {
31603208
diff --git a/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts b/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts
3161-
index 79dd77aeb2..f8b58b034a 100644
3209+
index 79dd77aeb2..1d93c0f922 100644
31623210
--- a/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts
31633211
+++ b/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts
3212+
@@ -16,7 +16,7 @@ import { IInitData } from 'vs/workbench/api/common/extHost.protocol';
3213+
import { MessageType, createMessageOfType, isMessageOfType, IExtHostSocketMessage, IExtHostReadyMessage, IExtHostReduceGraceTimeMessage } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
3214+
import { ExtensionHostMain, IExitFn } from 'vs/workbench/services/extensions/common/extensionHostMain';
3215+
import { VSBuffer } from 'vs/base/common/buffer';
3216+
-import { IURITransformer, URITransformer, IRawURITransformer } from 'vs/base/common/uriIpc';
3217+
+import { IURITransformer, URITransformer } from 'vs/base/common/uriIpc';
3218+
import { exists } from 'vs/base/node/pfs';
3219+
import { realpath } from 'vs/base/node/extpath';
3220+
import { IHostUtils } from 'vs/workbench/api/common/extHostExtensionService';
31643221
@@ -55,12 +55,13 @@ const args = minimist(process.argv.slice(2), {
31653222
const Module = require.__$__nodeRequire('module') as any;
31663223
const originalLoad = Module._load;
@@ -3191,6 +3248,20 @@ index 79dd77aeb2..f8b58b034a 100644
31913248
});
31923249
}
31933250
}
3251+
@@ -307,11 +311,9 @@ export async function startExtensionHostProcess(): Promise<void> {
3252+
3253+
// Attempt to load uri transformer
3254+
let uriTransformer: IURITransformer | null = null;
3255+
- if (initData.remote.authority && args.uriTransformerPath) {
3256+
+ if (initData.remote.authority) {
3257+
try {
3258+
- const rawURITransformerFactory = <any>require.__$__nodeRequire(args.uriTransformerPath);
3259+
- const rawURITransformer = <IRawURITransformer>rawURITransformerFactory(initData.remote.authority);
3260+
- uriTransformer = new URITransformer(rawURITransformer);
3261+
+ uriTransformer = new URITransformer(initData.remote.authority);
3262+
} catch (e) {
3263+
console.error(e);
3264+
}
31943265
diff --git a/src/vs/workbench/services/extensions/worker/extHost.services.ts b/src/vs/workbench/services/extensions/worker/extHost.services.ts
31953266
index 9056862945..0785d3391d 100644
31963267
--- a/src/vs/workbench/services/extensions/worker/extHost.services.ts

0 commit comments

Comments
 (0)
Please sign in to comment.