chore: bump chromium to 90.0.4415.0 (master) (#27694)

* chore: bump chromium in DEPS to 520c02b46668fc608927e0fcd79b6a90885a48bf

* chore: bump chromium in DEPS to 90.0.4414.0

* resolve chromium conflicts

* resolve v8 conflicts

* fix node gn files

* 2673502: Remove RenderViewCreated use from ExtensionHost.

2673502

* 2676903: [mojo] Remove most legacy Binding classes.

2676903

* 2644847: Move self-deleting URLLoaderFactory base into //services/network.

2644847

* 2664006: Remove from mojo::DataPipe.

2664006

* 2674530: Remove CertVerifierService feature

2674530

* 2668748: Move OnSSLCertificateError to a new interface.

2668748

* 2672923: Remove RAPPOR reporting infrastructure.

2672923

* 2673502: Remove RenderViewCreated use from ExtensionHost.

2673502

* 2655126: Convert FrameHostMsg_ContextMenu and FrameMsg_ContextMenuClosed|CustomContextMenuAction to Mojo

2655126

* 2628705: Window Placement: Implement screen.isExtended and change event

2628705

* 2643161: Refactor storage::kFileSystem*Native*

2643161

* fix build

* only remove the biggest subdir of //ios

* chore: bump chromium in DEPS to 90.0.4415.0

* update patches

* update sysroots

* 2686147: Remove WebContentsObserver::RenderViewCreated().

2686147

* 2596429: Fixing how extension's split and spanning modes affect OriginAccessList.

2596429

* 2686026: [mojo] Delete AssociatedInterfacePtr (replaced by AssociatedRemote)

2686026

* 2651705: Move ui/base/dragdrop/file_info to ui/base/clipboard

2651705

* 358217: drawBitmap is deprecated

https://skia-review.googlesource.com/c/skia/+/358217

* fix gn check

* 2678098: Use gen/front_end as input to generate_devtools_grd

2678098

* 2674530: Remove CertVerifierService feature

2674530

* fixup 2664006: Remove from mojo::DataPipe.

  2664006

* fixup build_add_electron_tracing_category.patch

* 2673415: [base] Prepare CrashReporterClient for string16 switch

2673415

* 2673413: Add CursorFactoryWin to handle Cursors on Windows

2673413

* 2668748: Move OnSSLCertificateError to a new interface.

2668748

* fix mas gn check

* update patch after merge

* Update node for .mjs files

* build: load v8_prof_processor dependencies as ESM

* chore: add patch to fix linux 32bit

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
This commit is contained in:
Electron Bot 2021-03-04 09:27:05 -08:00 committed by GitHub
parent 0b042d3b1c
commit ca75bca667
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
119 changed files with 746 additions and 633 deletions

View file

@ -31,3 +31,4 @@ fix_add_safeforterminationscopes_for_sigint_interruptions.patch
remove_makeexternal_case_for_uncached_internal_strings.patch
fix_remove_outdated_--experimental-wasm-bigint_flag.patch
fix_crypto_tests_to_run_with_bssl.patch
build_add_mjs_support_to_js2c.patch

View file

@ -846,10 +846,10 @@ index 0000000000000000000000000000000000000000..2c9d2826c85bdd033f1df1d6188df636
+}
diff --git a/filenames.json b/filenames.json
new file mode 100644
index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d5a796a23
index 0000000000000000000000000000000000000000..2dc4680dd90f854ac965266c6f14a7196da1dba0
--- /dev/null
+++ b/filenames.json
@@ -0,0 +1,538 @@
@@ -0,0 +1,542 @@
+// This file is automatically generated by generate_gn_filenames_json.py
+// DO NOT EDIT
+{
@ -877,15 +877,19 @@ index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d
+ "//v8/include/cppgc/ephemeron-pair.h",
+ "//v8/include/cppgc/garbage-collected.h",
+ "//v8/include/cppgc/heap-consistency.h",
+ "//v8/include/cppgc/heap-state.h",
+ "//v8/include/cppgc/heap.h",
+ "//v8/include/cppgc/liveness-broker.h",
+ "//v8/include/cppgc/macros.h",
+ "//v8/include/cppgc/member.h",
+ "//v8/include/cppgc/name-provider.h",
+ "//v8/include/cppgc/object-size-trait.h",
+ "//v8/include/cppgc/persistent.h",
+ "//v8/include/cppgc/platform.h",
+ "//v8/include/cppgc/prefinalizer.h",
+ "//v8/include/cppgc/sentinel-pointer.h",
+ "//v8/include/cppgc/source-location.h",
+ "//v8/include/cppgc/testing.h",
+ "//v8/include/cppgc/trace-trait.h",
+ "//v8/include/cppgc/type-traits.h",
+ "//v8/include/cppgc/visitor.h"
@ -1172,17 +1176,17 @@ index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d
+ "lib/internal/streams/state.js",
+ "lib/internal/streams/pipeline.js",
+ "lib/internal/streams/end-of-stream.js",
+ "//v8/tools/splaytree.js",
+ "//v8/tools/codemap.js",
+ "//v8/tools/consarray.js",
+ "//v8/tools/csvparser.js",
+ "//v8/tools/profile.js",
+ "//v8/tools/profile_view.js",
+ "//v8/tools/logreader.js",
+ "//v8/tools/arguments.js",
+ "//v8/tools/tickprocessor.js",
+ "//v8/tools/SourceMap.js",
+ "//v8/tools/tickprocessor-driver.js",
+ "//v8/tools/splaytree.mjs",
+ "//v8/tools/codemap.mjs",
+ "//v8/tools/consarray.mjs",
+ "//v8/tools/csvparser.mjs",
+ "//v8/tools/profile.mjs",
+ "//v8/tools/profile_view.mjs",
+ "//v8/tools/logreader.mjs",
+ "//v8/tools/arguments.mjs",
+ "//v8/tools/tickprocessor.mjs",
+ "//v8/tools/sourcemap.mjs",
+ "//v8/tools/tickprocessor-driver.mjs",
+ "deps/node-inspect/lib/_inspect.js",
+ "deps/node-inspect/lib/internal/inspect_client.js",
+ "deps/node-inspect/lib/internal/inspect_repl.js",
@ -1388,6 +1392,39 @@ index 0000000000000000000000000000000000000000..2dfbb6aae48b65312f212ab01474763d
+ "//v8/include/v8.h"
+ ]
+}
diff --git a/node.gyp b/node.gyp
index f18a0d58a84c798abc946d2b389987009f80fa2d..4f13c5b2d4e9e22f37dab47cd44b475f515ebe97 100644
--- a/node.gyp
+++ b/node.gyp
@@ -235,17 +235,17 @@
'lib/internal/streams/state.js',
'lib/internal/streams/pipeline.js',
'lib/internal/streams/end-of-stream.js',
- 'deps/v8/tools/splaytree.js',
- 'deps/v8/tools/codemap.js',
- 'deps/v8/tools/consarray.js',
- 'deps/v8/tools/csvparser.js',
- 'deps/v8/tools/profile.js',
- 'deps/v8/tools/profile_view.js',
- 'deps/v8/tools/logreader.js',
- 'deps/v8/tools/arguments.js',
- 'deps/v8/tools/tickprocessor.js',
- 'deps/v8/tools/SourceMap.js',
- 'deps/v8/tools/tickprocessor-driver.js',
+ 'deps/v8/tools/splaytree.mjs',
+ 'deps/v8/tools/codemap.mjs',
+ 'deps/v8/tools/consarray.mjs',
+ 'deps/v8/tools/csvparser.mjs',
+ 'deps/v8/tools/profile.mjs',
+ 'deps/v8/tools/profile_view.mjs',
+ 'deps/v8/tools/logreader.mjs',
+ 'deps/v8/tools/arguments.mjs',
+ 'deps/v8/tools/tickprocessor.mjs',
+ 'deps/v8/tools/sourcemap.mjs',
+ 'deps/v8/tools/tickprocessor-driver.mjs',
'deps/node-inspect/lib/_inspect.js',
'deps/node-inspect/lib/internal/inspect_client.js',
'deps/node-inspect/lib/internal/inspect_repl.js',
diff --git a/src/inspector/BUILD.gn b/src/inspector/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..f3c5c798c0aefcb8cf9b1570a7b4817c477aecf6

View file

@ -0,0 +1,172 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: John Kleinschmidt <jkleinsc@electronjs.org>
Date: Thu, 18 Feb 2021 17:35:39 -0500
Subject: build: add .mjs support to js2c
V8 now uses .mjs files, so this updates js2c to handle those files.
diff --git a/lib/internal/v8_prof_polyfill.js b/lib/internal/v8_prof_polyfill.js
index 5f5922c5386543189d6ae9293108425cf212b054..605c7274c1fff1a2f1bd0b6c4f667f86145036bd 100644
--- a/lib/internal/v8_prof_polyfill.js
+++ b/lib/internal/v8_prof_polyfill.js
@@ -69,7 +69,7 @@ function read(fileName) {
const quit = process.exit;
// Polyfill "readline()".
-const logFile = arguments[arguments.length - 1];
+const logFile = globalThis.arguments[globalThis.arguments.length - 1];
try {
fs.accessSync(logFile);
} catch(e) {
@@ -159,3 +159,11 @@ function macCppfiltNm(out) {
return prefix + (filtered[i++] || postfix);
});
}
+
+Object.assign(globalThis, {
+ os,
+ print,
+ read,
+ quit,
+ readline,
+});
diff --git a/lib/internal/v8_prof_processor.js b/lib/internal/v8_prof_processor.js
index daae650b2ad8ef146eb3a55c95dc80e0dbc2e3d7..7d6c7dce30058a73427dc7705f3dd98c4a6f4319 100644
--- a/lib/internal/v8_prof_processor.js
+++ b/lib/internal/v8_prof_processor.js
@@ -3,43 +3,51 @@
const {
ArrayPrototypePush,
ArrayPrototypeSlice,
- JSONStringify,
+ StringPrototypeSlice,
} = primordials;
+const Buffer = require('buffer').Buffer;
+const console = require('internal/console/global');
const vm = require('vm');
+const { SourceTextModule } = require('internal/vm/module');
-const scriptFiles = [
- 'internal/v8_prof_polyfill',
- 'internal/deps/v8/tools/splaytree',
- 'internal/deps/v8/tools/codemap',
- 'internal/deps/v8/tools/csvparser',
- 'internal/deps/v8/tools/consarray',
- 'internal/deps/v8/tools/profile',
- 'internal/deps/v8/tools/profile_view',
- 'internal/deps/v8/tools/logreader',
- 'internal/deps/v8/tools/arguments',
- 'internal/deps/v8/tools/tickprocessor',
- 'internal/deps/v8/tools/SourceMap',
- 'internal/deps/v8/tools/tickprocessor-driver'
-];
-let script = '';
-
-for (const s of scriptFiles) {
- script += internalBinding('natives')[s] + '\n';
-}
+const natives = internalBinding('natives');
-const tickArguments = [];
-if (process.platform === 'darwin') {
- ArrayPrototypePush(tickArguments, '--mac');
-} else if (process.platform === 'win32') {
- ArrayPrototypePush(tickArguments, '--windows');
+async function linker(specifier, referencingModule) {
+ // Transform "./file.mjs" to "file"
+ const file = StringPrototypeSlice(specifier, 2, -4);
+ const code = natives[`internal/deps/v8/tools/${file}`];
+ return new SourceTextModule(code, { context: referencingModule.context });
}
-ArrayPrototypePush(tickArguments,
- ...ArrayPrototypeSlice(process.argv, 1));
-script = `(function(module, require) {
- arguments = ${JSONStringify(tickArguments)};
- function write (s) { process.stdout.write(s) }
- function printErr(err) { console.error(err); }
- ${script}
-})`;
-vm.runInThisContext(script)(module, require);
+
+(async () => {
+ const tickArguments = [];
+ if (process.platform === 'darwin') {
+ ArrayPrototypePush(tickArguments, '--mac');
+ } else if (process.platform === 'win32') {
+ ArrayPrototypePush(tickArguments, '--windows');
+ }
+ ArrayPrototypePush(tickArguments,
+ ...ArrayPrototypeSlice(process.argv, 1));
+
+ const context = vm.createContext({
+ arguments: tickArguments,
+ write(s) { process.stdout.write(s); },
+ printErr(err) { console.error(err); },
+ console,
+ process,
+ Buffer,
+ });
+
+ const polyfill = natives['internal/v8_prof_polyfill'];
+ const script = `(function(module, require) {
+ ${polyfill}
+ })`;
+
+ vm.runInContext(script, context)(module, require);
+
+ const tickProcessor = natives['internal/deps/v8/tools/tickprocessor-driver'];
+ const tickprocessorDriver = new SourceTextModule(tickProcessor, { context });
+ await tickprocessorDriver.link(linker);
+ await tickprocessorDriver.evaluate();
+})();
\ No newline at end of file
diff --git a/tools/js2c.py b/tools/js2c.py
index bca4c44a31d1ffe7c9ae15b6f60cd55e325f707d..7acb27e753e31429fbb5de30c62dd30a3be3b5bc 100755
--- a/tools/js2c.py
+++ b/tools/js2c.py
@@ -151,20 +151,21 @@ def JS2C(source_files, target, only_js):
# Build source code lines
definitions = []
initializers = []
-
- for filename in source_files['.js']:
- AddModule(filename, definitions, initializers)
-
- # Electron: Expose fs module without asar support.
- if filename == 'lib/fs.js':
- # Node's 'fs' and 'internal/fs/<filename> have lazy-loaded circular
- # dependencies. So to expose the unmodified Node 'fs' functionality here,
- # we have to copy both 'fs' *and* 'internal/fs/<filename>' files and modify the
- # copies to depend on each other instead of on our asarified 'fs' code.
- AddModule('lib/original-fs.js', definitions, initializers, lambda _: ReadFile(filename).replace("require('internal/fs/", "require('internal/original-fs/"))
- elif filename.startswith('lib/internal/fs/'):
- original_fs_filename = filename.replace('internal/fs/', 'internal/original-fs/')
- AddModule(original_fs_filename, definitions, initializers, lambda _: ReadFile(filename).replace("require('fs')", "require('original-fs')"))
+ for extension in source_files.keys():
+ for filename in source_files[extension]:
+ if extension == '.js' or extension == '.mjs':
+ AddModule(filename, definitions, initializers)
+
+ # Electron: Expose fs module without asar support.
+ if filename == 'lib/fs.js':
+ # Node's 'fs' and 'internal/fs/<filename> have lazy-loaded circular
+ # dependencies. So to expose the unmodified Node 'fs' functionality here,
+ # we have to copy both 'fs' *and* 'internal/fs/<filename>' files and modify the
+ # copies to depend on each other instead of on our asarified 'fs' code.
+ AddModule('lib/original-fs.js', definitions, initializers, lambda _: ReadFile(filename).replace("require('internal/fs/", "require('internal/original-fs/"))
+ elif filename.startswith('lib/internal/fs/'):
+ original_fs_filename = filename.replace('internal/fs/', 'internal/original-fs/')
+ AddModule(original_fs_filename, definitions, initializers, lambda _: ReadFile(filename).replace("require('fs')", "require('original-fs')"))
config_size = 0
if not only_js:
@@ -240,7 +241,7 @@ def main():
if options.only_js:
assert len(source_files) == 1
else:
- assert len(source_files) == 2
+ assert len(source_files) == 3
# Currently config.gypi is the only `.gypi` file allowed
assert source_files['.gypi'][0].endswith('config.gypi')
source_files['config.gypi'] = source_files.pop('.gypi')[0]