Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(501)

Unified Diff: Source/core/css/SelectorChecker.cpp

Issue 208933003: Remove SiblingRuleHelper (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Tighten types to ContainerNode Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/css/resolver/SharedStyleFinder.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/SelectorChecker.cpp
diff --git a/Source/core/css/SelectorChecker.cpp b/Source/core/css/SelectorChecker.cpp
index 4215a911629651e770d5ffaf81192441d5013de2..cf4b0fc7cddccaa3fc42ab5392e63f17049d414d 100644
--- a/Source/core/css/SelectorChecker.cpp
+++ b/Source/core/css/SelectorChecker.cpp
@@ -35,7 +35,6 @@
#include "core/dom/ElementTraversal.h"
#include "core/dom/FullscreenElementStack.h"
#include "core/dom/NodeRenderStyle.h"
-#include "core/dom/SiblingRuleHelper.h"
#include "core/dom/Text.h"
#include "core/dom/shadow/InsertionPoint.h"
#include "core/dom/shadow/ShadowRoot.h"
@@ -280,8 +279,8 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC
case CSSSelector::DirectAdjacent:
if (m_mode == ResolvingStyle) {
- if (Node* parent = context.element->parentElementOrShadowRoot())
- SiblingRuleHelper(parent).setChildrenAffectedByDirectAdjacentRules();
+ if (ContainerNode* parent = context.element->parentElementOrShadowRoot())
+ parent->setChildrenAffectedByDirectAdjacentRules();
}
nextContext.element = ElementTraversal::previousSibling(*context.element);
if (!nextContext.element)
@@ -292,8 +291,8 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC
case CSSSelector::IndirectAdjacent:
if (m_mode == ResolvingStyle) {
- if (Node* parent = context.element->parentElementOrShadowRoot())
- SiblingRuleHelper(parent).setChildrenAffectedByIndirectAdjacentRules();
+ if (ContainerNode* parent = context.element->parentElementOrShadowRoot())
+ parent->setChildrenAffectedByIndirectAdjacentRules();
}
nextContext.element = ElementTraversal::previousSibling(*context.element);
nextContext.isSubSelector = false;
@@ -565,11 +564,11 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
}
case CSSSelector::PseudoFirstChild:
// first-child matches the first child that is an element
- if (Node* parent = element.parentElementOrShadowRoot()) {
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
bool result = siblingTraversalStrategy.isFirstChild(element);
if (m_mode == ResolvingStyle) {
RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element.renderStyle();
- SiblingRuleHelper(parent).setChildrenAffectedByFirstChildRules();
+ parent->setChildrenAffectedByFirstChildRules();
if (result && childStyle)
childStyle->setFirstChildState();
}
@@ -578,21 +577,20 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
break;
case CSSSelector::PseudoFirstOfType:
// first-of-type matches the first element of its type
- if (Node* parent = element.parentElementOrShadowRoot()) {
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
bool result = siblingTraversalStrategy.isFirstOfType(element, element.tagQName());
if (m_mode == ResolvingStyle)
- SiblingRuleHelper(parent).setChildrenAffectedByForwardPositionalRules();
+ parent->setChildrenAffectedByForwardPositionalRules();
return result;
}
break;
case CSSSelector::PseudoLastChild:
// last-child matches the last child that is an element
- if (Node* parent = element.parentElementOrShadowRoot()) {
- SiblingRuleHelper helper(parent);
- bool result = helper.isFinishedParsingChildren() && siblingTraversalStrategy.isLastChild(element);
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
+ bool result = parent->isFinishedParsingChildren() && siblingTraversalStrategy.isLastChild(element);
if (m_mode == ResolvingStyle) {
RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element.renderStyle();
- helper.setChildrenAffectedByLastChildRules();
+ parent->setChildrenAffectedByLastChildRules();
if (result && childStyle)
childStyle->setLastChildState();
}
@@ -601,24 +599,22 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
break;
case CSSSelector::PseudoLastOfType:
// last-of-type matches the last element of its type
- if (Node* parent = element.parentElementOrShadowRoot()) {
- SiblingRuleHelper helper(parent);
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
if (m_mode == ResolvingStyle)
- helper.setChildrenAffectedByBackwardPositionalRules();
- if (!helper.isFinishedParsingChildren())
+ parent->setChildrenAffectedByBackwardPositionalRules();
+ if (!parent->isFinishedParsingChildren())
return false;
return siblingTraversalStrategy.isLastOfType(element, element.tagQName());
}
break;
case CSSSelector::PseudoOnlyChild:
- if (Node* parent = element.parentElementOrShadowRoot()) {
- SiblingRuleHelper helper(parent);
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
bool firstChild = siblingTraversalStrategy.isFirstChild(element);
- bool onlyChild = firstChild && helper.isFinishedParsingChildren() && siblingTraversalStrategy.isLastChild(element);
+ bool onlyChild = firstChild && parent->isFinishedParsingChildren() && siblingTraversalStrategy.isLastChild(element);
if (m_mode == ResolvingStyle) {
RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element.renderStyle();
- helper.setChildrenAffectedByFirstChildRules();
- helper.setChildrenAffectedByLastChildRules();
+ parent->setChildrenAffectedByFirstChildRules();
+ parent->setChildrenAffectedByLastChildRules();
if (firstChild && childStyle)
childStyle->setFirstChildState();
if (onlyChild && childStyle)
@@ -629,13 +625,12 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
break;
case CSSSelector::PseudoOnlyOfType:
// FIXME: This selector is very slow.
- if (Node* parent = element.parentElementOrShadowRoot()) {
- SiblingRuleHelper helper(parent);
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
if (m_mode == ResolvingStyle) {
- helper.setChildrenAffectedByForwardPositionalRules();
- helper.setChildrenAffectedByBackwardPositionalRules();
+ parent->setChildrenAffectedByForwardPositionalRules();
+ parent->setChildrenAffectedByBackwardPositionalRules();
}
- if (!helper.isFinishedParsingChildren())
+ if (!parent->isFinishedParsingChildren())
return false;
return siblingTraversalStrategy.isFirstOfType(element, element.tagQName()) && siblingTraversalStrategy.isLastOfType(element, element.tagQName());
}
@@ -643,14 +638,14 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
case CSSSelector::PseudoNthChild:
if (!selector.parseNth())
break;
- if (Node* parent = element.parentElementOrShadowRoot()) {
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
int count = 1 + siblingTraversalStrategy.countElementsBefore(element);
if (m_mode == ResolvingStyle) {
RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element.renderStyle();
element.setChildIndex(count);
if (childStyle)
childStyle->setUnique();
- SiblingRuleHelper(parent).setChildrenAffectedByForwardPositionalRules();
+ parent->setChildrenAffectedByForwardPositionalRules();
}
if (selector.matchNth(count))
@@ -660,10 +655,10 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
case CSSSelector::PseudoNthOfType:
if (!selector.parseNth())
break;
- if (Node* parent = element.parentElementOrShadowRoot()) {
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
int count = 1 + siblingTraversalStrategy.countElementsOfTypeBefore(element, element.tagQName());
if (m_mode == ResolvingStyle)
- SiblingRuleHelper(parent).setChildrenAffectedByForwardPositionalRules();
+ parent->setChildrenAffectedByForwardPositionalRules();
if (selector.matchNth(count))
return true;
@@ -672,11 +667,10 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
case CSSSelector::PseudoNthLastChild:
if (!selector.parseNth())
break;
- if (Node* parent = element.parentElementOrShadowRoot()) {
- SiblingRuleHelper helper(parent);
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
if (m_mode == ResolvingStyle)
- helper.setChildrenAffectedByBackwardPositionalRules();
- if (!helper.isFinishedParsingChildren())
+ parent->setChildrenAffectedByBackwardPositionalRules();
+ if (!parent->isFinishedParsingChildren())
return false;
int count = 1 + siblingTraversalStrategy.countElementsAfter(element);
if (selector.matchNth(count))
@@ -686,11 +680,10 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
case CSSSelector::PseudoNthLastOfType:
if (!selector.parseNth())
break;
- if (Node* parent = element.parentElementOrShadowRoot()) {
- SiblingRuleHelper helper(parent);
+ if (ContainerNode* parent = element.parentElementOrShadowRoot()) {
if (m_mode == ResolvingStyle)
- helper.setChildrenAffectedByBackwardPositionalRules();
- if (!helper.isFinishedParsingChildren())
+ parent->setChildrenAffectedByBackwardPositionalRules();
+ if (!parent->isFinishedParsingChildren())
return false;
int count = 1 + siblingTraversalStrategy.countElementsOfTypeAfter(element, element.tagQName());
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/css/resolver/SharedStyleFinder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698