- 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();