Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Side by Side Diff: Source/core/html/HTMLMediaElement.cpp

Issue 526413002: simplify (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/html/HTMLMediaElement.h ('k') | Source/core/html/MediaController.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 1807 matching lines...) Expand 10 before | Expand all | Expand 10 after
1818 selectInitialTracksIfNecessary(); 1818 selectInitialTracksIfNecessary();
1819 1819
1820 m_duration = duration(); 1820 m_duration = duration();
1821 scheduleEvent(EventTypeNames::durationchange); 1821 scheduleEvent(EventTypeNames::durationchange);
1822 1822
1823 if (isHTMLVideoElement()) 1823 if (isHTMLVideoElement())
1824 scheduleEvent(EventTypeNames::resize); 1824 scheduleEvent(EventTypeNames::resize);
1825 scheduleEvent(EventTypeNames::loadedmetadata); 1825 scheduleEvent(EventTypeNames::loadedmetadata);
1826 1826
1827 if (m_defaultPlaybackStartPosition > 0) { 1827 if (m_defaultPlaybackStartPosition > 0) {
1828 seek(m_defaultPlaybackStartPosition, IGNORE_EXCEPTION); 1828 seek(m_defaultPlaybackStartPosition);
1829 m_defaultPlaybackStartPosition = 0; 1829 m_defaultPlaybackStartPosition = 0;
1830 } 1830 }
1831 1831
1832 if (hasMediaControls()) 1832 if (hasMediaControls())
1833 mediaControls()->reset(); 1833 mediaControls()->reset();
1834 if (renderer()) 1834 if (renderer())
1835 renderer()->updateFromElement(); 1835 renderer()->updateFromElement();
1836 } 1836 }
1837 1837
1838 bool shouldUpdateDisplayState = false; 1838 bool shouldUpdateDisplayState = false;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1922 { 1922 {
1923 WTF_LOG(Media, "HTMLMediaElement::prepareToPlay(%p)", this); 1923 WTF_LOG(Media, "HTMLMediaElement::prepareToPlay(%p)", this);
1924 if (m_havePreparedToPlay) 1924 if (m_havePreparedToPlay)
1925 return; 1925 return;
1926 m_havePreparedToPlay = true; 1926 m_havePreparedToPlay = true;
1927 1927
1928 if (loadIsDeferred()) 1928 if (loadIsDeferred())
1929 startDeferredLoad(); 1929 startDeferredLoad();
1930 } 1930 }
1931 1931
1932 void HTMLMediaElement::seek(double time, ExceptionState& exceptionState) 1932 void HTMLMediaElement::seek(double time)
1933 { 1933 {
1934 WTF_LOG(Media, "HTMLMediaElement::seek(%f)", time); 1934 WTF_LOG(Media, "HTMLMediaElement::seek(%f)", time);
1935 1935
1936 // 4.8.10.9 Seeking 1936 // 4.8.10.9 Seeking
1937 1937
1938 // 1 - If the media element's readyState is HAVE_NOTHING, then set the defau lt playback start 1938 // 1 - If the media element's readyState is HAVE_NOTHING, then set the defau lt playback start
1939 // position to that time. 1939 // position to that time.
1940 if (m_readyState == HAVE_NOTHING) { 1940 if (m_readyState == HAVE_NOTHING) {
1941 m_defaultPlaybackStartPosition = time; 1941 m_defaultPlaybackStartPosition = time;
1942 return; 1942 return;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 if (m_mediaController) { 2109 if (m_mediaController) {
2110 exceptionState.throwDOMException(InvalidStateError, "The element is slav ed to a MediaController."); 2110 exceptionState.throwDOMException(InvalidStateError, "The element is slav ed to a MediaController.");
2111 return; 2111 return;
2112 } 2112 }
2113 2113
2114 if (m_networkState == NETWORK_EMPTY) { 2114 if (m_networkState == NETWORK_EMPTY) {
2115 exceptionState.throwDOMException(InvalidStateError, "There is no media a ttached."); 2115 exceptionState.throwDOMException(InvalidStateError, "There is no media a ttached.");
2116 return; 2116 return;
2117 } 2117 }
2118 2118
2119 seek(time, exceptionState); 2119 seek(time);
2120 } 2120 }
2121 2121
2122 double HTMLMediaElement::duration() const 2122 double HTMLMediaElement::duration() const
2123 { 2123 {
2124 // FIXME: remove m_player check once we figure out how m_player is going 2124 // FIXME: remove m_player check once we figure out how m_player is going
2125 // out of sync with readystate. m_player is cleared but readystate is not se t 2125 // out of sync with readystate. m_player is cleared but readystate is not se t
2126 // to HAVE_NOTHING 2126 // to HAVE_NOTHING
2127 if (!m_player || m_readyState < HAVE_METADATA) 2127 if (!m_player || m_readyState < HAVE_METADATA)
2128 return std::numeric_limits<double>::quiet_NaN(); 2128 return std::numeric_limits<double>::quiet_NaN();
2129 2129
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
2248 2248
2249 void HTMLMediaElement::playInternal() 2249 void HTMLMediaElement::playInternal()
2250 { 2250 {
2251 WTF_LOG(Media, "HTMLMediaElement::playInternal"); 2251 WTF_LOG(Media, "HTMLMediaElement::playInternal");
2252 2252
2253 // 4.8.10.9. Playing the media resource 2253 // 4.8.10.9. Playing the media resource
2254 if (!m_player || m_networkState == NETWORK_EMPTY) 2254 if (!m_player || m_networkState == NETWORK_EMPTY)
2255 scheduleDelayedAction(LoadMediaResource); 2255 scheduleDelayedAction(LoadMediaResource);
2256 2256
2257 if (endedPlayback()) 2257 if (endedPlayback())
2258 seek(0, IGNORE_EXCEPTION); 2258 seek(0);
2259 2259
2260 if (m_mediaController) 2260 if (m_mediaController)
2261 m_mediaController->bringElementUpToSpeed(this); 2261 m_mediaController->bringElementUpToSpeed(this);
2262 2262
2263 if (m_paused) { 2263 if (m_paused) {
2264 m_paused = false; 2264 m_paused = false;
2265 invalidateCachedTime(); 2265 invalidateCachedTime();
2266 scheduleEvent(EventTypeNames::play); 2266 scheduleEvent(EventTypeNames::play);
2267 2267
2268 if (m_readyState <= HAVE_CURRENT_DATA) 2268 if (m_readyState <= HAVE_CURRENT_DATA)
(...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after
3110 double now = currentTime(); 3110 double now = currentTime();
3111 double dur = duration(); 3111 double dur = duration();
3112 3112
3113 // When the current playback position reaches the end of the media resource when the direction of 3113 // When the current playback position reaches the end of the media resource when the direction of
3114 // playback is forwards, then the user agent must follow these steps: 3114 // playback is forwards, then the user agent must follow these steps:
3115 if (!std::isnan(dur) && dur && now >= dur && directionOfPlayback() == Forwar d) { 3115 if (!std::isnan(dur) && dur && now >= dur && directionOfPlayback() == Forwar d) {
3116 // If the media element has a loop attribute specified and does not have a current media controller, 3116 // If the media element has a loop attribute specified and does not have a current media controller,
3117 if (loop() && !m_mediaController) { 3117 if (loop() && !m_mediaController) {
3118 m_sentEndEvent = false; 3118 m_sentEndEvent = false;
3119 // then seek to the earliest possible position of the media resourc e and abort these steps. 3119 // then seek to the earliest possible position of the media resourc e and abort these steps.
3120 seek(0, IGNORE_EXCEPTION); 3120 seek(0);
3121 } else { 3121 } else {
3122 // If the media element does not have a current media controller, an d the media element 3122 // If the media element does not have a current media controller, an d the media element
3123 // has still ended playback, and the direction of playback is still forwards, and paused 3123 // has still ended playback, and the direction of playback is still forwards, and paused
3124 // is false, 3124 // is false,
3125 if (!m_mediaController && !m_paused) { 3125 if (!m_mediaController && !m_paused) {
3126 // changes paused to true and fires a simple event named pause a t the media element. 3126 // changes paused to true and fires a simple event named pause a t the media element.
3127 m_paused = true; 3127 m_paused = true;
3128 scheduleEvent(EventTypeNames::pause); 3128 scheduleEvent(EventTypeNames::pause);
3129 } 3129 }
3130 // Queue a task to fire a simple event named ended at the media elem ent. 3130 // Queue a task to fire a simple event named ended at the media elem ent.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3164 WTF_LOG(Media, "HTMLMediaElement::durationChanged : %f -> %f", m_duration, d uration); 3164 WTF_LOG(Media, "HTMLMediaElement::durationChanged : %f -> %f", m_duration, d uration);
3165 m_duration = duration; 3165 m_duration = duration;
3166 scheduleEvent(EventTypeNames::durationchange); 3166 scheduleEvent(EventTypeNames::durationchange);
3167 3167
3168 if (hasMediaControls()) 3168 if (hasMediaControls())
3169 mediaControls()->reset(); 3169 mediaControls()->reset();
3170 if (renderer()) 3170 if (renderer())
3171 renderer()->updateFromElement(); 3171 renderer()->updateFromElement();
3172 3172
3173 if (requestSeek) 3173 if (requestSeek)
3174 seek(duration, IGNORE_EXCEPTION); 3174 seek(duration);
3175 } 3175 }
3176 3176
3177 void HTMLMediaElement::mediaPlayerPlaybackStateChanged() 3177 void HTMLMediaElement::mediaPlayerPlaybackStateChanged()
3178 { 3178 {
3179 WTF_LOG(Media, "HTMLMediaElement::mediaPlayerPlaybackStateChanged"); 3179 WTF_LOG(Media, "HTMLMediaElement::mediaPlayerPlaybackStateChanged");
3180 3180
3181 if (!m_player || m_pausedInternal) 3181 if (!m_player || m_pausedInternal)
3182 return; 3182 return;
3183 3183
3184 if (webMediaPlayer()->paused()) 3184 if (webMediaPlayer()->paused())
(...skipping 10 matching lines...) Expand all
3195 // user interaction or when it is technically required to play the video. 3195 // user interaction or when it is technically required to play the video.
3196 UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture); 3196 UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture);
3197 3197
3198 enterFullscreen(); 3198 enterFullscreen();
3199 } 3199 }
3200 3200
3201 void HTMLMediaElement::mediaPlayerRequestSeek(double time) 3201 void HTMLMediaElement::mediaPlayerRequestSeek(double time)
3202 { 3202 {
3203 // The player is the source of this seek request. 3203 // The player is the source of this seek request.
3204 if (m_mediaController) { 3204 if (m_mediaController) {
3205 m_mediaController->setCurrentTime(time, IGNORE_EXCEPTION); 3205 m_mediaController->setCurrentTime(time);
3206 return; 3206 return;
3207 } 3207 }
3208 setCurrentTime(time, IGNORE_EXCEPTION); 3208 setCurrentTime(time, ASSERT_NO_EXCEPTION);
3209 } 3209 }
3210 3210
3211 // MediaPlayerPresentation methods 3211 // MediaPlayerPresentation methods
3212 void HTMLMediaElement::mediaPlayerRepaint() 3212 void HTMLMediaElement::mediaPlayerRepaint()
3213 { 3213 {
3214 if (m_webLayer) 3214 if (m_webLayer)
3215 m_webLayer->invalidate(); 3215 m_webLayer->invalidate();
3216 3216
3217 updateDisplayState(); 3217 updateDisplayState();
3218 if (renderer()) 3218 if (renderer())
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
3896 3896
3897 if (m_fragmentStartTime != MediaPlayer::invalidTime() && m_readyState < HAVE _FUTURE_DATA) 3897 if (m_fragmentStartTime != MediaPlayer::invalidTime() && m_readyState < HAVE _FUTURE_DATA)
3898 prepareToPlay(); 3898 prepareToPlay();
3899 } 3899 }
3900 3900
3901 void HTMLMediaElement::applyMediaFragmentURI() 3901 void HTMLMediaElement::applyMediaFragmentURI()
3902 { 3902 {
3903 if (m_fragmentStartTime != MediaPlayer::invalidTime()) { 3903 if (m_fragmentStartTime != MediaPlayer::invalidTime()) {
3904 m_sentEndEvent = false; 3904 m_sentEndEvent = false;
3905 UseCounter::count(document(), UseCounter::HTMLMediaElementSeekToFragment Start); 3905 UseCounter::count(document(), UseCounter::HTMLMediaElementSeekToFragment Start);
3906 seek(m_fragmentStartTime, IGNORE_EXCEPTION); 3906 seek(m_fragmentStartTime);
3907 } 3907 }
3908 } 3908 }
3909 3909
3910 WebMediaPlayer::CORSMode HTMLMediaElement::corsMode() const 3910 WebMediaPlayer::CORSMode HTMLMediaElement::corsMode() const
3911 { 3911 {
3912 const AtomicString& crossOriginMode = fastGetAttribute(crossoriginAttr); 3912 const AtomicString& crossOriginMode = fastGetAttribute(crossoriginAttr);
3913 if (crossOriginMode.isNull()) 3913 if (crossOriginMode.isNull())
3914 return WebMediaPlayer::CORSModeUnspecified; 3914 return WebMediaPlayer::CORSModeUnspecified;
3915 if (equalIgnoringCase(crossOriginMode, "use-credentials")) 3915 if (equalIgnoringCase(crossOriginMode, "use-credentials"))
3916 return WebMediaPlayer::CORSModeUseCredentials; 3916 return WebMediaPlayer::CORSModeUseCredentials;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
4003 4003
4004 #if ENABLE(WEB_AUDIO) 4004 #if ENABLE(WEB_AUDIO)
4005 void HTMLMediaElement::clearWeakMembers(Visitor* visitor) 4005 void HTMLMediaElement::clearWeakMembers(Visitor* visitor)
4006 { 4006 {
4007 if (!visitor->isAlive(m_audioSourceNode) && audioSourceProvider()) 4007 if (!visitor->isAlive(m_audioSourceNode) && audioSourceProvider())
4008 audioSourceProvider()->setClient(0); 4008 audioSourceProvider()->setClient(0);
4009 } 4009 }
4010 #endif 4010 #endif
4011 4011
4012 } 4012 }
OLDNEW
« no previous file with comments | « Source/core/html/HTMLMediaElement.h ('k') | Source/core/html/MediaController.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698