Changeset 276437 in webkit
- Timestamp:
- Apr 22, 2021, 9:04:13 AM (4 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r276432 r276437 1 2021-04-22 Chris Dumez <cdumez@apple.com> 2 3 Call RemoteCDMFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia() 4 https://bugs.webkit.org/show_bug.cgi?id=224907 5 6 Reviewed by Eric Carlson. 7 8 Call RemoteCDMFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia() like we 9 did before r275887, instead of doing it in the GPUProcessConnection constructor. This is 10 safer as it makes sure the CDMFactory gets registered even if the GPUProcess has not launched 11 yet. This is also more consistent with what we do for LegacyCDM since Bug 224905. 12 13 The MediaKeys API still seems functional after r275887 (unlike the LegacyCDM one) so it does 14 not seem it caused obvious breakage. That said, it is still safer to restore pre-r275887 15 behavior. There is also no drawback to restoring the previous behavior since I made sure the 16 GPUProcess does not get launched eagerly. 17 18 * WebProcess/GPU/GPUProcessConnection.cpp: 19 (WebKit::GPUProcessConnection::GPUProcessConnection): 20 (WebKit::GPUProcessConnection::dispatchMessage): 21 * WebProcess/GPU/GPUProcessConnection.h: 22 * WebProcess/WebProcess.cpp: 23 (WebKit::WebProcess::setUseGPUProcessForMedia): 24 (WebKit::WebProcess::cdmFactory): 25 * WebProcess/WebProcess.h: 26 1 27 2021-04-22 Carlos Garcia Campos <cgarcia@igalia.com> 2 28 -
trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp
r276411 r276437 102 102 103 103 if (WebProcess::singleton().shouldUseRemoteRenderingFor(RenderingPurpose::MediaPainting)) { 104 #if ENABLE(ENCRYPTED_MEDIA)105 auto& cdmFactories = CDMFactory::registeredFactories();106 cdmFactories.clear();107 cdmFactory().registerFactory(cdmFactories);108 #endif109 104 mediaEngineConfigurationFactory().registerFactory(); 110 105 #if ENABLE(VP9) … … 161 156 #endif 162 157 163 #if ENABLE(ENCRYPTED_MEDIA)164 RemoteCDMFactory& GPUProcessConnection::cdmFactory()165 {166 return *WebProcess::singleton().supplement<RemoteCDMFactory>();167 }168 #endif169 170 158 RemoteMediaEngineConfigurationFactory& GPUProcessConnection::mediaEngineConfigurationFactory() 171 159 { … … 195 183 #if ENABLE(ENCRYPTED_MEDIA) 196 184 if (decoder.messageReceiverName() == Messages::RemoteCDMInstanceSession::messageReceiverName()) { 197 WebProcess::singleton(). supplement<RemoteCDMFactory>()->didReceiveSessionMessage(connection, decoder);185 WebProcess::singleton().cdmFactory().didReceiveSessionMessage(connection, decoder); 198 186 return true; 199 187 } -
trunk/Source/WebKit/WebProcess/GPU/GPUProcessConnection.h
r276411 r276437 41 41 42 42 class RemoteAudioSourceProviderManager; 43 class RemoteCDMFactory;44 43 class RemoteMediaEngineConfigurationFactory; 45 44 class RemoteMediaPlayerManager; … … 71 70 #if PLATFORM(COCOA) && ENABLE(WEB_AUDIO) 72 71 RemoteAudioSourceProviderManager& audioSourceProviderManager(); 73 #endif74 75 #if ENABLE(ENCRYPTED_MEDIA)76 RemoteCDMFactory& cdmFactory();77 72 #endif 78 73 -
trunk/Source/WebKit/WebProcess/WebProcess.cpp
r276411 r276437 1972 1972 1973 1973 #if ENABLE(ENCRYPTED_MEDIA) 1974 if (!useGPUProcessForMedia) { 1975 auto& cdmFactories = CDMFactory::registeredFactories(); 1976 cdmFactories.clear(); 1974 auto& cdmFactories = CDMFactory::registeredFactories(); 1975 cdmFactories.clear(); 1976 if (useGPUProcessForMedia) 1977 cdmFactory().registerFactory(cdmFactories); 1978 else 1977 1979 CDMFactory::platformRegisterFactories(cdmFactories); 1978 }1979 1980 #endif 1980 1981 … … 2079 2080 #endif 2080 2081 2082 #if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA) 2083 RemoteCDMFactory& WebProcess::cdmFactory() 2084 { 2085 return *supplement<RemoteCDMFactory>(); 2086 } 2087 #endif 2088 2089 2081 2090 } // namespace WebKit 2082 2091 -
trunk/Source/WebKit/WebProcess/WebProcess.h
r276411 r276437 119 119 class ObjCObjectGraph; 120 120 class ProcessAssertion; 121 class RemoteCDMFactory; 121 122 class RemoteLegacyCDMFactory; 122 123 struct ServiceWorkerInitializationData; … … 245 246 RemoteLegacyCDMFactory& legacyCDMFactory(); 246 247 #endif 247 248 #if ENABLE(ENCRYPTED_MEDIA) 249 RemoteCDMFactory& cdmFactory(); 250 #endif 248 251 #endif // ENABLE(GPU_PROCESS) 249 252
Note:
See TracChangeset
for help on using the changeset viewer.