| 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 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 void HTMLMediaElement::scheduleNextSourceChild() | 541 void HTMLMediaElement::scheduleNextSourceChild() |
| 542 { | 542 { |
| 543 // Schedule the timer to try the next <source> element WITHOUT resetting sta
te ala prepareForLoad. | 543 // Schedule the timer to try the next <source> element WITHOUT resetting sta
te ala prepareForLoad. |
| 544 m_pendingActionFlags |= LoadMediaResource; | 544 m_pendingActionFlags |= LoadMediaResource; |
| 545 m_loadTimer.startOneShot(0); | 545 m_loadTimer.startOneShot(0); |
| 546 } | 546 } |
| 547 | 547 |
| 548 void HTMLMediaElement::scheduleEvent(const AtomicString& eventName) | 548 void HTMLMediaElement::scheduleEvent(const AtomicString& eventName) |
| 549 { | 549 { |
| 550 #if LOG_MEDIA_EVENTS | 550 #if LOG_MEDIA_EVENTS |
| 551 WTF_LOG(Media, "HTMLMediaElement::scheduleEvent - scheduling '%s'", eventNam
e.string().ascii().data()); | 551 WTF_LOG(Media, "HTMLMediaElement::scheduleEvent - scheduling '%s'", eventNam
e.ascii().data()); |
| 552 #endif | 552 #endif |
| 553 m_asyncEventQueue->enqueueEvent(Event::createCancelable(eventName)); | 553 m_asyncEventQueue->enqueueEvent(Event::createCancelable(eventName)); |
| 554 } | 554 } |
| 555 | 555 |
| 556 void HTMLMediaElement::loadTimerFired(Timer<HTMLMediaElement>*) | 556 void HTMLMediaElement::loadTimerFired(Timer<HTMLMediaElement>*) |
| 557 { | 557 { |
| 558 RefPtr<HTMLMediaElement> protect(this); // loadNextSourceChild may fire 'bef
oreload', which can make arbitrary DOM mutations. | 558 RefPtr<HTMLMediaElement> protect(this); // loadNextSourceChild may fire 'bef
oreload', which can make arbitrary DOM mutations. |
| 559 | 559 |
| 560 if (RuntimeEnabledFeatures::videoTrackEnabled() && (m_pendingActionFlags & L
oadTextTrackResource)) | 560 if (RuntimeEnabledFeatures::videoTrackEnabled() && (m_pendingActionFlags & L
oadTextTrackResource)) |
| 561 configureTextTracks(); | 561 configureTextTracks(); |
| (...skipping 1514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2076 return "auto"; | 2076 return "auto"; |
| 2077 break; | 2077 break; |
| 2078 } | 2078 } |
| 2079 | 2079 |
| 2080 ASSERT_NOT_REACHED(); | 2080 ASSERT_NOT_REACHED(); |
| 2081 return String(); | 2081 return String(); |
| 2082 } | 2082 } |
| 2083 | 2083 |
| 2084 void HTMLMediaElement::setPreload(const AtomicString& preload) | 2084 void HTMLMediaElement::setPreload(const AtomicString& preload) |
| 2085 { | 2085 { |
| 2086 WTF_LOG(Media, "HTMLMediaElement::setPreload(%s)", preload.string().utf8().d
ata()); | 2086 WTF_LOG(Media, "HTMLMediaElement::setPreload(%s)", preload.utf8().data()); |
| 2087 setAttribute(preloadAttr, preload); | 2087 setAttribute(preloadAttr, preload); |
| 2088 } | 2088 } |
| 2089 | 2089 |
| 2090 void HTMLMediaElement::play() | 2090 void HTMLMediaElement::play() |
| 2091 { | 2091 { |
| 2092 WTF_LOG(Media, "HTMLMediaElement::play()"); | 2092 WTF_LOG(Media, "HTMLMediaElement::play()"); |
| 2093 | 2093 |
| 2094 if (userGestureRequiredForRateChange() && !UserGestureIndicator::processingU
serGesture()) | 2094 if (userGestureRequiredForRateChange() && !UserGestureIndicator::processingU
serGesture()) |
| 2095 return; | 2095 return; |
| 2096 if (UserGestureIndicator::processingUserGesture()) | 2096 if (UserGestureIndicator::processingUserGesture()) |
| (...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2872 WTF_LOG(Media, "HTMLMediaElement::selectNextSourceChild - 'src' is %
s", urlForLoggingMedia(mediaURL).utf8().data()); | 2872 WTF_LOG(Media, "HTMLMediaElement::selectNextSourceChild - 'src' is %
s", urlForLoggingMedia(mediaURL).utf8().data()); |
| 2873 #endif | 2873 #endif |
| 2874 if (mediaURL.isEmpty()) | 2874 if (mediaURL.isEmpty()) |
| 2875 goto check_again; | 2875 goto check_again; |
| 2876 | 2876 |
| 2877 if (source->fastHasAttribute(mediaAttr)) { | 2877 if (source->fastHasAttribute(mediaAttr)) { |
| 2878 MediaQueryEvaluator screenEval("screen", document().frame(), rendere
r() ? renderer()->style() : 0); | 2878 MediaQueryEvaluator screenEval("screen", document().frame(), rendere
r() ? renderer()->style() : 0); |
| 2879 RefPtr<MediaQuerySet> media = MediaQuerySet::create(source->media())
; | 2879 RefPtr<MediaQuerySet> media = MediaQuerySet::create(source->media())
; |
| 2880 #if !LOG_DISABLED | 2880 #if !LOG_DISABLED |
| 2881 if (shouldLog) | 2881 if (shouldLog) |
| 2882 WTF_LOG(Media, "HTMLMediaElement::selectNextSourceChild - 'media
' is %s", source->media().string().utf8().data()); | 2882 WTF_LOG(Media, "HTMLMediaElement::selectNextSourceChild - 'media
' is %s", source->media().utf8().data()); |
| 2883 #endif | 2883 #endif |
| 2884 if (!screenEval.eval(media.get())) { | 2884 if (!screenEval.eval(media.get())) { |
| 2885 UseCounter::count(document(), UseCounter::SourceElementNonMatchi
ngMedia); | 2885 UseCounter::count(document(), UseCounter::SourceElementNonMatchi
ngMedia); |
| 2886 goto check_again; | 2886 goto check_again; |
| 2887 } | 2887 } |
| 2888 } | 2888 } |
| 2889 | 2889 |
| 2890 type = source->type(); | 2890 type = source->type(); |
| 2891 // FIXME(82965): Add support for keySystem in <source> and set system fr
om source. | 2891 // FIXME(82965): Add support for keySystem in <source> and set system fr
om source. |
| 2892 if (type.isEmpty() && mediaURL.protocolIsData()) | 2892 if (type.isEmpty() && mediaURL.protocolIsData()) |
| (...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3910 if (m_webLayer) | 3910 if (m_webLayer) |
| 3911 m_webLayer->setOpaque(m_opaque); | 3911 m_webLayer->setOpaque(m_opaque); |
| 3912 } | 3912 } |
| 3913 | 3913 |
| 3914 bool HTMLMediaElement::isInteractiveContent() const | 3914 bool HTMLMediaElement::isInteractiveContent() const |
| 3915 { | 3915 { |
| 3916 return fastHasAttribute(controlsAttr); | 3916 return fastHasAttribute(controlsAttr); |
| 3917 } | 3917 } |
| 3918 | 3918 |
| 3919 } | 3919 } |
| OLD | NEW |