Title: [189786] releases/WebKitGTK/webkit-2.10
Revision
189786
Author
carlo...@webkit.org
Date
2015-09-15 00:33:13 -0700 (Tue, 15 Sep 2015)

Log Message

Merge r189546 - fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
https://bugs.webkit.org/show_bug.cgi?id=148951

Reviewed by Anders Carlsson.

Source/WebKit2:

* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForMessage): Don't modify m_waitingForMessage without holding
a lock. This is not part of this fix, but seems necessary for correctness.
(IPC::Connection::processIncomingMessage): Don't interrupt a wait that has already succeeded.

LayoutTests:

* platform/mac-wk2/TestExpectations: Unmark the test (it still fails per platform/mac
expectations, which is unrelated).

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog (189785 => 189786)


--- releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog	2015-09-15 07:28:57 UTC (rev 189785)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog	2015-09-15 07:33:13 UTC (rev 189786)
@@ -1,3 +1,13 @@
+2015-09-09  Alexey Proskuryakov  <a...@apple.com>
+
+        fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
+        https://bugs.webkit.org/show_bug.cgi?id=148951
+
+        Reviewed by Anders Carlsson.
+
+        * platform/mac-wk2/TestExpectations: Unmark the test (it still fails per platform/mac
+        expectations, which is unrelated).
+
 2015-09-09  David Hyatt  <hy...@apple.com>
 
         REGRESSION: Inline-block baseline is wrong when zero-width replaced child is present

Modified: releases/WebKitGTK/webkit-2.10/Source/WebKit2/ChangeLog (189785 => 189786)


--- releases/WebKitGTK/webkit-2.10/Source/WebKit2/ChangeLog	2015-09-15 07:28:57 UTC (rev 189785)
+++ releases/WebKitGTK/webkit-2.10/Source/WebKit2/ChangeLog	2015-09-15 07:33:13 UTC (rev 189786)
@@ -1,3 +1,15 @@
+2015-09-09  Alexey Proskuryakov  <a...@apple.com>
+
+        fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
+        https://bugs.webkit.org/show_bug.cgi?id=148951
+
+        Reviewed by Anders Carlsson.
+
+        * Platform/IPC/Connection.cpp:
+        (IPC::Connection::waitForMessage): Don't modify m_waitingForMessage without holding
+        a lock. This is not part of this fix, but seems necessary for correctness.
+        (IPC::Connection::processIncomingMessage): Don't interrupt a wait that has already succeeded.
+
 2015-09-05  Michael Catanzaro  <mcatanz...@igalia.com>
 
         Leak in WebContextInjectedBundleClient::getInjectedBundleInitializationUserData

Modified: releases/WebKitGTK/webkit-2.10/Source/WebKit2/Platform/IPC/Connection.cpp (189785 => 189786)


--- releases/WebKitGTK/webkit-2.10/Source/WebKit2/Platform/IPC/Connection.cpp	2015-09-15 07:28:57 UTC (rev 189785)
+++ releases/WebKitGTK/webkit-2.10/Source/WebKit2/Platform/IPC/Connection.cpp	2015-09-15 07:33:13 UTC (rev 189786)
@@ -436,12 +436,12 @@
         // Now we wait.
         bool didTimeout = !m_waitForMessageCondition.waitUntil(lock, absoluteTimeout);
         // We timed out, lost our connection, or a sync message came in with InterruptWaitingIfSyncMessageArrives, so stop waiting.
-        if (didTimeout || m_waitingForMessage->messageWaitingInterrupted)
+        if (didTimeout || m_waitingForMessage->messageWaitingInterrupted) {
+            m_waitingForMessage = nullptr;
             break;
+        }
     }
 
-    m_waitingForMessage = nullptr;
-
     return nullptr;
 }
 
@@ -689,16 +689,18 @@
     {
         std::lock_guard<Lock> lock(m_waitForMessageMutex);
 
-        if (m_waitingForMessage && m_waitingForMessage->messageReceiverName == message->messageReceiverName() && m_waitingForMessage->messageName == message->messageName() && m_waitingForMessage->destinationID == message->destinationID()) {
-            m_waitingForMessage->decoder = WTF::move(message);
-            ASSERT(m_waitingForMessage->decoder);
-            m_waitForMessageCondition.notifyOne();
-            return;
-        }
+        if (m_waitingForMessage && !m_waitingForMessage->decoder) {
+            if (m_waitingForMessage->messageReceiverName == message->messageReceiverName() && m_waitingForMessage->messageName == message->messageName() && m_waitingForMessage->destinationID == message->destinationID()) {
+                m_waitingForMessage->decoder = WTF::move(message);
+                ASSERT(m_waitingForMessage->decoder);
+                m_waitForMessageCondition.notifyOne();
+                return;
+            }
 
-        if (m_waitingForMessage && (m_waitingForMessage->waitForMessageFlags & InterruptWaitingIfSyncMessageArrives) && message->isSyncMessage()) {
-            m_waitingForMessage->messageWaitingInterrupted = true;
-            m_waitForMessageCondition.notifyOne();
+            if ((m_waitingForMessage->waitForMessageFlags & InterruptWaitingIfSyncMessageArrives) && message->isSyncMessage()) {
+                m_waitingForMessage->messageWaitingInterrupted = true;
+                m_waitForMessageCondition.notifyOne();
+            }
         }
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to