Index: Source/web/WebBindings.cpp |
diff --git a/Source/web/WebBindings.cpp b/Source/web/WebBindings.cpp |
index 75b047f70aebf2425a862da89958291c40e7b0e9..48bf15d64543a7dbfc62d98063031b572351666f 100644 |
--- a/Source/web/WebBindings.cpp |
+++ b/Source/web/WebBindings.cpp |
@@ -254,6 +254,20 @@ static bool getNodeImpl(NPObject* object, WebNode* webNode, v8::Isolate* isolate |
return true; |
} |
+static bool getNodeFromV8ObjectImpl(v8::Handle<v8::Object> obj, blink::WebNode* node) |
+{ |
+ if (obj.IsEmpty()) |
+ return false; |
+ |
+ v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
+ Element* native = V8Element::hasInstance(obj, isolate) ? V8Element::toNative(obj) : 0; |
+ if (!native) |
+ return false; |
+ |
+ *node = WebNode(native); |
+ return true; |
+} |
+ |
static bool getElementImpl(NPObject* object, WebElement* webElement, v8::Isolate* isolate) |
{ |
if (!object) |
@@ -359,6 +373,11 @@ bool WebBindings::getNode(NPObject* node, WebNode* webNode) |
return getNodeImpl(node, webNode, v8::Isolate::GetCurrent()); |
} |
+bool WebBindings::getNodeFromV8Object(v8::Handle<v8::Object> obj, WebNode* webNode) |
+{ |
+ return getNodeFromV8ObjectImpl(obj, webNode); |
+} |
+ |
bool WebBindings::getElement(NPObject* element, WebElement* webElement) |
{ |
return getElementImpl(element, webElement, v8::Isolate::GetCurrent()); |