Changeset 175777 in webkit
- Timestamp:
- Nov 8, 2014, 9:17:32 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r175773 r175777 1 2014-11-07 Eric Carlson <eric.carlson@apple.com> 2 3 [iOS] video is sometimes allowed to play from the background 4 https://bugs.webkit.org/show_bug.cgi?id=138522 5 6 Reviewed by Jer Noble. 7 8 * html/HTMLMediaElement.cpp: 9 (WebCore::HTMLMediaElement::displayType): New. 10 * html/HTMLMediaElement.h: 11 12 * platform/audio/MediaSession.cpp: 13 (WebCore::MediaSession::isHidden): New, client passthrough. 14 (WebCore::MediaSession::displayType): Ditto. 15 * platform/audio/MediaSession.h: 16 (WebCore::MediaSessionClient::displayType): 17 18 * platform/audio/MediaSessionManager.cpp: 19 (WebCore::MediaSessionManager::sessionCanLoadMedia): New, default implementation returns 20 true if client is visible or playing. 21 * platform/audio/MediaSessionManager.h: 22 23 * platform/audio/ios/MediaSessionManagerIOS.h: 24 * platform/audio/ios/MediaSessionManagerIOS.mm: 25 (WebCore::MediaSessionManageriOS::sessionCanLoadMedia): iOS override, also allows buffering 26 when displaying optimized fullscreen. 27 1 28 2014-11-07 Benjamin Poulain <bpoulain@apple.com> 2 29 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r175719 r175777 5975 5975 } 5976 5976 5977 MediaSession::DisplayType HTMLMediaElement::displayType() const 5978 { 5979 switch (m_videoFullscreenMode) { 5980 case VideoFullscreenModeStandard: 5981 return MediaSession::Fullscreen; 5982 case VideoFullscreenModeOptimized: 5983 return MediaSession::Optimized; 5984 case VideoFullscreenModeNone: 5985 return MediaSession::Normal; 5986 default: 5987 ASSERT_NOT_REACHED(); 5988 break; 5989 } 5990 5991 return MediaSession::Normal; 5992 } 5993 5977 5994 #if ENABLE(MEDIA_SOURCE) 5978 5995 size_t HTMLMediaElement::maximumSourceBufferSize(const SourceBuffer& buffer) const -
trunk/Source/WebCore/html/HTMLMediaElement.h
r175750 r175777 705 705 virtual MediaSession::MediaType mediaType() const override; 706 706 virtual MediaSession::MediaType presentationType() const override; 707 virtual MediaSession::DisplayType displayType() const override; 707 708 virtual void pausePlayback() override; 708 709 virtual void resumePlayback() override; -
trunk/Source/WebCore/platform/audio/MediaSession.cpp
r175719 r175777 195 195 } 196 196 197 bool MediaSession::isHidden() const 198 { 199 return m_client.elementIsHidden(); 200 } 201 202 MediaSession::DisplayType MediaSession::displayType() const 203 { 204 return m_client.displayType(); 205 } 206 197 207 void MediaSession::wirelessRoutesAvailableDidChange() const 198 208 { -
trunk/Source/WebCore/platform/audio/MediaSession.h
r175719 r175777 103 103 void wirelessRoutesAvailableDidChange() const; 104 104 105 enum DisplayType { 106 Normal, 107 Fullscreen, 108 Optimized, 109 }; 110 DisplayType displayType() const; 111 112 bool isHidden() const; 113 105 114 protected: 106 115 MediaSessionClient& client() const { return m_client; } … … 124 133 virtual MediaSession::MediaType mediaType() const = 0; 125 134 virtual MediaSession::MediaType presentationType() const = 0; 135 virtual MediaSession::DisplayType displayType() const { return MediaSession::Normal; } 126 136 127 137 virtual void resumePlayback() = 0; -
trunk/Source/WebCore/platform/audio/MediaSessionManager.cpp
r174666 r175777 261 261 } 262 262 263 bool MediaSessionManager::sessionCanLoadMedia(const MediaSession& session) const 264 { 265 return session.state() == MediaSession::Playing || !session.isHidden(); 266 } 267 263 268 void MediaSessionManager::applicationWillEnterBackground() const 264 269 { -
trunk/Source/WebCore/platform/audio/MediaSessionManager.h
r174666 r175777 77 77 bool sessionRestrictsInlineVideoPlayback(const MediaSession&) const; 78 78 79 virtual bool sessionCanLoadMedia(const MediaSession&) const; 80 79 81 virtual void configureWireLessTargetMonitoring() { } 80 82 -
trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h
r174666 r175777 61 61 #endif 62 62 63 virtual bool sessionCanLoadMedia(const MediaSession&) const override; 64 63 65 MediaSessionManageriOS(); 64 66 RetainPtr<WebMediaSessionHelper> m_objcObserver; -
trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm
r174666 r175777 214 214 } 215 215 216 bool MediaSessionManageriOS::sessionCanLoadMedia(const MediaSession& session) const 217 { 218 return session.state() == MediaSession::Playing || !session.isHidden() || session.displayType() == MediaSession::Optimized; 219 } 220 216 221 } // namespace WebCore 217 222
Note:
See TracChangeset
for help on using the changeset viewer.