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

Side by Side Diff: Source/core/inspector/InjectedScript.cpp

Issue 1307363006: DevTools: move instrumentation of v8 calls into V8ScriptRunner (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: addressed comments Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 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 18 matching lines...) Expand all
29 */ 29 */
30 30
31 #include "config.h" 31 #include "config.h"
32 32
33 33
34 #include "core/inspector/InjectedScript.h" 34 #include "core/inspector/InjectedScript.h"
35 35
36 #include "bindings/core/v8/ScriptFunctionCall.h" 36 #include "bindings/core/v8/ScriptFunctionCall.h"
37 #include "bindings/core/v8/V8Binding.h" 37 #include "bindings/core/v8/V8Binding.h"
38 #include "core/inspector/InjectedScriptHost.h" 38 #include "core/inspector/InjectedScriptHost.h"
39 #include "core/inspector/InspectorInstrumentation.h"
40 #include "core/inspector/InspectorTraceEvents.h" 39 #include "core/inspector/InspectorTraceEvents.h"
41 #include "core/inspector/JSONParser.h" 40 #include "core/inspector/JSONParser.h"
42 #include "core/inspector/RemoteObjectId.h" 41 #include "core/inspector/RemoteObjectId.h"
43 #include "platform/JSONValues.h" 42 #include "platform/JSONValues.h"
44 #include "wtf/text/WTFString.h" 43 #include "wtf/text/WTFString.h"
45 44
46 using blink::TypeBuilder::Array; 45 using blink::TypeBuilder::Array;
47 using blink::TypeBuilder::Debugger::CallFrame; 46 using blink::TypeBuilder::Debugger::CallFrame;
48 using blink::TypeBuilder::Debugger::CollectionEntry; 47 using blink::TypeBuilder::Debugger::CollectionEntry;
49 using blink::TypeBuilder::Debugger::FunctionDetails; 48 using blink::TypeBuilder::Debugger::FunctionDetails;
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 } 436 }
438 437
439 const ScriptValue& InjectedScript::injectedScriptObject() const 438 const ScriptValue& InjectedScript::injectedScriptObject() const
440 { 439 {
441 return m_injectedScriptObject; 440 return m_injectedScriptObject;
442 } 441 }
443 442
444 ScriptValue InjectedScript::callFunctionWithEvalEnabled(ScriptFunctionCall& func tion, bool& hadException) const 443 ScriptValue InjectedScript::callFunctionWithEvalEnabled(ScriptFunctionCall& func tion, bool& hadException) const
445 { 444 {
446 ASSERT(!isEmpty()); 445 ASSERT(!isEmpty());
447 ExecutionContext* executionContext = m_injectedScriptObject.scriptState()->e xecutionContext();
448 ScriptState::Scope scope(m_injectedScriptObject.scriptState());
449 v8::Local<v8::Function> functionObj = function.function();
450 DevToolsFunctionInfo info(functionObj);
451 InspectorInstrumentationCookie cookie = InspectorInstrumentation::willCallFu nction(executionContext, info);
452 446
453 ScriptState* scriptState = m_injectedScriptObject.scriptState(); 447 ScriptState* scriptState = m_injectedScriptObject.scriptState();
454 bool evalIsDisabled = false; 448 ScriptState::Scope scope(scriptState);
455 if (scriptState) { 449 bool evalIsDisabled = !scriptState->evalEnabled();
456 evalIsDisabled = !scriptState->evalEnabled(); 450 // Temporarily enable allow evals for inspector.
457 // Temporarily enable allow evals for inspector. 451 if (evalIsDisabled)
458 if (evalIsDisabled) 452 scriptState->setEvalEnabled(true);
459 scriptState->setEvalEnabled(true);
460 }
461 453
462 ScriptValue resultValue = function.call(hadException); 454 ScriptValue resultValue = function.call(hadException);
463 455
464 if (evalIsDisabled) 456 if (evalIsDisabled)
465 scriptState->setEvalEnabled(false); 457 scriptState->setEvalEnabled(false);
466 458
467 InspectorInstrumentation::didCallFunction(cookie);
468 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "Update Counters", TRACE_EVENT_SCOPE_THREAD, "data", InspectorUpdateCountersEvent::data( )); 459 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "Update Counters", TRACE_EVENT_SCOPE_THREAD, "data", InspectorUpdateCountersEvent::data( ));
469 return resultValue; 460 return resultValue;
470 } 461 }
471 462
472 void InjectedScript::makeCall(ScriptFunctionCall& function, RefPtr<JSONValue>* r esult) 463 void InjectedScript::makeCall(ScriptFunctionCall& function, RefPtr<JSONValue>* r esult)
473 { 464 {
474 if (isEmpty() || !canAccessInspectedWindow()) { 465 if (isEmpty() || !canAccessInspectedWindow()) {
475 *result = JSONValue::null(); 466 *result = JSONValue::null();
476 return; 467 return;
477 } 468 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 String text = !message.IsEmpty() ? toCoreStringWithUndefinedOrNullCheck( message->Get()) : "Internal error"; 523 String text = !message.IsEmpty() ? toCoreStringWithUndefinedOrNullCheck( message->Get()) : "Internal error";
533 *exceptionDetails = TypeBuilder::Debugger::ExceptionDetails::create().se tText(text); 524 *exceptionDetails = TypeBuilder::Debugger::ExceptionDetails::create().se tText(text);
534 } else { 525 } else {
535 *result = toJSONValue(resultValue); 526 *result = toJSONValue(resultValue);
536 if (!*result) 527 if (!*result)
537 *result = JSONString::create(String::format("Object has too long ref erence chain(must not be longer than %d)", JSONValue::maxDepth)); 528 *result = JSONString::create(String::format("Object has too long ref erence chain(must not be longer than %d)", JSONValue::maxDepth));
538 } 529 }
539 } 530 }
540 531
541 } // namespace blink 532 } // namespace blink
542
OLDNEW
« no previous file with comments | « Source/bindings/core/v8/V8WorkerGlobalScopeEventListener.cpp ('k') | Source/core/inspector/InspectorDebuggerAgent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698