12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Samuel Attard <[email protected]>
- 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 e62b8a5a3d358135dc2fd31cc1572274e955cc2c..5c070396cf3cf9877c1572cbd0d13f31d73991bb 100644
- --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
- +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
- @@ -610,7 +610,9 @@ bool WasmJSPromiseIntegrationEnabledCallback(v8::Local<v8::Context> context) {
- 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,
- @@ -688,7 +690,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) {
- v8::Isolate* isolate = context->GetIsolate();
- @@ -731,9 +733,6 @@ std::ostream& operator<<(std::ostream& os, const PrintV8OOM& oom_details) {
- return os;
- }
-
- -} // namespace
- -
- -// static
- void V8Initializer::InitializeV8Common(v8::Isolate* isolate) {
- // Set up garbage collection before setting up anything else as V8 may trigger
- // GCs during Blink setup.
- @@ -753,9 +752,9 @@ void V8Initializer::InitializeV8Common(v8::Isolate* isolate) {
- isolate->SetWasmJSPIEnabledCallback(WasmJSPromiseIntegrationEnabledCallback);
- isolate->SetSharedArrayBufferConstructorEnabledCallback(
- SharedArrayBufferConstructorEnabledCallback);
- - 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 2e0fd8cdef733677f8e1d32b3d8e0c635e0a5052..1df4517f9b5926c1dc5333aa6fc9cc1290256c70 100644
- --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
- +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
- @@ -84,6 +84,17 @@ class CORE_EXPORT V8Initializer {
- v8::Local<v8::Value> data);
- static void PromiseRejectHandlerInMainThread(v8::PromiseRejectMessage data);
-
- + 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,
|