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

Side by Side Diff: Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp

Issue 389363002: Revert of DevTools: added injectedScript.evaluateWithDetails, that return exception (...) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 5 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
« no previous file with comments | « no previous file | Source/bindings/core/v8/custom/V8JavaScriptCallFrameCustom.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) 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 #include "bindings/core/v8/custom/V8Int8ArrayCustom.h" 51 #include "bindings/core/v8/custom/V8Int8ArrayCustom.h"
52 #include "bindings/core/v8/custom/V8Uint16ArrayCustom.h" 52 #include "bindings/core/v8/custom/V8Uint16ArrayCustom.h"
53 #include "bindings/core/v8/custom/V8Uint32ArrayCustom.h" 53 #include "bindings/core/v8/custom/V8Uint32ArrayCustom.h"
54 #include "bindings/core/v8/custom/V8Uint8ArrayCustom.h" 54 #include "bindings/core/v8/custom/V8Uint8ArrayCustom.h"
55 #include "bindings/core/v8/custom/V8Uint8ClampedArrayCustom.h" 55 #include "bindings/core/v8/custom/V8Uint8ClampedArrayCustom.h"
56 #include "core/events/EventTarget.h" 56 #include "core/events/EventTarget.h"
57 #include "core/frame/LocalDOMWindow.h" 57 #include "core/frame/LocalDOMWindow.h"
58 #include "core/inspector/InjectedScript.h" 58 #include "core/inspector/InjectedScript.h"
59 #include "core/inspector/InjectedScriptHost.h" 59 #include "core/inspector/InjectedScriptHost.h"
60 #include "core/inspector/InspectorDOMAgent.h" 60 #include "core/inspector/InspectorDOMAgent.h"
61 #include "core/inspector/JavaScriptCallFrame.h"
62 #include "platform/JSONValues.h" 61 #include "platform/JSONValues.h"
63 62
64 namespace WebCore { 63 namespace WebCore {
65 64
66 Node* InjectedScriptHost::scriptValueAsNode(ScriptState* scriptState, ScriptValu e value) 65 Node* InjectedScriptHost::scriptValueAsNode(ScriptState* scriptState, ScriptValu e value)
67 { 66 {
68 ScriptState::Scope scope(scriptState); 67 ScriptState::Scope scope(scriptState);
69 if (!value.isObject() || value.isNull()) 68 if (!value.isObject() || value.isNull())
70 return 0; 69 return 0;
71 return V8Node::toNative(v8::Handle<v8::Object>::Cast(value.v8Value())); 70 return V8Node::toNative(v8::Handle<v8::Object>::Cast(value.v8Value()));
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 if (info.Length() < 2) 328 if (info.Length() < 2)
330 return; 329 return;
331 330
332 InjectedScriptHost* host = V8InjectedScriptHost::toNative(info.Holder()); 331 InjectedScriptHost* host = V8InjectedScriptHost::toNative(info.Holder());
333 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); 332 ScriptState* scriptState = ScriptState::current(info.GetIsolate());
334 ScriptValue object(scriptState, info[0]); 333 ScriptValue object(scriptState, info[0]);
335 ScriptValue hints(scriptState, info[1]); 334 ScriptValue hints(scriptState, info[1]);
336 host->inspectImpl(object.toJSONValue(scriptState), hints.toJSONValue(scriptS tate)); 335 host->inspectImpl(object.toJSONValue(scriptState), hints.toJSONValue(scriptS tate));
337 } 336 }
338 337
339 void V8InjectedScriptHost::evalMethodCustom(const v8::FunctionCallbackInfo<v8::V alue>& info) 338 void V8InjectedScriptHost::evaluateMethodCustom(const v8::FunctionCallbackInfo<v 8::Value>& info)
340 { 339 {
341 v8::Isolate* isolate = info.GetIsolate(); 340 v8::Isolate* isolate = info.GetIsolate();
342 if (info.Length() < 1) { 341 if (info.Length() < 1) {
343 isolate->ThrowException(v8::Exception::Error(v8::String::NewFromUtf8(iso late, "One argument expected."))); 342 isolate->ThrowException(v8::Exception::Error(v8::String::NewFromUtf8(iso late, "One argument expected.")));
344 return; 343 return;
345 } 344 }
346 345
347 v8::Handle<v8::String> expression = info[0]->ToString(); 346 v8::Handle<v8::String> expression = info[0]->ToString();
348 if (expression.IsEmpty()) { 347 if (expression.IsEmpty()) {
349 isolate->ThrowException(v8::Exception::Error(v8::String::NewFromUtf8(iso late, "The argument must be a string."))); 348 isolate->ThrowException(v8::Exception::Error(v8::String::NewFromUtf8(iso late, "The argument must be a string.")));
350 return; 349 return;
351 } 350 }
352 351
353 ASSERT(isolate->InContext()); 352 ASSERT(isolate->InContext());
354 v8::TryCatch tryCatch; 353 v8::TryCatch tryCatch;
355 v8::Handle<v8::Value> result = V8ScriptRunner::compileAndRunInternalScript(e xpression, info.GetIsolate()); 354 v8::Handle<v8::Value> result = V8ScriptRunner::compileAndRunInternalScript(e xpression, info.GetIsolate());
356 if (tryCatch.HasCaught()) { 355 if (tryCatch.HasCaught()) {
357 v8SetReturnValue(info, tryCatch.ReThrow()); 356 v8SetReturnValue(info, tryCatch.ReThrow());
358 return; 357 return;
359 } 358 }
360 v8SetReturnValue(info, result); 359 v8SetReturnValue(info, result);
361 } 360 }
362 361
363 void V8InjectedScriptHost::evaluateWithExceptionDetailsMethodCustom(const v8::Fu nctionCallbackInfo<v8::Value>& info)
364 {
365 v8::Isolate* isolate = info.GetIsolate();
366 if (info.Length() < 1) {
367 isolate->ThrowException(v8::Exception::Error(v8::String::NewFromUtf8(iso late, "One argument expected.")));
368 return;
369 }
370
371 v8::Handle<v8::String> expression = info[0]->ToString();
372 if (expression.IsEmpty()) {
373 isolate->ThrowException(v8::Exception::Error(v8::String::NewFromUtf8(iso late, "The argument must be a string.")));
374 return;
375 }
376
377 ASSERT(isolate->InContext());
378 v8::TryCatch tryCatch;
379 v8::Handle<v8::Value> result = V8ScriptRunner::compileAndRunInternalScript(e xpression, info.GetIsolate());
380
381 v8::Local<v8::Object> wrappedResult = v8::Object::New(isolate);
382 if (tryCatch.HasCaught()) {
383 wrappedResult->Set(v8::String::NewFromUtf8(isolate, "result"), tryCatch. Exception());
384 wrappedResult->Set(v8::String::NewFromUtf8(isolate, "exceptionDetails"), JavaScriptCallFrame::createExceptionDetails(tryCatch.Message(), isolate));
385 } else {
386 wrappedResult->Set(v8::String::NewFromUtf8(isolate, "result"), result);
387 wrappedResult->Set(v8::String::NewFromUtf8(isolate, "exceptionDetails"), v8::Undefined(isolate));
388 }
389 v8SetReturnValue(info, wrappedResult);
390 }
391
392 void V8InjectedScriptHost::setFunctionVariableValueMethodCustom(const v8::Functi onCallbackInfo<v8::Value>& info) 362 void V8InjectedScriptHost::setFunctionVariableValueMethodCustom(const v8::Functi onCallbackInfo<v8::Value>& info)
393 { 363 {
394 v8::Handle<v8::Value> functionValue = info[0]; 364 v8::Handle<v8::Value> functionValue = info[0];
395 int scopeIndex = info[1]->Int32Value(); 365 int scopeIndex = info[1]->Int32Value();
396 String variableName = toCoreStringWithUndefinedOrNullCheck(info[2]); 366 String variableName = toCoreStringWithUndefinedOrNullCheck(info[2]);
397 v8::Handle<v8::Value> newValue = info[3]; 367 v8::Handle<v8::Value> newValue = info[3];
398 368
399 InjectedScriptHost* host = V8InjectedScriptHost::toNative(info.Holder()); 369 InjectedScriptHost* host = V8InjectedScriptHost::toNative(info.Holder());
400 ScriptDebugServer& debugServer = host->scriptDebugServer(); 370 ScriptDebugServer& debugServer = host->scriptDebugServer();
401 v8SetReturnValue(info, debugServer.setFunctionVariableValue(functionValue, s copeIndex, variableName, newValue)); 371 v8SetReturnValue(info, debugServer.setFunctionVariableValue(functionValue, s copeIndex, variableName, newValue));
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 OwnPtr<v8::Handle<v8::Value>[]> argv = adoptArrayPtr(new v8::Handle<v8::Valu e>[argc]); 458 OwnPtr<v8::Handle<v8::Value>[]> argv = adoptArrayPtr(new v8::Handle<v8::Valu e>[argc]);
489 for (size_t i = 0; i < argc; ++i) 459 for (size_t i = 0; i < argc; ++i)
490 argv[i] = info[i + 2]; 460 argv[i] = info[i + 2];
491 461
492 v8::Local<v8::Value> result = function->Call(receiver, argc, argv.get()); 462 v8::Local<v8::Value> result = function->Call(receiver, argc, argv.get());
493 debugServer.unmuteWarningsAndDeprecations(); 463 debugServer.unmuteWarningsAndDeprecations();
494 v8SetReturnValue(info, result); 464 v8SetReturnValue(info, result);
495 } 465 }
496 466
497 } // namespace WebCore 467 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/core/v8/custom/V8JavaScriptCallFrameCustom.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698