Title: [90284] trunk
Revision
90284
Author
[email protected]
Date
2011-07-01 15:06:07 -0700 (Fri, 01 Jul 2011)

Log Message

2011-07-01  Nate Chapin  <[email protected]>

        Test for https://bugs.webkit.org/show_bug.cgi?id=63835.

        Reviewed by Dmitry Titov.

        * fast/workers/worker-finish-crash-expected.txt: Added.
        * fast/workers/worker-finish-crash.html: Added.
2011-07-01  Nate Chapin  <[email protected]>

        Ensure WorkerScriptLoader::notifyFinished() doesn't re-enter.
        https://bugs.webkit.org/show_bug.cgi?id=63835

        Reviewed by Dmitry Titov.

        Test: fast/workers/worker-finish-crash.html

        * workers/WorkerScriptLoader.cpp:
        (WebCore::WorkerScriptLoader::WorkerScriptLoader):
        (WebCore::WorkerScriptLoader::notifyFinished):
        * workers/WorkerScriptLoader.h:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (90283 => 90284)


--- trunk/LayoutTests/ChangeLog	2011-07-01 22:04:27 UTC (rev 90283)
+++ trunk/LayoutTests/ChangeLog	2011-07-01 22:06:07 UTC (rev 90284)
@@ -1,3 +1,12 @@
+2011-07-01  Nate Chapin  <[email protected]>
+
+        Test for https://bugs.webkit.org/show_bug.cgi?id=63835.
+
+        Reviewed by Dmitry Titov.
+
+        * fast/workers/worker-finish-crash-expected.txt: Added.
+        * fast/workers/worker-finish-crash.html: Added.
+
 2011-07-01  Mihai Parparita  <[email protected]>
 
         Reviewed by Darin Fisher.

Added: trunk/LayoutTests/fast/workers/worker-finish-crash-expected.txt (0 => 90284)


--- trunk/LayoutTests/fast/workers/worker-finish-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/workers/worker-finish-crash-expected.txt	2011-07-01 22:06:07 UTC (rev 90284)
@@ -0,0 +1,3 @@
+Test to ensure that finishing a Worker won't re-enter. We pass if we don't crash.
+
+

Added: trunk/LayoutTests/fast/workers/worker-finish-crash.html (0 => 90284)


--- trunk/LayoutTests/fast/workers/worker-finish-crash.html	                        (rev 0)
+++ trunk/LayoutTests/fast/workers/worker-finish-crash.html	2011-07-01 22:06:07 UTC (rev 90284)
@@ -0,0 +1,18 @@
+<body>
+<p>Test to ensure that finishing a Worker won't re-enter. We pass if we don't crash.</p>
+<script>
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var worker = new Worker("does-not-exist.js");
+worker._onerror_ = function() {
+    window.stop();
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+</script>
+</body>

Modified: trunk/Source/WebCore/ChangeLog (90283 => 90284)


--- trunk/Source/WebCore/ChangeLog	2011-07-01 22:04:27 UTC (rev 90283)
+++ trunk/Source/WebCore/ChangeLog	2011-07-01 22:06:07 UTC (rev 90284)
@@ -1,3 +1,17 @@
+2011-07-01  Nate Chapin  <[email protected]>
+
+        Ensure WorkerScriptLoader::notifyFinished() doesn't re-enter.
+        https://bugs.webkit.org/show_bug.cgi?id=63835
+
+        Reviewed by Dmitry Titov.
+
+        Test: fast/workers/worker-finish-crash.html
+
+        * workers/WorkerScriptLoader.cpp:
+        (WebCore::WorkerScriptLoader::WorkerScriptLoader):
+        (WebCore::WorkerScriptLoader::notifyFinished):
+        * workers/WorkerScriptLoader.h:
+
 2011-07-01  Adrienne Walker  <[email protected]>
 
         [chromium] Upload root layer textures first so that it is less likely to be skipped

Modified: trunk/Source/WebCore/workers/WorkerScriptLoader.cpp (90283 => 90284)


--- trunk/Source/WebCore/workers/WorkerScriptLoader.cpp	2011-07-01 22:04:27 UTC (rev 90283)
+++ trunk/Source/WebCore/workers/WorkerScriptLoader.cpp	2011-07-01 22:06:07 UTC (rev 90284)
@@ -52,6 +52,7 @@
     , m_failed(false)
     , m_identifier(0)
     , m_targetType(targetType)
+    , m_finishing(false)
 {
 }
 
@@ -181,8 +182,11 @@
     
 void WorkerScriptLoader::notifyFinished()
 {
-    if (m_client)
-        m_client->notifyFinished();
+    if (!m_client || m_finishing)
+        return;
+
+    m_finishing = true;
+    m_client->notifyFinished();
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/workers/WorkerScriptLoader.h (90283 => 90284)


--- trunk/Source/WebCore/workers/WorkerScriptLoader.h	2011-07-01 22:04:27 UTC (rev 90283)
+++ trunk/Source/WebCore/workers/WorkerScriptLoader.h	2011-07-01 22:06:07 UTC (rev 90284)
@@ -92,6 +92,7 @@
         bool m_failed;
         unsigned long m_identifier;
         ResourceRequestBase::TargetType m_targetType;
+        bool m_finishing;
     };
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to