Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d6642cc479b8482ccc432112d6b11a3c8afca264
https://github.com/WebKit/WebKit/commit/d6642cc479b8482ccc432112d6b11a3c8afca264
Author: Chris Dumez <[email protected]>
Date: 2025-02-21 (Fri, 21 Feb 2025)
Changed paths:
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h
M Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.h
M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
M Source/WebKit/NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.h
M Source/WebKit/Platform/IPC/Connection.cpp
M Source/WebKit/Platform/IPC/Connection.h
M Source/WebKit/Platform/IPC/MessageReceiveQueues.h
M Source/WebKit/Platform/IPC/StreamClientConnection.cpp
M Source/WebKit/Platform/IPC/StreamClientConnection.h
M Source/WebKit/Platform/IPC/WorkQueueMessageReceiver.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h
M Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h
M Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProviderManager.h
M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h
M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h
M
Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.h
M Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h
M Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h
Log Message:
-----------
[macOS Debug ] ASSERTION FAILED void
WTF::RefCountedBase::applyRefDerefThreadingCheck() const
https://bugs.webkit.org/show_bug.cgi?id=288150
rdar://145248238
Reviewed by Alex Christensen.
Previously, WorkQueueMessageReceiver objects could get destroyed on the work
queue thread,
since WorkQueueMessageReceiverQueue captures a RefPtr to the receiver when
dispatching
to the WorkQueue. This is fine for some of the WorkQueueMessageReceiver
subclasses.
However, some of them (like NetworkStorageManager and
WebSWContextManagerConnection)
clearly expect to get destroyed on the main thread. This was causing crashes
when
getting destroyed off the main thread.
To address the issue, I made WorkQueueMessageReceiver templated so that the
subclass
now needs to specify a WTF::DestructionThread. NetworkStorageManager and
WebSWContextManagerConnection
now pass WTF::DestructionThread::MainRunLoop to make sure they always get
destroyed on
the main thread.
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:
* Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.h:
* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.h:
* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
* Source/WebKit/Platform/IPC/Connection.h:
* Source/WebKit/Platform/IPC/MessageReceiveQueues.h:
* Source/WebKit/Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::addWorkQueueMessageReceiver):
* Source/WebKit/Platform/IPC/StreamClientConnection.h:
* Source/WebKit/Platform/IPC/WorkQueueMessageReceiver.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h:
* Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h:
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProviderManager.h:
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h:
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
*
Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.h:
* Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:
* Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h:
Canonical link: https://commits.webkit.org/290790@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes