summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordstockwell <dstockwell@chromium.org>2015-10-14 17:11:16 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-15 00:12:36 +0000
commit9783a01dacc85fa99a43bdd34c6c23d59736d17e (patch)
tree2faeb3ecc9865bd358a0d1102a3f7f41eac5eb25
parent9893e6aff9f1811ca5e0e3b3ab4f9fac19afec92 (diff)
downloadchromium_src-9783a01dacc85fa99a43bdd34c6c23d59736d17e.zip
chromium_src-9783a01dacc85fa99a43bdd34c6c23d59736d17e.tar.gz
chromium_src-9783a01dacc85fa99a43bdd34c6c23d59736d17e.tar.bz2
Simplify CSSSelector::selectorText
Review URL: https://codereview.chromium.org/1406693002 Cr-Commit-Position: refs/heads/master@{#354162}
-rw-r--r--third_party/WebKit/Source/core/css/CSSSelector.cpp62
1 files changed, 19 insertions, 43 deletions
diff --git a/third_party/WebKit/Source/core/css/CSSSelector.cpp b/third_party/WebKit/Source/core/css/CSSSelector.cpp
index faa3dcf..20b4583 100644
--- a/third_party/WebKit/Source/core/css/CSSSelector.cpp
+++ b/third_party/WebKit/Source/core/css/CSSSelector.cpp
@@ -612,12 +612,6 @@ String CSSSelector::selectorText(const String& rightSide) const
str.append(cs->value());
switch (cs->pseudoType()) {
- case PseudoNot:
- ASSERT(cs->selectorList());
- str.append('(');
- str.append(cs->selectorList()->first()->selectorText());
- str.append(')');
- break;
case PseudoNthChild:
case PseudoNthLastChild:
case PseudoNthOfType:
@@ -646,52 +640,22 @@ String CSSSelector::selectorText(const String& rightSide) const
str.append(cs->argument());
str.append(')');
break;
- case PseudoAny: {
- 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(')');
+ case PseudoNot:
+ ASSERT(cs->selectorList());
break;
- }
case PseudoHost:
- case PseudoHostContext: {
- 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(')');
- }
+ case PseudoHostContext:
+ case PseudoAny:
break;
- }
default:
break;
}
} else if (cs->m_match == PseudoElement) {
str.appendLiteral("::");
str.append(cs->value());
-
- if (cs->pseudoType() == PseudoContent) {
- 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(')');
- }
+ // ::content is always stored at the end of the compound.
+ if (cs->pseudoType() == PseudoContent && cs->relation() == SubSelector && cs->tagHistory()) {
+ return cs->tagHistory()->selectorText() + str.toString() + rightSide;
}
} else if (cs->isAttributeSelector()) {
str.append('[');
@@ -734,6 +698,18 @@ String CSSSelector::selectorText(const String& rightSide) const
str.append(']');
}
}
+
+ 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(')');
+ }
+
if (cs->relation() != SubSelector || !cs->tagHistory())
break;
cs = cs->tagHistory();