Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 1692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1703 | 1703 |
| 1704 void HTMLMediaElement::progressEventTimerFired(Timer<HTMLMediaElement>*) | 1704 void HTMLMediaElement::progressEventTimerFired(Timer<HTMLMediaElement>*) |
| 1705 { | 1705 { |
| 1706 ASSERT(m_player); | 1706 ASSERT(m_player); |
| 1707 if (m_networkState != NETWORK_LOADING) | 1707 if (m_networkState != NETWORK_LOADING) |
| 1708 return; | 1708 return; |
| 1709 | 1709 |
| 1710 double time = WTF::currentTime(); | 1710 double time = WTF::currentTime(); |
| 1711 double timedelta = time - m_previousProgressTime; | 1711 double timedelta = time - m_previousProgressTime; |
| 1712 | 1712 |
| 1713 if (m_player->didLoadingProgress()) { | 1713 if (webMediaPlayer() && webMediaPlayer()->didLoadingProgress()) { |
| 1714 scheduleEvent(EventTypeNames::progress); | 1714 scheduleEvent(EventTypeNames::progress); |
| 1715 m_previousProgressTime = time; | 1715 m_previousProgressTime = time; |
| 1716 m_sentStalledEvent = false; | 1716 m_sentStalledEvent = false; |
| 1717 if (renderer()) | 1717 if (renderer()) |
| 1718 renderer()->updateFromElement(); | 1718 renderer()->updateFromElement(); |
| 1719 } else if (timedelta > 3.0 && !m_sentStalledEvent) { | 1719 } else if (timedelta > 3.0 && !m_sentStalledEvent) { |
| 1720 scheduleEvent(EventTypeNames::stalled); | 1720 scheduleEvent(EventTypeNames::stalled); |
| 1721 m_sentStalledEvent = true; | 1721 m_sentStalledEvent = true; |
| 1722 setShouldDelayLoadEvent(false); | 1722 setShouldDelayLoadEvent(false); |
| 1723 } | 1723 } |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1980 void HTMLMediaElement::setPlaybackRate(double rate) | 1980 void HTMLMediaElement::setPlaybackRate(double rate) |
| 1981 { | 1981 { |
| 1982 WTF_LOG(Media, "HTMLMediaElement::setPlaybackRate(%f)", rate); | 1982 WTF_LOG(Media, "HTMLMediaElement::setPlaybackRate(%f)", rate); |
| 1983 | 1983 |
| 1984 if (m_playbackRate != rate) { | 1984 if (m_playbackRate != rate) { |
| 1985 m_playbackRate = rate; | 1985 m_playbackRate = rate; |
| 1986 invalidateCachedTime(); | 1986 invalidateCachedTime(); |
| 1987 scheduleEvent(EventTypeNames::ratechange); | 1987 scheduleEvent(EventTypeNames::ratechange); |
| 1988 } | 1988 } |
| 1989 | 1989 |
| 1990 if (m_player && potentiallyPlaying() && m_player->rate() != rate && !m_media Controller) | 1990 if (m_player && potentiallyPlaying() && !m_mediaController) |
| 1991 m_player->setRate(rate); | 1991 webMediaPlayer()->setRate(rate); |
| 1992 } | 1992 } |
| 1993 | 1993 |
| 1994 void HTMLMediaElement::updatePlaybackRate() | 1994 void HTMLMediaElement::updatePlaybackRate() |
| 1995 { | 1995 { |
| 1996 double effectiveRate = m_mediaController ? m_mediaController->playbackRate() : m_playbackRate; | 1996 double effectiveRate = m_mediaController ? m_mediaController->playbackRate() : m_playbackRate; |
| 1997 if (m_player && potentiallyPlaying() && m_player->rate() != effectiveRate) | 1997 if (m_player && potentiallyPlaying()) |
| 1998 m_player->setRate(effectiveRate); | 1998 webMediaPlayer()->setRate(effectiveRate); |
| 1999 } | 1999 } |
| 2000 | 2000 |
| 2001 bool HTMLMediaElement::ended() const | 2001 bool HTMLMediaElement::ended() const |
| 2002 { | 2002 { |
| 2003 // 4.8.10.8 Playing the media resource | 2003 // 4.8.10.8 Playing the media resource |
| 2004 // The ended attribute must return true if the media element has ended | 2004 // The ended attribute must return true if the media element has ended |
| 2005 // playback and the direction of playback is forwards, and false otherwise. | 2005 // playback and the direction of playback is forwards, and false otherwise. |
| 2006 return endedPlayback() && m_playbackRate > 0; | 2006 return endedPlayback() && m_playbackRate > 0; |
| 2007 } | 2007 } |
| 2008 | 2008 |
| (...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2888 ASSERT(hasVideo()); // "resize" makes no sense absent video. | 2888 ASSERT(hasVideo()); // "resize" makes no sense absent video. |
| 2889 if (m_readyState > HAVE_NOTHING && isHTMLVideoElement(*this)) | 2889 if (m_readyState > HAVE_NOTHING && isHTMLVideoElement(*this)) |
| 2890 scheduleEvent(EventTypeNames::resize); | 2890 scheduleEvent(EventTypeNames::resize); |
| 2891 | 2891 |
| 2892 if (renderer()) | 2892 if (renderer()) |
| 2893 renderer()->updateFromElement(); | 2893 renderer()->updateFromElement(); |
| 2894 } | 2894 } |
| 2895 | 2895 |
| 2896 PassRefPtr<TimeRanges> HTMLMediaElement::buffered() const | 2896 PassRefPtr<TimeRanges> HTMLMediaElement::buffered() const |
| 2897 { | 2897 { |
| 2898 if (!m_player) | |
| 2899 return TimeRanges::create(); | |
| 2900 | |
| 2901 if (m_mediaSource) | 2898 if (m_mediaSource) |
| 2902 return m_mediaSource->buffered(); | 2899 return m_mediaSource->buffered(); |
| 2903 | 2900 |
| 2904 return m_player->buffered(); | 2901 if (!webMediaPlayer()) |
| 2902 return TimeRanges::create(); | |
| 2903 | |
| 2904 return TimeRanges::create(webMediaPlayer()->buffered()); | |
| 2905 } | 2905 } |
| 2906 | 2906 |
| 2907 PassRefPtr<TimeRanges> HTMLMediaElement::played() | 2907 PassRefPtr<TimeRanges> HTMLMediaElement::played() |
| 2908 { | 2908 { |
| 2909 if (m_playing) { | 2909 if (m_playing) { |
| 2910 double time = currentTime(); | 2910 double time = currentTime(); |
| 2911 if (time > m_lastSeekTime) | 2911 if (time > m_lastSeekTime) |
| 2912 addPlayedRange(m_lastSeekTime, time); | 2912 addPlayedRange(m_lastSeekTime, time); |
| 2913 } | 2913 } |
| 2914 | 2914 |
| 2915 if (!m_playedTimeRanges) | 2915 if (!m_playedTimeRanges) |
| 2916 m_playedTimeRanges = TimeRanges::create(); | 2916 m_playedTimeRanges = TimeRanges::create(); |
| 2917 | 2917 |
| 2918 return m_playedTimeRanges->copy(); | 2918 return m_playedTimeRanges->copy(); |
| 2919 } | 2919 } |
| 2920 | 2920 |
| 2921 PassRefPtr<TimeRanges> HTMLMediaElement::seekable() const | 2921 PassRefPtr<TimeRanges> HTMLMediaElement::seekable() const |
| 2922 { | 2922 { |
| 2923 if (m_player) { | 2923 if (webMediaPlayer()) { |
| 2924 double maxTimeSeekable = m_player->maxTimeSeekable(); | 2924 double maxTimeSeekable = webMediaPlayer()->maxTimeSeekable(); |
| 2925 if (maxTimeSeekable) | 2925 if (maxTimeSeekable) |
| 2926 return TimeRanges::create(0, maxTimeSeekable); | 2926 return TimeRanges::create(0, maxTimeSeekable); |
| 2927 } | 2927 } |
| 2928 return TimeRanges::create(); | 2928 return TimeRanges::create(); |
| 2929 } | 2929 } |
| 2930 | 2930 |
| 2931 bool HTMLMediaElement::potentiallyPlaying() const | 2931 bool HTMLMediaElement::potentiallyPlaying() const |
| 2932 { | 2932 { |
| 2933 // "pausedToBuffer" means the media engine's rate is 0, but only because it had to stop playing | 2933 // "pausedToBuffer" means the media engine's rate is 0, but only because it had to stop playing |
| 2934 // when it ran out of buffered data. A movie is this state is "potentially p laying", modulo the | 2934 // when it ran out of buffered data. A movie is this state is "potentially p laying", modulo the |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3024 WTF_LOG(Media, "HTMLMediaElement::updatePlayState - shouldBePlaying = %s, pl ayerPaused = %s", | 3024 WTF_LOG(Media, "HTMLMediaElement::updatePlayState - shouldBePlaying = %s, pl ayerPaused = %s", |
| 3025 boolString(shouldBePlaying), boolString(playerPaused)); | 3025 boolString(shouldBePlaying), boolString(playerPaused)); |
| 3026 | 3026 |
| 3027 if (shouldBePlaying) { | 3027 if (shouldBePlaying) { |
| 3028 setDisplayMode(Video); | 3028 setDisplayMode(Video); |
| 3029 invalidateCachedTime(); | 3029 invalidateCachedTime(); |
| 3030 | 3030 |
| 3031 if (playerPaused) { | 3031 if (playerPaused) { |
| 3032 // Set rate, muted before calling play in case they were set before the media engine was setup. | 3032 // Set rate, muted before calling play in case they were set before the media engine was setup. |
| 3033 // The media engine should just stash the rate and muted values sinc e it isn't already playing. | 3033 // The media engine should just stash the rate and muted values sinc e it isn't already playing. |
| 3034 m_player->setRate(m_playbackRate); | 3034 webMediaPlayer()->setRate(m_playbackRate); |
|
acolwell GONE FROM CHROMIUM
2014/06/06 05:35:37
Is this call actually still needed? Your WebMediaP
Srirama
2014/06/06 05:56:32
You are right, it is not needed. Initially i thoug
| |
| 3035 updateVolume(); | 3035 updateVolume(); |
| 3036 webMediaPlayer()->play(); | 3036 webMediaPlayer()->play(); |
| 3037 } | 3037 } |
| 3038 | 3038 |
| 3039 if (hasMediaControls()) | 3039 if (hasMediaControls()) |
| 3040 mediaControls()->playbackStarted(); | 3040 mediaControls()->playbackStarted(); |
| 3041 startPlaybackProgressTimer(); | 3041 startPlaybackProgressTimer(); |
| 3042 m_playing = true; | 3042 m_playing = true; |
| 3043 | 3043 |
| 3044 } else { // Should not be playing right now | 3044 } else { // Should not be playing right now |
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3655 visitor->trace(m_error); | 3655 visitor->trace(m_error); |
| 3656 visitor->trace(m_currentSourceNode); | 3656 visitor->trace(m_currentSourceNode); |
| 3657 visitor->trace(m_nextChildNodeToConsider); | 3657 visitor->trace(m_nextChildNodeToConsider); |
| 3658 visitor->trace(m_textTracks); | 3658 visitor->trace(m_textTracks); |
| 3659 visitor->trace(m_textTracksWhenResourceSelectionBegan); | 3659 visitor->trace(m_textTracksWhenResourceSelectionBegan); |
| 3660 WillBeHeapSupplementable<HTMLMediaElement>::trace(visitor); | 3660 WillBeHeapSupplementable<HTMLMediaElement>::trace(visitor); |
| 3661 HTMLElement::trace(visitor); | 3661 HTMLElement::trace(visitor); |
| 3662 } | 3662 } |
| 3663 | 3663 |
| 3664 } | 3664 } |
| OLD | NEW |