⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 136872 in webkit


Ignore:
Timestamp:
Dec 6, 2012, 12:24:29 PM (14 years ago)
Author:
andersca@apple.com
Message:

<rdar://problem/12828185> "Invalid message" crash reporter data should also include last sent sync message

Reviewed by Dan Bernstein.

Add a way to get the last sent sync message and pass it along to the invalid message callback.

  • Platform/CoreIPC/Connection.cpp:

(CoreIPC::Connection::Connection):
(CoreIPC::Connection::sendSyncMessage):

  • Platform/CoreIPC/Connection.h:

(CoreIPC::Connection::lastSentSyncMessageID):
(Connection):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit):
(WebKit::WebProcessProxy::didReceiveInvalidMessage):
(WebKit::WebProcessProxy::setInvalidMessageCallback):

  • UIProcess/WebProcessProxy.h:

(WebProcessProxy):

Location:
branches/safari-536.28-branch/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-536.28-branch/Source/WebKit2/ChangeLog

    r136048 r136872  
     12012-12-06  Anders Carlsson  <andersca@apple.com>
     2
     3        <rdar://problem/12828185> "Invalid message" crash reporter data should also include last sent sync message
     4
     5        Reviewed by Dan Bernstein.
     6
     7        Add a way to get the last sent sync message and pass it along to the invalid message callback.
     8
     9        * Platform/CoreIPC/Connection.cpp:
     10        (CoreIPC::Connection::Connection):
     11        (CoreIPC::Connection::sendSyncMessage):
     12        * Platform/CoreIPC/Connection.h:
     13        (CoreIPC::Connection::lastSentSyncMessageID):
     14        (Connection):
     15        * UIProcess/API/C/WKPagePrivate.h:
     16        * UIProcess/WebProcessProxy.cpp:
     17        (WebKit):
     18        (WebKit::WebProcessProxy::didReceiveInvalidMessage):
     19        (WebKit::WebProcessProxy::setInvalidMessageCallback):
     20        * UIProcess/WebProcessProxy.h:
     21        (WebProcessProxy):
     22
    1232012-11-28  Lucas Forschler  <lforschler@apple.com>
    224
  • branches/safari-536.28-branch/Source/WebKit2/Platform/CoreIPC/Connection.cpp

    r134884 r136872  
    196196    , m_isServer(isServer)
    197197    , m_syncRequestID(0)
     198    , m_lastSentSyncMessageID(0)
    198199    , m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(false)
    199200    , m_shouldExitOnSyncMessageSendFailure(false)
     
    386387        return nullptr;
    387388    }
     389
     390    m_lastSentSyncMessageID = messageID.toInt();
    388391
    389392    // Push the pending sync reply information on our stack.
  • branches/safari-536.28-branch/Source/WebKit2/Platform/CoreIPC/Connection.h

    r134884 r136872  
    170170    void decrementDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount() { --m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount; }
    171171
     172    unsigned lastSentSyncMessageID() const { return m_lastSentSyncMessageID; }
     173
    172174private:
    173175    template<typename T> class Message {
     
    250252    bool m_isServer;
    251253    uint64_t m_syncRequestID;
     254    unsigned m_lastSentSyncMessageID;
    252255
    253256    bool m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage;
  • branches/safari-536.28-branch/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h

    r135907 r136872  
    9393WK_EXPORT void WKPageSetMediaVolume(WKPageRef page, float volume);
    9494
    95 typedef void (*WKPageInvalidMessageFunction)(uint32_t messageID);
     95typedef void (*WKPageInvalidMessageFunction)(uint32_t messageID, uint32_t lastSentSyncMessageID);
    9696WK_EXPORT void WKPageSetInvalidMessageFunction(WKPageInvalidMessageFunction function);
    9797
  • branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp

    r135907 r136872  
    375375}
    376376
    377 void (*s_invalidMessageCallback)(uint32_t messageID);
    378 
    379 void WebProcessProxy::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID messageID)
     377void (*s_invalidMessageCallback)(uint32_t messageID, uint32_t lastSentSyncMessageID);
     378
     379void WebProcessProxy::didReceiveInvalidMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID)
    380380{
    381381    WTFLogAlways("Received an invalid message from the web process with message ID %x\n", messageID.toInt());
    382382
    383383    if (s_invalidMessageCallback)
    384         s_invalidMessageCallback(messageID.toInt());
     384        s_invalidMessageCallback(messageID.toInt(), connection->lastSentSyncMessageID());
    385385
    386386    // Terminate the WebProcesses.
     
    508508}
    509509
    510 void WebProcessProxy::setInvalidMessageCallback(void (*invalidMessageCallback)(uint32_t))
     510void WebProcessProxy::setInvalidMessageCallback(void (*invalidMessageCallback)(uint32_t, uint32_t))
    511511{
    512512    s_invalidMessageCallback = invalidMessageCallback;
  • branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.h

    r135907 r136872  
    117117    template<typename E, typename T> bool deprecatedSend(E messageID, uint64_t destinationID, const T& arguments);
    118118
    119     static void setInvalidMessageCallback(void (*)(uint32_t));
     119    static void setInvalidMessageCallback(void (*)(uint32_t, uint32_t));
    120120
    121121private:
Note: See TracChangeset for help on using the changeset viewer.