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 9ab0efff477274bb08a99a64c2b78226aae1939e..8fbc3cd5328a74b2d65d534d60b0042bf986e2ad 100644
- --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
- +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
- @@ -638,7 +638,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,
- @@ -716,7 +718,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();
- @@ -763,9 +765,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.
- @@ -785,9 +784,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->SetIsJSApiWrapperNativeErrorCallback(IsDOMExceptionWrapper);
- isolate->SetMetricsRecorder(std::make_shared<V8MetricsRecorder>(isolate));
-
- 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 be5df8f98c3f7e308d79d43c1811a16c644b6158..5c25a3bb7f04ea74ee8587b158e125f4aa651912 100644
- --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
- +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
- @@ -85,6 +85,17 @@ class CORE_EXPORT V8Initializer {
- static void PromiseRejectHandlerInMainThread(v8::PromiseRejectMessage data);
- static void ExceptionPropagationCallback(v8::ExceptionPropagationMessage);
-
- + 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,
|