Index: Source/core/css/CSSSelector.cpp |
diff --git a/Source/core/css/CSSSelector.cpp b/Source/core/css/CSSSelector.cpp |
index a339a9b4fdb14b3ecf1226e929de3e465da5c65d..d49351d6bb9ab256940ea8ab081589fc2e97ea36 100644 |
--- a/Source/core/css/CSSSelector.cpp |
+++ b/Source/core/css/CSSSelector.cpp |
@@ -436,7 +436,7 @@ void CSSSelector::show() const |
CSSSelector::PseudoType CSSSelector::parsePseudoType(const AtomicString& name, bool hasArguments) |
{ |
- CSSSelector::PseudoType pseudoType = nameToPseudoType(name, hasArguments); |
+ PseudoType pseudoType = nameToPseudoType(name, hasArguments); |
if (pseudoType != PseudoUnknown) |
return pseudoType; |
@@ -592,7 +592,7 @@ String CSSSelector::selectorText(const String& rightSide) const |
{ |
StringBuilder str; |
- if (m_match == CSSSelector::Tag && !m_tagIsForNamespaceRule) { |
+ if (m_match == Tag && !m_tagIsForNamespaceRule) { |
if (tagQName().prefix().isNull()) |
str.append(tagQName().localName()); |
else { |
@@ -604,13 +604,13 @@ String CSSSelector::selectorText(const String& rightSide) const |
const CSSSelector* cs = this; |
while (true) { |
- if (cs->m_match == CSSSelector::Id) { |
+ if (cs->m_match == Id) { |
str.append('#'); |
serializeIdentifier(cs->value(), str); |
- } else if (cs->m_match == CSSSelector::Class) { |
+ } else if (cs->m_match == Class) { |
str.append('.'); |
serializeIdentifier(cs->value(), str); |
- } else if (cs->m_match == CSSSelector::PseudoClass || cs->m_match == CSSSelector::PagePseudoClass) { |
+ } else if (cs->m_match == PseudoClass || cs->m_match == PagePseudoClass) { |
str.append(':'); |
str.append(cs->value()); |
@@ -658,13 +658,24 @@ String CSSSelector::selectorText(const String& rightSide) const |
default: |
break; |
} |
- } else if (cs->m_match == CSSSelector::PseudoElement) { |
+ } else if (cs->m_match == PseudoElement) { |
str.appendLiteral("::"); |
str.append(cs->value()); |
if (cs->pseudoType() == PseudoContent) { |
- if (cs->relation() == CSSSelector::SubSelector && cs->tagHistory()) |
+ if (cs->relation() == SubSelector && cs->tagHistory()) |
return cs->tagHistory()->selectorText() + str.toString() + rightSide; |
+ } else if (cs->pseudoType() == PseudoCue) { |
+ if (cs->selectorList()) { |
+ str.append('('); |
+ 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(')'); |
+ } |
} |
} else if (cs->isAttributeSelector()) { |
str.append('['); |
@@ -675,58 +686,58 @@ String CSSSelector::selectorText(const String& rightSide) const |
} |
str.append(cs->attribute().localName()); |
switch (cs->m_match) { |
- case CSSSelector::AttributeExact: |
+ case AttributeExact: |
str.append('='); |
break; |
- case CSSSelector::AttributeSet: |
+ case AttributeSet: |
// set has no operator or value, just the attrName |
str.append(']'); |
break; |
- case CSSSelector::AttributeList: |
+ case AttributeList: |
str.appendLiteral("~="); |
break; |
- case CSSSelector::AttributeHyphen: |
+ case AttributeHyphen: |
str.appendLiteral("|="); |
break; |
- case CSSSelector::AttributeBegin: |
+ case AttributeBegin: |
str.appendLiteral("^="); |
break; |
- case CSSSelector::AttributeEnd: |
+ case AttributeEnd: |
str.appendLiteral("$="); |
break; |
- case CSSSelector::AttributeContain: |
+ case AttributeContain: |
str.appendLiteral("*="); |
break; |
default: |
break; |
} |
- if (cs->m_match != CSSSelector::AttributeSet) { |
+ if (cs->m_match != AttributeSet) { |
serializeString(cs->value(), str); |
if (cs->attributeMatchType() == CaseInsensitive) |
str.appendLiteral(" i"); |
str.append(']'); |
} |
} |
- if (cs->relation() != CSSSelector::SubSelector || !cs->tagHistory()) |
+ if (cs->relation() != SubSelector || !cs->tagHistory()) |
break; |
cs = cs->tagHistory(); |
} |
if (const CSSSelector* tagHistory = cs->tagHistory()) { |
switch (cs->relation()) { |
- case CSSSelector::Descendant: |
+ case Descendant: |
return tagHistory->selectorText(" " + str.toString() + rightSide); |
- case CSSSelector::Child: |
+ case Child: |
return tagHistory->selectorText(" > " + str.toString() + rightSide); |
- case CSSSelector::ShadowDeep: |
+ case ShadowDeep: |
return tagHistory->selectorText(" /deep/ " + str.toString() + rightSide); |
- case CSSSelector::DirectAdjacent: |
+ case DirectAdjacent: |
return tagHistory->selectorText(" + " + str.toString() + rightSide); |
- case CSSSelector::IndirectAdjacent: |
+ case IndirectAdjacent: |
return tagHistory->selectorText(" ~ " + str.toString() + rightSide); |
- case CSSSelector::SubSelector: |
+ case SubSelector: |
ASSERT_NOT_REACHED(); |
- case CSSSelector::ShadowPseudo: |
+ case ShadowPseudo: |
return tagHistory->selectorText(str.toString() + rightSide); |
} |
} |
@@ -812,7 +823,7 @@ bool CSSSelector::isCompound() const |
const CSSSelector* subSelector = tagHistory(); |
while (subSelector) { |
- if (prevSubSelector->relation() != CSSSelector::SubSelector) |
+ if (prevSubSelector->relation() != SubSelector) |
return false; |
if (!validateSubSelector(subSelector)) |
return false; |