summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp')
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp22
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