diff options
author | Ben Murdoch <benm@google.com> | 2010-10-22 13:02:20 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-10-26 15:21:41 +0100 |
commit | a94275402997c11dd2e778633dacf4b7e630a35d (patch) | |
tree | e66f56c67e3b01f22c9c23cd932271ee9ac558ed /WebCore/inspector/InspectorDebuggerAgent.cpp | |
parent | 09e26c78506587b3f5d930d7bc72a23287ffbec0 (diff) | |
download | external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.zip external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.gz external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.bz2 |
Merge WebKit at r70209: Initial merge by Git
Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
Diffstat (limited to 'WebCore/inspector/InspectorDebuggerAgent.cpp')
-rw-r--r-- | WebCore/inspector/InspectorDebuggerAgent.cpp | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/WebCore/inspector/InspectorDebuggerAgent.cpp b/WebCore/inspector/InspectorDebuggerAgent.cpp index 4964c09..a7eacf6 100644 --- a/WebCore/inspector/InspectorDebuggerAgent.cpp +++ b/WebCore/inspector/InspectorDebuggerAgent.cpp @@ -38,13 +38,13 @@ #include "PlatformString.h" #include "ScriptDebugServer.h" #include <wtf/MD5.h> -#include <wtf/text/CString.h> +#include <wtf/text/StringConcatenate.h> namespace WebCore { static String formatBreakpointId(const String& sourceID, unsigned lineNumber) { - return String::format("%s:%d", sourceID.utf8().data(), lineNumber); + return makeString(sourceID, ':', String::number(lineNumber)); } PassOwnPtr<InspectorDebuggerAgent> InspectorDebuggerAgent::create(InspectorController* inspectorController, InspectorFrontend* frontend) @@ -57,8 +57,6 @@ PassOwnPtr<InspectorDebuggerAgent> InspectorDebuggerAgent::create(InspectorContr return agent.release(); } -InspectorDebuggerAgent* InspectorDebuggerAgent::s_debuggerAgentOnBreakpoint = 0; - InspectorDebuggerAgent::InspectorDebuggerAgent(InspectorController* inspectorController, InspectorFrontend* frontend) : m_inspectorController(inspectorController) , m_frontend(frontend) @@ -71,9 +69,6 @@ InspectorDebuggerAgent::~InspectorDebuggerAgent() { ScriptDebugServer::shared().removeListener(this, m_inspectorController->inspectedPage()); m_pausedScriptState = 0; - - if (this == s_debuggerAgentOnBreakpoint) - s_debuggerAgentOnBreakpoint = 0; } bool InspectorDebuggerAgent::isDebuggerAlwaysEnabled() @@ -147,9 +142,23 @@ void InspectorDebuggerAgent::getScriptSource(const String& sourceID, String* scr *scriptSource = m_scriptIDToContent.get(sourceID); } +void InspectorDebuggerAgent::schedulePauseOnNextStatement(DebuggerEventType type, PassRefPtr<InspectorValue> data) +{ + m_breakProgramDetails = InspectorObject::create(); + m_breakProgramDetails->setNumber("eventType", type); + m_breakProgramDetails->setValue("eventData", data); + ScriptDebugServer::shared().setPauseOnNextStatement(true); +} + +void InspectorDebuggerAgent::cancelPauseOnNextStatement() +{ + m_breakProgramDetails = 0; + ScriptDebugServer::shared().setPauseOnNextStatement(false); +} + void InspectorDebuggerAgent::pause() { - ScriptDebugServer::shared().pause(); + schedulePauseOnNextStatement(JavaScriptPauseEventType, InspectorObject::create()); } void InspectorDebuggerAgent::resume() @@ -305,6 +314,7 @@ void InspectorDebuggerAgent::didPause(ScriptState* scriptState) void InspectorDebuggerAgent::didContinue() { m_pausedScriptState = 0; + m_breakProgramDetails = 0; m_frontend->resumedScript(); } @@ -313,14 +323,7 @@ void InspectorDebuggerAgent::breakProgram(DebuggerEventType type, PassRefPtr<Ins m_breakProgramDetails = InspectorObject::create(); m_breakProgramDetails->setNumber("eventType", type); m_breakProgramDetails->setValue("eventData", data); - s_debuggerAgentOnBreakpoint = this; - ScriptDebugServer::shared().breakProgram(); - if (!s_debuggerAgentOnBreakpoint) - return; - - s_debuggerAgentOnBreakpoint = 0; - m_breakProgramDetails = 0; } } // namespace WebCore |