electron/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch
electron-roller[bot] 73e33bc876
chore: bump chromium to 119.0.6006.0 (main) (#39774)
* chore: bump chromium in DEPS to 119.0.5994.0

* chore: update patches

* Add some more debugging for navigation origin & process lock mismatch

https://chromium-review.googlesource.com/c/chromium/src/+/4829483

* chore: bump chromium in DEPS to 119.0.5996.2

* chore: bump chromium in DEPS to 119.0.5997.0

* chore: bump chromium in DEPS to 119.0.6000.0

* chore: bump chromium in DEPS to 119.0.6002.0

* 4781766: Port remaining control color ids to the color pipeline

https://chromium-review.googlesource.com/c/chromium/src/+/4781766

* 4846057: Preloading: Move prefetch_prefs to chrome/browser/preloading/

https://chromium-review.googlesource.com/c/chromium/src/+/4846057

* chore: fixup patch indices

* 4848108: Pass v8::Isolate into FromV8Value calls on blink API

https://chromium-review.googlesource.com/c/chromium/src/+/4848108

* 4834471: Reland "[api] allow v8::Data as internal field"

https://chromium-review.googlesource.com/c/v8/v8/+/4834471

* 4808884: Major overhaul of ExceptionState in the v8 bindings

https://chromium-review.googlesource.com/c/chromium/src/+/4808884

* 4791643: [sandbox] Add a TRUSTED_SPACE and TRUSTED_LO_SPACE to the V8 heap

https://chromium-review.googlesource.com/c/v8/v8/+/4791643

* chore: bump chromium in DEPS to 119.0.6005.0

* 4776268: [v8][etw] Enables filtering of ETW tracing by URL

https://chromium-review.googlesource.com/c/chromium/src/+/4776268

* chore: fixup patch indices

* 4673258: WebSQL: Disable WebSQL by default

https://chromium-review.googlesource.com/c/chromium/src/+/4673258

* chore: bump chromium in DEPS to 119.0.6006.0

* chore: update patches

* 4854732: Reland^2 "[iterator-helpers] Unship due to incompat"

https://chromium-review.googlesource.com/c/v8/v8/+/4854732

* 4794133: [AWC] Add `display-state` CSS @media feature

https://chromium-review.googlesource.com/c/chromium/src/+/4794133

* fixup! Add some more debugging for navigation origin & process lock mismatch

* Revert "fixup! Add some more debugging for navigation origin & process lock mismatch"

This reverts commit 38fef075fc5690f7db6d4bbcabbe877a1618a964.

* 4858437: Revert "[iOS] Delete GN flags for mach absolute time ticks"

https://chromium-review.googlesource.com/c/chromium/src/+/4858437

* refactor: fix_crash_loading_non-standard_schemes_in_iframes.patch (#39879)

* chore: 4869108: handle absolute and relative gn imports in autoninja

https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4869108

* chore: set GOMA_DIR for autoninja

* Revert "chore: 4869108: handle absolute and relative gn imports in autoninja"

This reverts commit d94c7720bab96d1de25499383948da2cb8862d90.

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Robo <hop2deep@gmail.com>
2023-09-18 16:44:09 -04:00

75 lines
3.6 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samuel Attard <marshallofsound@electronjs.org>
Date: Wed, 8 Mar 2023 13:04:21 -0800
Subject: refactor: expose HostImportModuleDynamically and
HostGetImportMetaProperties to embedders
This is so that Electron can blend Blink's and Node's implementations of these isolate handlers.
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
index 93fd4a4be7bb3e3a0b9093d3c4a981e456f0d0f5..6267a4d5100ae322e6c4c394b120d95223a38e14 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
@@ -589,7 +589,9 @@ bool JavaScriptCompileHintsMagicEnabledCallback(
execution_context);
}
-v8::MaybeLocal<v8::Promise> HostImportModuleDynamically(
+}
+
+v8::MaybeLocal<v8::Promise> V8Initializer::HostImportModuleDynamically(
v8::Local<v8::Context> context,
v8::Local<v8::Data> v8_host_defined_options,
v8::Local<v8::Value> v8_referrer_resource_url,
@@ -664,7 +666,7 @@ v8::MaybeLocal<v8::Promise> HostImportModuleDynamically(
}
// https://html.spec.whatwg.org/C/#hostgetimportmetaproperties
-void HostGetImportMetaProperties(v8::Local<v8::Context> context,
+void V8Initializer::HostGetImportMetaProperties(v8::Local<v8::Context> context,
v8::Local<v8::Module> module,
v8::Local<v8::Object> meta) {
ScriptState* script_state = ScriptState::From(context);
@@ -691,6 +693,8 @@ void HostGetImportMetaProperties(v8::Local<v8::Context> context,
meta->CreateDataProperty(context, resolve_key, resolve_value).ToChecked();
}
+namespace {
+
void InitializeV8Common(v8::Isolate* isolate) {
// Set up garbage collection before setting up anything else as V8 may trigger
// GCs during Blink setup.
@@ -710,9 +714,9 @@ void InitializeV8Common(v8::Isolate* isolate) {
SharedArrayBufferConstructorEnabledCallback);
isolate->SetJavaScriptCompileHintsMagicEnabledCallback(
JavaScriptCompileHintsMagicEnabledCallback);
- isolate->SetHostImportModuleDynamicallyCallback(HostImportModuleDynamically);
+ isolate->SetHostImportModuleDynamicallyCallback(V8Initializer::HostImportModuleDynamically);
isolate->SetHostInitializeImportMetaObjectCallback(
- HostGetImportMetaProperties);
+ V8Initializer::HostGetImportMetaProperties);
isolate->SetMetricsRecorder(std::make_shared<V8MetricsRecorder>(isolate));
#if BUILDFLAG(IS_WIN)
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.h b/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
index 9e628b96a845322d407f9da30a63c04ef5de9c24..8f5e4602f5e3f6787a9e54d510b39519074d51e6 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
@@ -76,6 +76,17 @@ class CORE_EXPORT V8Initializer {
v8::Local<v8::Context> context,
v8::Local<v8::String> source);
+ static v8::MaybeLocal<v8::Promise> HostImportModuleDynamically(
+ v8::Local<v8::Context> context,
+ v8::Local<v8::Data> v8_host_defined_options,
+ v8::Local<v8::Value> v8_referrer_resource_url,
+ v8::Local<v8::String> v8_specifier,
+ v8::Local<v8::FixedArray> v8_import_assertions);
+
+ static void HostGetImportMetaProperties(v8::Local<v8::Context> context,
+ v8::Local<v8::Module> module,
+ v8::Local<v8::Object> meta);
+
static void WasmAsyncResolvePromiseCallback(
v8::Isolate* isolate,
v8::Local<v8::Context> context,