Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Call RemoteMediaEngineConfigurationFactory::registerFactory() in WebP…
…rocess::setUseGPUProcessForMedia()

https://bugs.webkit.org/show_bug.cgi?id=224937

Reviewed by Eric Carlson.

Call RemoteMediaEngineConfigurationFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia(),
like we used to do, instead of doing it in the GPUProcessConnection constructor. It is safer to
register the factory before we have a GPUProcessConnection and we wouldn't want things to behave
differently depending on whether or not the GPUProcess is already launched. I made sure that this does
not eagerly launch the GPUProcess.

* WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::GPUProcessConnection):
(WebKit::GPUProcessConnection::mediaEngineConfigurationFactory): Deleted.
* WebProcess/GPU/GPUProcessConnection.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setUseGPUProcessForMedia):
(WebKit::WebProcess::mediaEngineConfigurationFactory):
* WebProcess/WebProcess.h:

Canonical link: https://commits.webkit.org/236920@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276460 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
cdumez committed Apr 22, 2021
1 parent 7eacb6c commit 4065b92
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 10 deletions.
22 changes: 22 additions & 0 deletions Source/WebKit/ChangeLog
@@ -1,3 +1,25 @@
2021-04-22 Chris Dumez <cdumez@apple.com>

Call RemoteMediaEngineConfigurationFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia()
https://bugs.webkit.org/show_bug.cgi?id=224937

Reviewed by Eric Carlson.

Call RemoteMediaEngineConfigurationFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia(),
like we used to do, instead of doing it in the GPUProcessConnection constructor. It is safer to
register the factory before we have a GPUProcessConnection and we wouldn't want things to behave
differently depending on whether or not the GPUProcess is already launched. I made sure that this does
not eagerly launch the GPUProcess.

* WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::GPUProcessConnection):
(WebKit::GPUProcessConnection::mediaEngineConfigurationFactory): Deleted.
* WebProcess/GPU/GPUProcessConnection.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setUseGPUProcessForMedia):
(WebKit::WebProcess::mediaEngineConfigurationFactory):
* WebProcess/WebProcess.h:

2021-04-22 Alex Christensen <achristensen@webkit.org>

Fix ENABLE macro around NetworkProcessConnection::connectToRTCDataChannelRemoteSource declaration
Expand Down
6 changes: 0 additions & 6 deletions Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp
Expand Up @@ -101,7 +101,6 @@ GPUProcessConnection::GPUProcessConnection(IPC::Connection::Identifier connectio
addLanguageChangeObserver(this, languagesChanged);

if (WebProcess::singleton().shouldUseRemoteRenderingFor(RenderingPurpose::MediaPainting)) {
mediaEngineConfigurationFactory().registerFactory();
#if ENABLE(VP9)
enableVP9Decoders(PlatformMediaSessionManager::shouldEnableVP8Decoder(), PlatformMediaSessionManager::shouldEnableVP9Decoder(), PlatformMediaSessionManager::shouldEnableVP9SWDecoder());
#endif
Expand Down Expand Up @@ -155,11 +154,6 @@ RemoteAudioSourceProviderManager& GPUProcessConnection::audioSourceProviderManag
}
#endif

RemoteMediaEngineConfigurationFactory& GPUProcessConnection::mediaEngineConfigurationFactory()
{
return *WebProcess::singleton().supplement<RemoteMediaEngineConfigurationFactory>();
}

bool GPUProcessConnection::dispatchMessage(IPC::Connection& connection, IPC::Decoder& decoder)
{
if (decoder.messageReceiverName() == Messages::MediaPlayerPrivateRemote::messageReceiverName()) {
Expand Down
3 changes: 0 additions & 3 deletions Source/WebKit/WebProcess/GPU/GPUProcessConnection.h
Expand Up @@ -40,7 +40,6 @@
namespace WebKit {

class RemoteAudioSourceProviderManager;
class RemoteMediaEngineConfigurationFactory;
class RemoteMediaPlayerManager;
class WebPage;
struct OverrideScreenDataForTesting;
Expand Down Expand Up @@ -71,8 +70,6 @@ class GPUProcessConnection : public RefCounted<GPUProcessConnection>, public IPC
RemoteAudioSourceProviderManager& audioSourceProviderManager();
#endif

RemoteMediaEngineConfigurationFactory& mediaEngineConfigurationFactory();

void updateMediaConfiguration();

#if ENABLE(VP9)
Expand Down
10 changes: 9 additions & 1 deletion Source/WebKit/WebProcess/WebProcess.cpp
Expand Up @@ -2000,7 +2000,9 @@ void WebProcess::setUseGPUProcessForMedia(bool useGPUProcessForMedia)
LegacyCDM::resetFactories();
#endif

if (!useGPUProcessForMedia)
if (useGPUProcessForMedia)
mediaEngineConfigurationFactory().registerFactory();
else
MediaEngineConfigurationFactory::resetFactories();

if (useGPUProcessForMedia)
Expand Down Expand Up @@ -2086,6 +2088,12 @@ RemoteCDMFactory& WebProcess::cdmFactory()
}
#endif

#if ENABLE(GPU_PROCESS)
RemoteMediaEngineConfigurationFactory& WebProcess::mediaEngineConfigurationFactory()
{
return *supplement<RemoteMediaEngineConfigurationFactory>();
}
#endif

} // namespace WebKit

Expand Down
2 changes: 2 additions & 0 deletions Source/WebKit/WebProcess/WebProcess.h
Expand Up @@ -120,6 +120,7 @@ class ObjCObjectGraph;
class ProcessAssertion;
class RemoteCDMFactory;
class RemoteLegacyCDMFactory;
class RemoteMediaEngineConfigurationFactory;
struct ServiceWorkerInitializationData;
class StorageAreaMap;
class UserData;
Expand Down Expand Up @@ -248,6 +249,7 @@ class WebProcess : public AuxiliaryProcess
#if ENABLE(ENCRYPTED_MEDIA)
RemoteCDMFactory& cdmFactory();
#endif
RemoteMediaEngineConfigurationFactory& mediaEngineConfigurationFactory();
#endif // ENABLE(GPU_PROCESS)

#if ENABLE(WEB_AUTHN)
Expand Down

0 comments on commit 4065b92

Please sign in to comment.