diff options
Diffstat (limited to 'src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp')
-rw-r--r-- | src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp index c8f814f..2f09997 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp @@ -28,6 +28,7 @@ #if ENABLE(VIDEO) #include "HTMLSourceElement.h" +#include "EventNames.h" #include "HTMLDocument.h" #include "HTMLMediaElement.h" #include "HTMLNames.h" @@ -40,6 +41,7 @@ using namespace HTMLNames; HTMLSourceElement::HTMLSourceElement(const QualifiedName& tagName, Document* doc) : HTMLElement(tagName, doc) + , m_errorEventTimer(this, &HTMLSourceElement::errorEventTimerFired) { ASSERT(hasTagName(sourceTag)); } @@ -53,7 +55,7 @@ void HTMLSourceElement::insertedIntoDocument() HTMLElement::insertedIntoDocument(); if (parentNode() && (parentNode()->hasTagName(audioTag) || parentNode()->hasTagName(videoTag))) { HTMLMediaElement* media = static_cast<HTMLMediaElement*>(parentNode()); - if (media->networkState() == HTMLMediaElement::EMPTY) + if (media->networkState() == HTMLMediaElement::NETWORK_EMPTY) media->scheduleLoad(); } } @@ -88,5 +90,23 @@ void HTMLSourceElement::setType(const String& type) setAttribute(typeAttr, type); } +void HTMLSourceElement::scheduleErrorEvent() +{ + if (m_errorEventTimer.isActive()) + return; + + m_errorEventTimer.startOneShot(0); +} + +void HTMLSourceElement::cancelPendingErrorEvent() +{ + m_errorEventTimer.stop(); +} + +void HTMLSourceElement::errorEventTimerFired(Timer<HTMLSourceElement>*) +{ + dispatchEvent(eventNames().errorEvent, false, true); +} + } #endif |