void CSSSelector::show(int indent) const { printf("%*sselectorText(): %s\n", indent, "", selectorText().ascii().data()); printf("%*sm_match: %d\n", indent, "", m_match); if (m_match != Tag) printf("%*svalue(): %s\n", indent, "", value().ascii().data()); printf("%*spseudoType(): %d\n", indent, "", pseudoType()); if (m_match == Tag) printf("%*stagQName().localName: %s\n", indent, "", tagQName().localName().ascii().data()); printf("%*sisAttributeSelector(): %d\n", indent, "", isAttributeSelector()); if (isAttributeSelector()) printf("%*sattribute(): %s\n", indent, "", attribute().localName().ascii().data()); printf("%*sargument(): %s\n", indent, "", argument().ascii().data()); }
RefPtr<Element> SVGScriptElement::cloneElementWithoutAttributesAndChildren(Document& targetDocument) { return adoptRef(new SVGScriptElement(tagQName(), targetDocument, false, alreadyStarted())); }
String CSSSelector::selectorText(const String& rightSide) const { StringBuilder str; if (m_match == CSSSelector::Tag && !m_tagIsForNamespaceRule) { str.append(tagQName().localName()); } const CSSSelector* cs = this; while (true) { if (cs->m_match == CSSSelector::Id) { str.append('#'); serializeIdentifier(cs->value(), str); } else if (cs->m_match == CSSSelector::Class) { str.append('.'); serializeIdentifier(cs->value(), str); } else if (cs->m_match == CSSSelector::PseudoClass) { str.append(':'); str.append(cs->value()); switch (cs->pseudoType()) { case PseudoLang: str.append(cs->argument()); str.append(')'); break; case PseudoHost: { if (cs->selectorList()) { const CSSSelector* firstSubSelector = cs->selectorList()->first(); for (const CSSSelector* subSelector = firstSubSelector; subSelector; subSelector = CSSSelectorList::next(*subSelector)) { if (subSelector != firstSubSelector) str.append(','); str.append(subSelector->selectorText()); } str.append(')'); } break; } default: break; } } else if (cs->m_match == CSSSelector::PseudoElement) { str.appendLiteral("::"); str.append(cs->value()); } else if (cs->isAttributeSelector()) { str.append('['); str.append(cs->attribute().localName()); if (cs->m_match == CSSSelector::Exact) str.append('='); if (cs->m_match != CSSSelector::Set) { serializeString(cs->value(), str); if (cs->attributeMatchType() == CaseInsensitive) str.appendLiteral(" i"); } str.append(']'); } if (!cs->tagHistory()) break; cs = cs->tagHistory(); } return str.toString() + rightSide; }
PassRefPtr<Element> Element::cloneElementWithoutAttributesAndChildren() { return document().createElement(tagQName(), false); }