| 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 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 static bool getRangeImpl(NPObject* object, WebRange* webRange, v8::Isolate* isol
ate) | 209 static bool getRangeImpl(NPObject* object, WebRange* webRange, v8::Isolate* isol
ate) |
| 210 { | 210 { |
| 211 if (!object) | 211 if (!object) |
| 212 return false; | 212 return false; |
| 213 | 213 |
| 214 V8NPObject* v8NPObject = npObjectToV8NPObject(object); | 214 V8NPObject* v8NPObject = npObjectToV8NPObject(object); |
| 215 if (!v8NPObject) | 215 if (!v8NPObject) |
| 216 return false; | 216 return false; |
| 217 | 217 |
| 218 v8::HandleScope handleScope(isolate); | 218 v8::HandleScope handleScope(isolate); |
| 219 v8::Handle<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPOb
ject->v8Object); | 219 v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPObj
ect->v8Object); |
| 220 if (v8Object.IsEmpty()) | 220 if (v8Object.IsEmpty()) |
| 221 return false; | 221 return false; |
| 222 if (!V8Range::wrapperTypeInfo.equals(toWrapperTypeInfo(v8Object))) | 222 if (!V8Range::wrapperTypeInfo.equals(toWrapperTypeInfo(v8Object))) |
| 223 return false; | 223 return false; |
| 224 | 224 |
| 225 Range* native = V8Range::hasInstance(v8Object, isolate) ? V8Range::toImpl(v8
Object) : 0; | 225 Range* native = V8Range::hasInstance(v8Object, isolate) ? V8Range::toImpl(v8
Object) : 0; |
| 226 if (!native) | 226 if (!native) |
| 227 return false; | 227 return false; |
| 228 | 228 |
| 229 *webRange = WebRange(native); | 229 *webRange = WebRange(native); |
| 230 return true; | 230 return true; |
| 231 } | 231 } |
| 232 | 232 |
| 233 static bool getNodeImpl(NPObject* object, WebNode* webNode, v8::Isolate* isolate
) | 233 static bool getNodeImpl(NPObject* object, WebNode* webNode, v8::Isolate* isolate
) |
| 234 { | 234 { |
| 235 if (!object) | 235 if (!object) |
| 236 return false; | 236 return false; |
| 237 | 237 |
| 238 V8NPObject* v8NPObject = npObjectToV8NPObject(object); | 238 V8NPObject* v8NPObject = npObjectToV8NPObject(object); |
| 239 if (!v8NPObject) | 239 if (!v8NPObject) |
| 240 return false; | 240 return false; |
| 241 | 241 |
| 242 v8::HandleScope handleScope(isolate); | 242 v8::HandleScope handleScope(isolate); |
| 243 v8::Handle<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPOb
ject->v8Object); | 243 v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPObj
ect->v8Object); |
| 244 if (v8Object.IsEmpty()) | 244 if (v8Object.IsEmpty()) |
| 245 return false; | 245 return false; |
| 246 Node* native = V8Node::hasInstance(v8Object, isolate) ? V8Node::toImpl(v8Obj
ect) : 0; | 246 Node* native = V8Node::hasInstance(v8Object, isolate) ? V8Node::toImpl(v8Obj
ect) : 0; |
| 247 if (!native) | 247 if (!native) |
| 248 return false; | 248 return false; |
| 249 | 249 |
| 250 *webNode = WebNode(native); | 250 *webNode = WebNode(native); |
| 251 return true; | 251 return true; |
| 252 } | 252 } |
| 253 | 253 |
| 254 static bool getElementImpl(NPObject* object, WebElement* webElement, v8::Isolate
* isolate) | 254 static bool getElementImpl(NPObject* object, WebElement* webElement, v8::Isolate
* isolate) |
| 255 { | 255 { |
| 256 if (!object) | 256 if (!object) |
| 257 return false; | 257 return false; |
| 258 | 258 |
| 259 V8NPObject* v8NPObject = npObjectToV8NPObject(object); | 259 V8NPObject* v8NPObject = npObjectToV8NPObject(object); |
| 260 if (!v8NPObject) | 260 if (!v8NPObject) |
| 261 return false; | 261 return false; |
| 262 | 262 |
| 263 v8::HandleScope handleScope(isolate); | 263 v8::HandleScope handleScope(isolate); |
| 264 v8::Handle<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPOb
ject->v8Object); | 264 v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPObj
ect->v8Object); |
| 265 if (v8Object.IsEmpty()) | 265 if (v8Object.IsEmpty()) |
| 266 return false; | 266 return false; |
| 267 Element* native = V8Element::hasInstance(v8Object, isolate) ? V8Element::toI
mpl(v8Object) : 0; | 267 Element* native = V8Element::hasInstance(v8Object, isolate) ? V8Element::toI
mpl(v8Object) : 0; |
| 268 if (!native) | 268 if (!native) |
| 269 return false; | 269 return false; |
| 270 | 270 |
| 271 *webElement = WebElement(native); | 271 *webElement = WebElement(native); |
| 272 return true; | 272 return true; |
| 273 } | 273 } |
| 274 | 274 |
| 275 static bool getArrayBufferImpl(NPObject* object, WebArrayBuffer* arrayBuffer, v8
::Isolate* isolate) | 275 static bool getArrayBufferImpl(NPObject* object, WebArrayBuffer* arrayBuffer, v8
::Isolate* isolate) |
| 276 { | 276 { |
| 277 if (!object) | 277 if (!object) |
| 278 return false; | 278 return false; |
| 279 | 279 |
| 280 V8NPObject* v8NPObject = npObjectToV8NPObject(object); | 280 V8NPObject* v8NPObject = npObjectToV8NPObject(object); |
| 281 if (!v8NPObject) | 281 if (!v8NPObject) |
| 282 return false; | 282 return false; |
| 283 | 283 |
| 284 v8::HandleScope handleScope(isolate); | 284 v8::HandleScope handleScope(isolate); |
| 285 v8::Handle<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPOb
ject->v8Object); | 285 v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPObj
ect->v8Object); |
| 286 if (v8Object.IsEmpty()) | 286 if (v8Object.IsEmpty()) |
| 287 return false; | 287 return false; |
| 288 DOMArrayBuffer* impl = V8ArrayBuffer::hasInstance(v8Object, isolate) ? V8Arr
ayBuffer::toImpl(v8Object) : 0; | 288 DOMArrayBuffer* impl = V8ArrayBuffer::hasInstance(v8Object, isolate) ? V8Arr
ayBuffer::toImpl(v8Object) : 0; |
| 289 if (!impl) | 289 if (!impl) |
| 290 return false; | 290 return false; |
| 291 | 291 |
| 292 *arrayBuffer = WebArrayBuffer(impl); | 292 *arrayBuffer = WebArrayBuffer(impl); |
| 293 return true; | 293 return true; |
| 294 } | 294 } |
| 295 | 295 |
| 296 static bool getArrayBufferViewImpl(NPObject* object, WebArrayBufferView* arrayBu
fferView, v8::Isolate* isolate) | 296 static bool getArrayBufferViewImpl(NPObject* object, WebArrayBufferView* arrayBu
fferView, v8::Isolate* isolate) |
| 297 { | 297 { |
| 298 if (!object) | 298 if (!object) |
| 299 return false; | 299 return false; |
| 300 | 300 |
| 301 V8NPObject* v8NPObject = npObjectToV8NPObject(object); | 301 V8NPObject* v8NPObject = npObjectToV8NPObject(object); |
| 302 if (!v8NPObject) | 302 if (!v8NPObject) |
| 303 return false; | 303 return false; |
| 304 | 304 |
| 305 v8::HandleScope handleScope(isolate); | 305 v8::HandleScope handleScope(isolate); |
| 306 v8::Handle<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPOb
ject->v8Object); | 306 v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPObj
ect->v8Object); |
| 307 if (v8Object.IsEmpty()) | 307 if (v8Object.IsEmpty()) |
| 308 return false; | 308 return false; |
| 309 DOMArrayBufferView* impl = V8ArrayBufferView::hasInstance(v8Object, isolate)
? V8ArrayBufferView::toImpl(v8Object) : 0; | 309 DOMArrayBufferView* impl = V8ArrayBufferView::hasInstance(v8Object, isolate)
? V8ArrayBufferView::toImpl(v8Object) : 0; |
| 310 if (!impl) | 310 if (!impl) |
| 311 return false; | 311 return false; |
| 312 | 312 |
| 313 *arrayBufferView = WebArrayBufferView(impl); | 313 *arrayBufferView = WebArrayBufferView(impl); |
| 314 return true; | 314 return true; |
| 315 } | 315 } |
| 316 | 316 |
| 317 static NPObject* makeIntArrayImpl(const WebVector<int>& data, v8::Isolate* isola
te) | 317 static NPObject* makeIntArrayImpl(const WebVector<int>& data, v8::Isolate* isola
te) |
| 318 { | 318 { |
| 319 v8::HandleScope handleScope(isolate); | 319 v8::HandleScope handleScope(isolate); |
| 320 v8::Handle<v8::Array> result = v8::Array::New(isolate, data.size()); | 320 v8::Local<v8::Array> result = v8::Array::New(isolate, data.size()); |
| 321 for (size_t i = 0; i < data.size(); ++i) | 321 for (size_t i = 0; i < data.size(); ++i) |
| 322 result->Set(i, v8::Number::New(isolate, data[i])); | 322 result->Set(i, v8::Number::New(isolate, data[i])); |
| 323 | 323 |
| 324 LocalDOMWindow* window = currentDOMWindow(isolate); | 324 LocalDOMWindow* window = currentDOMWindow(isolate); |
| 325 return npCreateV8ScriptObject(isolate, 0, result, window); | 325 return npCreateV8ScriptObject(isolate, 0, result, window); |
| 326 } | 326 } |
| 327 | 327 |
| 328 static NPObject* makeStringArrayImpl(const WebVector<WebString>& data, v8::Isola
te* isolate) | 328 static NPObject* makeStringArrayImpl(const WebVector<WebString>& data, v8::Isola
te* isolate) |
| 329 { | 329 { |
| 330 v8::HandleScope handleScope(isolate); | 330 v8::HandleScope handleScope(isolate); |
| 331 v8::Handle<v8::Array> result = v8::Array::New(isolate, data.size()); | 331 v8::Local<v8::Array> result = v8::Array::New(isolate, data.size()); |
| 332 for (size_t i = 0; i < data.size(); ++i) | 332 for (size_t i = 0; i < data.size(); ++i) |
| 333 result->Set(i, v8String(isolate, data[i])); | 333 result->Set(i, v8String(isolate, data[i])); |
| 334 | 334 |
| 335 LocalDOMWindow* window = currentDOMWindow(isolate); | 335 LocalDOMWindow* window = currentDOMWindow(isolate); |
| 336 return npCreateV8ScriptObject(isolate, 0, result, window); | 336 return npCreateV8ScriptObject(isolate, 0, result, window); |
| 337 } | 337 } |
| 338 | 338 |
| 339 bool WebBindings::getRange(NPObject* range, WebRange* webRange) | 339 bool WebBindings::getRange(NPObject* range, WebRange* webRange) |
| 340 { | 340 { |
| 341 return getRangeImpl(range, webRange, v8::Isolate::GetCurrent()); | 341 return getRangeImpl(range, webRange, v8::Isolate::GetCurrent()); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 if (!v8Object) | 395 if (!v8Object) |
| 396 return v8::Undefined(isolate); | 396 return v8::Undefined(isolate); |
| 397 return convertNPVariantToV8Object(isolate, variant, v8Object->rootObject
->frame()->script().windowScriptNPObject()); | 397 return convertNPVariantToV8Object(isolate, variant, v8Object->rootObject
->frame()->script().windowScriptNPObject()); |
| 398 } | 398 } |
| 399 // Safe to pass 0 since we have checked the script object class to make sure
the | 399 // Safe to pass 0 since we have checked the script object class to make sure
the |
| 400 // argument is a primitive v8 type. | 400 // argument is a primitive v8 type. |
| 401 return convertNPVariantToV8Object(isolate, variant, 0); | 401 return convertNPVariantToV8Object(isolate, variant, 0); |
| 402 } | 402 } |
| 403 | 403 |
| 404 } // namespace blink | 404 } // namespace blink |
| OLD | NEW |