Changeset 189786 in webkit


Ignore:
Timestamp:
Sep 15, 2015 12:33:13 AM (9 years ago)
Author:
Carlos Garcia Campos
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).

Location:
releases/WebKitGTK/webkit-2.10
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog

    r189785 r189786  
     12015-09-09  Alexey Proskuryakov  <ap@apple.com>
     2
     3        fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
     4        https://bugs.webkit.org/show_bug.cgi?id=148951
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * platform/mac-wk2/TestExpectations: Unmark the test (it still fails per platform/mac
     9        expectations, which is unrelated).
     10
    1112015-09-09  David Hyatt  <hyatt@apple.com>
    212
  • releases/WebKitGTK/webkit-2.10/Source/WebKit2/ChangeLog

    r189779 r189786  
     12015-09-09  Alexey Proskuryakov  <ap@apple.com>
     2
     3        fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
     4        https://bugs.webkit.org/show_bug.cgi?id=148951
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * Platform/IPC/Connection.cpp:
     9        (IPC::Connection::waitForMessage): Don't modify m_waitingForMessage without holding
     10        a lock. This is not part of this fix, but seems necessary for correctness.
     11        (IPC::Connection::processIncomingMessage): Don't interrupt a wait that has already succeeded.
     12
    1132015-09-05  Michael Catanzaro  <mcatanzaro@igalia.com>
    214
  • releases/WebKitGTK/webkit-2.10/Source/WebKit2/Platform/IPC/Connection.cpp

    r188911 r189786  
    437437        bool didTimeout = !m_waitForMessageCondition.waitUntil(lock, absoluteTimeout);
    438438        // We timed out, lost our connection, or a sync message came in with InterruptWaitingIfSyncMessageArrives, so stop waiting.
    439         if (didTimeout || m_waitingForMessage->messageWaitingInterrupted)
     439        if (didTimeout || m_waitingForMessage->messageWaitingInterrupted) {
     440            m_waitingForMessage = nullptr;
    440441            break;
    441     }
    442 
    443     m_waitingForMessage = nullptr;
     442        }
     443    }
    444444
    445445    return nullptr;
     
    690690        std::lock_guard<Lock> lock(m_waitForMessageMutex);
    691691
    692         if (m_waitingForMessage && m_waitingForMessage->messageReceiverName == message->messageReceiverName() && m_waitingForMessage->messageName == message->messageName() && m_waitingForMessage->destinationID == message->destinationID()) {
    693             m_waitingForMessage->decoder = WTF::move(message);
    694             ASSERT(m_waitingForMessage->decoder);
    695             m_waitForMessageCondition.notifyOne();
    696             return;
    697         }
    698 
    699         if (m_waitingForMessage && (m_waitingForMessage->waitForMessageFlags & InterruptWaitingIfSyncMessageArrives) && message->isSyncMessage()) {
    700             m_waitingForMessage->messageWaitingInterrupted = true;
    701             m_waitForMessageCondition.notifyOne();
     692        if (m_waitingForMessage && !m_waitingForMessage->decoder) {
     693            if (m_waitingForMessage->messageReceiverName == message->messageReceiverName() && m_waitingForMessage->messageName == message->messageName() && m_waitingForMessage->destinationID == message->destinationID()) {
     694                m_waitingForMessage->decoder = WTF::move(message);
     695                ASSERT(m_waitingForMessage->decoder);
     696                m_waitForMessageCondition.notifyOne();
     697                return;
     698            }
     699
     700            if ((m_waitingForMessage->waitForMessageFlags & InterruptWaitingIfSyncMessageArrives) && message->isSyncMessage()) {
     701                m_waitingForMessage->messageWaitingInterrupted = true;
     702                m_waitForMessageCondition.notifyOne();
     703            }
    702704        }
    703705    }
Note: See TracChangeset for help on using the changeset viewer.