Changeset 200273 in webkit
- Timestamp:
- Apr 29, 2016, 5:52:55 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
html/HTMLMediaElement.cpp (modified) (8 diffs)
-
html/HTMLMediaElement.h (modified) (1 diff)
-
html/MediaElementSession.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r200271 r200273 1 2016-04-29 Eric Carlson <eric.carlson@apple.com> 2 3 [iOS] do not exit AirPlay when the screen locks 4 https://bugs.webkit.org/show_bug.cgi?id=156502 5 <rdar://problem/24616592> 6 7 Reviewed by Dean Jackson 8 9 * html/HTMLMediaElement.cpp: 10 (WebCore::HTMLMediaElement::pendingActionTimerFired): Use m_isPlayingToWirelessTarget. 11 (WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto. 12 (WebCore::HTMLMediaElement::wirelessRoutesAvailableDidChange): Set m_isPlayingToWirelessTarget. 13 (WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Use 14 m_isPlayingToWirelessTarget. 15 (WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): Ditto. 16 (WebCore::HTMLMediaElement::configureMediaControls): Ditto. 17 (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Add logging. 18 (WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Don't tell the media engine to purge 19 data if it is playing to a wireless target because that will drop the connection. 20 * html/HTMLMediaElement.h: 21 22 * html/MediaElementSession.cpp: 23 (WebCore::MediaElementSession::playbackPermitted): Add logging. 24 (WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget): Drive by fix: iOS doesn't 25 have an explicit playbackTarget, don't test for it. 26 (WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget): Ditto. 27 1 28 2016-04-29 Chris Dumez <cdumez@apple.com> 2 29 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r200192 r200273 916 916 917 917 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 918 if (pendingActions & CheckPlaybackTargetCompatablity && m_ player && m_player->isCurrentPlaybackTargetWireless()&& !m_player->canPlayToWirelessPlaybackTarget()) {918 if (pendingActions & CheckPlaybackTargetCompatablity && m_isPlayingToWirelessTarget && !m_player->canPlayToWirelessPlaybackTarget()) { 919 919 LOG(Media, "HTMLMediaElement::pendingActionTimerFired(%p) - calling setShouldPlayToPlaybackTarget(false)", this); 920 920 m_failedToPlayToWirelessTarget = true; … … 5176 5176 bool HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless() const 5177 5177 { 5178 return m_ player && m_player->isCurrentPlaybackTargetWireless();5178 return m_isPlayingToWirelessTarget; 5179 5179 } 5180 5180 … … 5186 5186 void HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged(MediaPlayer*) 5187 5187 { 5188 LOG(Media, "HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged(%p) - webkitCurrentPlaybackTargetIsWireless = %s", this, boolString(webkitCurrentPlaybackTargetIsWireless())); 5188 m_isPlayingToWirelessTarget = m_player && m_player->isCurrentPlaybackTargetWireless(); 5189 5190 LOG(Media, "HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged(%p) - webkitCurrentPlaybackTargetIsWireless = %s", this, boolString(m_isPlayingToWirelessTarget)); 5189 5191 ASSERT(m_player); 5190 5192 configureMediaControls(); 5191 5193 scheduleEvent(eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent); 5192 m_mediaSession->isPlayingToWirelessPlaybackTargetChanged(m_ player->isCurrentPlaybackTargetWireless());5194 m_mediaSession->isPlayingToWirelessPlaybackTargetChanged(m_isPlayingToWirelessTarget); 5193 5195 updateMediaState(UpdateMediaState::Asynchronously); 5194 5196 } … … 5268 5270 bool HTMLMediaElement::isPlayingToWirelessPlaybackTarget() const 5269 5271 { 5270 bool isPlaying = m_player && m_player->isCurrentPlaybackTargetWireless(); 5271 5272 LOG(Media, "HTMLMediaElement::isPlayingToWirelessPlaybackTarget(%p) - returning %s", this, boolString(isPlaying)); 5273 5274 return isPlaying; 5272 return m_isPlayingToWirelessTarget; 5275 5273 } 5276 5274 … … 5729 5727 5730 5728 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 5731 if (m_ player && m_player->isCurrentPlaybackTargetWireless())5729 if (m_isPlayingToWirelessTarget) 5732 5730 requireControls = true; 5733 5731 #endif … … 6685 6683 bool HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction(PlatformMediaSession::InterruptionType type) const 6686 6684 { 6687 if (type != PlatformMediaSession::EnteringBackground) 6685 if (type != PlatformMediaSession::EnteringBackground) { 6686 LOG(Media, "HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction(%p) - returning false because type != PlatformMediaSession::EnteringBackground", this); 6688 6687 return false; 6688 } 6689 6689 6690 6690 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 6691 if (m_player && m_player->isCurrentPlaybackTargetWireless()) 6691 if (m_isPlayingToWirelessTarget) { 6692 LOG(Media, "HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction(%p) - returning true because m_isPlayingToWirelessTarget is true", this); 6692 6693 return true; 6694 } 6693 6695 #endif 6694 6696 if (m_videoFullscreenMode & VideoFullscreenModePictureInPicture) … … 6725 6727 bool hasAudio = this->hasAudio(); 6726 6728 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 6727 if (m_ player && m_player->isCurrentPlaybackTargetWireless())6729 if (m_isPlayingToWirelessTarget) 6728 6730 state |= IsPlayingToExternalDevice; 6729 6731 … … 6797 6799 if (!MemoryPressureHandler::singleton().isUnderMemoryPressure() && PlatformMediaSessionManager::sharedManager().sessionCanLoadMedia(*m_mediaSession)) 6798 6800 return; 6801 6802 if (m_isPlayingToWirelessTarget) { 6803 LOG(Media, "HTMLMediaElement::purgeBufferedDataIfPossible(%p) - early return because m_isPlayingToWirelessTarget is true", this); 6804 return; 6805 } 6799 6806 6800 6807 // This is called to relieve memory pressure. Turning off buffering causes the media playback -
trunk/Source/WebCore/html/HTMLMediaElement.h
r200192 r200273 974 974 bool m_hasPlaybackTargetAvailabilityListeners { false }; 975 975 bool m_failedToPlayToWirelessTarget { false }; 976 bool m_isPlayingToWirelessTarget { false }; 976 977 #endif 977 978 }; -
trunk/Source/WebCore/html/MediaElementSession.cpp
r200141 r200273 359 359 bool MediaElementSession::canPlayToWirelessPlaybackTarget() const 360 360 { 361 #if !PLATFORM(IOS) 361 362 if (!m_playbackTarget || !m_playbackTarget->hasActiveRoute()) 362 363 return false; 364 #endif 363 365 364 366 return client().canPlayToWirelessPlaybackTarget(); … … 367 369 bool MediaElementSession::isPlayingToWirelessPlaybackTarget() const 368 370 { 371 #if !PLATFORM(IOS) 369 372 if (!m_playbackTarget || !m_playbackTarget->hasActiveRoute()) 370 373 return false; 374 #endif 371 375 372 376 return client().isPlayingToWirelessPlaybackTarget();
Note:
See TracChangeset
for help on using the changeset viewer.