feat: add support for DOM elements going over the context bridge (#26776)
* feat: add support for DOM elements going over the context bridge * Update context-bridge.md
This commit is contained in:
parent
51db2a6b34
commit
b9c9e7fc06
3 changed files with 42 additions and 3 deletions
|
@ -22,6 +22,7 @@
|
|||
#include "shell/common/gin_helper/promise.h"
|
||||
#include "shell/common/node_includes.h"
|
||||
#include "shell/common/world_ids.h"
|
||||
#include "third_party/blink/public/web/web_element.h"
|
||||
#include "third_party/blink/public/web/web_local_frame.h"
|
||||
|
||||
namespace electron {
|
||||
|
@ -319,6 +320,14 @@ v8::MaybeLocal<v8::Value> PassValueToOtherContext(
|
|||
return v8::MaybeLocal<v8::Value>(cloned_arr);
|
||||
}
|
||||
|
||||
// Custom logic to "clone" Element references
|
||||
blink::WebElement elem = blink::WebElement::FromV8Value(value);
|
||||
if (!elem.IsNull()) {
|
||||
v8::Context::Scope destination_context_scope(destination_context);
|
||||
return v8::MaybeLocal<v8::Value>(elem.ToV8Value(
|
||||
destination_context->Global(), destination_context->GetIsolate()));
|
||||
}
|
||||
|
||||
// Proxy all objects
|
||||
if (IsPlainObject(value)) {
|
||||
auto object_value = v8::Local<v8::Object>::Cast(value);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue