Title: [94647] trunk/Source/WebCore
Revision
94647
Author
dslo...@google.com
Date
2011-09-07 00:50:23 -0700 (Wed, 07 Sep 2011)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=67413
[Chromium]Web Inspector: inspected page with dedicated worker crashes on refresh.
This patch enforces lifetime ordering between WorkerInspectorController and WorkerScriptController.

Reviewed by Yury Semikhatsky.

* workers/WorkerContext.cpp:
(WebCore::WorkerContext::clearInspector):
* workers/WorkerContext.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadShutdownFinishTask::performTask):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (94646 => 94647)


--- trunk/Source/WebCore/ChangeLog	2011-09-07 07:45:04 UTC (rev 94646)
+++ trunk/Source/WebCore/ChangeLog	2011-09-07 07:50:23 UTC (rev 94647)
@@ -1,3 +1,17 @@
+2011-09-07  Dmitry Lomov  <dslo...@google.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=67413 
+        [Chromium]Web Inspector: inspected page with dedicated worker crashes on refresh.
+        This patch enforces lifetime ordering between WorkerInspectorController and WorkerScriptController.
+
+        Reviewed by Yury Semikhatsky.
+
+        * workers/WorkerContext.cpp:
+        (WebCore::WorkerContext::clearInspector):
+        * workers/WorkerContext.h:
+        * workers/WorkerThread.cpp:
+        (WebCore::WorkerThreadShutdownFinishTask::performTask):
+
 2011-09-07  Sheriff Bot  <webkit.review....@gmail.com>
 
         Unreviewed, rolling out r94627 and r94632.

Modified: trunk/Source/WebCore/workers/WorkerContext.cpp (94646 => 94647)


--- trunk/Source/WebCore/workers/WorkerContext.cpp	2011-09-07 07:45:04 UTC (rev 94646)
+++ trunk/Source/WebCore/workers/WorkerContext.cpp	2011-09-07 07:50:23 UTC (rev 94647)
@@ -219,6 +219,13 @@
     DOMTimer::removeById(scriptExecutionContext(), timeoutId);
 }
 
+#if ENABLE(INSPECTOR)
+void WorkerContext::clearInspector()
+{
+    m_workerInspectorController.clear();
+}
+#endif
+
 int WorkerContext::setInterval(PassOwnPtr<ScheduledAction> action, int timeout)
 {
     return DOMTimer::install(scriptExecutionContext(), action, timeout, false);

Modified: trunk/Source/WebCore/workers/WorkerContext.h (94646 => 94647)


--- trunk/Source/WebCore/workers/WorkerContext.h	2011-09-07 07:45:04 UTC (rev 94646)
+++ trunk/Source/WebCore/workers/WorkerContext.h	2011-09-07 07:50:23 UTC (rev 94647)
@@ -79,6 +79,9 @@
 
         WorkerScriptController* script() { return m_script.get(); }
         void clearScript() { m_script.clear(); }
+#if ENABLE(INSPECTOR)
+        void clearInspector();
+#endif
 
         WorkerThread* thread() const { return m_thread; }
 

Modified: trunk/Source/WebCore/workers/WorkerThread.cpp (94646 => 94647)


--- trunk/Source/WebCore/workers/WorkerThread.cpp	2011-09-07 07:45:04 UTC (rev 94646)
+++ trunk/Source/WebCore/workers/WorkerThread.cpp	2011-09-07 07:50:23 UTC (rev 94647)
@@ -174,6 +174,9 @@
     {
         ASSERT(context->isWorkerContext());
         WorkerContext* workerContext = static_cast<WorkerContext*>(context);
+#if ENABLE(INSPECTOR)
+        workerContext->clearInspector();
+#endif
         // It's not safe to call clearScript until all the cleanup tasks posted by functions initiated by WorkerThreadShutdownStartTask have completed.
         workerContext->clearScript();
         workerContext->thread()->runLoop().terminate();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to