Changeset 253866 in webkit
- Timestamp:
- Dec 21, 2019 7:09:18 PM (4 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r253863 r253866 1 2019-12-21 Eric Carlson <eric.carlson@apple.com> 2 3 [Media in GPU process] Add remote media player configuration 4 https://bugs.webkit.org/show_bug.cgi?id=205541 5 <rdar://problem/58137418> 6 7 Reviewed by Simon Fraser. 8 9 * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: 10 (WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer): 11 * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: 12 * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: 13 * GPUProcess/media/RemoteMediaPlayerProxy.cpp: 14 (WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy): 15 (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const): 16 (WebKit::RemoteMediaPlayerProxy::mediaPlayerReferrer const): 17 (WebKit::RemoteMediaPlayerProxy::mediaPlayerUserAgent const): 18 (WebKit::RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier const): 19 (WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName const): 20 (WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const): 21 (WebKit::RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport const): 22 (WebKit::RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics const): 23 (WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache const): 24 (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideo const): 25 (WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded): 26 (WebKit::RemoteMediaPlayerProxy::mediaPlayerGetRawCookies const): 27 * GPUProcess/media/RemoteMediaPlayerProxy.h: 28 (WebKit::RemoteMediaPlayerProxy::mediaPlayerLogIdentifier): 29 * WebKit.xcodeproj/project.pbxproj: 30 * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: 31 (WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer): 32 1 33 2019-12-21 Kate Cheney <katherine_cheney@apple.com> 2 34 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp
r253861 r253866 63 63 } 64 64 65 void RemoteMediaPlayerManagerProxy::createMediaPlayer(MediaPlayerPrivateRemoteIdentifier id, MediaPlayerEnums::MediaEngineIdentifier engineIdentifier, CompletionHandler<void(bool succeeded)>&& completionHandler)65 void RemoteMediaPlayerManagerProxy::createMediaPlayer(MediaPlayerPrivateRemoteIdentifier id, MediaPlayerEnums::MediaEngineIdentifier engineIdentifier, RemoteMediaPlayerProxyConfiguration&& configuration, CompletionHandler<void(bool succeeded)>&& completionHandler) 66 66 { 67 67 MESSAGE_CHECK_CONTEXTID(id); 68 68 69 69 ASSERT(!m_proxies.contains(id)); 70 m_proxies.add(id, makeUnique<RemoteMediaPlayerProxy>(*this, id, m_gpuConnectionToWebProcess.connection(), engineIdentifier ));70 m_proxies.add(id, makeUnique<RemoteMediaPlayerProxy>(*this, id, m_gpuConnectionToWebProcess.connection(), engineIdentifier, WTFMove(configuration))); 71 71 72 72 completionHandler(true); -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h
r253861 r253866 31 31 #include "MediaPlayerPrivateRemoteIdentifier.h" 32 32 #include "MessageReceiver.h" 33 #include "RemoteMediaPlayerProxyConfiguration.h" 33 34 #include <WebCore/MediaPlayer.h> 34 35 #include <wtf/LoggerHelper.h> … … 68 69 void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&) final; 69 70 70 void createMediaPlayer(MediaPlayerPrivateRemoteIdentifier, WebCore::MediaPlayerEnums::MediaEngineIdentifier, CompletionHandler<void(bool)>&&);71 void createMediaPlayer(MediaPlayerPrivateRemoteIdentifier, WebCore::MediaPlayerEnums::MediaEngineIdentifier, RemoteMediaPlayerProxyConfiguration&&, CompletionHandler<void(bool)>&&); 71 72 void deleteMediaPlayer(MediaPlayerPrivateRemoteIdentifier); 72 73 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in
r253861 r253866 25 25 26 26 messages -> RemoteMediaPlayerManagerProxy NotRefCounted { 27 CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier ) -> (bool success) Synchronous27 CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration configuration) -> (bool success) Synchronous 28 28 DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id) 29 29 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
r253861 r253866 39 39 using namespace WebCore; 40 40 41 RemoteMediaPlayerProxy::RemoteMediaPlayerProxy(RemoteMediaPlayerManagerProxy& manager, MediaPlayerPrivateRemoteIdentifier id, Ref<IPC::Connection>&& connection, MediaPlayerEnums::MediaEngineIdentifier engineIdentifier )41 RemoteMediaPlayerProxy::RemoteMediaPlayerProxy(RemoteMediaPlayerManagerProxy& manager, MediaPlayerPrivateRemoteIdentifier id, Ref<IPC::Connection>&& connection, MediaPlayerEnums::MediaEngineIdentifier engineIdentifier, RemoteMediaPlayerProxyConfiguration&& configuration) 42 42 : m_id(id) 43 43 , m_webProcessConnection(WTFMove(connection)) … … 45 45 , m_engineIdentifier(engineIdentifier) 46 46 , m_updateCachedStateMessageTimer(RunLoop::main(), this, &RemoteMediaPlayerProxy::timerFired) 47 , m_configuration(configuration) 47 48 #if !RELEASE_LOG_DISABLED 48 49 , m_logger(m_manager.logger()) 49 50 #endif 50 51 { 52 m_typesRequiringHardwareSupport = m_configuration.mediaContentTypesRequiringHardwareSupport; 51 53 m_player = MediaPlayer::create(*this, m_engineIdentifier); 52 54 } … … 178 180 } 179 181 182 #if ENABLE(LEGACY_ENCRYPTED_MEDIA) 183 String RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory() const 184 { 185 return m_configuration.mediaKeysStorageDirectory; 186 } 187 #endif 188 189 String RemoteMediaPlayerProxy::mediaPlayerReferrer() const 190 { 191 return m_configuration.referrer; 192 } 193 194 String RemoteMediaPlayerProxy::mediaPlayerUserAgent() const 195 { 196 return m_configuration.userAgent; 197 } 198 199 String RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier() const 200 { 201 return m_configuration.sourceApplicationIdentifier; 202 } 203 204 #if PLATFORM(IOS_FAMILY) 205 String RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName() const 206 { 207 return m_configuration.networkInterfaceName; 208 } 209 #endif 210 211 const String& RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory() const 212 { 213 return m_configuration.mediaCacheDirectory; 214 } 215 216 const Vector<WebCore::ContentType>& RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport() const 217 { 218 return m_typesRequiringHardwareSupport; 219 } 220 221 Vector<String> RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics() const 222 { 223 return m_configuration.preferredAudioCharacteristics; 224 } 225 226 bool RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache() const 227 { 228 return m_configuration.shouldUsePersistentCache; 229 } 230 231 bool RemoteMediaPlayerProxy::mediaPlayerIsVideo() const 232 { 233 return m_configuration.isVideo; 234 } 235 236 // FIXME: Unimplemented 180 237 void RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged() 181 238 { … … 247 304 return false; 248 305 } 249 250 String RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory() const251 {252 notImplemented();253 return emptyString();254 }255 256 306 #endif 257 307 … … 272 322 #endif 273 323 274 String RemoteMediaPlayerProxy::mediaPlayerReferrer() const275 {276 notImplemented();277 return String();278 }279 280 String RemoteMediaPlayerProxy::mediaPlayerUserAgent() const281 {282 notImplemented();283 return String();284 }285 286 324 void RemoteMediaPlayerProxy::mediaPlayerEnterFullscreen() 287 325 { … … 305 343 } 306 344 307 bool RemoteMediaPlayerProxy::mediaPlayerIsVideo() const308 {309 notImplemented();310 return false;311 }312 313 345 LayoutRect RemoteMediaPlayerProxy::mediaPlayerContentBoxRect() const 314 346 { … … 355 387 notImplemented(); 356 388 return false; 357 }358 359 bool RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache() const360 {361 notImplemented();362 return true;363 }364 365 const String& RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory() const366 {367 notImplemented();368 return emptyString();369 389 } 370 390 … … 417 437 418 438 #if PLATFORM(IOS_FAMILY) 419 String RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName() const420 {421 notImplemented();422 return String();423 }424 425 439 bool RemoteMediaPlayerProxy::mediaPlayerGetRawCookies(const URL&, Vector<Cookie>&) const 426 440 { … … 428 442 return false; 429 443 } 430 431 #endif 432 433 String RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier() const 434 { 435 notImplemented(); 436 return emptyString(); 437 } 444 #endif 438 445 439 446 double RemoteMediaPlayerProxy::mediaPlayerRequestedPlaybackRate() const … … 455 462 } 456 463 457 Vector<String> RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics() const458 {459 notImplemented();460 return Vector<String>();461 }462 463 464 bool RemoteMediaPlayerProxy::mediaPlayerShouldDisableSleep() const 464 465 { 465 466 notImplemented(); 466 467 return false; 467 }468 469 const Vector<WebCore::ContentType>& RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport() const470 {471 notImplemented();472 return m_typesRequiringHardwareSupport;473 468 } 474 469 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
r253861 r253866 29 29 30 30 #include "MediaPlayerPrivateRemoteIdentifier.h" 31 #include "RemoteMediaPlayerProxyConfiguration.h" 31 32 #include "RemoteMediaPlayerState.h" 32 33 #include <wtf/LoggerHelper.h> … … 51 52 WTF_MAKE_FAST_ALLOCATED; 52 53 public: 53 RemoteMediaPlayerProxy(RemoteMediaPlayerManagerProxy&, MediaPlayerPrivateRemoteIdentifier, Ref<IPC::Connection>&&, MediaPlayerEnums::MediaEngineIdentifier );54 RemoteMediaPlayerProxy(RemoteMediaPlayerManagerProxy&, MediaPlayerPrivateRemoteIdentifier, Ref<IPC::Connection>&&, MediaPlayerEnums::MediaEngineIdentifier, RemoteMediaPlayerProxyConfiguration&&); 54 55 virtual ~RemoteMediaPlayerProxy() 55 56 { … … 169 170 #if !RELEASE_LOG_DISABLED 170 171 const Logger& mediaPlayerLogger() final { return m_logger; } 172 const void* mediaPlayerLogIdentifier() { return reinterpret_cast<const void*>(m_configuration.logIdentifier); } 171 173 #endif 172 174 … … 179 181 RunLoop::Timer<RemoteMediaPlayerProxy> m_updateCachedStateMessageTimer; 180 182 RemoteMediaPlayerState m_cachedState; 181 183 RemoteMediaPlayerProxyConfiguration m_configuration; 182 184 bool m_seekableChanged { true }; 183 185 bool m_bufferedChanged { true }; -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r253861 r253866 2067 2067 07A5EBBA1C7BA43E00B9CA69 /* WKFrameHandleRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFrameHandleRef.h; sourceTree = "<group>"; }; 2068 2068 07B3B46F23AB2CB300BA5B12 /* RemoteMediaPlayerState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaPlayerState.h; sourceTree = "<group>"; }; 2069 07B3B47523AD890400BA5B12 /* RemoteMediaPlayerProxyConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaPlayerProxyConfiguration.h; sourceTree = "<group>"; }; 2069 2070 07BAF35623A2CC170044257E /* RemoteMediaPlayerProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaPlayerProxy.h; sourceTree = "<group>"; }; 2070 2071 07BAF35723A2CC190044257E /* RemoteMediaPlayerProxy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteMediaPlayerProxy.cpp; sourceTree = "<group>"; }; … … 5112 5113 07BAF35723A2CC190044257E /* RemoteMediaPlayerProxy.cpp */, 5113 5114 07BAF35623A2CC170044257E /* RemoteMediaPlayerProxy.h */, 5115 07B3B47523AD890400BA5B12 /* RemoteMediaPlayerProxyConfiguration.h */, 5114 5116 ); 5115 5117 path = media; -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp
r253861 r253866 31 31 #include "RemoteMediaPlayerManagerMessages.h" 32 32 #include "RemoteMediaPlayerManagerProxyMessages.h" 33 #include "RemoteMediaPlayerProxyConfiguration.h" 33 34 #include "WebCoreArgumentCoders.h" 34 35 #include "WebProcess.h" … … 116 117 auto id = MediaPlayerPrivateRemoteIdentifier::generate(); 117 118 119 RemoteMediaPlayerProxyConfiguration configuration; 120 configuration.mediaKeysStorageDirectory = player->mediaKeysStorageDirectory(); 121 configuration.referrer = player->referrer(); 122 configuration.userAgent = player->userAgent(); 123 configuration.sourceApplicationIdentifier = player->sourceApplicationIdentifier(); 124 #if PLATFORM(IOS_FAMILY) 125 configuration.networkInterfaceName = player->mediaPlayerNetworkInterfaceName(); 126 #endif 127 configuration.mediaCacheDirectory = player->mediaCacheDirectory(); 128 configuration.mediaContentTypesRequiringHardwareSupport = player->mediaContentTypesRequiringHardwareSupport(); 129 configuration.preferredAudioCharacteristics = player->preferredAudioCharacteristics(); 130 configuration.logIdentifier = reinterpret_cast<uint64_t>(player->mediaPlayerLogIdentifier()); 131 configuration.shouldUsePersistentCache = player->shouldUsePersistentCache(); 132 configuration.isVideo = player->isVideoPlayer(); 133 118 134 bool haveRemoteProxy; 119 bool sendSucceeded = gpuProcessConnection().sendSync(Messages::RemoteMediaPlayerManagerProxy::CreateMediaPlayer(id, remoteEngineIdentifier ), Messages::RemoteMediaPlayerManagerProxy::CreateMediaPlayer::Reply(haveRemoteProxy), 0);135 bool sendSucceeded = gpuProcessConnection().sendSync(Messages::RemoteMediaPlayerManagerProxy::CreateMediaPlayer(id, remoteEngineIdentifier, configuration), Messages::RemoteMediaPlayerManagerProxy::CreateMediaPlayer::Reply(haveRemoteProxy), 0); 120 136 if (!haveRemoteProxy || !sendSucceeded) { 121 137 WTFLogAlways("Failed to create remote media player.");
Note: See TracChangeset
for help on using the changeset viewer.