summaryrefslogtreecommitdiffstats
path: root/WebCore/loader/MediaDocument.cpp
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2010-06-28 16:42:48 +0100
committerKristian Monsen <kristianm@google.com>2010-07-02 10:29:56 +0100
commit06ea8e899e48f1f2f396b70e63fae369f2f23232 (patch)
tree20c1428cd05c76f32394ab354ea35ed99acd86d8 /WebCore/loader/MediaDocument.cpp
parent72aad67af14193199e29cdd5c4ddc095a8b9a8a8 (diff)
downloadexternal_webkit-06ea8e899e48f1f2f396b70e63fae369f2f23232.zip
external_webkit-06ea8e899e48f1f2f396b70e63fae369f2f23232.tar.gz
external_webkit-06ea8e899e48f1f2f396b70e63fae369f2f23232.tar.bz2
Merge WebKit at r61871: Initial merge by git.
Change-Id: I6cff43abca9cc4782e088a469ad4f03f166a65d5
Diffstat (limited to 'WebCore/loader/MediaDocument.cpp')
-rw-r--r--WebCore/loader/MediaDocument.cpp61
1 files changed, 18 insertions, 43 deletions
diff --git a/WebCore/loader/MediaDocument.cpp b/WebCore/loader/MediaDocument.cpp
index e505c2f..97ca783 100644
--- a/WebCore/loader/MediaDocument.cpp
+++ b/WebCore/loader/MediaDocument.cpp
@@ -29,11 +29,8 @@
#include "MediaDocument.h"
#include "DocumentLoader.h"
-#include "Element.h"
-#include "Event.h"
#include "EventNames.h"
#include "Frame.h"
-#include "FrameLoader.h"
#include "FrameLoaderClient.h"
#include "HTMLEmbedElement.h"
#include "HTMLNames.h"
@@ -41,51 +38,41 @@
#include "KeyboardEvent.h"
#include "MainResourceLoader.h"
#include "NodeList.h"
-#include "Page.h"
-#include "SegmentedString.h"
-#include "Settings.h"
-#include "Text.h"
-#include "XMLDocumentParser.h"
+#include "RawDataDocumentParser.h"
namespace WebCore {
using namespace HTMLNames;
-class MediaDocumentParser : public DocumentParser {
+// FIXME: Share more code with PluginDocumentParser.
+class MediaDocumentParser : public RawDataDocumentParser {
public:
- MediaDocumentParser(Document* doc) : m_doc(doc), m_mediaElement(0) {}
-
+ MediaDocumentParser(Document* document)
+ : RawDataDocumentParser(document)
+ , m_mediaElement(0)
+ {
+ }
+
private:
- virtual void write(const SegmentedString&, bool appendData);
- virtual void finish();
- virtual bool isWaitingForScripts() const;
-
- virtual bool wantsRawData() const { return true; }
virtual bool writeRawData(const char* data, int len);
-
+
void createDocumentStructure();
- Document* m_doc;
HTMLMediaElement* m_mediaElement;
};
-
-void MediaDocumentParser::write(const SegmentedString&, bool)
-{
- ASSERT_NOT_REACHED();
-}
void MediaDocumentParser::createDocumentStructure()
{
ExceptionCode ec;
- RefPtr<Element> rootElement = m_doc->createElement(htmlTag, false);
- m_doc->appendChild(rootElement, ec);
+ RefPtr<Element> rootElement = document()->createElement(htmlTag, false);
+ document()->appendChild(rootElement, ec);
- RefPtr<Element> body = m_doc->createElement(bodyTag, false);
+ RefPtr<Element> body = document()->createElement(bodyTag, false);
body->setAttribute(styleAttr, "background-color: rgb(38,38,38);");
rootElement->appendChild(body, ec);
- RefPtr<Element> mediaElement = m_doc->createElement(videoTag, false);
+ RefPtr<Element> mediaElement = document()->createElement(videoTag, false);
m_mediaElement = static_cast<HTMLVideoElement*>(mediaElement.get());
m_mediaElement->setAttribute(controlsAttr, "");
@@ -93,11 +80,11 @@ void MediaDocumentParser::createDocumentStructure()
m_mediaElement->setAttribute(styleAttr, "margin: auto; position: absolute; top: 0; right: 0; bottom: 0; left: 0;");
m_mediaElement->setAttribute(nameAttr, "media");
- m_mediaElement->setSrc(m_doc->url());
+ m_mediaElement->setSrc(document()->url());
body->appendChild(mediaElement, ec);
- Frame* frame = m_doc->frame();
+ Frame* frame = document()->frame();
if (!frame)
return;
@@ -114,21 +101,9 @@ bool MediaDocumentParser::writeRawData(const char*, int)
finish();
return false;
}
-
-void MediaDocumentParser::finish()
-{
- if (!m_parserStopped)
- m_doc->finishedParsing();
-}
-
-bool MediaDocumentParser::isWaitingForScripts() const
-{
- // A media document is never waiting for scripts
- return false;
-}
-MediaDocument::MediaDocument(Frame* frame)
- : HTMLDocument(frame)
+MediaDocument::MediaDocument(Frame* frame, const KURL& url)
+ : HTMLDocument(frame, url)
, m_replaceMediaElementTimer(this, &MediaDocument::replaceMediaElementTimerFired)
{
setParseMode(Compat);