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

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

Issue 539103002: Seeking media fragment URI before loadeddata event (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@HAVE_NOTHING
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
« no previous file with comments | « Source/core/html/HTMLMediaElement.h ('k') | no next file » | 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 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 , m_seeking(false) 348 , m_seeking(false)
349 , m_sentStalledEvent(false) 349 , m_sentStalledEvent(false)
350 , m_sentEndEvent(false) 350 , m_sentEndEvent(false)
351 , m_pausedInternal(false) 351 , m_pausedInternal(false)
352 , m_closedCaptionsVisible(false) 352 , m_closedCaptionsVisible(false)
353 , m_completelyLoaded(false) 353 , m_completelyLoaded(false)
354 , m_havePreparedToPlay(false) 354 , m_havePreparedToPlay(false)
355 , m_tracksAreReady(true) 355 , m_tracksAreReady(true)
356 , m_haveVisibleTextTrack(false) 356 , m_haveVisibleTextTrack(false)
357 , m_processingPreferenceChange(false) 357 , m_processingPreferenceChange(false)
358 , m_jumped(false)
358 #if ENABLE(OILPAN) 359 #if ENABLE(OILPAN)
359 , m_isFinalizing(false) 360 , m_isFinalizing(false)
360 , m_closeMediaSourceWhenFinalizing(false) 361 , m_closeMediaSourceWhenFinalizing(false)
361 #endif 362 #endif
362 , m_lastTextTrackUpdateTime(-1) 363 , m_lastTextTrackUpdateTime(-1)
363 , m_audioTracks(AudioTrackList::create(*this)) 364 , m_audioTracks(AudioTrackList::create(*this))
364 , m_videoTracks(VideoTrackList::create(*this)) 365 , m_videoTracks(VideoTrackList::create(*this))
365 , m_textTracks(nullptr) 366 , m_textTracks(nullptr)
366 , m_ignoreTrackDisplayUpdate(0) 367 , m_ignoreTrackDisplayUpdate(0)
367 #if ENABLE(WEB_AUDIO) 368 #if ENABLE(WEB_AUDIO)
(...skipping 1449 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 1818
1818 selectInitialTracksIfNecessary(); 1819 selectInitialTracksIfNecessary();
1819 1820
1820 m_duration = duration(); 1821 m_duration = duration();
1821 scheduleEvent(EventTypeNames::durationchange); 1822 scheduleEvent(EventTypeNames::durationchange);
1822 1823
1823 if (isHTMLVideoElement()) 1824 if (isHTMLVideoElement())
1824 scheduleEvent(EventTypeNames::resize); 1825 scheduleEvent(EventTypeNames::resize);
1825 scheduleEvent(EventTypeNames::loadedmetadata); 1826 scheduleEvent(EventTypeNames::loadedmetadata);
1826 1827
1828 m_jumped = false;
1827 if (m_defaultPlaybackStartPosition > 0) { 1829 if (m_defaultPlaybackStartPosition > 0) {
1828 seek(m_defaultPlaybackStartPosition); 1830 seek(m_defaultPlaybackStartPosition);
1831 m_jumped = true;
1829 m_defaultPlaybackStartPosition = 0; 1832 m_defaultPlaybackStartPosition = 0;
1830 } 1833 }
1831 1834
1832 if (hasMediaControls()) 1835 if (hasMediaControls())
1833 mediaControls()->reset(); 1836 mediaControls()->reset();
1834 if (renderer()) 1837 if (renderer())
1835 renderer()->updateFromElement(); 1838 renderer()->updateFromElement();
1836 } 1839 }
1837 1840
1838 bool shouldUpdateDisplayState = false; 1841 bool shouldUpdateDisplayState = false;
1839 1842
1840 if (m_readyState >= HAVE_CURRENT_DATA && oldState < HAVE_CURRENT_DATA && !m_ haveFiredLoadedData) { 1843 if (m_readyState >= HAVE_CURRENT_DATA && oldState < HAVE_CURRENT_DATA && !m_ haveFiredLoadedData) {
1841 m_haveFiredLoadedData = true; 1844 m_haveFiredLoadedData = true;
1842 shouldUpdateDisplayState = true; 1845 shouldUpdateDisplayState = true;
1843 scheduleEvent(EventTypeNames::loadeddata); 1846 scheduleEvent(EventTypeNames::loadeddata);
1844 setShouldDelayLoadEvent(false); 1847 setShouldDelayLoadEvent(false);
1845 applyMediaFragmentURI(); 1848 if (!m_jumped)
1849 applyMediaFragmentURI();
amogh.bihani 2014/09/04 13:44:18 Could you help me understand why this is here? I m
philipj_slow 2014/09/04 13:46:45 Sorry, I didn't see this comment at first. You're
1846 } 1850 }
1847 1851
1848 bool isPotentiallyPlaying = potentiallyPlaying(); 1852 bool isPotentiallyPlaying = potentiallyPlaying();
1849 if (m_readyState == HAVE_FUTURE_DATA && oldState <= HAVE_CURRENT_DATA && tra cksAreReady) { 1853 if (m_readyState == HAVE_FUTURE_DATA && oldState <= HAVE_CURRENT_DATA && tra cksAreReady) {
1850 scheduleEvent(EventTypeNames::canplay); 1854 scheduleEvent(EventTypeNames::canplay);
1851 if (isPotentiallyPlaying) 1855 if (isPotentiallyPlaying)
1852 scheduleEvent(EventTypeNames::playing); 1856 scheduleEvent(EventTypeNames::playing);
1853 shouldUpdateDisplayState = true; 1857 shouldUpdateDisplayState = true;
1854 } 1858 }
1855 1859
(...skipping 2035 matching lines...) Expand 10 before | Expand all | Expand 10 after
3891 m_fragmentEndTime = MediaPlayer::invalidTime(); 3895 m_fragmentEndTime = MediaPlayer::invalidTime();
3892 3896
3893 // FIXME: Add support for selecting tracks by ID with the Media Fragments tr ack dimension. 3897 // FIXME: Add support for selecting tracks by ID with the Media Fragments tr ack dimension.
3894 3898
3895 if (m_fragmentStartTime != MediaPlayer::invalidTime() && m_readyState < HAVE _FUTURE_DATA) 3899 if (m_fragmentStartTime != MediaPlayer::invalidTime() && m_readyState < HAVE _FUTURE_DATA)
3896 prepareToPlay(); 3900 prepareToPlay();
3897 } 3901 }
3898 3902
3899 void HTMLMediaElement::applyMediaFragmentURI() 3903 void HTMLMediaElement::applyMediaFragmentURI()
3900 { 3904 {
3905 ASSERT(!m_jumped);
3906
3901 if (m_fragmentStartTime != MediaPlayer::invalidTime()) { 3907 if (m_fragmentStartTime != MediaPlayer::invalidTime()) {
3902 m_sentEndEvent = false; 3908 m_sentEndEvent = false;
3903 UseCounter::count(document(), UseCounter::HTMLMediaElementSeekToFragment Start); 3909 UseCounter::count(document(), UseCounter::HTMLMediaElementSeekToFragment Start);
3904 seek(m_fragmentStartTime); 3910 seek(m_fragmentStartTime);
3911 m_jumped = true;
3905 } 3912 }
3906 } 3913 }
3907 3914
3908 WebMediaPlayer::CORSMode HTMLMediaElement::corsMode() const 3915 WebMediaPlayer::CORSMode HTMLMediaElement::corsMode() const
3909 { 3916 {
3910 const AtomicString& crossOriginMode = fastGetAttribute(crossoriginAttr); 3917 const AtomicString& crossOriginMode = fastGetAttribute(crossoriginAttr);
3911 if (crossOriginMode.isNull()) 3918 if (crossOriginMode.isNull())
3912 return WebMediaPlayer::CORSModeUnspecified; 3919 return WebMediaPlayer::CORSModeUnspecified;
3913 if (equalIgnoringCase(crossOriginMode, "use-credentials")) 3920 if (equalIgnoringCase(crossOriginMode, "use-credentials"))
3914 return WebMediaPlayer::CORSModeUseCredentials; 3921 return WebMediaPlayer::CORSModeUseCredentials;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
4001 4008
4002 #if ENABLE(WEB_AUDIO) 4009 #if ENABLE(WEB_AUDIO)
4003 void HTMLMediaElement::clearWeakMembers(Visitor* visitor) 4010 void HTMLMediaElement::clearWeakMembers(Visitor* visitor)
4004 { 4011 {
4005 if (!visitor->isAlive(m_audioSourceNode) && audioSourceProvider()) 4012 if (!visitor->isAlive(m_audioSourceNode) && audioSourceProvider())
4006 audioSourceProvider()->setClient(0); 4013 audioSourceProvider()->setClient(0);
4007 } 4014 }
4008 #endif 4015 #endif
4009 4016
4010 } 4017 }
OLDNEW
« no previous file with comments | « Source/core/html/HTMLMediaElement.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698