Title: [93654] trunk/Source
Revision
93654
Author
[email protected]
Date
2011-08-23 16:22:19 -0700 (Tue, 23 Aug 2011)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=66751
[Chromium]WebWorkerClientImpl should always invoke
InspectorIntrumentation on main thread.
The fix moves calls to InspectorInstrumentation from
WebWorkerClientImpl to unedrlying WorkerMessagingProxy.

Patch by Dmitry Lomov <Dmitry Lomov ([email protected])> on 2011-08-23
Reviewed by Pavel Feldman.

Source/WebCore:

Covered by existing tests.

* inspector/InstrumentingAgents.cpp:
(WebCore::instrumentationForPage):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::workerContextDestroyedInternal):
(WebCore::WorkerMessagingProxy::terminateWorkerContext):

Source/WebKit/chromium:

* src/WebWorkerClientImpl.cpp:
(WebKit::WebWorkerClientImpl::terminateWorkerContext):
(WebKit::WebWorkerClientImpl::workerContextDestroyed):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (93653 => 93654)


--- trunk/Source/WebCore/ChangeLog	2011-08-23 23:18:34 UTC (rev 93653)
+++ trunk/Source/WebCore/ChangeLog	2011-08-23 23:22:19 UTC (rev 93654)
@@ -1,3 +1,21 @@
+2011-08-23  Dmitry Lomov  <Dmitry Lomov ([email protected])>
+
+        https://bugs.webkit.org/show_bug.cgi?id=66751 
+        [Chromium]WebWorkerClientImpl should always invoke
+        InspectorIntrumentation on main thread.
+        The fix moves calls to InspectorInstrumentation from
+        WebWorkerClientImpl to unedrlying WorkerMessagingProxy.
+
+        Reviewed by Pavel Feldman.
+
+        Covered by existing tests.
+
+        * inspector/InstrumentingAgents.cpp:
+        (WebCore::instrumentationForPage):
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal):
+        (WebCore::WorkerMessagingProxy::terminateWorkerContext):
+
 2011-08-23  Misha Tyutyunik  <[email protected]>
 
         [Qt] Button text is invisible when mobile theme is in use and application palette set to use light text color.

Modified: trunk/Source/WebCore/inspector/InstrumentingAgents.cpp (93653 => 93654)


--- trunk/Source/WebCore/inspector/InstrumentingAgents.cpp	2011-08-23 23:18:34 UTC (rev 93653)
+++ trunk/Source/WebCore/inspector/InstrumentingAgents.cpp	2011-08-23 23:22:19 UTC (rev 93654)
@@ -42,6 +42,7 @@
 
 InstrumentingAgents* instrumentationForPage(Page* page)
 {
+    ASSERT(isMainThread());
     if (InspectorController* controller = page->inspectorController())
         return controller->m_instrumentingAgents.get();
     return 0;

Modified: trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp (93653 => 93654)


--- trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp	2011-08-23 23:18:34 UTC (rev 93653)
+++ trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp	2011-08-23 23:22:19 UTC (rev 93654)
@@ -38,6 +38,7 @@
 #include "Document.h"
 #include "ErrorEvent.h"
 #include "ExceptionCode.h"
+#include "InspectorInstrumentation.h"
 #include "MessageEvent.h"
 #include "ScriptCallStack.h"
 #include "ScriptExecutionContext.h"
@@ -340,6 +341,9 @@
     // in either side any more. However, the Worker object may still exist, and it assumes that the proxy exists, too.
     m_askedToTerminate = true;
     m_workerThread = 0;
+
+    InspectorInstrumentation::workerContextTerminated(m_scriptExecutionContext.get(), this);
+
     if (!m_workerObject)
         delete this;
 }
@@ -352,6 +356,8 @@
 
     if (m_workerThread)
         m_workerThread->stop();
+
+    InspectorInstrumentation::workerContextTerminated(m_scriptExecutionContext.get(), this);
 }
 
 #if ENABLE(INSPECTOR)

Modified: trunk/Source/WebKit/chromium/ChangeLog (93653 => 93654)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-08-23 23:18:34 UTC (rev 93653)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-08-23 23:22:19 UTC (rev 93654)
@@ -1,3 +1,17 @@
+2011-08-23  Dmitry Lomov  <Dmitry Lomov ([email protected])>
+
+        https://bugs.webkit.org/show_bug.cgi?id=66751 
+        [Chromium]WebWorkerClientImpl should always invoke
+        InspectorIntrumentation on main thread.
+        The fix moves calls to InspectorInstrumentation from
+        WebWorkerClientImpl to unedrlying WorkerMessagingProxy.
+
+        Reviewed by Pavel Feldman.
+
+        * src/WebWorkerClientImpl.cpp:
+        (WebKit::WebWorkerClientImpl::terminateWorkerContext):
+        (WebKit::WebWorkerClientImpl::workerContextDestroyed):
+
 2011-08-23  Adam Klein  <[email protected]>
 
         [chromium] Remove a few FIXME #defines in API headers

Modified: trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp (93653 => 93654)


--- trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp	2011-08-23 23:18:34 UTC (rev 93653)
+++ trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp	2011-08-23 23:22:19 UTC (rev 93654)
@@ -39,7 +39,6 @@
 #include "ErrorEvent.h"
 #include "Frame.h"
 #include "FrameLoaderClient.h"
-#include "InspectorInstrumentation.h"
 #include "MessageEvent.h"
 #include "MessagePort.h"
 #include "MessagePortChannel.h"
@@ -96,7 +95,6 @@
 void WebWorkerClientImpl::terminateWorkerContext()
 {
     m_proxy->terminateWorkerContext();
-    InspectorInstrumentation::workerContextTerminated(m_scriptExecutionContext.get(), this);
 }
 
 void WebWorkerClientImpl::postMessageToWorkerContext(
@@ -185,7 +183,6 @@
 void WebWorkerClientImpl::workerContextDestroyed()
 {
     m_proxy->workerContextDestroyed();
-    InspectorInstrumentation::workerContextTerminated(m_scriptExecutionContext.get(), this);
 }
 
 bool WebWorkerClientImpl::allowFileSystem() 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to