summaryrefslogtreecommitdiffstats
path: root/WebCore/html/parser/HTMLElementStack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/parser/HTMLElementStack.cpp')
-rw-r--r--WebCore/html/parser/HTMLElementStack.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/WebCore/html/parser/HTMLElementStack.cpp b/WebCore/html/parser/HTMLElementStack.cpp
index 123778d..6b96291 100644
--- a/WebCore/html/parser/HTMLElementStack.cpp
+++ b/WebCore/html/parser/HTMLElementStack.cpp
@@ -113,6 +113,12 @@ inline bool isButtonScopeMarker(Element* element)
|| element->hasTagName(buttonTag);
}
+inline bool isSelectScopeMarker(Element* element)
+{
+ return !element->hasTagName(optgroupTag)
+ && !element->hasTagName(optionTag);
+}
+
}
HTMLElementStack::ElementRecord::ElementRecord(PassRefPtr<Element> element, PassOwnPtr<ElementRecord> next)
@@ -486,6 +492,17 @@ bool HTMLElementStack::inButtonScope(const QualifiedName& tagName) const
return inButtonScope(tagName.localName());
}
+bool HTMLElementStack::inSelectScope(const AtomicString& targetTag) const
+{
+ return inScopeCommon<isSelectScopeMarker>(m_top.get(), targetTag);
+}
+
+bool HTMLElementStack::inSelectScope(const QualifiedName& tagName) const
+{
+ // FIXME: Is localName() right for non-html elements?
+ return inSelectScope(tagName.localName());
+}
+
Element* HTMLElementStack::htmlElement() const
{
ASSERT(m_htmlElement);