Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007-2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2007-2011 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 19 matching lines...) Expand all Loading... | |
| 30 | 30 |
| 31 #include "config.h" | 31 #include "config.h" |
| 32 #include "V8InjectedScriptHost.h" | 32 #include "V8InjectedScriptHost.h" |
| 33 | 33 |
| 34 #include "V8Database.h" | 34 #include "V8Database.h" |
| 35 #include "V8HTMLAllCollection.h" | 35 #include "V8HTMLAllCollection.h" |
| 36 #include "V8HTMLCollection.h" | 36 #include "V8HTMLCollection.h" |
| 37 #include "V8Node.h" | 37 #include "V8Node.h" |
| 38 #include "V8NodeList.h" | 38 #include "V8NodeList.h" |
| 39 #include "V8Storage.h" | 39 #include "V8Storage.h" |
| 40 #include "bindings/dart/DartController.h" | |
| 40 #include "bindings/dart/DartHandleProxy.h" | 41 #include "bindings/dart/DartHandleProxy.h" |
| 42 #include "bindings/dart/DartScriptState.h" | |
| 43 #include "bindings/dart/V8Converter.h" | |
| 41 #include "bindings/v8/BindingSecurity.h" | 44 #include "bindings/v8/BindingSecurity.h" |
| 42 #include "bindings/v8/ScriptDebugServer.h" | 45 #include "bindings/v8/ScriptDebugServer.h" |
| 43 #include "bindings/v8/ScriptValue.h" | 46 #include "bindings/v8/ScriptValue.h" |
| 44 #include "bindings/v8/V8AbstractEventListener.h" | 47 #include "bindings/v8/V8AbstractEventListener.h" |
| 45 #include "bindings/v8/V8Binding.h" | 48 #include "bindings/v8/V8Binding.h" |
| 46 #include "bindings/v8/V8HiddenPropertyName.h" | 49 #include "bindings/v8/V8HiddenPropertyName.h" |
| 50 #include "bindings/v8/V8RecursionScope.h" | |
| 47 #include "bindings/v8/V8ScriptRunner.h" | 51 #include "bindings/v8/V8ScriptRunner.h" |
| 48 #include "bindings/v8/custom/V8Float32ArrayCustom.h" | 52 #include "bindings/v8/custom/V8Float32ArrayCustom.h" |
| 49 #include "bindings/v8/custom/V8Float64ArrayCustom.h" | 53 #include "bindings/v8/custom/V8Float64ArrayCustom.h" |
| 50 #include "bindings/v8/custom/V8Int16ArrayCustom.h" | 54 #include "bindings/v8/custom/V8Int16ArrayCustom.h" |
| 51 #include "bindings/v8/custom/V8Int32ArrayCustom.h" | 55 #include "bindings/v8/custom/V8Int32ArrayCustom.h" |
| 52 #include "bindings/v8/custom/V8Int8ArrayCustom.h" | 56 #include "bindings/v8/custom/V8Int8ArrayCustom.h" |
| 53 #include "bindings/v8/custom/V8Uint16ArrayCustom.h" | 57 #include "bindings/v8/custom/V8Uint16ArrayCustom.h" |
| 54 #include "bindings/v8/custom/V8Uint32ArrayCustom.h" | 58 #include "bindings/v8/custom/V8Uint32ArrayCustom.h" |
| 55 #include "bindings/v8/custom/V8Uint8ArrayCustom.h" | 59 #include "bindings/v8/custom/V8Uint8ArrayCustom.h" |
| 56 #include "bindings/v8/custom/V8Uint8ClampedArrayCustom.h" | 60 #include "bindings/v8/custom/V8Uint8ClampedArrayCustom.h" |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 348 return; | 352 return; |
| 349 } | 353 } |
| 350 | 354 |
| 351 v8::Handle<v8::String> expression = args[0]->ToString(); | 355 v8::Handle<v8::String> expression = args[0]->ToString(); |
| 352 if (expression.IsEmpty()) { | 356 if (expression.IsEmpty()) { |
| 353 v8::ThrowException(v8::Exception::Error(v8::String::New("The argument mu st be a string."))); | 357 v8::ThrowException(v8::Exception::Error(v8::String::New("The argument mu st be a string."))); |
| 354 return; | 358 return; |
| 355 } | 359 } |
| 356 | 360 |
| 357 ASSERT(!v8::Context::GetCurrent().IsEmpty()); | 361 ASSERT(!v8::Context::GetCurrent().IsEmpty()); |
| 362 | |
|
vsm
2013/09/30 22:08:03
Can this code be refactored to be a call back into
Jacob
2013/10/01 00:07:05
Moved it to a new file called DartInjectedScriptHo
| |
| 363 ScriptState* currentScriptState = 0; | |
| 364 v8::Local<v8::Value> scriptStateWrapper = args.Holder()->GetHiddenValue(V8Hi ddenPropertyName::scriptState()); | |
| 365 if (!scriptStateWrapper.IsEmpty() && scriptStateWrapper->IsExternal()) | |
| 366 currentScriptState = static_cast<ScriptState*>(v8::External::Cast(*scrip tStateWrapper)->Value()); | |
| 367 else | |
| 368 currentScriptState = ScriptState::current(); | |
| 369 | |
| 370 ScriptExecutionContext* scriptExecutionContext = currentScriptState->scriptE xecutionContext(); | |
| 371 ASSERT(scriptExecutionContext); | |
| 372 | |
| 373 if (!currentScriptState->isJavaScript()) { | |
| 374 DartScriptState* dartScriptState = static_cast<DartScriptState*>(current ScriptState); | |
| 375 DartIsolateScope scope(dartScriptState->isolate()); | |
| 376 DartApiScope apiScope; | |
| 377 | |
| 378 Dart_Handle target = Dart_GetLibraryFromId(dartScriptState->libraryId()) ; | |
| 379 v8SetReturnValue(args, DartHandleProxy::evaluate(target, V8Converter::st ringToDart(expression), Dart_Null())); | |
| 380 return; | |
| 381 } | |
| 382 | |
| 383 ASSERT(!v8::Context::GetCurrent().IsEmpty()); | |
| 358 v8::TryCatch tryCatch; | 384 v8::TryCatch tryCatch; |
| 359 v8::Handle<v8::Value> result = V8ScriptRunner::compileAndRunInternalScript(e xpression, args.GetIsolate()); | 385 v8::Handle<v8::Value> result = V8ScriptRunner::compileAndRunInternalScript(e xpression, args.GetIsolate()); |
| 360 if (tryCatch.HasCaught()) { | 386 if (tryCatch.HasCaught()) { |
| 361 v8SetReturnValue(args, tryCatch.ReThrow()); | 387 v8SetReturnValue(args, tryCatch.ReThrow()); |
| 362 return; | 388 return; |
| 363 } | 389 } |
| 364 v8SetReturnValue(args, result); | 390 v8SetReturnValue(args, result); |
| 365 } | 391 } |
| 366 | 392 |
| 367 void V8InjectedScriptHost::setFunctionVariableValueMethodCustom(const v8::Functi onCallbackInfo<v8::Value>& args) | 393 void V8InjectedScriptHost::setFunctionVariableValueMethodCustom(const v8::Functi onCallbackInfo<v8::Value>& args) |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 443 int lineNumber; | 469 int lineNumber; |
| 444 int columnNumber; | 470 int columnNumber; |
| 445 if (!getFunctionLocation(args, &scriptId, &lineNumber, &columnNumber)) | 471 if (!getFunctionLocation(args, &scriptId, &lineNumber, &columnNumber)) |
| 446 return; | 472 return; |
| 447 | 473 |
| 448 InjectedScriptHost* host = V8InjectedScriptHost::toNative(args.Holder()); | 474 InjectedScriptHost* host = V8InjectedScriptHost::toNative(args.Holder()); |
| 449 host->unmonitorFunction(scriptId, lineNumber, columnNumber); | 475 host->unmonitorFunction(scriptId, lineNumber, columnNumber); |
| 450 } | 476 } |
| 451 | 477 |
| 452 } // namespace WebCore | 478 } // namespace WebCore |
| OLD | NEW |