Skip to content

Commit

Permalink
Revert "joh/representative canidae" (#166641)
Browse files Browse the repository at this point in the history
  • Loading branch information
rzhao271 authored Nov 17, 2022
1 parent 4ff1974 commit 9feaed8
Show file tree
Hide file tree
Showing 18 changed files with 25 additions and 123 deletions.
8 changes: 1 addition & 7 deletions src/bootstrap-fork.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,10 @@ if (process.env['VSCODE_PARENT_PID']) {
terminateWhenParentTerminates();
}

// VSCODE_GLOBALS: node_modules
globalThis._VSCODE_NODE_MODULES = new Proxy(Object.create(null), { get: (_target, mod) => require(String(mod)) });

// VSCODE_GLOBALS: package/product.json
globalThis._VSCODE_PRODUCT_JSON = require('../product.json');
globalThis._VSCODE_PACKAGE_JSON = require('../package.json');

// Load AMD entry point
require('./bootstrap-amd').load(process.env['VSCODE_AMD_ENTRYPOINT']);


//#region Helpers

function pipeLoggingToParent() {
Expand Down
7 changes: 0 additions & 7 deletions src/bootstrap-window.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,6 @@

window['MonacoEnvironment'] = {};

// VSCODE_GLOBALS: node_modules
globalThis._VSCODE_NODE_MODULES = new Proxy(Object.create(null), { get: (_target, mod) => (require.__$__nodeRequire ?? require)(String(mod)) });

// VSCODE_GLOBALS: package/product.json
globalThis._VSCODE_PRODUCT_JSON = (require.__$__nodeRequire ?? require)(configuration.appRoot + '/product.json');
globalThis._VSCODE_PACKAGE_JSON = (require.__$__nodeRequire ?? require)(configuration.appRoot + '/package.json');

const loaderConfig = {
baseUrl: `${bootstrapLib.fileUriFromPath(configuration.appRoot, { isWindows: safeProcess.platform === 'win32', scheme: 'vscode-file', fallbackAuthority: 'vscode-app' })}/out`,
'vs/nls': nlsConfig,
Expand Down
8 changes: 0 additions & 8 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,6 @@ function startup(codeCachePath, nlsConfig) {
process.env['VSCODE_NLS_CONFIG'] = JSON.stringify(nlsConfig);
process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';

// VSCODE_GLOBALS: node_modules
globalThis._VSCODE_NODE_MODULES = new Proxy(Object.create(null), { get: (_target, mod) => require(String(mod)) });

// VSCODE_GLOBALS: package/product.json
globalThis._VSCODE_PRODUCT_JSON = require('../product.json');
globalThis._VSCODE_PACKAGE_JSON = require('../package.json');

// Load main in AMD
perf.mark('code/willLoadMainBundle');
require('./bootstrap-amd').load('vs/code/electron-main/main', () => {
Expand Down Expand Up @@ -325,7 +318,6 @@ function getArgvConfigPath() {
dataFolderName = `${dataFolderName}-dev`;
}

// @ts-ignore
return path.join(os.homedir(), dataFolderName, 'argv.json');
}

Expand Down
7 changes: 0 additions & 7 deletions src/server-main.js
Original file line number Diff line number Diff line change
Expand Up @@ -258,13 +258,6 @@ function loadCode() {
return new Promise((resolve, reject) => {
const path = require('path');

// VSCODE_GLOBALS: node_modules
globalThis._VSCODE_NODE_MODULES = new Proxy(Object.create(null), { get: (_target, mod) => require(String(mod)) });

// VSCODE_GLOBALS: package/product.json
globalThis._VSCODE_PRODUCT_JSON = require('../product.json');
globalThis._VSCODE_PACKAGE_JSON = require('../package.json');

delete process.env['ELECTRON_RUN_AS_NODE']; // Keep bootstrap-amd.js from redefining 'fs'.

// See https://github.com/microsoft/vscode-remote-release/issues/6543
Expand Down
1 change: 0 additions & 1 deletion src/tsconfig.monaco.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"include": [
"typings/require.d.ts",
"typings/thenable.d.ts",
"typings/vscode-globals-product.d.ts",
"vs/loader.d.ts",
"vs/monaco.d.ts",
"vs/editor/*",
Expand Down
9 changes: 1 addition & 8 deletions src/typings/require.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,10 @@ interface NodeRequire {
* @deprecated use `FileAccess.asFileUri()` for node.js contexts or `FileAccess.asBrowserUri` for browser contexts.
*/
toUrl(path: string): string;

/**
* @deprecated MUST not be used anymore
*
* With the move from AMD to ESM we cannot use this anymore. There will be NO MORE node require like this.
*/
__$__nodeRequire<T>(moduleName: string): T;

(dependencies: string[], callback: (...args: any[]) => any, errorback?: (err: any) => void): any;
config(data: any): any;
onError: Function;
__$__nodeRequire<T>(moduleName: string): T;
getStats?(): ReadonlyArray<LoaderEvent>;
hasDependencyCycle?(): boolean;
define(amdModuleId: string, dependencies: string[], callback: (...args: any[]) => any): any;
Expand Down
30 changes: 0 additions & 30 deletions src/typings/vscode-globals-modules.d.ts

This file was deleted.

22 changes: 0 additions & 22 deletions src/typings/vscode-globals-product.d.ts

This file was deleted.

2 changes: 1 addition & 1 deletion src/vs/base/common/performance.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
} else if (typeof process === 'object') {
// node.js: use the normal polyfill but add the timeOrigin
// from the node perf_hooks API as very first mark
const timeOrigin = Math.round((require.__$__nodeRequire || require)('perf_hooks').performance.timeOrigin);
const timeOrigin = Math.round((require.nodeRequire || require)('perf_hooks').performance.timeOrigin);
return _definePolyfillMarks(timeOrigin);

} else {
Expand Down
8 changes: 4 additions & 4 deletions src/vs/base/parts/ipc/node/ipc.net.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import { ChunkStream, Client, ISocket, Protocol, SocketCloseEvent, SocketCloseEv
// TODO@bpasero remove me once electron utility process has landed
function getNodeDependencies() {
return {
crypto: globalThis._VSCODE_NODE_MODULES.crypto,
zlib: globalThis._VSCODE_NODE_MODULES.zlib,
net: globalThis._VSCODE_NODE_MODULES.net,
os: globalThis._VSCODE_NODE_MODULES.os,
crypto: (require.__$__nodeRequire('crypto') as any) as typeof import('crypto'),
zlib: (require.__$__nodeRequire('zlib') as any) as typeof import('zlib'),
net: (require.__$__nodeRequire('net') as any) as typeof import('net'),
os: (require.__$__nodeRequire('os') as any) as typeof import('os')
};
}

Expand Down
4 changes: 2 additions & 2 deletions src/vs/platform/environment/test/node/nativeModules.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ flakySuite('Native Modules (all platforms)', () => {

test('vscode-encrypt', async () => {
try {
const vscodeEncrypt: Encryption = globalThis._VSCODE_NODE_MODULES['vscode-encrypt'];
const vscodeEncrypt: Encryption = require.__$__nodeRequire('vscode-encrypt');
const encrypted = await vscodeEncrypt.encrypt('salt', 'value');
const decrypted = await vscodeEncrypt.decrypt('salt', encrypted);

Expand All @@ -73,7 +73,7 @@ flakySuite('Native Modules (all platforms)', () => {

test('vsda', async () => {
try {
const vsda: any = globalThis._VSCODE_NODE_MODULES['vsda'];
const vsda: any = require.__$__nodeRequire('vsda');
const signer = new vsda.signer();
const signed = await signer.sign('value');
assert.ok(typeof signed === 'string', testErrorMessage('vsda'));
Expand Down
16 changes: 11 additions & 5 deletions src/vs/platform/product/common/product.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

import { FileAccess } from 'vs/base/common/network';
import { globals } from 'vs/base/common/platform';
import { env } from 'vs/base/common/process';
import { IProductConfiguration } from 'vs/base/common/product';
import { dirname, joinPath } from 'vs/base/common/resources';
import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes';

/**
Expand All @@ -22,10 +24,14 @@ if (typeof globals.vscode !== 'undefined' && typeof globals.vscode.context !== '
throw new Error('Sandbox: unable to resolve product configuration from preload script.');
}
}
// _VSCODE environment
else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
// Obtain values from product.json and package.json-data
product = globalThis._VSCODE_PRODUCT_JSON as IProductConfiguration;

// Native node.js environment
else if (typeof require?.__$__nodeRequire === 'function') {

// Obtain values from product.json and package.json
const rootPath = dirname(FileAccess.asFileUri(''));

product = require.__$__nodeRequire(joinPath(rootPath, 'product.json').fsPath);

// Running out of sources
if (env['VSCODE_DEV']) {
Expand All @@ -41,7 +47,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
// want to have it running out of sources so we
// read it from package.json only when we need it.
if (!product.version) {
const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string };
const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string };

Object.assign(product, {
version: pkg.version
Expand Down
2 changes: 1 addition & 1 deletion src/vs/server/node/remoteExtensionHostAgentServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -727,7 +727,7 @@ export async function createServer(address: string | net.AddressInfo | null, arg
const hasVSDA = fs.existsSync(join(FileAccess.asFileUri('').fsPath, '../node_modules/vsda'));
if (hasVSDA) {
try {
return <typeof vsda>globalThis._VSCODE_NODE_MODULES['vsda'];
return <typeof vsda>require.__$__nodeRequire('vsda');
} catch (err) {
logService.error(err);
}
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/api/node/extHostExtensionService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class NodeModuleRequireInterceptor extends RequireInterceptor {

protected _installInterceptor(): void {
const that = this;
const node_module = <any>globalThis._VSCODE_NODE_MODULES.module;
const node_module = <any>require.__$__nodeRequire('module');
const originalLoad = node_module._load;
node_module._load = function load(request: string, parent: { filename: string }, isMain: boolean) {
request = applyAlternatives(request);
Expand Down
4 changes: 2 additions & 2 deletions src/vs/workbench/api/node/extensionHostProcess.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ const args = minimist(process.argv.slice(2), {
// happening we essentially blocklist this module from getting loaded in any
// extension by patching the node require() function.
(function () {
const Module = globalThis._VSCODE_NODE_MODULES.module as any;
const Module = require.__$__nodeRequire('module') as any;
const originalLoad = Module._load;

Module._load = function (request: string) {
Expand Down Expand Up @@ -325,7 +325,7 @@ function connectToRenderer(protocol: IMessagePassingProtocol): Promise<IRenderer
// So also use the native node module to do it from a separate thread
let watchdog: typeof nativeWatchdog;
try {
watchdog = globalThis._VSCODE_NODE_MODULES['native-watchdog'];
watchdog = require.__$__nodeRequire('native-watchdog');
watchdog.start(initData.parentPid);
} catch (err) {
// no problem...
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/api/node/proxyResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ const modulesCache = new Map<IExtensionDescription | undefined, { http?: typeof
function configureModuleLoading(extensionService: ExtHostExtensionService, lookup: ReturnType<typeof createPatchedModules>): Promise<void> {
return extensionService.getExtensionPathIndex()
.then(extensionPaths => {
const node_module = <any>globalThis._VSCODE_NODE_MODULES.module;
const node_module = <any>require.__$__nodeRequire('module');
const original = node_module._load;
node_module._load = function load(request: string, parent: { filename: string }, isMain: boolean) {
if (request === 'tls') {
Expand Down
7 changes: 0 additions & 7 deletions test/unit/electron/renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,6 @@ if (util.inspect && util.inspect['defaultOptions']) {
util.inspect['defaultOptions'].customInspect = false;
}

// VSCODE_GLOBALS: node_modules
globalThis._VSCODE_NODE_MODULES = new Proxy(Object.create(null), { get: (_target, mod) => (require.__$__nodeRequire ?? require)(String(mod)) });

// VSCODE_GLOBALS: package/product.json
globalThis._VSCODE_PRODUCT_JSON = (require.__$__nodeRequire ?? require)('../../../product.json');
globalThis._VSCODE_PACKAGE_JSON = (require.__$__nodeRequire ?? require)('../../../package.json');

const _tests_glob = '**/test/**/*.test.js';
let loader;
let _out;
Expand Down
9 changes: 0 additions & 9 deletions test/unit/node/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,6 @@ if (majorRequiredNodeVersion !== currentMajorNodeVersion) {
}

function main() {

// VSCODE_GLOBALS: node_modules
globalThis._VSCODE_NODE_MODULES = new Proxy(Object.create(null), { get: (_target, mod) => require(String(mod)) });

// VSCODE_GLOBALS: package/product.json
globalThis._VSCODE_PRODUCT_JSON = require(`${REPO_ROOT}/product.json`);
globalThis._VSCODE_PACKAGE_JSON = require(`${REPO_ROOT}/package.json`);


process.on('uncaughtException', function (e) {
console.error(e.stack || e);
});
Expand Down

0 comments on commit 9feaed8

Please sign in to comment.