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

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

Issue 142413014: Use isFinishedParsingChildren() in HTMLMediaElement (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 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/HTMLTagNames.in » ('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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 { 246 {
247 ASSERT(!s_mediaStreamRegistry); 247 ASSERT(!s_mediaStreamRegistry);
248 s_mediaStreamRegistry = registry; 248 s_mediaStreamRegistry = registry;
249 } 249 }
250 250
251 bool HTMLMediaElement::isMediaStreamURL(const String& url) 251 bool HTMLMediaElement::isMediaStreamURL(const String& url)
252 { 252 {
253 return s_mediaStreamRegistry ? s_mediaStreamRegistry->contains(url) : false; 253 return s_mediaStreamRegistry ? s_mediaStreamRegistry->contains(url) : false;
254 } 254 }
255 255
256 HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document& docum ent, bool createdByParser) 256 HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document& docum ent)
257 : HTMLElement(tagName, document) 257 : HTMLElement(tagName, document)
258 , ActiveDOMObject(&document) 258 , ActiveDOMObject(&document)
259 , m_loadTimer(this, &HTMLMediaElement::loadTimerFired) 259 , m_loadTimer(this, &HTMLMediaElement::loadTimerFired)
260 , m_progressEventTimer(this, &HTMLMediaElement::progressEventTimerFired) 260 , m_progressEventTimer(this, &HTMLMediaElement::progressEventTimerFired)
261 , m_playbackProgressTimer(this, &HTMLMediaElement::playbackProgressTimerFire d) 261 , m_playbackProgressTimer(this, &HTMLMediaElement::playbackProgressTimerFire d)
262 , m_playedTimeRanges() 262 , m_playedTimeRanges()
263 , m_asyncEventQueue(GenericEventQueue::create(this)) 263 , m_asyncEventQueue(GenericEventQueue::create(this))
264 , m_playbackRate(1.0f) 264 , m_playbackRate(1.0f)
265 , m_defaultPlaybackRate(1.0f) 265 , m_defaultPlaybackRate(1.0f)
266 , m_networkState(NETWORK_EMPTY) 266 , m_networkState(NETWORK_EMPTY)
(...skipping 25 matching lines...) Expand all
292 , m_muted(false) 292 , m_muted(false)
293 , m_paused(true) 293 , m_paused(true)
294 , m_seeking(false) 294 , m_seeking(false)
295 , m_sentStalledEvent(false) 295 , m_sentStalledEvent(false)
296 , m_sentEndEvent(false) 296 , m_sentEndEvent(false)
297 , m_pausedInternal(false) 297 , m_pausedInternal(false)
298 , m_closedCaptionsVisible(false) 298 , m_closedCaptionsVisible(false)
299 , m_loadInitiatedByUserGesture(false) 299 , m_loadInitiatedByUserGesture(false)
300 , m_completelyLoaded(false) 300 , m_completelyLoaded(false)
301 , m_havePreparedToPlay(false) 301 , m_havePreparedToPlay(false)
302 , m_parsingInProgress(createdByParser)
303 , m_tracksAreReady(true) 302 , m_tracksAreReady(true)
304 , m_haveVisibleTextTrack(false) 303 , m_haveVisibleTextTrack(false)
305 , m_processingPreferenceChange(false) 304 , m_processingPreferenceChange(false)
306 , m_lastTextTrackUpdateTime(-1) 305 , m_lastTextTrackUpdateTime(-1)
307 , m_textTracks(0) 306 , m_textTracks(0)
308 , m_ignoreTrackDisplayUpdate(0) 307 , m_ignoreTrackDisplayUpdate(0)
309 #if ENABLE(WEB_AUDIO) 308 #if ENABLE(WEB_AUDIO)
310 , m_audioSourceNode(0) 309 , m_audioSourceNode(0)
311 #endif 310 #endif
312 , m_emeMode(EmeModeNotSelected) 311 , m_emeMode(EmeModeNotSelected)
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 setMediaGroup(value); 457 setMediaGroup(value);
459 else if (name == onbeforeloadAttr) 458 else if (name == onbeforeloadAttr)
460 setAttributeEventListener(EventTypeNames::beforeload, createAttributeEve ntListener(this, name, value)); 459 setAttributeEventListener(EventTypeNames::beforeload, createAttributeEve ntListener(this, name, value));
461 else 460 else
462 HTMLElement::parseAttribute(name, value); 461 HTMLElement::parseAttribute(name, value);
463 } 462 }
464 463
465 void HTMLMediaElement::finishParsingChildren() 464 void HTMLMediaElement::finishParsingChildren()
466 { 465 {
467 HTMLElement::finishParsingChildren(); 466 HTMLElement::finishParsingChildren();
468 m_parsingInProgress = false;
469 467
470 if (!RuntimeEnabledFeatures::videoTrackEnabled()) 468 if (!RuntimeEnabledFeatures::videoTrackEnabled())
471 return; 469 return;
472 470
473 for (Node* node = firstChild(); node; node = node->nextSibling()) { 471 for (Node* node = firstChild(); node; node = node->nextSibling()) {
474 if (node->hasTagName(trackTag)) { 472 if (node->hasTagName(trackTag)) {
475 scheduleDelayedAction(LoadTextTrackResource); 473 scheduleDelayedAction(LoadTextTrackResource);
476 break; 474 break;
477 } 475 }
478 } 476 }
(...skipping 2187 matching lines...) Expand 10 before | Expand all | Expand 10 after
2666 // then the user agent must add the track element's corresponding text track to the 2664 // then the user agent must add the track element's corresponding text track to the
2667 // media element's list of text tracks ... [continues in TextTrackList::appe nd] 2665 // media element's list of text tracks ... [continues in TextTrackList::appe nd]
2668 RefPtr<TextTrack> textTrack = trackElement->track(); 2666 RefPtr<TextTrack> textTrack = trackElement->track();
2669 if (!textTrack) 2667 if (!textTrack)
2670 return; 2668 return;
2671 2669
2672 addTrack(textTrack.get()); 2670 addTrack(textTrack.get());
2673 2671
2674 // Do not schedule the track loading until parsing finishes so we don't star t before all tracks 2672 // Do not schedule the track loading until parsing finishes so we don't star t before all tracks
2675 // in the markup have been added. 2673 // in the markup have been added.
2676 if (!m_parsingInProgress) 2674 if (isFinishedParsingChildren())
2677 scheduleDelayedAction(LoadTextTrackResource); 2675 scheduleDelayedAction(LoadTextTrackResource);
2678 2676
2679 if (hasMediaControls()) 2677 if (hasMediaControls())
2680 mediaControls()->closedCaptionTracksChanged(); 2678 mediaControls()->closedCaptionTracksChanged();
2681 } 2679 }
2682 2680
2683 void HTMLMediaElement::didRemoveTrack(HTMLTrackElement* trackElement) 2681 void HTMLMediaElement::didRemoveTrack(HTMLTrackElement* trackElement)
2684 { 2682 {
2685 ASSERT(trackElement->hasTagName(trackTag)); 2683 ASSERT(trackElement->hasTagName(trackTag));
2686 2684
(...skipping 1294 matching lines...) Expand 10 before | Expand all | Expand 10 after
3981 { 3979 {
3982 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); 3980 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource));
3983 } 3981 }
3984 3982
3985 bool HTMLMediaElement::isInteractiveContent() const 3983 bool HTMLMediaElement::isInteractiveContent() const
3986 { 3984 {
3987 return fastHasAttribute(controlsAttr); 3985 return fastHasAttribute(controlsAttr);
3988 } 3986 }
3989 3987
3990 } 3988 }
OLDNEW
« no previous file with comments | « Source/core/html/HTMLMediaElement.h ('k') | Source/core/html/HTMLTagNames.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698