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 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 } | 312 } |
313 | 313 |
314 static NPObject* makeIntArrayImpl(const WebVector<int>& data, v8::Isolate* isola
te) | 314 static NPObject* makeIntArrayImpl(const WebVector<int>& data, v8::Isolate* isola
te) |
315 { | 315 { |
316 v8::HandleScope handleScope(isolate); | 316 v8::HandleScope handleScope(isolate); |
317 v8::Handle<v8::Array> result = v8::Array::New(data.size()); | 317 v8::Handle<v8::Array> result = v8::Array::New(data.size()); |
318 for (size_t i = 0; i < data.size(); ++i) | 318 for (size_t i = 0; i < data.size(); ++i) |
319 result->Set(i, v8::Number::New(isolate, data[i])); | 319 result->Set(i, v8::Number::New(isolate, data[i])); |
320 | 320 |
321 DOMWindow* window = toDOMWindow(isolate->GetCurrentContext()); | 321 DOMWindow* window = toDOMWindow(isolate->GetCurrentContext()); |
322 return npCreateV8ScriptObject(0, result, window); | 322 return npCreateV8ScriptObject(0, result, window, isolate); |
323 } | 323 } |
324 | 324 |
325 static NPObject* makeStringArrayImpl(const WebVector<WebString>& data, v8::Isola
te* isolate) | 325 static NPObject* makeStringArrayImpl(const WebVector<WebString>& data, v8::Isola
te* isolate) |
326 { | 326 { |
327 v8::HandleScope handleScope(isolate); | 327 v8::HandleScope handleScope(isolate); |
328 v8::Handle<v8::Array> result = v8::Array::New(data.size()); | 328 v8::Handle<v8::Array> result = v8::Array::New(data.size()); |
329 for (size_t i = 0; i < data.size(); ++i) | 329 for (size_t i = 0; i < data.size(); ++i) |
330 result->Set(i, v8String(data[i], isolate)); | 330 result->Set(i, v8String(data[i], isolate)); |
331 | 331 |
332 DOMWindow* window = toDOMWindow(isolate->GetCurrentContext()); | 332 DOMWindow* window = toDOMWindow(isolate->GetCurrentContext()); |
333 return npCreateV8ScriptObject(0, result, window); | 333 return npCreateV8ScriptObject(0, result, window, isolate); |
334 } | 334 } |
335 | 335 |
336 bool WebBindings::getRange(NPObject* range, WebRange* webRange) | 336 bool WebBindings::getRange(NPObject* range, WebRange* webRange) |
337 { | 337 { |
338 return getRangeImpl(range, webRange, v8::Isolate::GetCurrent()); | 338 return getRangeImpl(range, webRange, v8::Isolate::GetCurrent()); |
339 } | 339 } |
340 | 340 |
341 bool WebBindings::getArrayBuffer(NPObject* arrayBuffer, WebArrayBuffer* webArray
Buffer) | 341 bool WebBindings::getArrayBuffer(NPObject* arrayBuffer, WebArrayBuffer* webArray
Buffer) |
342 { | 342 { |
343 return getArrayBufferImpl(arrayBuffer, webArrayBuffer, v8::Isolate::GetCurre
nt()); | 343 return getArrayBufferImpl(arrayBuffer, webArrayBuffer, v8::Isolate::GetCurre
nt()); |
(...skipping 29 matching lines...) Expand all Loading... |
373 WebCore::pushExceptionHandler(handler, data); | 373 WebCore::pushExceptionHandler(handler, data); |
374 } | 374 } |
375 | 375 |
376 void WebBindings::popExceptionHandler() | 376 void WebBindings::popExceptionHandler() |
377 { | 377 { |
378 WebCore::popExceptionHandler(); | 378 WebCore::popExceptionHandler(); |
379 } | 379 } |
380 | 380 |
381 void WebBindings::toNPVariant(v8::Local<v8::Value> object, NPObject* root, NPVar
iant* result) | 381 void WebBindings::toNPVariant(v8::Local<v8::Value> object, NPObject* root, NPVar
iant* result) |
382 { | 382 { |
383 WebCore::convertV8ObjectToNPVariant(object, root, result); | 383 WebCore::convertV8ObjectToNPVariant(object, root, result, v8::Isolate::GetCu
rrent()); |
384 } | 384 } |
385 | 385 |
386 v8::Handle<v8::Value> WebBindings::toV8Value(const NPVariant* variant) | 386 v8::Handle<v8::Value> WebBindings::toV8Value(const NPVariant* variant) |
387 { | 387 { |
388 v8::Isolate* isolate = v8::Isolate::GetCurrent(); | 388 v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
389 if (variant->type == NPVariantType_Object) { | 389 if (variant->type == NPVariantType_Object) { |
390 NPObject* object = NPVARIANT_TO_OBJECT(*variant); | 390 NPObject* object = NPVARIANT_TO_OBJECT(*variant); |
391 V8NPObject* v8Object = npObjectToV8NPObject(object); | 391 V8NPObject* v8Object = npObjectToV8NPObject(object); |
392 if (!v8Object) | 392 if (!v8Object) |
393 return v8::Undefined(isolate); | 393 return v8::Undefined(isolate); |
394 return convertNPVariantToV8Object(variant, v8Object->rootObject->frame()
->script()->windowScriptNPObject(), isolate); | 394 return convertNPVariantToV8Object(variant, v8Object->rootObject->frame()
->script()->windowScriptNPObject(), isolate); |
395 } | 395 } |
396 // Safe to pass 0 since we have checked the script object class to make sure
the | 396 // Safe to pass 0 since we have checked the script object class to make sure
the |
397 // argument is a primitive v8 type. | 397 // argument is a primitive v8 type. |
398 return convertNPVariantToV8Object(variant, 0, isolate); | 398 return convertNPVariantToV8Object(variant, 0, isolate); |
399 } | 399 } |
400 | 400 |
401 } // namespace WebKit | 401 } // namespace WebKit |
OLD | NEW |