Title: [275921] trunk/Source/WebKit
Revision
275921
Author
cdu...@apple.com
Date
2021-04-13 17:37:03 -0700 (Tue, 13 Apr 2021)

Log Message

Stop requiring a RemoteRenderingBackend for visibility propagation views
https://bugs.webkit.org/show_bug.cgi?id=224513

Reviewed by Geoff Garen.

Stop requiring a RemoteRenderingBackend for visibility propagation views. This is
inconvenient because doing media playback in the GPUProcess does not require a
RemoteRenderingBackend. This was also making things difficult to exit the
GPUProcess on memory pressure when unused.

* GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createVisibilityPropagationContextForPage):
(WebKit::GPUConnectionToWebProcess::destroyVisibilityPropagationContextForPage):
* GPUProcess/GPUConnectionToWebProcess.h:
* GPUProcess/GPUConnectionToWebProcess.messages.in:
* GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
* GPUProcess/graphics/RemoteRenderingBackend.h:
* GPUProcess/graphics/RemoteRenderingBackendCreationParameters.h:
(WebKit::RemoteRenderingBackendCreationParameters::encode const):
(WebKit::RemoteRenderingBackendCreationParameters::decode):
* WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::createVisibilityPropagationContextForPage):
(WebKit::GPUProcessConnection::destroyVisibilityPropagationContextForPage):
* WebProcess/GPU/GPUProcessConnection.h:
* WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::gpuProcessConnectionDidBecomeAvailable):
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureGPUProcessConnection):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (275920 => 275921)


--- trunk/Source/WebKit/ChangeLog	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/ChangeLog	2021-04-14 00:37:03 UTC (rev 275921)
@@ -1,3 +1,41 @@
+2021-04-13  Chris Dumez  <cdu...@apple.com>
+
+        Stop requiring a RemoteRenderingBackend for visibility propagation views
+        https://bugs.webkit.org/show_bug.cgi?id=224513
+
+        Reviewed by Geoff Garen.
+
+        Stop requiring a RemoteRenderingBackend for visibility propagation views. This is
+        inconvenient because doing media playback in the GPUProcess does not require a
+        RemoteRenderingBackend. This was also making things difficult to exit the
+        GPUProcess on memory pressure when unused.
+
+        * GPUProcess/GPUConnectionToWebProcess.cpp:
+        (WebKit::GPUConnectionToWebProcess::createVisibilityPropagationContextForPage):
+        (WebKit::GPUConnectionToWebProcess::destroyVisibilityPropagationContextForPage):
+        * GPUProcess/GPUConnectionToWebProcess.h:
+        * GPUProcess/GPUConnectionToWebProcess.messages.in:
+        * GPUProcess/graphics/RemoteRenderingBackend.cpp:
+        (WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
+        * GPUProcess/graphics/RemoteRenderingBackend.h:
+        * GPUProcess/graphics/RemoteRenderingBackendCreationParameters.h:
+        (WebKit::RemoteRenderingBackendCreationParameters::encode const):
+        (WebKit::RemoteRenderingBackendCreationParameters::decode):
+        * WebProcess/GPU/GPUProcessConnection.cpp:
+        (WebKit::GPUProcessConnection::createVisibilityPropagationContextForPage):
+        (WebKit::GPUProcessConnection::destroyVisibilityPropagationContextForPage):
+        * WebProcess/GPU/GPUProcessConnection.h:
+        * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
+        (WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_lastNavigationWasAppBound):
+        (WebKit::WebPage::gpuProcessConnectionDidBecomeAvailable):
+        (WebKit::WebPage::~WebPage):
+        (WebKit::WebPage::updatePreferences):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::ensureGPUProcessConnection):
+
 2021-04-13  Jer Noble  <jer.no...@apple.com>
 
         Unreviewed build fix after r275898; remove unnecessary files from the project.

Modified: trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp (275920 => 275921)


--- trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp	2021-04-14 00:37:03 UTC (rev 275921)
@@ -35,6 +35,7 @@
 #include "GPUProcessConnectionParameters.h"
 #include "GPUProcessMessages.h"
 #include "GPUProcessProxyMessages.h"
+#include "LayerHostingContext.h"
 #include "LibWebRTCCodecsProxy.h"
 #include "LibWebRTCCodecsProxyMessages.h"
 #include "Logging.h"
@@ -245,6 +246,25 @@
     gpuProcess().removeGPUConnectionToWebProcess(*this); // May destroy |this|.
 }
 
+#if HAVE(VISIBILITY_PROPAGATION_VIEW)
+void GPUConnectionToWebProcess::createVisibilityPropagationContextForPage(WebPageProxyIdentifier pageProxyID, WebCore::PageIdentifier pageID, bool canShowWhileLocked)
+{
+    auto contextForVisibilityPropagation = LayerHostingContext::createForExternalHostingProcess({ canShowWhileLocked });
+    RELEASE_LOG(Process, "GPUConnectionToWebProcess::createVisibilityPropagationContextForPage: pageProxyID=%" PRIu64 ", webPageID=%" PRIu64 ", contextID=%u", pageProxyID.toUInt64(), pageID.toUInt64(), contextForVisibilityPropagation->contextID());
+    gpuProcess().send(Messages::GPUProcessProxy::DidCreateContextForVisibilityPropagation(pageProxyID, pageID, contextForVisibilityPropagation->contextID()));
+    m_visibilityPropagationContexts.add(std::make_pair(pageProxyID, pageID), WTFMove(contextForVisibilityPropagation));
+}
+
+void GPUConnectionToWebProcess::destroyVisibilityPropagationContextForPage(WebPageProxyIdentifier pageProxyID, WebCore::PageIdentifier pageID)
+{
+    RELEASE_LOG(Process, "GPUConnectionToWebProcess::destroyVisibilityPropagationContextForPage: pageProxyID=%" PRIu64 ", webPageID=%" PRIu64, pageProxyID.toUInt64(), pageID.toUInt64());
+
+    auto key = std::make_pair(pageProxyID, pageID);
+    ASSERT(m_visibilityPropagationContexts.contains(key));
+    m_visibilityPropagationContexts.remove(key);
+}
+#endif
+
 Logger& GPUConnectionToWebProcess::logger()
 {
     if (!m_logger) {

Modified: trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h (275920 => 275921)


--- trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h	2021-04-14 00:37:03 UTC (rev 275921)
@@ -55,6 +55,7 @@
 namespace WebKit {
 
 class GPUProcess;
+class LayerHostingContext;
 class LibWebRTCCodecsProxy;
 class RemoteAudioDestinationManager;
 class RemoteAudioHardwareListenerProxy;
@@ -175,6 +176,11 @@
     void enableVP9Decoders(bool shouldEnableVP8Decoder, bool shouldEnableVP9Decoder, bool shouldEnableVP9SWDecoder);
 #endif
 
+#if HAVE(VISIBILITY_PROPAGATION_VIEW)
+    void createVisibilityPropagationContextForPage(WebPageProxyIdentifier, WebCore::PageIdentifier, bool canShowWhileLocked);
+    void destroyVisibilityPropagationContextForPage(WebPageProxyIdentifier, WebCore::PageIdentifier);
+#endif
+
 #if USE(AUDIO_SESSION)
     RemoteAudioSessionProxy& audioSessionProxy();
     using EnsureAudioSessionCompletion = CompletionHandler<void(const RemoteAudioSessionConfiguration&)>;
@@ -265,6 +271,10 @@
 
     std::unique_ptr<RemoteMediaEngineConfigurationFactoryProxy> m_mediaEngineConfigurationFactoryProxy;
 
+#if HAVE(VISIBILITY_PROPAGATION_VIEW)
+    HashMap<std::pair<WebPageProxyIdentifier, WebCore::PageIdentifier>, std::unique_ptr<LayerHostingContext>> m_visibilityPropagationContexts;
+#endif
+
     using RemoteAudioHardwareListenerMap = HashMap<RemoteAudioHardwareListenerIdentifier, std::unique_ptr<RemoteAudioHardwareListenerProxy>>;
     RemoteAudioHardwareListenerMap m_remoteAudioHardwareListenerMap;
 

Modified: trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in (275920 => 275921)


--- trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in	2021-04-14 00:37:03 UTC (rev 275921)
@@ -40,6 +40,10 @@
 #if ENABLE(VP9)
     EnableVP9Decoders(bool shouldEnableVP8Decoder, bool shouldEnableVP9Decoder, bool shouldEnableVP9SWDecoder)
 #endif
+#if HAVE(VISIBILITY_PROPAGATION_VIEW)
+    CreateVisibilityPropagationContextForPage(WebKit::WebPageProxyIdentifier pageProxyID, WebCore::PageIdentifier pageID, bool canShowWhileLocked);
+    DestroyVisibilityPropagationContextForPage(WebKit::WebPageProxyIdentifier pageProxyID, WebCore::PageIdentifier pageID);
+#endif
     SetMediaOverridesForTesting(struct WebKit::MediaOverridesForTesting configuration)
     CreateAudioHardwareListener(WebKit::RemoteAudioHardwareListenerIdentifier identifier)
     ReleaseAudioHardwareListener(WebKit::RemoteAudioHardwareListenerIdentifier identifier)

Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (275920 => 275921)


--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp	2021-04-14 00:37:03 UTC (rev 275921)
@@ -30,7 +30,6 @@
 
 #include "DisplayListReaderHandle.h"
 #include "GPUConnectionToWebProcess.h"
-#include "LayerHostingContext.h"
 #include "Logging.h"
 #include "PlatformRemoteImageBuffer.h"
 #include "RemoteMediaPlayerManagerProxy.h"
@@ -79,14 +78,6 @@
     , m_resumeDisplayListSemaphore(WTFMove(creationParameters.resumeDisplayListSemaphore))
 {
     ASSERT(RunLoop::isMain());
-
-#if HAVE(VISIBILITY_PROPAGATION_VIEW)
-    m_contextForVisibilityPropagation = LayerHostingContext::createForExternalHostingProcess({
-        creationParameters.canShowWhileLocked
-    });
-    RELEASE_LOG(Process, "RemoteRenderingBackend: Created context with ID %u for visibility propagation from UIProcess", m_contextForVisibilityPropagation->contextID());
-    m_gpuConnectionToWebProcess->gpuProcess().send(Messages::GPUProcessProxy::DidCreateContextForVisibilityPropagation(creationParameters.pageProxyID, creationParameters.pageID, m_contextForVisibilityPropagation->contextID()));
-#endif
 }
 
 void RemoteRenderingBackend::startListeningForIPC()

Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h (275920 => 275921)


--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h	2021-04-14 00:37:03 UTC (rev 275921)
@@ -58,7 +58,6 @@
 
 class DisplayListReaderHandle;
 class GPUConnectionToWebProcess;
-class LayerHostingContext;
 struct RemoteRenderingBackendCreationParameters;
 
 class RemoteRenderingBackend
@@ -163,9 +162,6 @@
     IPC::Semaphore m_getImageDataSemaphore;
     RefPtr<SharedMemory> m_getImageDataSharedMemory;
     ScopedRenderingResourcesRequest m_renderingResourcesRequest;
-#if HAVE(VISIBILITY_PROPAGATION_VIEW)
-    std::unique_ptr<LayerHostingContext> m_contextForVisibilityPropagation;
-#endif
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendCreationParameters.h (275920 => 275921)


--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendCreationParameters.h	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendCreationParameters.h	2021-04-14 00:37:03 UTC (rev 275921)
@@ -39,16 +39,10 @@
     IPC::Semaphore resumeDisplayListSemaphore;
     WebPageProxyIdentifier pageProxyID;
     WebCore::PageIdentifier pageID;
-#if PLATFORM(IOS_FAMILY)
-    bool canShowWhileLocked { false };
-#endif
 
     void encode(IPC::Encoder& encoder) const
     {
         encoder << identifier << resumeDisplayListSemaphore << pageProxyID << pageID;
-#if PLATFORM(IOS_FAMILY)
-        encoder << canShowWhileLocked;
-#endif
     }
 
     static Optional<RemoteRenderingBackendCreationParameters> decode(IPC::Decoder& decoder)
@@ -73,19 +67,7 @@
         if (!pageID)
             return WTF::nullopt;
 
-#if PLATFORM(IOS_FAMILY)
-        Optional<bool> canShowWhileLocked;
-        decoder >> canShowWhileLocked;
-        if (!canShowWhileLocked)
-            return WTF::nullopt;
-#endif
-
-        return {{
-            *identifier, WTFMove(*resumeDisplayListSemaphore), *pageProxyID, *pageID
-#if PLATFORM(IOS_FAMILY)
-            , *canShowWhileLocked
-#endif
-        }};
+        return {{ *identifier, WTFMove(*resumeDisplayListSemaphore), *pageProxyID, *pageID }};
     }
 };
 

Modified: trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp (275920 => 275921)


--- trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp	2021-04-14 00:37:03 UTC (rev 275921)
@@ -262,6 +262,18 @@
     PlatformMediaSessionManager::sharedManager().processDidReceiveRemoteControlCommand(type, argument);
 }
 
+#if HAVE(VISIBILITY_PROPAGATION_VIEW)
+void GPUProcessConnection::createVisibilityPropagationContextForPage(WebPage& page)
+{
+    connection().send(Messages::GPUConnectionToWebProcess::CreateVisibilityPropagationContextForPage(page.webPageProxyIdentifier(), page.identifier(), page.canShowWhileLocked()), { });
+}
+
+void GPUProcessConnection::destroyVisibilityPropagationContextForPage(WebPage& page)
+{
+    connection().send(Messages::GPUConnectionToWebProcess::DestroyVisibilityPropagationContextForPage(page.webPageProxyIdentifier(), page.identifier()), { });
+}
+#endif
+
 #if ENABLE(VP9)
 void GPUProcessConnection::enableVP9Decoders(bool enableVP8Decoder, bool enableVP9Decoder, bool enableVP9SWDecoder)
 {

Modified: trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h (275920 => 275921)


--- trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h	2021-04-14 00:37:03 UTC (rev 275921)
@@ -44,6 +44,7 @@
 class RemoteMediaEngineConfigurationFactory;
 class RemoteMediaPlayerManager;
 class RemoteLegacyCDMFactory;
+class WebPage;
 struct OverrideScreenDataForTesting;
 struct WebPageCreationParameters;
 
@@ -92,6 +93,11 @@
     bool isVPSWDecoderEnabled() const { return m_enableVP9SWDecoder; }
 #endif
 
+#if HAVE(VISIBILITY_PROPAGATION_VIEW)
+    void createVisibilityPropagationContextForPage(WebPage&);
+    void destroyVisibilityPropagationContextForPage(WebPage&);
+#endif
+
     class Client : public CanMakeWeakPtr<Client> {
     public:
         virtual ~Client() = default;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp (275920 => 275921)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp	2021-04-14 00:37:03 UTC (rev 275921)
@@ -52,10 +52,7 @@
         RenderingBackendIdentifier::generate(),
         IPC::Semaphore { },
         webPage.webPageProxyIdentifier(),
-        webPage.identifier(),
-#if PLATFORM(IOS_FAMILY)
-        webPage.canShowWhileLocked()
-#endif
+        webPage.identifier()
     }
 {
     connectToGPUProcess();

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (275920 => 275921)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2021-04-14 00:37:03 UTC (rev 275921)
@@ -849,7 +849,7 @@
     });
     RELEASE_LOG_IF_ALLOWED(Process, "WebPage: Created context with ID %u for visibility propagation from UIProcess", m_contextForVisibilityPropagation->contextID());
     send(Messages::WebPageProxy::DidCreateContextInWebProcessForVisibilityPropagation(m_contextForVisibilityPropagation->contextID()));
-#endif
+#endif // HAVE(VISIBILITY_PROPAGATION_VIEW)
 
 #if ENABLE(IPC_TESTING_API)
     m_visitedLinkTableID = parameters.visitedLinkTableID;
@@ -868,6 +868,17 @@
     updateThrottleState();
 }
 
+#if ENABLE(GPU_PROCESS)
+void WebPage::gpuProcessConnectionDidBecomeAvailable(GPUProcessConnection& gpuProcessConnection)
+{
+#if HAVE(VISIBILITY_PROPAGATION_VIEW)
+    gpuProcessConnection.createVisibilityPropagationContextForPage(*this);
+#else
+    UNUSED_PARAM(gpuProcessConnection);
+#endif
+}
+#endif
+
 void WebPage::requestMediaPlaybackState(CompletionHandler<void(WebKit::MediaPlaybackState)>&& completionHandler)
 {
     if (!m_page->mediaPlaybackExists())
@@ -996,6 +1007,11 @@
 #ifndef NDEBUG
     webPageCounter.decrement();
 #endif
+
+#if ENABLE(GPU_PROCESS) && HAVE(VISIBILITY_PROPAGATION_VIEW)
+    if (auto* gpuProcessConnection = WebProcess::singleton().existingGPUProcessConnection())
+        gpuProcessConnection->destroyVisibilityPropagationContextForPage(*this);
+#endif // ENABLE(GPU_PROCESS)
     
 #if ENABLE(VIDEO_PRESENTATION_MODE)
     if (m_playbackSessionManager)
@@ -3930,15 +3946,8 @@
 #if ENABLE(WEBGL)
     WebProcess::singleton().setUseGPUProcessForWebGL(m_shouldRenderWebGLInGPUProcess);
 #endif
+#endif // ENABLE(GPU_PROCESS)
 
-    // FIXME: This will no longer be needed once we use the GPUProcess for DOM rendering.
-    // For now, it is possible to use the GPUProcess for media playback only. Because media does not
-    // use the RemoteRenderingBackend, we need to force the creation of a RemoteRenderingBackend in
-    // the GPUProcess so that the page gets a visibility propagation view.
-    if (m_shouldPlayMediaInGPUProcess && !usingGPUProcessForDOMRendering && WebProcess::singleton().existingGPUProcessConnection())
-        ensureRemoteRenderingBackendProxy();
-#endif
-
 #if ENABLE(IPC_TESTING_API)
     m_ipcTestingAPIEnabled = store.getBoolValueForKey(WebPreferencesKey::ipcTestingAPIEnabledKey());
 #endif

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (275920 => 275921)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-04-14 00:37:03 UTC (rev 275921)
@@ -252,6 +252,7 @@
 
 class DrawingArea;
 class FindController;
+class GPUProcessConnection;
 class GamepadData;
 class GeolocationPermissionRequestManager;
 class LayerHostingContext;
@@ -1403,6 +1404,7 @@
     void synchronizeCORSDisablingPatternsWithNetworkProcess();
 
 #if ENABLE(GPU_PROCESS)
+    void gpuProcessConnectionDidBecomeAvailable(GPUProcessConnection&);
     RemoteRenderingBackendProxy& ensureRemoteRenderingBackendProxy();
 #endif
 

Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (275920 => 275921)


--- trunk/Source/WebKit/WebProcess/WebProcess.cpp	2021-04-14 00:24:50 UTC (rev 275920)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp	2021-04-14 00:37:03 UTC (rev 275921)
@@ -757,6 +757,11 @@
         ASSERT(!result.iterator->value);
         result.iterator->value = WebPage::create(pageID, WTFMove(parameters));
 
+#if ENABLE(GPU_PROCESS)
+        if (m_gpuProcessConnection)
+            result.iterator->value->gpuProcessConnectionDidBecomeAvailable(*m_gpuProcessConnection);
+#endif
+
         // Balanced by an enableTermination in removeWebPage.
         disableTermination();
         updateCPULimit();
@@ -1210,16 +1215,8 @@
         m_gpuProcessConnection->setAuditToken(WTFMove(connectionInfo.auditToken));
 #endif
 
-        // FIXME: This will no longer be needed once we use the GPUProcess for DOM rendering.
-        // For now, it is possible to use the GPUProcess for media playback only. Because media does not
-        // use the RemoteRenderingBackend, we need to force the creation of a RemoteRenderingBackend in
-        // the GPUProcess so that the page gets a visibility propagation view.
-        RunLoop::main().dispatch([this] {
-            if (m_useGPUProcessForMedia && !m_useGPUProcessForDOMRendering) {
-                for (auto& page : m_pageMap.values())
-                    page->ensureRemoteRenderingBackendProxy();
-            }
-        });
+        for (auto& page : m_pageMap.values())
+            page->gpuProcessConnectionDidBecomeAvailable(*m_gpuProcessConnection);
     }
     
     return *m_gpuProcessConnection;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to