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

Unified Diff: Source/core/inspector/V8DebuggerAgent.cpp

Issue 1291613002: DevTools: make V8DebuggerAgent call Client instead of overriden methods (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Changed Client to only return defaultInjectedScript Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/inspector/V8DebuggerAgent.cpp
diff --git a/Source/core/inspector/V8DebuggerAgent.cpp b/Source/core/inspector/V8DebuggerAgent.cpp
index 26d2a92742f2e130bcba46eefe4e75e1178aecf0..8a9941e3a97206e3f9b60c882b7184d57eba570c 100644
--- a/Source/core/inspector/V8DebuggerAgent.cpp
+++ b/Source/core/inspector/V8DebuggerAgent.cpp
@@ -121,10 +121,11 @@ static PassRefPtrWillBeRawPtr<ScriptCallStack> toScriptCallStack(v8::Local<v8::O
return jsCallFrame ? toScriptCallStack(jsCallFrame.get()) : nullptr;
}
-V8DebuggerAgent::V8DebuggerAgent(InjectedScriptManager* injectedScriptManager, V8Debugger* debugger)
+V8DebuggerAgent::V8DebuggerAgent(InjectedScriptManager* injectedScriptManager, V8Debugger* debugger, V8DebuggerAgent::Client* client)
: InspectorBaseAgent<V8DebuggerAgent, InspectorFrontend::Debugger>("Debugger")
, m_injectedScriptManager(injectedScriptManager)
, m_debugger(debugger)
+ , m_client(client)
, m_isolate(debugger->isolate())
, m_pausedScriptState(nullptr)
, m_breakReason(InspectorFrontend::Debugger::Reason::Other)
@@ -134,7 +135,6 @@ V8DebuggerAgent::V8DebuggerAgent(InjectedScriptManager* injectedScriptManager, V
, m_steppingFromFramework(false)
, m_pausingOnNativeEvent(false)
, m_pausingOnAsyncOperation(false)
- , m_listener(nullptr)
, m_skippedStepFrameCount(0)
, m_recursionLevelForStepOut(0)
, m_recursionLevelForStepFrame(0)
@@ -178,11 +178,9 @@ void V8DebuggerAgent::enable()
// startListeningV8Debugger may result in reporting all parsed scripts to
// the agent so it should already be in enabled state by then.
m_state->setBoolean(DebuggerAgentState::debuggerEnabled, true);
- startListeningV8Debugger();
+ m_client->startListeningV8Debugger();
dgozman 2015/08/12 02:00:05 Having this to go through client is awkward.
// FIXME(WK44513): breakpoints activated flag should be synchronized between all front-ends
debugger().setBreakpointsActivated(true);
- if (m_listener)
- m_listener->debuggerWasEnabled();
}
void V8DebuggerAgent::disable()
@@ -194,12 +192,8 @@ void V8DebuggerAgent::disable()
m_state->setLong(DebuggerAgentState::asyncCallStackDepth, 0);
m_state->setBoolean(DebuggerAgentState::promiseTrackerEnabled, false);
- stopListeningV8Debugger();
+ m_client->stopListeningV8Debugger();
clear();
-
- if (m_listener)
- m_listener->debuggerWasDisabled();
-
m_skipAllPauses = false;
}
@@ -752,7 +746,7 @@ void V8DebuggerAgent::didReceiveV8AsyncTaskEvent(v8::Local<v8::Context> context,
bool V8DebuggerAgent::v8PromiseEventsEnabled() const
{
- return promiseTracker().isEnabled() || (m_listener && m_listener->canPauseOnPromiseEvent());
+ return promiseTracker().isEnabled() || m_client->canPauseOnPromiseEvent();
}
void V8DebuggerAgent::didReceiveV8PromiseEvent(v8::Local<v8::Context> context, v8::Local<v8::Object> promise, v8::Local<v8::Value> parentPromise, int status)
@@ -760,16 +754,14 @@ void V8DebuggerAgent::didReceiveV8PromiseEvent(v8::Local<v8::Context> context, v
ScriptState* scriptState = ScriptState::from(context);
if (promiseTracker().isEnabled())
promiseTracker().didReceiveV8PromiseEvent(scriptState, promise, parentPromise, status);
- if (!m_listener)
- return;
if (!parentPromise.IsEmpty() && parentPromise->IsObject())
return;
if (status < 0)
- m_listener->didRejectPromise();
+ m_client->didRejectPromise();
else if (status > 0)
- m_listener->didResolvePromise();
+ m_client->didResolvePromise();
else
- m_listener->didCreatePromise();
+ m_client->didCreatePromise();
}
void V8DebuggerAgent::pause(ErrorString* errorString)
@@ -921,17 +913,25 @@ void V8DebuggerAgent::evaluateOnCallFrame(ErrorString* errorString, const String
if (asBool(doNotPauseOnExceptionsAndMuteConsole)) {
if (previousPauseOnExceptionsState != V8Debugger::DontPauseOnExceptions)
debugger().setPauseOnExceptionsState(V8Debugger::DontPauseOnExceptions);
- muteConsole();
+ m_client->muteConsole();
}
injectedScript.evaluateOnCallFrame(errorString, callStack, isAsync, callFrameId, expression, objectGroup ? *objectGroup : "", asBool(includeCommandLineAPI), asBool(returnByValue), asBool(generatePreview), &result, wasThrown, &exceptionDetails);
if (asBool(doNotPauseOnExceptionsAndMuteConsole)) {
- unmuteConsole();
+ m_client->unmuteConsole();
if (debugger().pauseOnExceptionsState() != previousPauseOnExceptionsState)
debugger().setPauseOnExceptionsState(previousPauseOnExceptionsState);
}
}
+InjectedScript V8DebuggerAgent::injectedScriptForEval(ErrorString* errorString, const int* executionContextId)
+{
+ InjectedScript injectedScript = executionContextId ? m_injectedScriptManager->injectedScriptForId(*executionContextId) : m_client->defaultInjectedScript();
+ if (injectedScript.isEmpty())
+ *errorString = "Execution context with given id not found.";
+ return injectedScript;
+}
+
void V8DebuggerAgent::compileScript(ErrorString* errorString, const String& expression, const String& sourceURL, bool persistScript, const int* executionContextId, TypeBuilder::OptOutput<ScriptId>* scriptId, RefPtr<ExceptionDetails>& exceptionDetails)
{
if (!checkEnabled(errorString))
@@ -977,7 +977,7 @@ void V8DebuggerAgent::runScript(ErrorString* errorString, const ScriptId& script
if (asBool(doNotPauseOnExceptionsAndMuteConsole)) {
if (previousPauseOnExceptionsState != V8Debugger::DontPauseOnExceptions)
debugger().setPauseOnExceptionsState(V8Debugger::DontPauseOnExceptions);
- muteConsole();
+ m_client->muteConsole();
}
if (!m_compiledScripts.Contains(scriptId)) {
@@ -1013,7 +1013,7 @@ void V8DebuggerAgent::runScript(ErrorString* errorString, const ScriptId& script
result = injectedScript.wrapObject(scriptValue, objectGroup ? *objectGroup : "");
if (asBool(doNotPauseOnExceptionsAndMuteConsole)) {
- unmuteConsole();
+ m_client->unmuteConsole();
if (debugger().pauseOnExceptionsState() != previousPauseOnExceptionsState)
debugger().setPauseOnExceptionsState(previousPauseOnExceptionsState);
}
@@ -1740,7 +1740,6 @@ DEFINE_TRACE(V8DebuggerAgent)
{
#if ENABLE(OILPAN)
visitor->trace(m_injectedScriptManager);
- visitor->trace(m_listener);
visitor->trace(m_v8AsyncCallTracker);
visitor->trace(m_promiseTracker);
visitor->trace(m_asyncOperations);

Powered by Google App Engine
This is Rietveld 408576698