Title: [276218] trunk/Source/WebKit
Revision
276218
Author
[email protected]
Date
2021-04-17 20:40:56 -0700 (Sat, 17 Apr 2021)

Log Message

Use WebProcess::existingGPUProcessConnection() whenever possible
https://bugs.webkit.org/show_bug.cgi?id=224725

Reviewed by Darin Adler.

Use WebProcess::existingGPUProcessConnection() whenever possible, instead of WebProcess::ensureGPUProcessConnection().
This avoids relaunching the GPUProcess if it has already exited.

* WebProcess/GPU/media/RemoteAudioHardwareListener.cpp:
(WebKit::RemoteAudioHardwareListener::~RemoteAudioHardwareListener):
* WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
(WebKit::AudioMediaStreamTrackRenderer::~AudioMediaStreamTrackRenderer):
* WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
(WebKit::RemoteRealtimeAudioSource::~RemoteRealtimeAudioSource):
* WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
(WebKit::RemoteRealtimeVideoSource::~RemoteRealtimeVideoSource):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (276217 => 276218)


--- trunk/Source/WebKit/ChangeLog	2021-04-18 01:19:47 UTC (rev 276217)
+++ trunk/Source/WebKit/ChangeLog	2021-04-18 03:40:56 UTC (rev 276218)
@@ -1,5 +1,24 @@
 2021-04-17  Chris Dumez  <[email protected]>
 
+        Use WebProcess::existingGPUProcessConnection() whenever possible
+        https://bugs.webkit.org/show_bug.cgi?id=224725
+
+        Reviewed by Darin Adler.
+
+        Use WebProcess::existingGPUProcessConnection() whenever possible, instead of WebProcess::ensureGPUProcessConnection().
+        This avoids relaunching the GPUProcess if it has already exited.
+
+        * WebProcess/GPU/media/RemoteAudioHardwareListener.cpp:
+        (WebKit::RemoteAudioHardwareListener::~RemoteAudioHardwareListener):
+        * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
+        (WebKit::AudioMediaStreamTrackRenderer::~AudioMediaStreamTrackRenderer):
+        * WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
+        (WebKit::RemoteRealtimeAudioSource::~RemoteRealtimeAudioSource):
+        * WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
+        (WebKit::RemoteRealtimeVideoSource::~RemoteRealtimeVideoSource):
+
+2021-04-17  Chris Dumez  <[email protected]>
+
         LibWebRTCCodecs eagerly launches the GPUProcess and always relaunches it on exit
         https://bugs.webkit.org/show_bug.cgi?id=224704
 

Modified: trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioHardwareListener.cpp (276217 => 276218)


--- trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioHardwareListener.cpp	2021-04-18 01:19:47 UTC (rev 276217)
+++ trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioHardwareListener.cpp	2021-04-18 03:40:56 UTC (rev 276218)
@@ -55,9 +55,10 @@
 
 RemoteAudioHardwareListener::~RemoteAudioHardwareListener()
 {
-    auto& connection = WebProcess::singleton().ensureGPUProcessConnection();
-    connection.messageReceiverMap().removeMessageReceiver(*this);
-    connection.connection().send(Messages::GPUConnectionToWebProcess::ReleaseAudioHardwareListener(m_identifier), 0);
+    if (auto* connection = WebProcess::singleton().existingGPUProcessConnection()) {
+        connection->messageReceiverMap().removeMessageReceiver(*this);
+        connection->connection().send(Messages::GPUConnectionToWebProcess::ReleaseAudioHardwareListener(m_identifier), 0);
+    }
 }
 
 void RemoteAudioHardwareListener::gpuProcessConnectionDidClose(GPUProcessConnection&)

Modified: trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp (276217 => 276218)


--- trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp	2021-04-18 01:19:47 UTC (rev 276217)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp	2021-04-18 03:40:56 UTC (rev 276218)
@@ -53,7 +53,8 @@
 
 AudioMediaStreamTrackRenderer::~AudioMediaStreamTrackRenderer()
 {
-    WebProcess::singleton().ensureGPUProcessConnection().removeClient(*this);
+    if (auto* connection = WebProcess::singleton().existingGPUProcessConnection())
+        connection->removeClient(*this);
     m_connection->send(Messages::RemoteAudioMediaStreamTrackRendererManager::ReleaseRenderer { m_identifier }, 0);
 }
 

Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp (276217 => 276218)


--- trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp	2021-04-18 01:19:47 UTC (rev 276217)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp	2021-04-18 03:40:56 UTC (rev 276218)
@@ -84,8 +84,10 @@
 
 RemoteRealtimeAudioSource::~RemoteRealtimeAudioSource()
 {
-    if (m_proxy.shouldCaptureInGPUProcess())
-        WebProcess::singleton().ensureGPUProcessConnection().removeClient(*this);
+    if (m_proxy.shouldCaptureInGPUProcess()) {
+        if (auto* connection = WebProcess::singleton().existingGPUProcessConnection())
+            connection->removeClient(*this);
+    }
 
 #if PLATFORM(IOS_FAMILY)
     RealtimeMediaSourceCenter::singleton().audioCaptureFactory().unsetActiveSource(*this);

Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp (276217 => 276218)


--- trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp	2021-04-18 01:19:47 UTC (rev 276217)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp	2021-04-18 03:40:56 UTC (rev 276218)
@@ -89,8 +89,10 @@
 
 RemoteRealtimeVideoSource::~RemoteRealtimeVideoSource()
 {
-    if (m_proxy.shouldCaptureInGPUProcess())
-        WebProcess::singleton().ensureGPUProcessConnection().removeClient(*this);
+    if (m_proxy.shouldCaptureInGPUProcess()) {
+        if (auto* connection = WebProcess::singleton().existingGPUProcessConnection())
+            connection->removeClient(*this);
+    }
 
 #if PLATFORM(IOS_FAMILY)
     if (deviceType() == CaptureDevice::DeviceType::Camera)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to