Changeset 256904 in webkit
- Timestamp:
- Feb 18, 2020 8:50:31 PM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r256903 r256904 1 2020-02-18 Youenn Fablet <youenn@apple.com> 2 3 Reduce use of PlatformMediaSessionManager::sharedManager() 4 https://bugs.webkit.org/show_bug.cgi?id=207924 5 6 Reviewed by Eric Carlson. 7 8 The plan is to be able to have PlatformMediaSession in GPU process which might have different managers, 9 typically a manager per connection to web process. 10 For that reason, reduce the use of the sharedManager to classes that can only live in WebProcess. 11 No change of behavior. 12 13 * Modules/mediastream/MediaStreamTrack.cpp: 14 (WebCore::MediaStreamTrack::MediaStreamTrack): 15 * Modules/webaudio/AudioContext.cpp: 16 (WebCore::AudioContext::AudioContext): 17 * html/MediaElementSession.cpp: 18 (WebCore::MediaElementSession::MediaElementSession): 19 (WebCore::MediaElementSession::clientDataBufferingTimerFired): 20 (WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners): 21 * platform/audio/PlatformMediaSession.cpp: 22 (WebCore::PlatformMediaSession::create): 23 (WebCore::PlatformMediaSession::PlatformMediaSession): 24 (WebCore::PlatformMediaSession::~PlatformMediaSession): 25 (WebCore::PlatformMediaSession::setState): 26 (WebCore::PlatformMediaSession::clientWillBeginPlayback): 27 (WebCore::PlatformMediaSession::processClientWillPausePlayback): 28 (WebCore::PlatformMediaSession::stopSession): 29 (WebCore::PlatformMediaSession::isPlayingToWirelessPlaybackTargetChanged): 30 (WebCore::PlatformMediaSession::canProduceAudioChanged): 31 (WebCore::PlatformMediaSession::clientCharacteristicsChanged): 32 (WebCore::PlatformMediaSession::manager): 33 * platform/audio/PlatformMediaSession.h: 34 * platform/audio/PlatformMediaSessionManager.h: 35 1 36 2020-02-18 Wenson Hsieh <wenson_hsieh@apple.com> 2 37 -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
r256901 r256904 46 46 #include "OverconstrainedError.h" 47 47 #include "Page.h" 48 #include "PlatformMediaSessionManager.h" 48 49 #include "RealtimeMediaSourceCenter.h" 49 50 #include "ScriptExecutionContext.h" … … 75 76 , m_private(WTFMove(privateTrack)) 76 77 , m_isCaptureTrack(m_private->isCaptureTrack()) 77 , m_mediaSession(PlatformMediaSession::create( *this))78 , m_mediaSession(PlatformMediaSession::create(PlatformMediaSessionManager::sharedManager(), *this)) 78 79 { 79 80 ALWAYS_LOG(LOGIDENTIFIER); -
trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp
r256901 r256904 64 64 #include "PannerNode.h" 65 65 #include "PeriodicWave.h" 66 #include "PlatformMediaSessionManager.h" 66 67 #include "ScriptController.h" 67 68 #include "ScriptProcessorNode.h" … … 140 141 , m_logIdentifier(uniqueLogIdentifier()) 141 142 #endif 142 , m_mediaSession(PlatformMediaSession::create( *this))143 , m_mediaSession(PlatformMediaSession::create(PlatformMediaSessionManager::sharedManager(), *this)) 143 144 , m_eventQueue(MainThreadGenericEventQueue::create(*this)) 144 145 { … … 166 167 #endif 167 168 , m_isOfflineContext(true) 168 , m_mediaSession(PlatformMediaSession::create( *this))169 , m_mediaSession(PlatformMediaSession::create(PlatformMediaSessionManager::sharedManager(), *this)) 169 170 , m_eventQueue(MainThreadGenericEventQueue::create(*this)) 170 171 , m_renderTarget(renderTarget) -
trunk/Source/WebCore/html/MediaElementSession.cpp
r253397 r256904 106 106 107 107 MediaElementSession::MediaElementSession(HTMLMediaElement& element) 108 : PlatformMediaSession( element)108 : PlatformMediaSession(PlatformMediaSessionManager::sharedManager(), element) 109 109 , m_element(element) 110 110 , m_restrictions(NoRestrictions) 111 111 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 112 112 , m_targetAvailabilityChangedTimer(*this, &MediaElementSession::targetAvailabilityChangedTimerFired) 113 , m_hasPlaybackTargets( PlatformMediaSessionManager::sharedManager().hasWirelessTargetsAvailable())113 , m_hasPlaybackTargets(manager().hasWirelessTargetsAvailable()) 114 114 #endif 115 115 , m_mainContentCheckTimer(*this, &MediaElementSession::mainContentCheckTimerFired) … … 202 202 203 203 #if PLATFORM(IOS_FAMILY) 204 PlatformMediaSessionManager::sharedManager().configureWireLessTargetMonitoring();204 manager().configureWireLessTargetMonitoring(); 205 205 #endif 206 206 … … 208 208 return; 209 209 210 PlatformMediaSessionManager::SessionRestrictions restrictions = PlatformMediaSessionManager::sharedManager().restrictions(mediaType());210 PlatformMediaSessionManager::SessionRestrictions restrictions = manager().restrictions(mediaType()); 211 211 if ((restrictions & PlatformMediaSessionManager::BackgroundTabPlaybackRestricted) == PlatformMediaSessionManager::BackgroundTabPlaybackRestricted) 212 212 pauseSession(); … … 637 637 #if PLATFORM(IOS_FAMILY) 638 638 m_hasPlaybackTargetAvailabilityListeners = hasListeners; 639 PlatformMediaSessionManager::sharedManager().configureWireLessTargetMonitoring();639 manager().configureWireLessTargetMonitoring(); 640 640 #else 641 641 UNUSED_PARAM(hasListeners); -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp
r256844 r256904 108 108 #endif 109 109 110 std::unique_ptr<PlatformMediaSession> PlatformMediaSession::create(PlatformMediaSessionClient& client) 111 { 112 return makeUnique<PlatformMediaSession>(client); 113 } 114 115 PlatformMediaSession::PlatformMediaSession(PlatformMediaSessionClient& client) 116 : m_client(client) 110 std::unique_ptr<PlatformMediaSession> PlatformMediaSession::create(PlatformMediaSessionManager& manager, PlatformMediaSessionClient& client) 111 { 112 return std::unique_ptr<PlatformMediaSession>(new PlatformMediaSession(manager, client)); 113 } 114 115 PlatformMediaSession::PlatformMediaSession(PlatformMediaSessionManager& manager, PlatformMediaSessionClient& client) 116 : m_manager(makeWeakPtr(manager)) 117 , m_client(client) 117 118 , m_state(Idle) 118 119 , m_stateToRestore(Idle) … … 124 125 { 125 126 ASSERT(m_client.mediaType() >= None && m_client.mediaType() <= MediaStreamCapturingAudio); 126 PlatformMediaSessionManager::sharedManager().addSession(*this);127 manager.addSession(*this); 127 128 } 128 129 129 130 PlatformMediaSession::~PlatformMediaSession() 130 131 { 131 PlatformMediaSessionManager::sharedManager().removeSession(*this); 132 if (m_manager) 133 m_manager->removeSession(*this); 132 134 } 133 135 … … 141 143 if (m_state == State::Playing) 142 144 m_hasPlayedSinceLastInterruption = true; 143 PlatformMediaSessionManager::sharedManager().sessionStateChanged(*this);145 m_manager->sessionStateChanged(*this); 144 146 } 145 147 … … 215 217 INFO_LOG(LOGIDENTIFIER, "state = ", m_state); 216 218 217 if (! PlatformMediaSessionManager::sharedManager().sessionWillBeginPlayback(*this)) {219 if (!m_manager->sessionWillBeginPlayback(*this)) { 218 220 if (state() == Interrupted) 219 221 m_stateToRestore = Playing; … … 238 240 239 241 setState(Paused); 240 PlatformMediaSessionManager::sharedManager().sessionWillEndPlayback(*this, shouldDelayCallingUpdateNowPlaying);242 m_manager->sessionWillEndPlayback(*this, shouldDelayCallingUpdateNowPlaying); 241 243 return true; 242 244 } … … 262 264 INFO_LOG(LOGIDENTIFIER); 263 265 m_client.suspendPlayback(); 264 PlatformMediaSessionManager::sharedManager().removeSession(*this);266 m_manager->removeSession(*this); 265 267 } 266 268 … … 344 346 // if we in the background. 345 347 int interruptionCount = m_interruptionCount; 346 PlatformMediaSessionManager::sharedManager().sessionIsPlayingToWirelessPlaybackTargetChanged(*this);348 m_manager->sessionIsPlayingToWirelessPlaybackTargetChanged(*this); 347 349 m_interruptionCount = interruptionCount; 348 350 } … … 369 371 void PlatformMediaSession::canProduceAudioChanged() 370 372 { 371 PlatformMediaSessionManager::sharedManager().sessionCanProduceAudioChanged();373 m_manager->sessionCanProduceAudioChanged(); 372 374 } 373 375 … … 396 398 void PlatformMediaSession::clientCharacteristicsChanged() 397 399 { 398 PlatformMediaSessionManager::sharedManager().clientCharacteristicsChanged(*this);400 m_manager->clientCharacteristicsChanged(*this); 399 401 } 400 402 … … 407 409 { 408 410 return m_client.shouldOverridePauseDuringRouteChange(); 411 } 412 413 PlatformMediaSessionManager& PlatformMediaSession::manager() 414 { 415 return *m_manager; 409 416 } 410 417 -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.h
r256901 r256904 42 42 class MediaPlaybackTarget; 43 43 class PlatformMediaSessionClient; 44 class PlatformMediaSessionManager; 44 45 enum class DelayCallingUpdateNowPlaying { No, Yes }; 45 46 … … 55 56 WTF_MAKE_FAST_ALLOCATED; 56 57 public: 57 static std::unique_ptr<PlatformMediaSession> create(PlatformMediaSessionClient&); 58 59 PlatformMediaSession(PlatformMediaSessionClient&); 58 static std::unique_ptr<PlatformMediaSession> create(PlatformMediaSessionManager&, PlatformMediaSessionClient&); 59 60 60 virtual ~PlatformMediaSession(); 61 61 … … 200 200 201 201 protected: 202 PlatformMediaSession(PlatformMediaSessionManager&, PlatformMediaSessionClient&); 202 203 PlatformMediaSessionClient& client() const { return m_client; } 204 205 PlatformMediaSessionManager& manager(); 203 206 204 207 private: 205 208 bool processClientWillPausePlayback(DelayCallingUpdateNowPlaying); 206 209 210 WeakPtr<PlatformMediaSessionManager> m_manager; 207 211 PlatformMediaSessionClient& m_client; 208 212 State m_state; -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
r256844 r256904 35 35 #include <wtf/AggregateLogger.h> 36 36 #include <wtf/Vector.h> 37 #include <wtf/WeakPtr.h> 37 38 38 39 namespace WebCore { … … 48 49 , private LoggerHelper 49 50 #endif 51 , public CanMakeWeakPtr<PlatformMediaSessionManager> 50 52 { 51 53 WTF_MAKE_FAST_ALLOCATED;
Note: See TracChangeset
for help on using the changeset viewer.