Title: [177587] trunk/Source/WebCore
Revision
177587
Author
[email protected]
Date
2014-12-19 11:42:24 -0800 (Fri, 19 Dec 2014)

Log Message

Web Inspector: CRASH in inspector-protocol/debugger/terminate-dedicated-worker-while-paused.html
https://bugs.webkit.org/show_bug.cgi?id=139792

Patch by Joseph Pecoraro <[email protected]> on 2014-12-19
Reviewed by Timothy Hatcher.

* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::removeListener):
When removing listeners, we could be during WorkerGlobalObject shutdown
and WorkerGlobalObject::script may be null.

* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
This postTask may happen after m_pageInspector has been cleared, so
only execute it if m_pageInspector is still valid.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (177586 => 177587)


--- trunk/Source/WebCore/ChangeLog	2014-12-19 19:37:59 UTC (rev 177586)
+++ trunk/Source/WebCore/ChangeLog	2014-12-19 19:42:24 UTC (rev 177587)
@@ -1,3 +1,21 @@
+2014-12-19  Joseph Pecoraro  <[email protected]>
+
+        Web Inspector: CRASH in inspector-protocol/debugger/terminate-dedicated-worker-while-paused.html
+        https://bugs.webkit.org/show_bug.cgi?id=139792
+
+        Reviewed by Timothy Hatcher.
+
+        * bindings/js/WorkerScriptDebugServer.cpp:
+        (WebCore::WorkerScriptDebugServer::removeListener):
+        When removing listeners, we could be during WorkerGlobalObject shutdown
+        and WorkerGlobalObject::script may be null.
+
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
+        (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
+        This postTask may happen after m_pageInspector has been cleared, so
+        only execute it if m_pageInspector is still valid.
+
 2014-12-19  Chris Dumez  <[email protected]>
 
         Drop useless HTMLMediaElement::m_previousProgress member

Modified: trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp (177586 => 177587)


--- trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp	2014-12-19 19:37:59 UTC (rev 177586)
+++ trunk/Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp	2014-12-19 19:42:24 UTC (rev 177587)
@@ -75,7 +75,8 @@
     m_listeners.remove(listener);
 
     if (m_listeners.isEmpty()) {
-        m_workerGlobalScope->script()->detachDebugger(this);
+        if (m_workerGlobalScope->script())
+            m_workerGlobalScope->script()->detachDebugger(this);
         if (!skipRecompile)
             recompileAllJSFunctions();
     }

Modified: trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp (177586 => 177587)


--- trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp	2014-12-19 19:37:59 UTC (rev 177586)
+++ trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp	2014-12-19 19:42:24 UTC (rev 177587)
@@ -64,7 +64,7 @@
     , m_workerThreadHadPendingActivity(false)
     , m_askedToTerminate(false)
 #if ENABLE(INSPECTOR)
-    , m_pageInspector(0)
+    , m_pageInspector(nullptr)
 #endif
 {
     ASSERT(m_workerObject);
@@ -296,7 +296,8 @@
 {
     StringCapture capturedMessage(message);
     m_scriptExecutionContext->postTask([this, capturedMessage] (ScriptExecutionContext&) {
-        m_pageInspector->dispatchMessageFromWorker(capturedMessage.string());
+        if (m_pageInspector)
+            m_pageInspector->dispatchMessageFromWorker(capturedMessage.string());
     });
 }
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to