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