Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 69b3a29056049827e6225bd94ca0fb8dccdd3229
      
https://github.com/WebKit/WebKit/commit/69b3a29056049827e6225bd94ca0fb8dccdd3229
  Author: Jon Butler <[email protected]>
  Date:   2026-02-14 (Sat, 14 Feb 2026)

  Changed paths:
    M Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h
    M Source/WebKit/Platform/IPC/Connection.cpp
    A Source/WebKit/Platform/IPC/MessageLog.cpp
    A Source/WebKit/Platform/IPC/MessageLog.h
    M Source/WebKit/Platform/IPC/StreamServerConnection.cpp
    M Source/WebKit/Platform/IPC/TransferString.cpp
    M Source/WebKit/Platform/Sources.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    A Tools/Scripts/dump-message-log
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/IPC/MessageLogEndToEndTests.cpp
    A Tools/TestWebKitAPI/Tests/IPC/MessageLogTests.cpp

  Log Message:
  -----------
  Implement IPC message name logging on receive
rdar://167685378
https://bugs.webkit.org/show_bug.cgi?id=305043

Reviewed by Kimmo Kinnunen.

This patch implements logging for IPC message names in a process-wide,
append-only ring buffer on message receive.

The contents of this buffer can be read from a crashed process to
understand the flow of messages that might have caused this crash.

Tests: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
       Tools/TestWebKitAPI/Tests/IPC/MessageLogEndToEndTests.cpp
       Tools/TestWebKitAPI/Tests/IPC/MessageLogTests.cpp

* Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h:
* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchMessageReceiverMessage):
(IPC::Connection::dispatchMessage):
* Source/WebKit/Platform/IPC/MessageLog.cpp: Copied from 
Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h.
(IPC::messageLog):
(IPC::messageLogMetadata):
* Source/WebKit/Platform/IPC/MessageLog.h: Added.
(IPC::MessageLog::MessageLog):
(IPC::MessageLog::add):
(IPC::MessageLog::indexForTesting const):
(IPC::MessageLog::bufferForTesting const):
* Source/WebKit/Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnection::dispatchStreamMessage):
* Source/WebKit/Platform/IPC/TransferString.cpp:
(IPC::TransferString::release):
* Source/WebKit/Platform/Sources.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/Scripts/dump-message-log: Added.
(dump_message_log):
(__lldb_init_module):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/IPC/MessageLogEndToEndTests.cpp: Added.
(TestWebKitAPI::MockTestMessage2::name):
(TestWebKitAPI::MockTestMessage2::encode):
(TestWebKitAPI::MockTestMessage3::name):
(TestWebKitAPI::MockTestMessage3::encode):
(TestWebKitAPI::MockTestMessage4::name):
(TestWebKitAPI::MockTestMessage4::encode):
(TestWebKitAPI::MockTestSyncMessage::name):
(TestWebKitAPI::MockTestSyncMessage::encode):
(TestWebKitAPI::MessageLogEndToEndTest::messagesLoggedSinceSetup const):
(TestWebKitAPI::MessageLogEndToEndTest::messageLogContains const):
(TestWebKitAPI::MessageLogEndToEndTest::countMessagesInLog const):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, SingleMessageLogged)):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, MultipleMessagesLogged)):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, BidirectionalMessagesLogged)):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, HighVolumeWrapsBuffer)):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, ConcurrentSendersLogged)):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, InterleavedMessageTypes)):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, AsyncReplyMessagesLogged)):
(TestWebKitAPI::TEST_F(MessageLogEndToEndTest, SyncMessageLogged)):
(TestWebKitAPI::MessageLogRunLoopTest::createRunLoop):
(TestWebKitAPI::MessageLogRunLoopTest::localReferenceBarrier):
(TestWebKitAPI::TEST_F(MessageLogRunLoopTest, MessagesLoggedAcrossRunLoops)):
(TestWebKitAPI::MessageLogStreamTest::defaultDestinationID):
(TestWebKitAPI::MessageLogStreamTest::messageLogContains const):
(TestWebKitAPI::TEST_F(MessageLogStreamTest, StreamMessageLogged)):
* Tools/TestWebKitAPI/Tests/IPC/MessageLogTests.cpp: Added.
(TestWebKitAPI::TEST(MessageLogTests, InitialState)):
(TestWebKitAPI::TEST(MessageLogTests, AddSingleMessage)):
(TestWebKitAPI::TEST(MessageLogTests, AddMultipleMessages)):
(TestWebKitAPI::TEST(MessageLogTests, WrapAroundAtCapacity)):
(TestWebKitAPI::TEST(MessageLogTests, MultipleWraps)):
(TestWebKitAPI::TEST(MessageLogTests, ConcurrentAddFromTwoThreads)):
(TestWebKitAPI::TEST(MessageLogTests, ConcurrentAddFromMultipleThreads)):
(TestWebKitAPI::TEST(MessageLogTests, ConcurrentAddWithWrapping)):

Canonical link: https://commits.webkit.org/307569@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to