Title: [280839] releases/WebKitGTK/webkit-2.32/Source/WebKit
Revision
280839
Author
[email protected]
Date
2021-08-10 02:35:09 -0700 (Tue, 10 Aug 2021)

Log 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:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/ChangeLog (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/ChangeLog	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/ChangeLog	2021-08-10 09:35:09 UTC (rev 280839)
@@ -1,5 +1,83 @@
 2021-03-09  Chris Dumez  <[email protected]>
 
+        [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:
+
+2021-03-09  Chris Dumez  <[email protected]>
+
         [IPC Hardening] IPC::decode(Decoder& decoder, RetainPtr<CFDictionaryRef>&) should make sure keys & values aren't null
         https://bugs.webkit.org/show_bug.cgi?id=222980
 

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -82,6 +82,9 @@
     static Ref<GPUConnectionToWebProcess> create(GPUProcess&, WebCore::ProcessIdentifier, IPC::Connection::Identifier, PAL::SessionID, GPUProcessConnectionParameters&&);
     virtual ~GPUConnectionToWebProcess();
 
+    using WebCore::NowPlayingManager::Client::weakPtrFactory;
+    using WeakValueType = WebCore::NowPlayingManager::Client::WeakValueType;
+
     IPC::Connection& connection() { return m_connection.get(); }
     IPC::MessageReceiverMap& messageReceiverMap() { return m_messageReceiverMap; }
     GPUProcess& gpuProcess() { return m_gpuProcess.get(); }

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUProcess.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUProcess.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/GPUProcess.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -49,7 +49,7 @@
 class LayerHostingContext;
 class RemoteAudioSessionProxyManager;
 
-class GPUProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<GPUProcess>, public CanMakeWeakPtr<GPUProcess> {
+class GPUProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<GPUProcess> {
     WTF_MAKE_NONCOPYABLE(GPUProcess);
 public:
     explicit GPUProcess(AuxiliaryProcessInitializationParameters&&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -43,8 +43,7 @@
 class RemoteAudioSessionProxyManager;
 
 class RemoteAudioSessionProxy
-    : public IPC::MessageReceiver
-    , public CanMakeWeakPtr<RemoteAudioSessionProxy> {
+    : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     static UniqueRef<RemoteAudioSessionProxy> create(GPUConnectionToWebProcess&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMFactoryProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMFactoryProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMFactoryProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -43,7 +43,7 @@
 class RemoteCDMProxy;
 struct RemoteCDMConfiguration;
 
-class RemoteCDMFactoryProxy final : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteCDMFactoryProxy> {
+class RemoteCDMFactoryProxy final : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     RemoteCDMFactoryProxy(GPUConnectionToWebProcess&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteCDMProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -49,7 +49,7 @@
 struct RemoteCDMInstanceConfiguration;
 struct RemoteCDMConfiguration;
 
-class RemoteCDMProxy : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteCDMProxy> {
+class RemoteCDMProxy : public IPC::MessageReceiver {
 public:
     static std::unique_ptr<RemoteCDMProxy> create(WeakPtr<RemoteCDMFactoryProxy>&&, std::unique_ptr<WebCore::CDMPrivate>&&);
     ~RemoteCDMProxy();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMFactoryProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMFactoryProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMFactoryProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -42,7 +42,7 @@
 class RemoteLegacyCDMProxy;
 struct RemoteLegacyCDMConfiguration;
 
-class RemoteLegacyCDMFactoryProxy final : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteLegacyCDMFactoryProxy> {
+class RemoteLegacyCDMFactoryProxy final : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     RemoteLegacyCDMFactoryProxy(GPUConnectionToWebProcess&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -42,9 +42,8 @@
 namespace WebKit {
 
 class RemoteLegacyCDMProxy
-    : private IPC::MessageReceiver
-    , public WebCore::LegacyCDMClient
-    , public CanMakeWeakPtr<RemoteLegacyCDMProxy> {
+    : public IPC::MessageReceiver
+    , public WebCore::LegacyCDMClient {
 public:
     static std::unique_ptr<RemoteLegacyCDMProxy> create(WeakPtr<RemoteLegacyCDMFactoryProxy>, WebCore::MediaPlayerIdentifier&&, std::unique_ptr<WebCore::LegacyCDM>&&);
     ~RemoteLegacyCDMProxy();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -50,9 +50,8 @@
 class RemoteMediaPlayerProxy;
 
 class RemoteLegacyCDMSessionProxy
-    : private IPC::MessageReceiver
-    , public WebCore::LegacyCDMSessionClient
-    , public CanMakeWeakPtr<RemoteLegacyCDMSessionProxy> {
+    : public IPC::MessageReceiver
+    , public WebCore::LegacyCDMSessionClient {
 public:
     static std::unique_ptr<RemoteLegacyCDMSessionProxy> create(WeakPtr<RemoteLegacyCDMFactoryProxy>&&, RemoteLegacyCDMSessionIdentifier, WebCore::LegacyCDM&);
     ~RemoteLegacyCDMSessionProxy();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -35,7 +35,7 @@
 
 namespace WebKit {
 
-class RemoteMediaEngineConfigurationFactoryProxy final : private IPC::MessageReceiver, public CanMakeWeakPtr<RemoteMediaEngineConfigurationFactoryProxy> {
+class RemoteMediaEngineConfigurationFactoryProxy final : private IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     RemoteMediaEngineConfigurationFactoryProxy();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -45,8 +45,7 @@
 struct RemoteMediaPlayerProxyConfiguration;
 
 class RemoteMediaPlayerManagerProxy
-    : public CanMakeWeakPtr<RemoteMediaPlayerManagerProxy>
-    , private IPC::MessageReceiver
+    : public IPC::MessageReceiver
 {
     WTF_MAKE_FAST_ALLOCATED;
 public:

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -81,9 +81,8 @@
 class RemoteVideoTrackProxy;
 
 class RemoteMediaPlayerProxy final
-    : public CanMakeWeakPtr<RemoteMediaPlayerProxy>
-    , public WebCore::MediaPlayerClient
-    , private IPC::MessageReceiver {
+    : public WebCore::MediaPlayerClient
+    , public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     RemoteMediaPlayerProxy(RemoteMediaPlayerManagerProxy&, WebCore::MediaPlayerIdentifier, Ref<IPC::Connection>&&, WebCore::MediaPlayerEnums::MediaEngineIdentifier, RemoteMediaPlayerProxyConfiguration&&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -49,8 +49,7 @@
 class RemoteMediaResource;
 
 class RemoteMediaResourceManager
-    : public IPC::MessageReceiver
-    , public CanMakeWeakPtr<RemoteMediaResourceManager> {
+    : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     RemoteMediaResourceManager();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -48,6 +48,9 @@
     static std::unique_ptr<RemoteSampleBufferDisplayLayer> create(SampleBufferDisplayLayerIdentifier, Ref<IPC::Connection>&&);
     ~RemoteSampleBufferDisplayLayer();
 
+    using WebCore::SampleBufferDisplayLayer::Client::weakPtrFactory;
+    using WeakValueType = WebCore::SampleBufferDisplayLayer::Client::WeakValueType;
+
     using LayerInitializationCallback = CompletionHandler<void(Optional<LayerHostingContextID>)>;
     void initialize(bool hideRootLayer, WebCore::IntSize, LayerInitializationCallback&&);
 

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/NetworkProcess.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/NetworkProcess.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/NetworkProcess.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -126,7 +126,7 @@
 class Engine;
 }
 
-class NetworkProcess : public AuxiliaryProcess, private DownloadManager::Client, public ThreadSafeRefCounted<NetworkProcess>, public CanMakeWeakPtr<NetworkProcess>
+class NetworkProcess : public AuxiliaryProcess, private DownloadManager::Client, public ThreadSafeRefCounted<NetworkProcess>
 {
     WTF_MAKE_NONCOPYABLE(NetworkProcess);
 public:

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -67,6 +67,9 @@
     WebSWServerConnection(const WebSWServerConnection&) = delete;
     ~WebSWServerConnection() final;
 
+    using WebCore::SWServer::Connection::weakPtrFactory;
+    using WeakValueType = WebCore::SWServer::Connection::WeakValueType;
+
     IPC::Connection& ipcConnection() const { return m_contentConnection.get(); }
 
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -52,7 +52,7 @@
 class NetworkConnectionToWebProcess;
 class WebSWServerConnection;
 
-class WebSWServerToContextConnection: public CanMakeWeakPtr<WebSWServerToContextConnection>, public WebCore::SWServerToContextConnection, public IPC::MessageSender, public IPC::MessageReceiver {
+class WebSWServerToContextConnection: public WebCore::SWServerToContextConnection, public IPC::MessageSender, public IPC::MessageReceiver {
 public:
     WebSWServerToContextConnection(NetworkConnectionToWebProcess&, WebCore::RegistrableDomain&&, WebCore::SWServer&);
     ~WebSWServerToContextConnection();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiver.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiver.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiver.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -26,6 +26,7 @@
 #pragma once
 
 #include <wtf/Assertions.h>
+#include <wtf/WeakPtr.h>
 
 namespace IPC {
 
@@ -33,7 +34,7 @@
 class Decoder;
 class Encoder;
 
-class MessageReceiver {
+class MessageReceiver : public CanMakeWeakPtr<MessageReceiver> {
 public:
     virtual ~MessageReceiver()
     {

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp	2021-08-10 09:35:09 UTC (rev 280839)
@@ -44,7 +44,7 @@
     ASSERT(!m_globalMessageReceivers.contains(messageReceiverName));
 
     messageReceiver.willBeAddedToMessageReceiverMap();
-    m_globalMessageReceivers.set(messageReceiverName, &messageReceiver);
+    m_globalMessageReceivers.set(messageReceiverName, makeWeakPtr(messageReceiver));
 }
 
 void MessageReceiverMap::addMessageReceiver(ReceiverName messageReceiverName, uint64_t destinationID, MessageReceiver& messageReceiver)
@@ -54,26 +54,32 @@
     ASSERT(!m_globalMessageReceivers.contains(messageReceiverName));
 
     messageReceiver.willBeAddedToMessageReceiverMap();
-    m_messageReceivers.set(std::make_pair(messageReceiverName, destinationID), &messageReceiver);
+    m_messageReceivers.set(std::make_pair(messageReceiverName, destinationID), makeWeakPtr(messageReceiver));
 }
 
 void MessageReceiverMap::removeMessageReceiver(ReceiverName messageReceiverName)
 {
-    ASSERT(m_globalMessageReceivers.contains(messageReceiverName));
-
     auto it = m_globalMessageReceivers.find(messageReceiverName);
-    it->value->willBeRemovedFromMessageReceiverMap();
+    if (it == m_globalMessageReceivers.end()) {
+        ASSERT_NOT_REACHED();
+        return;
+    }
 
+    if (it->value)
+        it->value->willBeRemovedFromMessageReceiverMap();
     m_globalMessageReceivers.remove(it);
 }
 
 void MessageReceiverMap::removeMessageReceiver(ReceiverName messageReceiverName, uint64_t destinationID)
 {
-    ASSERT(m_messageReceivers.contains(std::make_pair(messageReceiverName, destinationID)));
-
     auto it = m_messageReceivers.find(std::make_pair(messageReceiverName, destinationID));
-    it->value->willBeRemovedFromMessageReceiverMap();
+    if (it == m_messageReceivers.end()) {
+        ASSERT_NOT_REACHED();
+        return;
+    }
 
+    if (it->value)
+        it->value->willBeRemovedFromMessageReceiverMap();
     m_messageReceivers.remove(it);
 }
 
@@ -112,7 +118,7 @@
 
 bool MessageReceiverMap::dispatchMessage(Connection& connection, Decoder& decoder)
 {
-    if (MessageReceiver* messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
+    if (auto messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
         ASSERT(!decoder.destinationID());
 
         messageReceiver->didReceiveMessage(connection, decoder);
@@ -119,7 +125,7 @@
         return true;
     }
 
-    if (MessageReceiver* messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
+    if (auto messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
         messageReceiver->didReceiveMessage(connection, decoder);
         return true;
     }
@@ -129,7 +135,7 @@
 
 bool MessageReceiverMap::dispatchSyncMessage(Connection& connection, Decoder& decoder, std::unique_ptr<Encoder>& replyEncoder)
 {
-    if (MessageReceiver* messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
+    if (auto messageReceiver = m_globalMessageReceivers.get(decoder.messageReceiverName())) {
         ASSERT(!decoder.destinationID());
 
         messageReceiver->didReceiveSyncMessage(connection, decoder, replyEncoder);
@@ -136,7 +142,7 @@
         return true;
     }
 
-    if (MessageReceiver* messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
+    if (auto messageReceiver = m_messageReceivers.get(std::make_pair(decoder.messageReceiverName(), decoder.destinationID()))) {
         messageReceiver->didReceiveSyncMessage(connection, decoder, replyEncoder);
         return true;
     }

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/Platform/IPC/MessageReceiverMap.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -27,6 +27,7 @@
 
 #include "StringReference.h"
 #include <wtf/HashMap.h>
+#include <wtf/WeakPtr.h>
 #include <wtf/text/CString.h>
 
 namespace IPC {
@@ -56,9 +57,9 @@
 
 private:
     // Message receivers that don't require a destination ID.
-    HashMap<ReceiverName, MessageReceiver*, WTF::IntHash<ReceiverName>, WTF::StrongEnumHashTraits<ReceiverName>> m_globalMessageReceivers;
+    HashMap<ReceiverName, WeakPtr<MessageReceiver>, WTF::IntHash<ReceiverName>, WTF::StrongEnumHashTraits<ReceiverName>> m_globalMessageReceivers;
 
-    HashMap<std::pair<ReceiverName, uint64_t>, MessageReceiver*, DefaultHash<std::pair<ReceiverName, uint64_t>>, PairHashTraits<WTF::StrongEnumHashTraits<ReceiverName>, HashTraits<uint64_t>>> m_messageReceivers;
+    HashMap<std::pair<ReceiverName, uint64_t>, WeakPtr<MessageReceiver>, DefaultHash<std::pair<ReceiverName, uint64_t>>, PairHashTraits<WTF::StrongEnumHashTraits<ReceiverName>, HashTraits<uint64_t>>> m_messageReceivers;
 };
 
 };

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -43,7 +43,7 @@
 class RemoteObjectInvocation;
 class UserData;
 
-class RemoteObjectRegistry : public CanMakeWeakPtr<RemoteObjectRegistry>, public IPC::MessageReceiver {
+class RemoteObjectRegistry : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~RemoteObjectRegistry();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -77,9 +77,8 @@
 class WebPageProxy;
 
 class WebPaymentCoordinatorProxy
-    : private IPC::MessageReceiver
+    : public IPC::MessageReceiver
     , private IPC::MessageSender
-    , public CanMakeWeakPtr<WebPaymentCoordinatorProxy>
     , public PaymentAuthorizationPresenter::Client {
     WTF_MAKE_FAST_ALLOCATED;
 public:

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/Authentication/AuthenticationManager.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/Authentication/AuthenticationManager.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/Authentication/AuthenticationManager.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -62,7 +62,7 @@
 enum class AuthenticationChallengeDisposition : uint8_t;
 using ChallengeCompletionHandler = CompletionHandler<void(AuthenticationChallengeDisposition, const WebCore::Credential&)>;
 
-class AuthenticationManager : public NetworkProcessSupplement, public IPC::MessageReceiver, public CanMakeWeakPtr<AuthenticationManager> {
+class AuthenticationManager : public NetworkProcessSupplement, public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(AuthenticationManager);
 public:

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/AuxiliaryProcess.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/AuxiliaryProcess.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/Shared/AuxiliaryProcess.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -41,7 +41,7 @@
 class SandboxInitializationParameters;
 struct AuxiliaryProcessInitializationParameters;
 
-class AuxiliaryProcess : protected IPC::Connection::Client, public IPC::MessageSender {
+class AuxiliaryProcess : public IPC::Connection::Client, public IPC::MessageSender {
     WTF_MAKE_NONCOPYABLE(AuxiliaryProcess);
 
 public:

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -52,7 +52,7 @@
 struct GPUProcessConnectionParameters;
 struct GPUProcessCreationParameters;
 
-class GPUProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public CanMakeWeakPtr<GPUProcessProxy>, public RefCounted<GPUProcessProxy> {
+class GPUProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public RefCounted<GPUProcessProxy> {
     WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(GPUProcessProxy);
     friend LazyNeverDestroyed<GPUProcessProxy>;

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -84,7 +84,6 @@
     : public API::ObjectImpl<API::Object::Type::Inspector>
     , public IPC::MessageReceiver
     , public Inspector::FrontendChannel
-    , public CanMakeWeakPtr<WebInspectorProxy>
 #if PLATFORM(WIN)
     , public WebCore::WindowMessageListener
 #endif

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -44,8 +44,7 @@
 
 class WebInspectorUIExtensionControllerProxy final
     : public RefCounted<WebInspectorUIExtensionControllerProxy>
-    , public IPC::MessageReceiver
-    , public CanMakeWeakPtr<WebInspectorUIExtensionControllerProxy> {
+    , public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(WebInspectorUIExtensionControllerProxy);
 public:

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -37,8 +37,7 @@
 class WebProcessProxy;
 
 class AudioSessionRoutingArbitratorProxy
-    : public IPC::MessageReceiver
-    , public CanMakeWeakPtr<AudioSessionRoutingArbitratorProxy> {
+    : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     AudioSessionRoutingArbitratorProxy(WebProcessProxy&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -46,7 +46,7 @@
 
 class NetworkProcessProxy;
 
-class LegacyCustomProtocolManagerProxy : public CanMakeWeakPtr<LegacyCustomProtocolManagerProxy>, public IPC::MessageReceiver {
+class LegacyCustomProtocolManagerProxy : public IPC::MessageReceiver {
 public:
     LegacyCustomProtocolManagerProxy(NetworkProcessProxy&);
     ~LegacyCustomProtocolManagerProxy();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -93,7 +93,7 @@
 struct WebsiteData;
 struct WebsiteDataStoreParameters;
 
-class NetworkProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public CanMakeWeakPtr<NetworkProcessProxy>, public RefCounted<NetworkProcessProxy> {
+class NetworkProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public RefCounted<NetworkProcessProxy> {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     using RegistrableDomain = WebCore::RegistrableDomain;

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -68,7 +68,7 @@
 using LayerHostingContextID = uint32_t;
 #endif
 
-class ProvisionalPageProxy : public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<ProvisionalPageProxy> {
+class ProvisionalPageProxy : public IPC::MessageReceiver, public IPC::MessageSender {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     ProvisionalPageProxy(WebPageProxy&, Ref<WebProcessProxy>&&, std::unique_ptr<SuspendedPageProxy>, uint64_t navigationID, bool isServerRedirect, const WebCore::ResourceRequest&, ProcessSwapRequestedByClient, API::WebsitePolicies*);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -48,7 +48,7 @@
 
 class SpeechRecognitionRemoteRealtimeMediaSource;
 
-class SpeechRecognitionRemoteRealtimeMediaSourceManager final : public CanMakeWeakPtr<SpeechRecognitionRemoteRealtimeMediaSourceManager>, public IPC::MessageReceiver, public IPC::MessageSender {
+class SpeechRecognitionRemoteRealtimeMediaSourceManager final : public IPC::MessageReceiver, public IPC::MessageSender {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit SpeechRecognitionRemoteRealtimeMediaSourceManager(Ref<IPC::Connection>&&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionServer.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionServer.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SpeechRecognitionServer.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -49,7 +49,7 @@
 using SpeechRecognitionPermissionChecker = Function<void(WebCore::SpeechRecognitionRequest&, SpeechRecognitionPermissionRequestCallback&&)>;
 using SpeechRecognitionCheckIfMockSpeechRecognitionEnabled = Function<bool()>;
 
-class SpeechRecognitionServer : public CanMakeWeakPtr<SpeechRecognitionServer>, public IPC::MessageReceiver, private IPC::MessageSender {
+class SpeechRecognitionServer : public IPC::MessageReceiver, private IPC::MessageSender {
     WTF_MAKE_FAST_ALLOCATED;
 public:
 #if ENABLE(MEDIA_STREAM)

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SuspendedPageProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SuspendedPageProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/SuspendedPageProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -52,7 +52,7 @@
 
 enum class ShouldDelayClosingUntilFirstLayerFlush : bool { No, Yes };
 
-class SuspendedPageProxy final: public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<SuspendedPageProxy> {
+class SuspendedPageProxy final: public IPC::MessageReceiver, public IPC::MessageSender {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     SuspendedPageProxy(WebPageProxy&, Ref<WebProcessProxy>&&, WebCore::FrameIdentifier mainFrameID, ShouldDelayClosingUntilFirstLayerFlush);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -41,7 +41,7 @@
 class WebsiteDataStore;
 struct WebAuthnProcessCreationParameters;
 
-class WebAuthnProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient, public CanMakeWeakPtr<WebAuthnProcessProxy> {
+class WebAuthnProcessProxy final : public AuxiliaryProcessProxy, private ProcessThrottlerClient {
     WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(WebAuthnProcessProxy);
     friend LazyNeverDestroyed<WebAuthnProcessProxy>;

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebPageProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebPageProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebPageProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -431,8 +431,6 @@
 #endif
 #if PLATFORM(MACCATALYST)
     , public EndowmentStateTracker::Client
-#else
-    , public CanMakeWeakPtr<WebPageProxy>
 #endif
     {
 public:
@@ -439,6 +437,9 @@
     static Ref<WebPageProxy> create(PageClient&, WebProcessProxy&, Ref<API::PageConfiguration>&&);
     virtual ~WebPageProxy();
 
+    using IPC::MessageReceiver::weakPtrFactory;
+    using WeakValueType = IPC::MessageReceiver::WeakValueType;
+
     static void forMostVisibleWebPageIfAny(PAL::SessionID, const WebCore::SecurityOriginData&, CompletionHandler<void(WebPageProxy*)>&&);
 
     const API::PageConfiguration& configuration() const;

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessPool.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessPool.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessPool.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -127,8 +127,7 @@
 
 class WebProcessPool final
     : public API::ObjectImpl<API::Object::Type::ProcessPool>
-    , public CanMakeWeakPtr<WebProcessPool>
-    , private IPC::MessageReceiver
+    , public IPC::MessageReceiver
 #if PLATFORM(MAC)
     , private PAL::SystemSleepListener::Client
 #endif

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.cpp (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.cpp	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.cpp	2021-08-10 09:35:09 UTC (rev 280839)
@@ -1720,6 +1720,8 @@
         return;
 
     ASSERT(!m_speechRecognitionServerMap.contains(identifier));
+    MESSAGE_CHECK(!m_speechRecognitionServerMap.contains(identifier));
+
     auto& speechRecognitionServer = m_speechRecognitionServerMap.add(identifier, nullptr).iterator->value;
     auto permissionChecker = [weakPage = makeWeakPtr(targetPage)](auto& request, auto&& completionHandler) mutable {
         if (!weakPage) {

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebProcessProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -120,7 +120,7 @@
 using WebProcessWithAudibleMediaToken = WebProcessWithAudibleMediaCounter::Token;
 enum class CheckBackForwardList : bool { No, Yes };
 
-class WebProcessProxy : public AuxiliaryProcessProxy, public ResponsivenessTimer::Client, public ThreadSafeRefCounted<WebProcessProxy>, public CanMakeWeakPtr<WebProcessProxy>, private ProcessThrottlerClient {
+class WebProcessProxy : public AuxiliaryProcessProxy, public ResponsivenessTimer::Client, public ThreadSafeRefCounted<WebProcessProxy>, private ProcessThrottlerClient {
 public:
     typedef HashMap<WebCore::FrameIdentifier, RefPtr<WebFrameProxy>> WebFrameProxyMap;
     typedef HashMap<WebPageProxyIdentifier, WebPageProxy*> WebPageProxyMap;

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebAuthnProcess/WebAuthnProcess.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebAuthnProcess/WebAuthnProcess.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebAuthnProcess/WebAuthnProcess.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -44,7 +44,7 @@
 class WebAuthnConnectionToWebProcess;
 struct WebAuthnProcessCreationParameters;
 
-class WebAuthnProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<WebAuthnProcess>, public CanMakeWeakPtr<WebAuthnProcess> {
+class WebAuthnProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<WebAuthnProcess> {
     WTF_MAKE_NONCOPYABLE(WebAuthnProcess);
 public:
     explicit WebAuthnProcess(AuxiliaryProcessInitializationParameters&&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -47,7 +47,7 @@
 struct OverrideScreenDataForTesting;
 struct WebPageCreationParameters;
 
-class GPUProcessConnection : public RefCounted<GPUProcessConnection>, public CanMakeWeakPtr<GPUProcessConnection>, IPC::Connection::Client {
+class GPUProcessConnection : public RefCounted<GPUProcessConnection>, public IPC::Connection::Client {
 public:
     static Ref<GPUProcessConnection> create(IPC::Connection::Identifier connectionIdentifier)
     {

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -65,6 +65,9 @@
 
     ~RemoteRenderingBackendProxy();
 
+    using GPUProcessConnection::Client::weakPtrFactory;
+    using WeakValueType = GPUProcessConnection::Client::WeakValueType;
+
     RemoteResourceCacheProxy& remoteResourceCacheProxy() { return m_remoteResourceCacheProxy; }
     WebCore::DisplayList::ItemBufferHandle createItemBuffer(size_t capacity, WebCore::RenderingResourceIdentifier destinationBufferIdentifier);
 

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -66,9 +66,8 @@
 struct TrackPrivateRemoteConfiguration;
 
 class MediaPlayerPrivateRemote final
-    : public CanMakeWeakPtr<MediaPlayerPrivateRemote>
-    , public WebCore::MediaPlayerPrivateInterface
-    , private IPC::MessageReceiver
+    : public WebCore::MediaPlayerPrivateInterface
+    , public IPC::MessageReceiver
 #if !RELEASE_LOG_DISABLED
     , private LoggerHelper
 #endif

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -51,8 +51,7 @@
 
 class MediaSourcePrivateRemote final
     : public WebCore::MediaSourcePrivate
-    , public CanMakeWeakPtr<MediaSourcePrivateRemote>
-    , private IPC::MessageReceiver
+    , public IPC::MessageReceiver
 #if !RELEASE_LOG_DISABLED
     , private LoggerHelper
 #endif

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -58,9 +58,8 @@
 class MediaSourcePrivateRemote;
 
 class SourceBufferPrivateRemote final
-    : public CanMakeWeakPtr<SourceBufferPrivateRemote>
-    , public WebCore::SourceBufferPrivate
-    , private IPC::MessageReceiver
+    : public WebCore::SourceBufferPrivate
+    , public IPC::MessageReceiver
 {
 public:
     static Ref<SourceBufferPrivateRemote> create(GPUProcessConnection&, RemoteSourceBufferIdentifier, const MediaSourcePrivateRemote&, const MediaPlayerPrivateRemote&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -36,7 +36,7 @@
 
 class SampleBufferDisplayLayerManager;
 
-class SampleBufferDisplayLayer final : public WebCore::SampleBufferDisplayLayer, public IPC::MessageReceiver, public CanMakeWeakPtr<SampleBufferDisplayLayer> {
+class SampleBufferDisplayLayer final : public WebCore::SampleBufferDisplayLayer, public IPC::MessageReceiver {
 public:
     static std::unique_ptr<SampleBufferDisplayLayer> create(SampleBufferDisplayLayerManager&, Client&);
     ~SampleBufferDisplayLayer();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -52,8 +52,7 @@
 class WebInspectorUI;
 
 class WebInspectorUIExtensionController
-    : public IPC::MessageReceiver
-    , public CanMakeWeakPtr<WebInspectorUIExtensionController> {
+    : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(WebInspectorUIExtensionController);
 public:

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Network/WebSocketChannel.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Network/WebSocketChannel.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Network/WebSocketChannel.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -43,7 +43,7 @@
 
 namespace WebKit {
 
-class WebSocketChannel : public IPC::MessageSender, public IPC::MessageReceiver, public WebCore::ThreadableWebSocketChannel, public RefCounted<WebSocketChannel>, public CanMakeWeakPtr<WebSocketChannel> {
+class WebSocketChannel : public IPC::MessageSender, public IPC::MessageReceiver, public WebCore::ThreadableWebSocketChannel, public RefCounted<WebSocketChannel> {
 public:
     static Ref<WebSocketChannel> create(WebCore::Document&, WebCore::WebSocketChannelClient&);
     ~WebSocketChannel();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -38,7 +38,7 @@
 
 namespace WebKit {
 
-class SpeechRecognitionRealtimeMediaSourceManager final : public CanMakeWeakPtr<SpeechRecognitionRealtimeMediaSourceManager>, public IPC::MessageReceiver, private IPC::MessageSender {
+class SpeechRecognitionRealtimeMediaSourceManager final : public IPC::MessageReceiver, private IPC::MessageSender {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit SpeechRecognitionRealtimeMediaSourceManager(Ref<IPC::Connection>&&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -47,7 +47,7 @@
 class RemoteLayerTreeContext;
 class RemoteLayerTreeDisplayRefreshMonitor;
 
-class RemoteLayerTreeDrawingArea : public DrawingArea, public CanMakeWeakPtr<RemoteLayerTreeDrawingArea>, public WebCore::GraphicsLayerClient {
+class RemoteLayerTreeDrawingArea : public DrawingArea, public WebCore::GraphicsLayerClient {
     friend class RemoteLayerTreeDisplayRefreshMonitor;
 public:
     RemoteLayerTreeDrawingArea(WebPage&, const WebPageCreationParameters&);

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/WebPage.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -322,7 +322,7 @@
 using SnapshotOptions = uint32_t;
 using WKEventModifiers = uint32_t;
 
-class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<WebPage> {
+class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender {
 public:
     static Ref<WebPage> create(WebCore::PageIdentifier, WebPageCreationParameters&&);
 

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -49,7 +49,7 @@
 
 class LayerHostingContext;
 
-class TiledCoreAnimationDrawingArea : public DrawingArea, public CanMakeWeakPtr<TiledCoreAnimationDrawingArea> {
+class TiledCoreAnimationDrawingArea : public DrawingArea {
 public:
     TiledCoreAnimationDrawingArea(WebPage&, const WebPageCreationParameters&);
     virtual ~TiledCoreAnimationDrawingArea();

Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h (280838 => 280839)


--- releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h	2021-08-10 09:33:28 UTC (rev 280838)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h	2021-08-10 09:35:09 UTC (rev 280839)
@@ -46,7 +46,7 @@
 class StorageAreaImpl;
 class StorageNamespaceImpl;
 
-class StorageAreaMap final : private IPC::MessageReceiver, public CanMakeWeakPtr<StorageAreaMap> {
+class StorageAreaMap final : public IPC::MessageReceiver {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     StorageAreaMap(StorageNamespaceImpl&, Ref<WebCore::SecurityOrigin>&&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to