⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 280839 in webkit


Ignore:
Timestamp:
Aug 10, 2021, 2:35:09 AM (5 years ago)
Author:
Adrian Perez de Castro
Message:

Merge r274172 - [IPC Hardening] Protect against bad input in WebProcessProxy::createSpeechRecognitionServer() and MessageReceiverMap
https://bugs.webkit.org/show_bug.cgi?id=222948
<rdar://problem/75191472>

Reviewed by Alex Christensen.

Update MessageReceiverMap so that:

  1. Trying to remove a MessageReceiver that is not in the map does not do dangerous things.
  2. It stores weak pointers to the receivers instead of raw pointers. This would avoid doing bad things when trying to remove a message receiver that's already been destroyed.

Add a MESSAGE_CHECK() in WebProcessProxy::createSpeechRecognitionServer() to
make sure the identifier is not already in the map. There used to be a debug
assertion but we should MESSAGE_CHECK() too since the value is coming from
IPC.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.h:
  • GPUProcess/media/RemoteAudioSessionProxy.h:
  • GPUProcess/media/RemoteCDMFactoryProxy.h:
  • GPUProcess/media/RemoteCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMSessionProxy.h:
  • GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • Platform/IPC/MessageReceiver.h:
  • Platform/IPC/MessageReceiverMap.cpp:

(IPC::MessageReceiverMap::addMessageReceiver):
(IPC::MessageReceiverMap::removeMessageReceiver):
(IPC::MessageReceiverMap::dispatchMessage):
(IPC::MessageReceiverMap::dispatchSyncMessage):

  • Platform/IPC/MessageReceiverMap.h:
  • Shared/API/Cocoa/RemoteObjectRegistry.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/Authentication/AuthenticationManager.h:
  • Shared/AuxiliaryProcess.h:
  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
  • UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:
  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createSpeechRecognitionServer):

  • UIProcess/WebProcessProxy.h:
  • WebAuthnProcess/WebAuthnProcess.h:
  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaSourcePrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebStorage/StorageAreaMap.h:
Location:
releases/WebKitGTK/webkit-2.32/Source/WebKit
Files:
53 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/ChangeLog

    r280838 r280839  
     12021-03-09  Chris Dumez  <cdumez@apple.com>
     2
     3        [IPC Hardening] Protect against bad input in WebProcessProxy::createSpeechRecognitionServer() and MessageReceiverMap
     4        https://bugs.webkit.org/show_bug.cgi?id=222948
     5        <rdar://problem/75191472>
     6
     7        Reviewed by Alex Christensen.
     8
     9        Update MessageReceiverMap so that:
     10        1. Trying to remove a MessageReceiver that is not in the map does not
     11           do dangerous things.
     12        2. It stores weak pointers to the receivers instead of raw pointers. This
     13           would avoid doing bad things when trying to remove a message receiver
     14           that's already been destroyed.
     15
     16        Add a MESSAGE_CHECK() in WebProcessProxy::createSpeechRecognitionServer() to
     17        make sure the identifier is not already in the map. There used to be a debug
     18        assertion but we should MESSAGE_CHECK() too since the value is coming from
     19        IPC.
     20
     21        * GPUProcess/GPUConnectionToWebProcess.h:
     22        * GPUProcess/GPUProcess.h:
     23        * GPUProcess/media/RemoteAudioSessionProxy.h:
     24        * GPUProcess/media/RemoteCDMFactoryProxy.h:
     25        * GPUProcess/media/RemoteCDMProxy.h:
     26        * GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
     27        * GPUProcess/media/RemoteLegacyCDMProxy.h:
     28        * GPUProcess/media/RemoteLegacyCDMSessionProxy.h:
     29        * GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h:
     30        * GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
     31        * GPUProcess/media/RemoteMediaPlayerProxy.h:
     32        * GPUProcess/media/RemoteMediaResourceManager.h:
     33        * GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
     34        * NetworkProcess/NetworkProcess.h:
     35        * NetworkProcess/ServiceWorker/WebSWServerConnection.h:
     36        * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
     37        * Platform/IPC/MessageReceiver.h:
     38        * Platform/IPC/MessageReceiverMap.cpp:
     39        (IPC::MessageReceiverMap::addMessageReceiver):
     40        (IPC::MessageReceiverMap::removeMessageReceiver):
     41        (IPC::MessageReceiverMap::dispatchMessage):
     42        (IPC::MessageReceiverMap::dispatchSyncMessage):
     43        * Platform/IPC/MessageReceiverMap.h:
     44        * Shared/API/Cocoa/RemoteObjectRegistry.h:
     45        * Shared/ApplePay/WebPaymentCoordinatorProxy.h:
     46        * Shared/Authentication/AuthenticationManager.h:
     47        * Shared/AuxiliaryProcess.h:
     48        * UIProcess/GPU/GPUProcessProxy.h:
     49        * UIProcess/Inspector/WebInspectorProxy.h:
     50        * UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
     51        * UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
     52        * UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h:
     53        * UIProcess/Network/NetworkProcessProxy.h:
     54        * UIProcess/ProvisionalPageProxy.h:
     55        * UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:
     56        * UIProcess/SpeechRecognitionServer.h:
     57        * UIProcess/SuspendedPageProxy.h:
     58        * UIProcess/WebAuthentication/WebAuthnProcessProxy.h:
     59        * UIProcess/WebPageProxy.h:
     60        * UIProcess/WebProcessPool.h:
     61        * UIProcess/WebProcessProxy.cpp:
     62        (WebKit::WebProcessProxy::createSpeechRecognitionServer):
     63        * UIProcess/WebProcessProxy.h:
     64        * WebAuthnProcess/WebAuthnProcess.h:
     65        * WebProcess/GPU/GPUProcessConnection.h:
     66        * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
     67        * WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
     68        * WebProcess/GPU/media/MediaSourcePrivateRemote.h:
     69        * WebProcess/GPU/media/SourceBufferPrivateRemote.h:
     70        * WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
     71        * WebProcess/Inspector/WebInspectorUIExtensionController.h:
     72        * WebProcess/Network/WebSocketChannel.h:
     73        * WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:
     74        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
     75        * WebProcess/WebPage/WebPage.h:
     76        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
     77        * WebProcess/WebStorage/StorageAreaMap.h:
     78
    1792021-03-09  Chris Dumez  <cdumez@apple.com>
    280
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h

    r273504 r280839  
    8383    virtual ~GPUConnectionToWebProcess();
    8484
     85    using WebCore::NowPlayingManager::Client::weakPtrFactory;
     86    using WeakValueType = WebCore::NowPlayingManager::Client::WeakValueType;
     87
    8588    IPC::Connection& connection() { return m_connection.get(); }
    8689    IPC::MessageReceiverMap& messageReceiverMap() { return m_messageReceiverMap; }
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUProcess.h

    r273288 r280839  
    5050class RemoteAudioSessionProxyManager;
    5151
    52 class GPUProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<GPUProcess>, public CanMakeWeakPtr<GPUProcess> {
     52class GPUProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<GPUProcess> {
    5353    WTF_MAKE_NONCOPYABLE(GPUProcess);
    5454public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h

    r258390 r280839  
    4444
    4545class RemoteAudioSessionProxy
    46     : public IPC::MessageReceiver
    47     , public CanMakeWeakPtr<RemoteAudioSessionProxy> {
     46    : public IPC::MessageReceiver {
    4847    WTF_MAKE_FAST_ALLOCATED;
    4948public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMFactoryProxy.h

    r273473 r280839  
    4444struct RemoteCDMConfiguration;
    4545
    46 class RemoteCDMFactoryProxy final : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteCDMFactoryProxy> {
     46class RemoteCDMFactoryProxy final : public IPC::MessageReceiver {
    4747    WTF_MAKE_FAST_ALLOCATED;
    4848public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMProxy.h

    r266003 r280839  
    5050struct RemoteCDMConfiguration;
    5151
    52 class RemoteCDMProxy : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteCDMProxy> {
     52class RemoteCDMProxy : public IPC::MessageReceiver {
    5353public:
    5454    static std::unique_ptr<RemoteCDMProxy> create(WeakPtr<RemoteCDMFactoryProxy>&&, std::unique_ptr<WebCore::CDMPrivate>&&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMFactoryProxy.h

    r273473 r280839  
    4343struct RemoteLegacyCDMConfiguration;
    4444
    45 class RemoteLegacyCDMFactoryProxy final : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteLegacyCDMFactoryProxy> {
     45class RemoteLegacyCDMFactoryProxy final : public IPC::MessageReceiver {
    4646    WTF_MAKE_FAST_ALLOCATED;
    4747public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMProxy.h

    r270573 r280839  
    4343
    4444class RemoteLegacyCDMProxy
    45     : private IPC::MessageReceiver
    46     , public WebCore::LegacyCDMClient
    47     , public CanMakeWeakPtr<RemoteLegacyCDMProxy> {
     45    : public IPC::MessageReceiver
     46    , public WebCore::LegacyCDMClient {
    4847public:
    4948    static std::unique_ptr<RemoteLegacyCDMProxy> create(WeakPtr<RemoteLegacyCDMFactoryProxy>, WebCore::MediaPlayerIdentifier&&, std::unique_ptr<WebCore::LegacyCDM>&&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.h

    r266003 r280839  
    5151
    5252class RemoteLegacyCDMSessionProxy
    53     : private IPC::MessageReceiver
    54     , public WebCore::LegacyCDMSessionClient
    55     , public CanMakeWeakPtr<RemoteLegacyCDMSessionProxy> {
     53    : public IPC::MessageReceiver
     54    , public WebCore::LegacyCDMSessionClient {
    5655public:
    5756    static std::unique_ptr<RemoteLegacyCDMSessionProxy> create(WeakPtr<RemoteLegacyCDMFactoryProxy>&&, RemoteLegacyCDMSessionIdentifier, WebCore::LegacyCDM&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h

    r273473 r280839  
    3636namespace WebKit {
    3737
    38 class RemoteMediaEngineConfigurationFactoryProxy final : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteMediaEngineConfigurationFactoryProxy> {
     38class RemoteMediaEngineConfigurationFactoryProxy final : private IPC::MessageReceiver {
    3939    WTF_MAKE_FAST_ALLOCATED;
    4040public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h

    r273473 r280839  
    4646
    4747class RemoteMediaPlayerManagerProxy
    48     : public CanMakeWeakPtr<RemoteMediaPlayerManagerProxy>
    49     , private IPC::MessageReceiver
     48    : public IPC::MessageReceiver
    5049{
    5150    WTF_MAKE_FAST_ALLOCATED;
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h

    r273473 r280839  
    8282
    8383class RemoteMediaPlayerProxy final
    84     : public CanMakeWeakPtr<RemoteMediaPlayerProxy>
    85     , public WebCore::MediaPlayerClient
    86     , private IPC::MessageReceiver {
     84    : public WebCore::MediaPlayerClient
     85    , public IPC::MessageReceiver {
    8786    WTF_MAKE_FAST_ALLOCATED;
    8887public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h

    r273126 r280839  
    5050
    5151class RemoteMediaResourceManager
    52     : public IPC::MessageReceiver
    53     , public CanMakeWeakPtr<RemoteMediaResourceManager> {
     52    : public IPC::MessageReceiver {
    5453    WTF_MAKE_FAST_ALLOCATED;
    5554public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h

    r264312 r280839  
    4949    ~RemoteSampleBufferDisplayLayer();
    5050
     51    using WebCore::SampleBufferDisplayLayer::Client::weakPtrFactory;
     52    using WeakValueType = WebCore::SampleBufferDisplayLayer::Client::WeakValueType;
     53
    5154    using LayerInitializationCallback = CompletionHandler<void(Optional<LayerHostingContextID>)>;
    5255    void initialize(bool hideRootLayer, WebCore::IntSize, LayerInitializationCallback&&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/NetworkProcess.h

    r273465 r280839  
    127127}
    128128
    129 class NetworkProcess : public AuxiliaryProcess, private DownloadManager::Client, public ThreadSafeRefCounted<NetworkProcess>, public CanMakeWeakPtr<NetworkProcess>
     129class NetworkProcess : public AuxiliaryProcess, private DownloadManager::Client, public ThreadSafeRefCounted<NetworkProcess>
    130130{
    131131    WTF_MAKE_NONCOPYABLE(NetworkProcess);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h

    r264598 r280839  
    6868    ~WebSWServerConnection() final;
    6969
     70    using WebCore::SWServer::Connection::weakPtrFactory;
     71    using WeakValueType = WebCore::SWServer::Connection::WeakValueType;
     72
    7073    IPC::Connection& ipcConnection() const { return m_contentConnection.get(); }
    7174
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h

    r259383 r280839  
    5353class WebSWServerConnection;
    5454
    55 class WebSWServerToContextConnection: public CanMakeWeakPtr<WebSWServerToContextConnection>, public WebCore::SWServerToContextConnection, public IPC::MessageSender, public IPC::MessageReceiver {
     55class WebSWServerToContextConnection: public WebCore::SWServerToContextConnection, public IPC::MessageSender, public IPC::MessageReceiver {
    5656public:
    5757    WebSWServerToContextConnection(NetworkConnectionToWebProcess&, WebCore::RegistrableDomain&&, WebCore::SWServer&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiver.h

    r254087 r280839  
    2727
    2828#include <wtf/Assertions.h>
     29#include <wtf/WeakPtr.h>
    2930
    3031namespace IPC {
     
    3435class Encoder;
    3536
    36 class MessageReceiver {
     37class MessageReceiver : public CanMakeWeakPtr<MessageReceiver> {
    3738public:
    3839    virtual ~MessageReceiver()
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp

    r261254 r280839  
    4545
    4646    messageReceiver.willBeAddedToMessageReceiverMap();
    47     m_globalMessageReceivers.set(messageReceiverName, &messageReceiver);
     47    m_globalMessageReceivers.set(messageReceiverName, makeWeakPtr(messageReceiver));
    4848}
    4949
     
    5555
    5656    messageReceiver.willBeAddedToMessageReceiverMap();
    57     m_messageReceivers.set(std::make_pair(messageReceiverName, destinationID), &messageReceiver);
     57    m_messageReceivers.set(std::make_pair(messageReceiverName, destinationID), makeWeakPtr(messageReceiver));
    5858}
    5959
    6060void MessageReceiverMap::removeMessageReceiver(ReceiverName messageReceiverName)
    6161{
    62     ASSERT(m_globalMessageReceivers.contains(messageReceiverName));
     62    auto it = m_globalMessageReceivers.find(messageReceiverName);
     63    if (it == m_globalMessageReceivers.end()) {
     64        ASSERT_NOT_REACHED();
     65        return;
     66    }
    6367
    64     auto it = m_globalMessageReceivers.find(messageReceiverName);
    65     it->value->willBeRemovedFromMessageReceiverMap();
    66 
     68    if (it->value)
     69        it->value->willBeRemovedFromMessageReceiverMap();
    6770    m_globalMessageReceivers.remove(it);
    6871}
     
    7073void MessageReceiverMap::removeMessageReceiver(ReceiverName messageReceiverName, uint64_t destinationID)
    7174{
    72     ASSERT(m_messageReceivers.contains(std::make_pair(messageReceiverName, destinationID)));
     75    auto it = m_messageReceivers.find(std::make_pair(messageReceiverName, destinationID));
     76    if (it == m_messageReceivers.end()) {
     77        ASSERT_NOT_REACHED();
     78        return;
     79    }
    7380
    74     auto it = m_messageReceivers.find(std::make_pair(messageReceiverName, destinationID));
    75     it->value->willBeRemovedFromMessageReceiverMap();
    76 
     81    if (it->value)
     82        it->value->willBeRemovedFromMessageReceiverMap();
    7783    m_messageReceivers.remove(it);
    7884}
     
    113119bool MessageReceiverMap::dispatchMessage(Connection& connection, Decoder& decoder)
    114120{
    115     if (MessageReceiver* messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
     121    if (auto messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
    116122        ASSERT(!decoder.destinationID());
    117123
     
    120126    }
    121127
    122     if (MessageReceiver* messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
     128    if (auto messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
    123129        messageReceiver->didReceiveMessage(connection, decoder);
    124130        return true;
     
    130136bool MessageReceiverMap::dispatchSyncMessage(Connection& connection, Decoder& decoder, std::unique_ptr<Encoder>& replyEncoder)
    131137{
    132     if (MessageReceiver* messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
     138    if (auto messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
    133139        ASSERT(!decoder.destinationID());
    134140
     
    137143    }
    138144
    139     if (MessageReceiver* messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
     145    if (auto messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
    140146        messageReceiver->didReceiveSyncMessage(connection, decoder, replyEncoder);
    141147        return true;
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.h

    r264488 r280839  
    2828#include "StringReference.h"
    2929#include <wtf/HashMap.h>
     30#include <wtf/WeakPtr.h>
    3031#include <wtf/text/CString.h>
    3132
     
    5758private:
    5859    // Message receivers that don't require a destination ID.
    59     HashMap<ReceiverName, MessageReceiver*, WTF::IntHash<ReceiverName>, WTF::StrongEnumHashTraits<ReceiverName>> m_globalMessageReceivers;
     60    HashMap<ReceiverName, WeakPtr<MessageReceiver>, WTF::IntHash<ReceiverName>, WTF::StrongEnumHashTraits<ReceiverName>> m_globalMessageReceivers;
    6061
    61     HashMap<std::pair<ReceiverName, uint64_t>, MessageReceiver*, DefaultHash<std::pair<ReceiverName, uint64_t>>, PairHashTraits<WTF::StrongEnumHashTraits<ReceiverName>, HashTraits<uint64_t>>> m_messageReceivers;
     62    HashMap<std::pair<ReceiverName, uint64_t>, WeakPtr<MessageReceiver>, DefaultHash<std::pair<ReceiverName, uint64_t>>, PairHashTraits<WTF::StrongEnumHashTraits<ReceiverName>, HashTraits<uint64_t>>> m_messageReceivers;
    6263};
    6364
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h

    r251778 r280839  
    4444class UserData;
    4545
    46 class RemoteObjectRegistry : public CanMakeWeakPtr<RemoteObjectRegistry>, public IPC::MessageReceiver {
     46class RemoteObjectRegistry : public IPC::MessageReceiver {
    4747    WTF_MAKE_FAST_ALLOCATED;
    4848public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h

    r273159 r280839  
    7878
    7979class WebPaymentCoordinatorProxy
    80     : private IPC::MessageReceiver
     80    : public IPC::MessageReceiver
    8181    , private IPC::MessageSender
    82     , public CanMakeWeakPtr<WebPaymentCoordinatorProxy>
    8382    , public PaymentAuthorizationPresenter::Client {
    8483    WTF_MAKE_FAST_ALLOCATED;
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/Authentication/AuthenticationManager.h

    r268008 r280839  
    6363using ChallengeCompletionHandler = CompletionHandler<void(AuthenticationChallengeDisposition, const WebCore::Credential&)>;
    6464
    65 class AuthenticationManager : public NetworkProcessSupplement, public IPC::MessageReceiver, public CanMakeWeakPtr<AuthenticationManager> {
     65class AuthenticationManager : public NetworkProcessSupplement, public IPC::MessageReceiver {
    6666    WTF_MAKE_FAST_ALLOCATED;
    6767    WTF_MAKE_NONCOPYABLE(AuthenticationManager);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/AuxiliaryProcess.h

    r271452 r280839  
    4242struct AuxiliaryProcessInitializationParameters;
    4343
    44 class AuxiliaryProcess : protected IPC::Connection::Client, public IPC::MessageSender {
     44class AuxiliaryProcess : public IPC::Connection::Client, public IPC::MessageSender {
    4545    WTF_MAKE_NONCOPYABLE(AuxiliaryProcess);
    4646
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h

    r273288 r280839  
    5353struct GPUProcessCreationParameters;
    5454
    55 class GPUProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public CanMakeWeakPtr<GPUProcessProxy>, public RefCounted<GPUProcessProxy> {
     55class GPUProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public RefCounted<GPUProcessProxy> {
    5656    WTF_MAKE_FAST_ALLOCATED;
    5757    WTF_MAKE_NONCOPYABLE(GPUProcessProxy);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h

    r273522 r280839  
    8585    , public IPC::MessageReceiver
    8686    , public Inspector::FrontendChannel
    87     , public CanMakeWeakPtr<WebInspectorProxy>
    8887#if PLATFORM(WIN)
    8988    , public WebCore::WindowMessageListener
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h

    r273522 r280839  
    4545class WebInspectorUIExtensionControllerProxy final
    4646    : public RefCounted<WebInspectorUIExtensionControllerProxy>
    47     , public IPC::MessageReceiver
    48     , public CanMakeWeakPtr<WebInspectorUIExtensionControllerProxy> {
     47    , public IPC::MessageReceiver {
    4948    WTF_MAKE_FAST_ALLOCATED;
    5049    WTF_MAKE_NONCOPYABLE(WebInspectorUIExtensionControllerProxy);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.h

    r266121 r280839  
    3838
    3939class AudioSessionRoutingArbitratorProxy
    40     : public IPC::MessageReceiver
    41     , public CanMakeWeakPtr<AudioSessionRoutingArbitratorProxy> {
     40    : public IPC::MessageReceiver {
    4241    WTF_MAKE_FAST_ALLOCATED;
    4342public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h

    r270573 r280839  
    4747class NetworkProcessProxy;
    4848
    49 class LegacyCustomProtocolManagerProxy : public CanMakeWeakPtr<LegacyCustomProtocolManagerProxy>, public IPC::MessageReceiver {
     49class LegacyCustomProtocolManagerProxy : public IPC::MessageReceiver {
    5050public:
    5151    LegacyCustomProtocolManagerProxy(NetworkProcessProxy&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h

    r273102 r280839  
    9494struct WebsiteDataStoreParameters;
    9595
    96 class NetworkProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public CanMakeWeakPtr<NetworkProcessProxy>, public RefCounted<NetworkProcessProxy> {
     96class NetworkProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public RefCounted<NetworkProcessProxy> {
    9797    WTF_MAKE_FAST_ALLOCATED;
    9898public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.h

    r280136 r280839  
    6969#endif
    7070
    71 class ProvisionalPageProxy : public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<ProvisionalPageProxy> {
     71class ProvisionalPageProxy : public IPC::MessageReceiver, public IPC::MessageSender {
    7272    WTF_MAKE_FAST_ALLOCATED;
    7373public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h

    r270986 r280839  
    4949class SpeechRecognitionRemoteRealtimeMediaSource;
    5050
    51 class SpeechRecognitionRemoteRealtimeMediaSourceManager final : public CanMakeWeakPtr<SpeechRecognitionRemoteRealtimeMediaSourceManager>, public IPC::MessageReceiver, public IPC::MessageSender {
     51class SpeechRecognitionRemoteRealtimeMediaSourceManager final : public IPC::MessageReceiver, public IPC::MessageSender {
    5252    WTF_MAKE_FAST_ALLOCATED;
    5353public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionServer.h

    r272417 r280839  
    5050using SpeechRecognitionCheckIfMockSpeechRecognitionEnabled = Function<bool()>;
    5151
    52 class SpeechRecognitionServer : public CanMakeWeakPtr<SpeechRecognitionServer>, public IPC::MessageReceiver, private IPC::MessageSender {
     52class SpeechRecognitionServer : public IPC::MessageReceiver, private IPC::MessageSender {
    5353    WTF_MAKE_FAST_ALLOCATED;
    5454public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SuspendedPageProxy.h

    r259898 r280839  
    5353enum class ShouldDelayClosingUntilFirstLayerFlush : bool { No, Yes };
    5454
    55 class SuspendedPageProxy final: public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<SuspendedPageProxy> {
     55class SuspendedPageProxy final: public IPC::MessageReceiver, public IPC::MessageSender {
    5656    WTF_MAKE_FAST_ALLOCATED;
    5757public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.h

    r269554 r280839  
    4242struct WebAuthnProcessCreationParameters;
    4343
    44 class WebAuthnProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public CanMakeWeakPtr<WebAuthnProcessProxy> {
     44class WebAuthnProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient {
    4545    WTF_MAKE_FAST_ALLOCATED;
    4646    WTF_MAKE_NONCOPYABLE(WebAuthnProcessProxy);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebPageProxy.h

    r280137 r280839  
    432432#if PLATFORM(MACCATALYST)
    433433    , public EndowmentStateTracker::Client
    434 #else
    435     , public CanMakeWeakPtr<WebPageProxy>
    436434#endif
    437435    {
     
    439437    static Ref<WebPageProxy> create(PageClient&, WebProcessProxy&, Ref<API::PageConfiguration>&&);
    440438    virtual ~WebPageProxy();
     439
     440    using IPC::MessageReceiver::weakPtrFactory;
     441    using WeakValueType = IPC::MessageReceiver::WeakValueType;
    441442
    442443    static void forMostVisibleWebPageIfAny(PAL::SessionID, const WebCore::SecurityOriginData&, CompletionHandler<void(WebPageProxy*)>&&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessPool.h

    r274332 r280839  
    128128class WebProcessPool final
    129129    : public API::ObjectImpl<API::Object::Type::ProcessPool>
    130     , public CanMakeWeakPtr<WebProcessPool>
    131     , private IPC::MessageReceiver
     130    , public IPC::MessageReceiver
    132131#if PLATFORM(MAC)
    133132    , private PAL::SystemSleepListener::Client
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.cpp

    r274337 r280839  
    17211721
    17221722    ASSERT(!m_speechRecognitionServerMap.contains(identifier));
     1723    MESSAGE_CHECK(!m_speechRecognitionServerMap.contains(identifier));
     1724
    17231725    auto& speechRecognitionServer = m_speechRecognitionServerMap.add(identifier, nullptr).iterator->value;
    17241726    auto permissionChecker = [weakPage = makeWeakPtr(targetPage)](auto& request, auto&& completionHandler) mutable {
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.h

    r274336 r280839  
    121121enum class CheckBackForwardList : bool { No, Yes };
    122122
    123 class WebProcessProxy : public AuxiliaryProcessProxy, public ResponsivenessTimer::Client, public ThreadSafeRefCounted<WebProcessProxy>, public CanMakeWeakPtr<WebProcessProxy>, private ProcessThrottlerClient {
     123class WebProcessProxy : public AuxiliaryProcessProxy, public ResponsivenessTimer::Client, public ThreadSafeRefCounted<WebProcessProxy>, private ProcessThrottlerClient {
    124124public:
    125125    typedef HashMap<WebCore::FrameIdentifier, RefPtr<WebFrameProxy>> WebFrameProxyMap;
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebAuthnProcess/WebAuthnProcess.h

    r271452 r280839  
    4545struct WebAuthnProcessCreationParameters;
    4646
    47 class WebAuthnProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<WebAuthnProcess>, public CanMakeWeakPtr<WebAuthnProcess> {
     47class WebAuthnProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<WebAuthnProcess> {
    4848    WTF_MAKE_NONCOPYABLE(WebAuthnProcess);
    4949public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h

    r273504 r280839  
    4848struct WebPageCreationParameters;
    4949
    50 class GPUProcessConnection : public RefCounted<GPUProcessConnection>, public CanMakeWeakPtr<GPUProcessConnection>, IPC::Connection::Client {
     50class GPUProcessConnection : public RefCounted<GPUProcessConnection>, public IPC::Connection::Client {
    5151public:
    5252    static Ref<GPUProcessConnection> create(IPC::Connection::Identifier connectionIdentifier)
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h

    r273301 r280839  
    6666    ~RemoteRenderingBackendProxy();
    6767
     68    using GPUProcessConnection::Client::weakPtrFactory;
     69    using WeakValueType = GPUProcessConnection::Client::WeakValueType;
     70
    6871    RemoteResourceCacheProxy& remoteResourceCacheProxy() { return m_remoteResourceCacheProxy; }
    6972    WebCore::DisplayList::ItemBufferHandle createItemBuffer(size_t capacity, WebCore::RenderingResourceIdentifier destinationBufferIdentifier);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h

    r273213 r280839  
    6767
    6868class MediaPlayerPrivateRemote final
    69     : public CanMakeWeakPtr<MediaPlayerPrivateRemote>
    70     , public WebCore::MediaPlayerPrivateInterface
    71     , private IPC::MessageReceiver
     69    : public WebCore::MediaPlayerPrivateInterface
     70    , public IPC::MessageReceiver
    7271#if !RELEASE_LOG_DISABLED
    7372    , private LoggerHelper
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h

    r270819 r280839  
    5252class MediaSourcePrivateRemote final
    5353    : public WebCore::MediaSourcePrivate
    54     , public CanMakeWeakPtr<MediaSourcePrivateRemote>
    55     , private IPC::MessageReceiver
     54    , public IPC::MessageReceiver
    5655#if !RELEASE_LOG_DISABLED
    5756    , private LoggerHelper
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h

    r271178 r280839  
    5959
    6060class SourceBufferPrivateRemote final
    61     : public CanMakeWeakPtr<SourceBufferPrivateRemote>
    62     , public WebCore::SourceBufferPrivate
    63     , private IPC::MessageReceiver
     61    : public WebCore::SourceBufferPrivate
     62    , public IPC::MessageReceiver
    6463{
    6564public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h

    r264312 r280839  
    3737class SampleBufferDisplayLayerManager;
    3838
    39 class SampleBufferDisplayLayer final : public WebCore::SampleBufferDisplayLayer, public IPC::MessageReceiver, public CanMakeWeakPtr<SampleBufferDisplayLayer> {
     39class SampleBufferDisplayLayer final : public WebCore::SampleBufferDisplayLayer, public IPC::MessageReceiver {
    4040public:
    4141    static std::unique_ptr<SampleBufferDisplayLayer> create(SampleBufferDisplayLayerManager&, Client&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h

    r273522 r280839  
    5353
    5454class WebInspectorUIExtensionController
    55     : public IPC::MessageReceiver
    56     , public CanMakeWeakPtr<WebInspectorUIExtensionController> {
     55    : public IPC::MessageReceiver {
    5756    WTF_MAKE_FAST_ALLOCATED;
    5857    WTF_MAKE_NONCOPYABLE(WebInspectorUIExtensionController);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Network/WebSocketChannel.h

    r270937 r280839  
    4444namespace WebKit {
    4545
    46 class WebSocketChannel : public IPC::MessageSender, public IPC::MessageReceiver, public WebCore::ThreadableWebSocketChannel, public RefCounted<WebSocketChannel>, public CanMakeWeakPtr<WebSocketChannel> {
     46class WebSocketChannel : public IPC::MessageSender, public IPC::MessageReceiver, public WebCore::ThreadableWebSocketChannel, public RefCounted<WebSocketChannel> {
    4747public:
    4848    static Ref<WebSocketChannel> create(WebCore::Document&, WebCore::WebSocketChannelClient&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h

    r270574 r280839  
    3939namespace WebKit {
    4040
    41 class SpeechRecognitionRealtimeMediaSourceManager final : public CanMakeWeakPtr<SpeechRecognitionRealtimeMediaSourceManager>, public IPC::MessageReceiver, private IPC::MessageSender {
     41class SpeechRecognitionRealtimeMediaSourceManager final : public IPC::MessageReceiver, private IPC::MessageSender {
    4242    WTF_MAKE_FAST_ALLOCATED;
    4343public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h

    r272784 r280839  
    4848class RemoteLayerTreeDisplayRefreshMonitor;
    4949
    50 class RemoteLayerTreeDrawingArea : public DrawingArea, public CanMakeWeakPtr<RemoteLayerTreeDrawingArea>, public WebCore::GraphicsLayerClient {
     50class RemoteLayerTreeDrawingArea : public DrawingArea, public WebCore::GraphicsLayerClient {
    5151    friend class RemoteLayerTreeDisplayRefreshMonitor;
    5252public:
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/WebPage.h

    r273102 r280839  
    323323using WKEventModifiers = uint32_t;
    324324
    325 class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<WebPage> {
     325class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender {
    326326public:
    327327    static Ref<WebPage> create(WebCore::PageIdentifier, WebPageCreationParameters&&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h

    r272784 r280839  
    5050class LayerHostingContext;
    5151
    52 class TiledCoreAnimationDrawingArea : public DrawingArea, public CanMakeWeakPtr<TiledCoreAnimationDrawingArea> {
     52class TiledCoreAnimationDrawingArea : public DrawingArea {
    5353public:
    5454    TiledCoreAnimationDrawingArea(WebPage&, const WebPageCreationParameters&);
  • releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h

    r255875 r280839  
    4747class StorageNamespaceImpl;
    4848
    49 class StorageAreaMap final : private IPC::MessageReceiver, public CanMakeWeakPtr<StorageAreaMap> {
     49class StorageAreaMap final : public IPC::MessageReceiver {
    5050    WTF_MAKE_FAST_ALLOCATED;
    5151public:
Note: See TracChangeset for help on using the changeset viewer.