Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Side by Side Diff: Source/bindings/v8/NPV8Object.cpp

Issue 33523002: Have Frame::script() return a reference (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/bindings/v8/DOMWrapperWorld.cpp ('k') | Source/bindings/v8/PageScriptDebugServer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved.
3 * Copyright (C) 2007, 2008, 2009 Google, Inc. All rights reserved. 3 * Copyright (C) 2007, 2008, 2009 Google, Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 VOID_TO_NPVARIANT(*result); 250 VOID_TO_NPVARIANT(*result);
251 return false; 251 return false;
252 } 252 }
253 253
254 Frame* frame = v8NpObject->rootObject->frame(); 254 Frame* frame = v8NpObject->rootObject->frame();
255 ASSERT(frame); 255 ASSERT(frame);
256 256
257 // Call the function object. 257 // Call the function object.
258 v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(functionO bject); 258 v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(functionO bject);
259 OwnPtr<v8::Handle<v8::Value>[]> argv = createValueListFromVariantArgs(argume nts, argumentCount, npObject, isolate); 259 OwnPtr<v8::Handle<v8::Value>[]> argv = createValueListFromVariantArgs(argume nts, argumentCount, npObject, isolate);
260 v8::Local<v8::Value> resultObject = frame->script()->callFunction(function, v8Object, argumentCount, argv.get()); 260 v8::Local<v8::Value> resultObject = frame->script().callFunction(function, v 8Object, argumentCount, argv.get());
261 261
262 // If we had an error, return false. The spec is a little unclear here, but says "Returns true if the method was 262 // If we had an error, return false. The spec is a little unclear here, but says "Returns true if the method was
263 // successfully invoked". If we get an error return value, was that success fully invoked? 263 // successfully invoked". If we get an error return value, was that success fully invoked?
264 if (resultObject.IsEmpty()) 264 if (resultObject.IsEmpty())
265 return false; 265 return false;
266 266
267 convertV8ObjectToNPVariant(resultObject, npObject, result, isolate); 267 convertV8ObjectToNPVariant(resultObject, npObject, result, isolate);
268 return true; 268 return true;
269 } 269 }
270 270
(...skipping 29 matching lines...) Expand all
300 if (!functionObject->IsFunction()) 300 if (!functionObject->IsFunction())
301 return false; 301 return false;
302 302
303 v8::Local<v8::Value> resultObject; 303 v8::Local<v8::Value> resultObject;
304 v8::Handle<v8::Function> function = v8::Local<v8::Function>::Cast(functionOb ject); 304 v8::Handle<v8::Function> function = v8::Local<v8::Function>::Cast(functionOb ject);
305 if (!function->IsNull()) { 305 if (!function->IsNull()) {
306 Frame* frame = v8NpObject->rootObject->frame(); 306 Frame* frame = v8NpObject->rootObject->frame();
307 ASSERT(frame); 307 ASSERT(frame);
308 308
309 OwnPtr<v8::Handle<v8::Value>[]> argv = createValueListFromVariantArgs(ar guments, argumentCount, npObject, isolate); 309 OwnPtr<v8::Handle<v8::Value>[]> argv = createValueListFromVariantArgs(ar guments, argumentCount, npObject, isolate);
310 resultObject = frame->script()->callFunction(function, functionObject, a rgumentCount, argv.get()); 310 resultObject = frame->script().callFunction(function, functionObject, ar gumentCount, argv.get());
311 } 311 }
312 // If we had an error, return false. The spec is a little unclear here, but says "Returns true if the method was 312 // If we had an error, return false. The spec is a little unclear here, but says "Returns true if the method was
313 // successfully invoked". If we get an error return value, was that success fully invoked? 313 // successfully invoked". If we get an error return value, was that success fully invoked?
314 if (resultObject.IsEmpty()) 314 if (resultObject.IsEmpty())
315 return false; 315 return false;
316 316
317 convertV8ObjectToNPVariant(resultObject, npObject, result, isolate); 317 convertV8ObjectToNPVariant(resultObject, npObject, result, isolate);
318 return true; 318 return true;
319 } 319 }
320 320
(...skipping 27 matching lines...) Expand all
348 String filename; 348 String filename;
349 if (!popupsAllowed) 349 if (!popupsAllowed)
350 filename = "npscript"; 350 filename = "npscript";
351 351
352 Frame* frame = v8NpObject->rootObject->frame(); 352 Frame* frame = v8NpObject->rootObject->frame();
353 ASSERT(frame); 353 ASSERT(frame);
354 354
355 String script = String::fromUTF8(npScript->UTF8Characters, npScript->UTF8Len gth); 355 String script = String::fromUTF8(npScript->UTF8Characters, npScript->UTF8Len gth);
356 356
357 UserGestureIndicator gestureIndicator(popupsAllowed ? DefinitelyProcessingNe wUserGesture : PossiblyProcessingUserGesture); 357 UserGestureIndicator gestureIndicator(popupsAllowed ? DefinitelyProcessingNe wUserGesture : PossiblyProcessingUserGesture);
358 v8::Local<v8::Value> v8result = frame->script()->executeScriptAndReturnValue (context, ScriptSourceCode(script, KURL(ParsedURLString, filename))); 358 v8::Local<v8::Value> v8result = frame->script().executeScriptAndReturnValue( context, ScriptSourceCode(script, KURL(ParsedURLString, filename)));
359 359
360 if (v8result.IsEmpty()) 360 if (v8result.IsEmpty())
361 return false; 361 return false;
362 362
363 if (_NPN_IsAlive(npObject)) 363 if (_NPN_IsAlive(npObject))
364 convertV8ObjectToNPVariant(v8result, npObject, result, isolate); 364 convertV8ObjectToNPVariant(v8result, npObject, result, isolate);
365 return true; 365 return true;
366 } 366 }
367 367
368 bool _NPN_GetProperty(NPP npp, NPObject* npObject, NPIdentifier propertyName, NP Variant* result) 368 bool _NPN_GetProperty(NPP npp, NPObject* npObject, NPIdentifier propertyName, NP Variant* result)
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 v8::Isolate* isolate = v8::Isolate::GetCurrent(); 408 v8::Isolate* isolate = v8::Isolate::GetCurrent();
409 v8::HandleScope handleScope(isolate); 409 v8::HandleScope handleScope(isolate);
410 v8::Handle<v8::Context> context = toV8Context(npp, npObject); 410 v8::Handle<v8::Context> context = toV8Context(npp, npObject);
411 if (context.IsEmpty()) 411 if (context.IsEmpty())
412 return false; 412 return false;
413 413
414 v8::Context::Scope scope(context); 414 v8::Context::Scope scope(context);
415 ExceptionCatcher exceptionCatcher; 415 ExceptionCatcher exceptionCatcher;
416 416
417 v8::Handle<v8::Object> obj = v8::Local<v8::Object>::New(isolate, object- >v8Object); 417 v8::Handle<v8::Object> obj = v8::Local<v8::Object>::New(isolate, object- >v8Object);
418 obj->Set(npIdentifierToV8Identifier(propertyName), convertNPVariantToV8O bject(value, object->rootObject->frame()->script()->windowScriptNPObject(), cont ext->GetIsolate())); 418 obj->Set(npIdentifierToV8Identifier(propertyName), convertNPVariantToV8O bject(value, object->rootObject->frame()->script().windowScriptNPObject(), conte xt->GetIsolate()));
419 return true; 419 return true;
420 } 420 }
421 421
422 if (npObject->_class->setProperty) 422 if (npObject->_class->setProperty)
423 return npObject->_class->setProperty(npObject, propertyName, value); 423 return npObject->_class->setProperty(npObject, propertyName, value);
424 424
425 return false; 425 return false;
426 } 426 }
427 427
428 bool _NPN_RemoveProperty(NPP npp, NPObject* npObject, NPIdentifier propertyName) 428 bool _NPN_RemoveProperty(NPP npp, NPObject* npObject, NPIdentifier propertyName)
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 605
606 convertV8ObjectToNPVariant(resultObject, npObject, result, isolate); 606 convertV8ObjectToNPVariant(resultObject, npObject, result, isolate);
607 return true; 607 return true;
608 } 608 }
609 609
610 if (NP_CLASS_STRUCT_VERSION_HAS_CTOR(npObject->_class) && npObject->_class-> construct) 610 if (NP_CLASS_STRUCT_VERSION_HAS_CTOR(npObject->_class) && npObject->_class-> construct)
611 return npObject->_class->construct(npObject, arguments, argumentCount, r esult); 611 return npObject->_class->construct(npObject, arguments, argumentCount, r esult);
612 612
613 return false; 613 return false;
614 } 614 }
OLDNEW
« no previous file with comments | « Source/bindings/v8/DOMWrapperWorld.cpp ('k') | Source/bindings/v8/PageScriptDebugServer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698