Title: [258040] trunk/Source
Revision
258040
Author
[email protected]
Date
2020-03-06 17:25:28 -0800 (Fri, 06 Mar 2020)

Log Message

[GPUP] Convert CDMFactory away from platformStrategies() and use WebProcess settings instead
https://bugs.webkit.org/show_bug.cgi?id=208699

Reviewed by Youenn Fablet.

Source/WebCore:

* platform/MediaStrategy.h:
* platform/encryptedmedia/CDMFactory.cpp:

Source/WebKit:

Since platformStrategies() is entirely absent in the UIProcess and GPUProcesses, with no
intention of adding strategies there, it must be possible to retain the default behavior
of WebCore objects. To that end, rather than require clients to implement a MediaStrategy
method in order to register CDMFactory objects, simply replace the factories at runtime
when necessary, and only in those processes where such a replacement is necessary.

* WebProcess/GPU/media/WebMediaStrategy.cpp:
(WebKit::WebMediaStrategy::registerCDMFactories): Deleted.
* WebProcess/GPU/media/WebMediaStrategy.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setUseGPUProcessForMedia):

Source/WebKitLegacy/mac:

Remove Legacy CDM support from WebPlatformStrategies.

* WebCoreSupport/WebPlatformStrategies.mm:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (258039 => 258040)


--- trunk/Source/WebCore/ChangeLog	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebCore/ChangeLog	2020-03-07 01:25:28 UTC (rev 258040)
@@ -1,3 +1,13 @@
+2020-03-06  Jer Noble  <[email protected]>
+
+        [GPUP] Convert CDMFactory away from platformStrategies() and use WebProcess settings instead
+        https://bugs.webkit.org/show_bug.cgi?id=208699
+
+        Reviewed by Youenn Fablet.
+
+        * platform/MediaStrategy.h:
+        * platform/encryptedmedia/CDMFactory.cpp:
+
 2020-03-06  Ryosuke Niwa  <[email protected]>
 
         TextManipulationController should preserve images

Modified: trunk/Source/WebCore/platform/MediaStrategy.h (258039 => 258040)


--- trunk/Source/WebCore/platform/MediaStrategy.h	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebCore/platform/MediaStrategy.h	2020-03-07 01:25:28 UTC (rev 258040)
@@ -40,9 +40,6 @@
     virtual std::unique_ptr<AudioDestination> createAudioDestination(
         AudioIOCallback&, const String& inputDeviceId, unsigned numberOfInputChannels, unsigned numberOfOutputChannels, float sampleRate) = 0;
 #endif
-#if ENABLE(ENCRYPTED_MEDIA)
-    virtual void registerCDMFactories(Vector<CDMFactory*>&) = 0;
-#endif
 #if PLATFORM(COCOA)
     virtual void clearNowPlayingInfo() = 0;
     virtual void setNowPlayingInfo(bool setAsNowPlayingApplication, const NowPlayingInfo&) = 0;

Modified: trunk/Source/WebCore/platform/encryptedmedia/CDMFactory.cpp (258039 => 258040)


--- trunk/Source/WebCore/platform/encryptedmedia/CDMFactory.cpp	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebCore/platform/encryptedmedia/CDMFactory.cpp	2020-03-07 01:25:28 UTC (rev 258040)
@@ -43,7 +43,7 @@
     static NeverDestroyed<Vector<CDMFactory*>> factories;
     static std::once_flag once;
     std::call_once(once, [&] {
-        platformStrategies()->mediaStrategy().registerCDMFactories(factories);
+        platformRegisterFactories(factories);
     });
 
     return factories;

Modified: trunk/Source/WebKit/ChangeLog (258039 => 258040)


--- trunk/Source/WebKit/ChangeLog	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebKit/ChangeLog	2020-03-07 01:25:28 UTC (rev 258040)
@@ -1,5 +1,24 @@
 2020-03-06  Jer Noble  <[email protected]>
 
+        [GPUP] Convert CDMFactory away from platformStrategies() and use WebProcess settings instead
+        https://bugs.webkit.org/show_bug.cgi?id=208699
+
+        Reviewed by Youenn Fablet.
+
+        Since platformStrategies() is entirely absent in the UIProcess and GPUProcesses, with no
+        intention of adding strategies there, it must be possible to retain the default behavior
+        of WebCore objects. To that end, rather than require clients to implement a MediaStrategy
+        method in order to register CDMFactory objects, simply replace the factories at runtime
+        when necessary, and only in those processes where such a replacement is necessary.
+
+        * WebProcess/GPU/media/WebMediaStrategy.cpp:
+        (WebKit::WebMediaStrategy::registerCDMFactories): Deleted.
+        * WebProcess/GPU/media/WebMediaStrategy.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::setUseGPUProcessForMedia):
+
+2020-03-06  Jer Noble  <[email protected]>
+
         Unreviewed unified build fix; Include what you use, in this case: FrameInfoData.h.
 
         * WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

Modified: trunk/Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp (258039 => 258040)


--- trunk/Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp	2020-03-07 01:25:28 UTC (rev 258040)
@@ -56,19 +56,6 @@
 }
 #endif
 
-#if ENABLE(ENCRYPTED_MEDIA)
-void WebMediaStrategy::registerCDMFactories(Vector<WebCore::CDMFactory*>& factories)
-{
-#if ENABLE(GPU_PROCESS)
-    if (m_useGPUProcess) {
-        WebProcess::singleton().ensureGPUProcessConnection().cdmFactory().registerFactory(factories);
-        return;
-    }
-#endif
-    WebCore::CDMFactory::platformRegisterFactories(factories);
-}
-#endif
-
 #if PLATFORM(COCOA)
 void WebMediaStrategy::clearNowPlayingInfo()
 {

Modified: trunk/Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.h (258039 => 258040)


--- trunk/Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.h	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.h	2020-03-07 01:25:28 UTC (rev 258040)
@@ -42,9 +42,6 @@
     std::unique_ptr<WebCore::AudioDestination> createAudioDestination(WebCore::AudioIOCallback&,
         const String& inputDeviceId, unsigned numberOfInputChannels, unsigned numberOfOutputChannels, float sampleRate) override;
 #endif
-#if ENABLE(ENCRYPTED_MEDIA)
-    void registerCDMFactories(Vector<WebCore::CDMFactory*>&) override;
-#endif
 #if PLATFORM(COCOA)
     void clearNowPlayingInfo() final;
     void setNowPlayingInfo(bool setAsNowPlayingApplication, const WebCore::NowPlayingInfo&) final;

Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (258039 => 258040)


--- trunk/Source/WebKit/WebProcess/WebProcess.cpp	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp	2020-03-07 01:25:28 UTC (rev 258040)
@@ -1998,6 +1998,7 @@
 }
 #endif
 
+#if ENABLE(GPU_PROCESS)
 void WebProcess::setUseGPUProcessForMedia(bool useGPUProcessForMedia)
 {
     if (useGPUProcessForMedia == m_useGPUProcessForMedia)
@@ -2005,6 +2006,16 @@
 
     m_useGPUProcessForMedia = useGPUProcessForMedia;
 
+#if ENABLE(ENCRYPTED_MEDIA)
+    auto& cdmFactories = CDMFactory::registeredFactories();
+    cdmFactories.clear();
+
+    if (useGPUProcessForMedia)
+        ensureGPUProcessConnection().cdmFactory().registerFactory(cdmFactories);
+    else
+        CDMFactory::platformRegisterFactories(cdmFactories);
+#endif
+
 #if USE(AUDIO_SESSION)
     if (useGPUProcessForMedia)
         AudioSession::setSharedSession(RemoteAudioSession::create(*this));
@@ -2012,6 +2023,7 @@
         AudioSession::setSharedSession(AudioSession::create());
 #endif
 }
+#endif
 
 } // namespace WebKit
 

Modified: trunk/Source/WebKit/WebProcess/WebProcess.h (258039 => 258040)


--- trunk/Source/WebKit/WebProcess/WebProcess.h	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebKit/WebProcess/WebProcess.h	2020-03-07 01:25:28 UTC (rev 258040)
@@ -333,7 +333,9 @@
     void updatePageScreenProperties();
 #endif
 
+#if ENABLE(GPU_PROCESS)
     void setUseGPUProcessForMedia(bool);
+#endif
 
 private:
     WebProcess();

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (258039 => 258040)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2020-03-07 01:25:28 UTC (rev 258040)
@@ -1,3 +1,14 @@
+2020-03-06  Jer Noble  <[email protected]>
+
+        [GPUP] Convert CDMFactory away from platformStrategies() and use WebProcess settings instead
+        https://bugs.webkit.org/show_bug.cgi?id=208699
+
+        Reviewed by Youenn Fablet.
+
+        Remove Legacy CDM support from WebPlatformStrategies.
+
+        * WebCoreSupport/WebPlatformStrategies.mm:
+
 2020-03-06  Antoine Quint  <[email protected]>
 
         Remove the experimental flag for Pointer Events

Modified: trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm (258039 => 258040)


--- trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm	2020-03-07 01:18:44 UTC (rev 258039)
+++ trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm	2020-03-07 01:25:28 UTC (rev 258040)
@@ -75,12 +75,6 @@
         return AudioDestination::create(callback, inputDeviceId, numberOfInputChannels, numberOfOutputChannels, sampleRate);
     }
 #endif
-#if ENABLE(ENCRYPTED_MEDIA)
-    void registerCDMFactories(Vector<CDMFactory*>& factories) override
-    {
-        return WebCore::CDMFactory::platformRegisterFactories(factories);
-    }
-#endif
     void clearNowPlayingInfo() final
     {
         MediaSessionManagerCocoa::clearNowPlayingInfo();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to