// http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#mathml-text-integration-point bool HTMLElementStack::isMathMLTextIntegrationPoint(HTMLStackItem& item) { return item.hasTagName(MathMLNames::miTag) || item.hasTagName(MathMLNames::moTag) || item.hasTagName(MathMLNames::mnTag) || item.hasTagName(MathMLNames::msTag) || item.hasTagName(MathMLNames::mtextTag); }
// http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#html-integration-point bool HTMLElementStack::isHTMLIntegrationPoint(HTMLStackItem& item) { if (item.hasTagName(MathMLNames::annotation_xmlTag)) { const Attribute* encodingAttr = item.findAttribute(MathMLNames::encodingAttr); if (encodingAttr) { const String& encoding = encodingAttr->value(); return equalLettersIgnoringASCIICase(encoding, "text/html") || equalLettersIgnoringASCIICase(encoding, "application/xhtml+xml"); } return false; } return item.hasTagName(SVGNames::foreignObjectTag) || item.hasTagName(SVGNames::descTag) || item.hasTagName(SVGNames::titleTag); }
bool inScopeCommon(HTMLElementStack::ElementRecord* top, const QualifiedName& targetTag) { for (HTMLElementStack::ElementRecord* pos = top; pos; pos = pos->next()) { HTMLStackItem* item = pos->stackItem().get(); if (item->hasTagName(targetTag)) return true; if (isMarker(item)) return false; } ASSERT_NOT_REACHED(); // <html> is always on the stack and is a scope marker. return false; }