Title: [135224] trunk/Source/WebCore
Revision
135224
Author
[email protected]
Date
2012-11-19 18:03:54 -0800 (Mon, 19 Nov 2012)

Log Message

Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
https://bugs.webkit.org/show_bug.cgi?id=102637

Patch by Peter Wang <[email protected]> on 2012-11-19
Reviewed by Timothy Hatcher.

Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.

No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
worker inspector window.

* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::createCallFrame):
(WebCore::ScriptDebugServer::callEvent):
(WebCore::ScriptDebugServer::willExecuteProgram):
* bindings/js/ScriptDebugServer.h:
(ScriptDebugServer):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::willExecuteProgram):
(WebCore):
* bindings/js/WorkerScriptDebugServer.h:
(WorkerScriptDebugServer):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (135223 => 135224)


--- trunk/Source/WebCore/ChangeLog	2012-11-20 02:02:26 UTC (rev 135223)
+++ trunk/Source/WebCore/ChangeLog	2012-11-20 02:03:54 UTC (rev 135224)
@@ -1,3 +1,27 @@
+2012-11-19  Peter Wang  <[email protected]>
+
+        Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
+        https://bugs.webkit.org/show_bug.cgi?id=102637
+
+        Reviewed by Timothy Hatcher.
+
+        Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
+
+        No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
+        worker inspector window.
+
+        * bindings/js/ScriptDebugServer.cpp:
+        (WebCore::ScriptDebugServer::createCallFrame):
+        (WebCore::ScriptDebugServer::callEvent):
+        (WebCore::ScriptDebugServer::willExecuteProgram):
+        * bindings/js/ScriptDebugServer.h:
+        (ScriptDebugServer):
+        * bindings/js/WorkerScriptDebugServer.cpp:
+        (WebCore::WorkerScriptDebugServer::willExecuteProgram):
+        (WebCore):
+        * bindings/js/WorkerScriptDebugServer.h:
+        (WorkerScriptDebugServer):
+
 2012-11-19  Pratik Solanki  <[email protected]>
 
         For single element arrays use the pointer into the CFDataRef instead of copying data

Modified: trunk/Source/WebCore/bindings/js/ScriptDebugServer.cpp (135223 => 135224)


--- trunk/Source/WebCore/bindings/js/ScriptDebugServer.cpp	2012-11-20 02:02:26 UTC (rev 135223)
+++ trunk/Source/WebCore/bindings/js/ScriptDebugServer.cpp	2012-11-20 02:03:54 UTC (rev 135224)
@@ -395,7 +395,7 @@
     m_callingListeners = false;
 }
 
-void ScriptDebugServer::createCallFrameAndPauseIfNeeded(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)
+void ScriptDebugServer::createCallFrame(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)
 {
     TextPosition textPosition(OrdinalNumber::fromOneBasedInt(lineNumber), OrdinalNumber::fromZeroBasedInt(columnNumber));
     m_currentCallFrame = _javascript_CallFrame::create(debuggerCallFrame, m_currentCallFrame, sourceID, textPosition);
@@ -403,7 +403,6 @@
         m_lastExecutedLine = -1;
         m_lastExecutedSourceId = sourceID;
     }
-    pauseIfNeeded(debuggerCallFrame.dynamicGlobalObject());
 }
 
 void ScriptDebugServer::updateCallFrameAndPauseIfNeeded(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)
@@ -452,8 +451,10 @@
 
 void ScriptDebugServer::callEvent(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)
 {
-    if (!m_paused)
-        createCallFrameAndPauseIfNeeded(debuggerCallFrame, sourceID, lineNumber, columnNumber);
+    if (!m_paused) {
+        createCallFrame(debuggerCallFrame, sourceID, lineNumber, columnNumber);
+        pauseIfNeeded(debuggerCallFrame.dynamicGlobalObject());
+    }
 }
 
 void ScriptDebugServer::atStatement(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)
@@ -492,8 +493,10 @@
 
 void ScriptDebugServer::willExecuteProgram(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)
 {
-    if (!m_paused)
-        createCallFrameAndPauseIfNeeded(debuggerCallFrame, sourceID, lineNumber, columnNumber);
+    if (!m_paused) {
+        createCallFrame(debuggerCallFrame, sourceID, lineNumber, columnNumber);
+        pauseIfNeeded(debuggerCallFrame.dynamicGlobalObject());
+    }
 }
 
 void ScriptDebugServer::didExecuteProgram(const DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)

Modified: trunk/Source/WebCore/bindings/js/ScriptDebugServer.h (135223 => 135224)


--- trunk/Source/WebCore/bindings/js/ScriptDebugServer.h	2012-11-20 02:02:26 UTC (rev 135223)
+++ trunk/Source/WebCore/bindings/js/ScriptDebugServer.h	2012-11-20 02:03:54 UTC (rev 135224)
@@ -127,7 +127,7 @@
     void dispatchDidParseSource(const ListenerSet& listeners, JSC::SourceProvider*, bool isContentScript);
     void dispatchFailedToParseSource(const ListenerSet& listeners, JSC::SourceProvider*, int errorLine, const String& errorMessage);
 
-    void createCallFrameAndPauseIfNeeded(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber, int columnNumber);
+    void createCallFrame(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber, int columnNumber);
     void updateCallFrameAndPauseIfNeeded(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber, int columnNumber);
     void pauseIfNeeded(JSC::JSGlobalObject* dynamicGlobalObject);
 

Modified: trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp (135223 => 135224)


--- trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp	2012-11-20 02:02:26 UTC (rev 135223)
+++ trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp	2012-11-20 02:03:54 UTC (rev 135224)
@@ -61,6 +61,12 @@
     recompileAllJSFunctions(0);
 }
 
+void WorkerScriptDebugServer::willExecuteProgram(const JSC::DebuggerCallFrame& debuggerCallFrame, intptr_t sourceID, int lineNumber, int columnNumber)
+{
+    if (!m_paused)
+        createCallFrame(debuggerCallFrame, sourceID, lineNumber, columnNumber);
+}
+
 void WorkerScriptDebugServer::recompileAllJSFunctions(Timer<ScriptDebugServer>*)
 {
     JSC::JSGlobalData* globalData = m_workerContext->script()->globalData();

Modified: trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.h (135223 => 135224)


--- trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.h	2012-11-20 02:02:26 UTC (rev 135223)
+++ trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.h	2012-11-20 02:03:54 UTC (rev 135224)
@@ -61,6 +61,8 @@
 
     virtual bool isContentScript(JSC::ExecState*) { return false; }
 
+    virtual void willExecuteProgram(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineno, int columnNumber);
+
     virtual void runEventLoopWhilePaused();
 
     WorkerContext* m_workerContext;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to