diff options
author | Leon Clarke <leonclarke@google.com> | 2010-07-15 12:03:35 +0100 |
---|---|---|
committer | Leon Clarke <leonclarke@google.com> | 2010-07-20 16:57:23 +0100 |
commit | e458d70a0d18538346f41b503114c9ebe6b2ce12 (patch) | |
tree | 86f1637deca2c524432a822e5fcedd4bef221091 /WebCore/html/HTMLToken.h | |
parent | f43eabc081f7ce6af24b9df4953498a3cd6ca24d (diff) | |
download | external_webkit-e458d70a0d18538346f41b503114c9ebe6b2ce12.zip external_webkit-e458d70a0d18538346f41b503114c9ebe6b2ce12.tar.gz external_webkit-e458d70a0d18538346f41b503114c9ebe6b2ce12.tar.bz2 |
Merge WebKit at r63173 : Initial merge by git.
Change-Id: Ife5af0c7c6261fbbc8ae6bc08c390efa9ef10b44
Diffstat (limited to 'WebCore/html/HTMLToken.h')
-rw-r--r-- | WebCore/html/HTMLToken.h | 49 |
1 files changed, 44 insertions, 5 deletions
diff --git a/WebCore/html/HTMLToken.h b/WebCore/html/HTMLToken.h index 741f5cd..c2db87d 100644 --- a/WebCore/html/HTMLToken.h +++ b/WebCore/html/HTMLToken.h @@ -28,6 +28,7 @@ #include "NamedNodeMap.h" #include <wtf/Noncopyable.h> +#include <wtf/PassOwnPtr.h> #include <wtf/Vector.h> namespace WebCore { @@ -173,6 +174,12 @@ public: return m_selfClosing; } + void setSelfClosing() + { + ASSERT(m_type == HTMLToken::StartTag || m_type == HTMLToken::EndTag); + m_selfClosing = true; + } + const AttributeList& attributes() const { ASSERT(m_type == StartTag || m_type == EndTag); @@ -306,7 +313,7 @@ public: break; case HTMLToken::DOCTYPE: m_name = AtomicString(token.name().data(), token.name().size()); - m_doctypeData.set(token.m_doctypeData.release()); + m_doctypeData = token.m_doctypeData.release(); break; case HTMLToken::EndOfFile: break; @@ -337,9 +344,17 @@ public: } } - AtomicHTMLToken(HTMLToken::Type type, AtomicString name) + AtomicHTMLToken(HTMLToken::Type type, AtomicString name, PassRefPtr<NamedNodeMap> attributes = 0) : m_type(type) , m_name(name) + , m_attributes(attributes) + { + ASSERT(usesName()); + } + + explicit AtomicHTMLToken(const String& characters) + : m_type(HTMLToken::Character) + , m_data(characters) { } @@ -347,13 +362,13 @@ public: const AtomicString& name() const { - ASSERT(m_type == HTMLToken::StartTag || m_type == HTMLToken::EndTag || m_type == HTMLToken::DOCTYPE); + ASSERT(usesName()); return m_name; } void setName(const AtomicString& name) { - ASSERT(m_type == HTMLToken::StartTag || m_type == HTMLToken::EndTag || m_type == HTMLToken::DOCTYPE); + ASSERT(usesName()); m_name = name; } @@ -363,12 +378,26 @@ public: return m_selfClosing; } + Attribute* getAttributeItem(const QualifiedName& attributeName) + { + ASSERT(usesAttributes()); + if (!m_attributes) + return 0; + return m_attributes->getAttributeItem(attributeName); + } + NamedNodeMap* attributes() const { - ASSERT(m_type == HTMLToken::StartTag || m_type == HTMLToken::EndTag); + ASSERT(usesAttributes()); return m_attributes.get(); } + PassRefPtr<NamedNodeMap> takeAtributes() + { + ASSERT(usesAttributes()); + return m_attributes.release(); + } + const String& characters() const { ASSERT(m_type == HTMLToken::Character); @@ -404,6 +433,16 @@ public: private: HTMLToken::Type m_type; + bool usesName() const + { + return m_type == HTMLToken::StartTag || m_type == HTMLToken::EndTag || m_type == HTMLToken::DOCTYPE; + } + + bool usesAttributes() const + { + return m_type == HTMLToken::StartTag || m_type == HTMLToken::EndTag; + } + // "name" for DOCTYPE, StartTag, and EndTag AtomicString m_name; |