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 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 void HTMLMediaElement::scheduleEvent(PassRefPtr<Event> event) | 519 void HTMLMediaElement::scheduleEvent(PassRefPtr<Event> event) |
520 { | 520 { |
521 #if LOG_MEDIA_EVENTS | 521 #if LOG_MEDIA_EVENTS |
522 WTF_LOG(Media, "HTMLMediaElement::scheduleEvent - scheduling '%s'", event->t
ype().ascii().data()); | 522 WTF_LOG(Media, "HTMLMediaElement::scheduleEvent - scheduling '%s'", event->t
ype().ascii().data()); |
523 #endif | 523 #endif |
524 m_asyncEventQueue->enqueueEvent(event); | 524 m_asyncEventQueue->enqueueEvent(event); |
525 } | 525 } |
526 | 526 |
527 void HTMLMediaElement::loadTimerFired(Timer<HTMLMediaElement>*) | 527 void HTMLMediaElement::loadTimerFired(Timer<HTMLMediaElement>*) |
528 { | 528 { |
529 RefPtr<HTMLMediaElement> protect(this); // loadNextSourceChild may fire 'bef
oreload', which can make arbitrary DOM mutations. | |
530 | |
531 if (RuntimeEnabledFeatures::videoTrackEnabled() && (m_pendingActionFlags & L
oadTextTrackResource)) | 529 if (RuntimeEnabledFeatures::videoTrackEnabled() && (m_pendingActionFlags & L
oadTextTrackResource)) |
532 configureTextTracks(); | 530 configureTextTracks(); |
533 | 531 |
534 if (m_pendingActionFlags & LoadMediaResource) { | 532 if (m_pendingActionFlags & LoadMediaResource) { |
535 if (m_loadState == LoadingFromSourceElement) | 533 if (m_loadState == LoadingFromSourceElement) |
536 loadNextSourceChild(); | 534 loadNextSourceChild(); |
537 else | 535 else |
538 loadInternal(); | 536 loadInternal(); |
539 } | 537 } |
540 | 538 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 break; | 576 break; |
579 } | 577 } |
580 | 578 |
581 WTF_LOG(Media, "HTMLMediaElement::canPlayType(%s, %s) -> %s", mimeType.utf8(
).data(), keySystem.utf8().data(), canPlay.utf8().data()); | 579 WTF_LOG(Media, "HTMLMediaElement::canPlayType(%s, %s) -> %s", mimeType.utf8(
).data(), keySystem.utf8().data(), canPlay.utf8().data()); |
582 | 580 |
583 return canPlay; | 581 return canPlay; |
584 } | 582 } |
585 | 583 |
586 void HTMLMediaElement::load() | 584 void HTMLMediaElement::load() |
587 { | 585 { |
588 RefPtr<HTMLMediaElement> protect(this); // loadInternal may result in a 'bef
oreload' event, which can make arbitrary DOM mutations. | |
589 | |
590 WTF_LOG(Media, "HTMLMediaElement::load()"); | 586 WTF_LOG(Media, "HTMLMediaElement::load()"); |
591 | 587 |
592 if (UserGestureIndicator::processingUserGesture()) | 588 if (UserGestureIndicator::processingUserGesture()) |
593 m_userGestureRequiredForPlay = false; | 589 m_userGestureRequiredForPlay = false; |
594 | 590 |
595 prepareForLoad(); | 591 prepareForLoad(); |
596 loadInternal(); | 592 loadInternal(); |
597 prepareToPlay(); | 593 prepareToPlay(); |
598 } | 594 } |
599 | 595 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
698 // The spec doesn't say to block the load event until we actually run the as
ynchronous section | 694 // The spec doesn't say to block the load event until we actually run the as
ynchronous section |
699 // algorithm, but do it now because we won't start that until after the time
r fires and the | 695 // algorithm, but do it now because we won't start that until after the time
r fires and the |
700 // event may have already fired by then. | 696 // event may have already fired by then. |
701 setShouldDelayLoadEvent(true); | 697 setShouldDelayLoadEvent(true); |
702 | 698 |
703 configureMediaControls(); | 699 configureMediaControls(); |
704 } | 700 } |
705 | 701 |
706 void HTMLMediaElement::loadInternal() | 702 void HTMLMediaElement::loadInternal() |
707 { | 703 { |
708 // FIXME: Now that we don't have beforeload events we should make this ASSER
T the opposite. | |
709 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); | |
710 | |
711 // HTMLMediaElement::textTracksAreReady will need "... the text tracks whose
mode was not in the | 704 // HTMLMediaElement::textTracksAreReady will need "... the text tracks whose
mode was not in the |
712 // disabled state when the element's resource selection algorithm last start
ed". | 705 // disabled state when the element's resource selection algorithm last start
ed". |
713 if (RuntimeEnabledFeatures::videoTrackEnabled()) { | 706 if (RuntimeEnabledFeatures::videoTrackEnabled()) { |
714 m_textTracksWhenResourceSelectionBegan.clear(); | 707 m_textTracksWhenResourceSelectionBegan.clear(); |
715 if (m_textTracks) { | 708 if (m_textTracks) { |
716 for (unsigned i = 0; i < m_textTracks->length(); ++i) { | 709 for (unsigned i = 0; i < m_textTracks->length(); ++i) { |
717 TextTrack* track = m_textTracks->item(i); | 710 TextTrack* track = m_textTracks->item(i); |
718 if (track->mode() != TextTrack::disabledKeyword()) | 711 if (track->mode() != TextTrack::disabledKeyword()) |
719 m_textTracksWhenResourceSelectionBegan.append(track); | 712 m_textTracksWhenResourceSelectionBegan.append(track); |
720 } | 713 } |
(...skipping 2926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3647 { | 3640 { |
3648 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); | 3641 m_mediaSource->setWebMediaSourceAndOpen(adoptPtr(webMediaSource)); |
3649 } | 3642 } |
3650 | 3643 |
3651 bool HTMLMediaElement::isInteractiveContent() const | 3644 bool HTMLMediaElement::isInteractiveContent() const |
3652 { | 3645 { |
3653 return fastHasAttribute(controlsAttr); | 3646 return fastHasAttribute(controlsAttr); |
3654 } | 3647 } |
3655 | 3648 |
3656 } | 3649 } |
OLD | NEW |