OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 if (v8Object.IsEmpty()) | 247 if (v8Object.IsEmpty()) |
248 return false; | 248 return false; |
249 Node* native = V8Node::hasInstance(v8Object, isolate) ? V8Node::toNative(v8O
bject) : 0; | 249 Node* native = V8Node::hasInstance(v8Object, isolate) ? V8Node::toNative(v8O
bject) : 0; |
250 if (!native) | 250 if (!native) |
251 return false; | 251 return false; |
252 | 252 |
253 *webNode = WebNode(native); | 253 *webNode = WebNode(native); |
254 return true; | 254 return true; |
255 } | 255 } |
256 | 256 |
| 257 static bool getNodeFromV8ObjectImpl(v8::Handle<v8::Object> obj, blink::WebNode*
node) |
| 258 { |
| 259 if (obj.IsEmpty()) |
| 260 return false; |
| 261 |
| 262 v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
| 263 Element* native = V8Element::hasInstance(obj, isolate) ? V8Element::toNative
(obj) : 0; |
| 264 if (!native) |
| 265 return false; |
| 266 |
| 267 *node = WebNode(native); |
| 268 return true; |
| 269 } |
| 270 |
257 static bool getElementImpl(NPObject* object, WebElement* webElement, v8::Isolate
* isolate) | 271 static bool getElementImpl(NPObject* object, WebElement* webElement, v8::Isolate
* isolate) |
258 { | 272 { |
259 if (!object) | 273 if (!object) |
260 return false; | 274 return false; |
261 | 275 |
262 V8NPObject* v8NPObject = npObjectToV8NPObject(object); | 276 V8NPObject* v8NPObject = npObjectToV8NPObject(object); |
263 if (!v8NPObject) | 277 if (!v8NPObject) |
264 return false; | 278 return false; |
265 | 279 |
266 v8::HandleScope handleScope(isolate); | 280 v8::HandleScope handleScope(isolate); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 bool WebBindings::getArrayBufferView(NPObject* arrayBufferView, WebArrayBufferVi
ew* webArrayBufferView) | 366 bool WebBindings::getArrayBufferView(NPObject* arrayBufferView, WebArrayBufferVi
ew* webArrayBufferView) |
353 { | 367 { |
354 return getArrayBufferViewImpl(arrayBufferView, webArrayBufferView, v8::Isola
te::GetCurrent()); | 368 return getArrayBufferViewImpl(arrayBufferView, webArrayBufferView, v8::Isola
te::GetCurrent()); |
355 } | 369 } |
356 | 370 |
357 bool WebBindings::getNode(NPObject* node, WebNode* webNode) | 371 bool WebBindings::getNode(NPObject* node, WebNode* webNode) |
358 { | 372 { |
359 return getNodeImpl(node, webNode, v8::Isolate::GetCurrent()); | 373 return getNodeImpl(node, webNode, v8::Isolate::GetCurrent()); |
360 } | 374 } |
361 | 375 |
| 376 bool WebBindings::getNodeFromV8Object(v8::Handle<v8::Object> obj, WebNode* webNo
de) |
| 377 { |
| 378 return getNodeFromV8ObjectImpl(obj, webNode); |
| 379 } |
| 380 |
362 bool WebBindings::getElement(NPObject* element, WebElement* webElement) | 381 bool WebBindings::getElement(NPObject* element, WebElement* webElement) |
363 { | 382 { |
364 return getElementImpl(element, webElement, v8::Isolate::GetCurrent()); | 383 return getElementImpl(element, webElement, v8::Isolate::GetCurrent()); |
365 } | 384 } |
366 | 385 |
367 NPObject* WebBindings::makeIntArray(const WebVector<int>& data) | 386 NPObject* WebBindings::makeIntArray(const WebVector<int>& data) |
368 { | 387 { |
369 return makeIntArrayImpl(data, v8::Isolate::GetCurrent()); | 388 return makeIntArrayImpl(data, v8::Isolate::GetCurrent()); |
370 } | 389 } |
371 | 390 |
(...skipping 26 matching lines...) Expand all Loading... |
398 if (!v8Object) | 417 if (!v8Object) |
399 return v8::Undefined(isolate); | 418 return v8::Undefined(isolate); |
400 return convertNPVariantToV8Object(variant, v8Object->rootObject->frame()
->script().windowScriptNPObject(), isolate); | 419 return convertNPVariantToV8Object(variant, v8Object->rootObject->frame()
->script().windowScriptNPObject(), isolate); |
401 } | 420 } |
402 // Safe to pass 0 since we have checked the script object class to make sure
the | 421 // Safe to pass 0 since we have checked the script object class to make sure
the |
403 // argument is a primitive v8 type. | 422 // argument is a primitive v8 type. |
404 return convertNPVariantToV8Object(variant, 0, isolate); | 423 return convertNPVariantToV8Object(variant, 0, isolate); |
405 } | 424 } |
406 | 425 |
407 } // namespace blink | 426 } // namespace blink |
OLD | NEW |