diff options
Diffstat (limited to 'WebCore/html/parser/HTMLElementStack.cpp')
-rw-r--r-- | WebCore/html/parser/HTMLElementStack.cpp | 17 |
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); |