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

Reply via email to