Changeset 286609 in webkit
- Timestamp:
- Dec 7, 2021, 12:42:25 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/platform/ios-wk2/TestExpectations (modified) (1 diff)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/Platform/IPC/Connection.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r286603 r286609 1 2021-12-07 Chris Dumez <cdumez@apple.com> 2 3 ASSERTION FAILED: m_messagesBeingDispatched.isEmpty() on http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html 4 https://bugs.webkit.org/show_bug.cgi?id=228164 5 <rdar://problem/80914914> 6 7 Reviewed by Darin Adler. 8 9 Unskip test that should no longer be crashing. 10 11 * platform/ios-wk2/TestExpectations: 12 1 13 2021-12-07 Kyle Piddington <kpiddington@apple.com> 2 14 -
trunk/LayoutTests/platform/ios-wk2/TestExpectations
r286577 r286609 2023 2023 http/tests/resourceLoadStatistics/exemptDomains/ [ Pass ] 2024 2024 2025 webkit.org/b/228164 [ Debug ] http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html [ Pass Crash ]2026 2027 2025 webkit.org/b/216492 [ Debug ] imported/w3c/web-platform-tests/selection/extend-20.html [ Slow ] 2028 2026 -
trunk/Source/WebKit/ChangeLog
r286604 r286609 1 2021-12-07 Chris Dumez <cdumez@apple.com> 2 3 ASSERTION FAILED: m_messagesBeingDispatched.isEmpty() on http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html 4 https://bugs.webkit.org/show_bug.cgi?id=228164 5 <rdar://problem/80914914> 6 7 Reviewed by Darin Adler. 8 9 dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() has an assertion to make sure that m_messagesBeingDispatched 10 was empty when getting called. However, in the case where there is a nested run loop, the call to 11 `m_messagesBeingDispatched.takeFirst().dispatch()` at the end of the function may cause the function to re-enter. When entering, 12 m_messagesBeingDispatched may not be empty so the assertion is wrong. Looking at the code, I think dropping the assertion is the 13 right thing to do as the implementation seems to be doing something sane upon re-entering. It will just append new messages to 14 m_messagesBeingDispatched and then try and dispatch them. Based on how it is implemented, message ordering would be preserved. 15 16 No new tests, unskipped existing test. 17 18 * Platform/IPC/Connection.cpp: 19 (IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection): 20 1 21 2021-12-07 Chris Dumez <cdumez@apple.com> 2 22 -
trunk/Source/WebKit/Platform/IPC/Connection.cpp
r285177 r286609 227 227 ASSERT(m_didScheduleDispatchMessagesWorkSet.contains(&connection)); 228 228 m_didScheduleDispatchMessagesWorkSet.remove(&connection); 229 ASSERT(m_messagesBeingDispatched.isEmpty());230 229 Deque<ConnectionAndIncomingMessage> messagesToPutBack; 231 230 for (auto& connectionAndIncomingMessage : m_messagesToDispatchWhileWaitingForSyncReply) { … … 239 238 240 239 while (!m_messagesBeingDispatched.isEmpty()) 241 m_messagesBeingDispatched.takeFirst().dispatch(); 240 m_messagesBeingDispatched.takeFirst().dispatch(); // This may cause the function to re-enter when there is a nested run loop. 242 241 } 243 242
Note:
See TracChangeset
for help on using the changeset viewer.