Index: Source/core/css/resolver/StyleResolver.cpp |
diff --git a/Source/core/css/resolver/StyleResolver.cpp b/Source/core/css/resolver/StyleResolver.cpp |
index 74409ec01cca1d9e8d8e58d4e13f5fa4704dd5e1..4cc6d8aad31e4b590bec7c9a73dc24c79e815408 100644 |
--- a/Source/core/css/resolver/StyleResolver.cpp |
+++ b/Source/core/css/resolver/StyleResolver.cpp |
@@ -520,7 +520,7 @@ Node* StyleResolver::locateCousinList(Element* parent, unsigned& visitedNodeCoun |
RenderStyle* parentStyle = parent->renderStyle(); |
unsigned subcount = 0; |
Node* thisCousin = parent; |
- Node* currentNode = parent->previousSibling(); |
+ Node* currentNode = parent->nextSibling(); |
// Reserve the tries for this level. This effectively makes sure that the algorithm |
// will never go deeper than cStyleSearchLevelThreshold levels into recursion. |
@@ -538,7 +538,7 @@ Node* StyleResolver::locateCousinList(Element* parent, unsigned& visitedNodeCoun |
} |
if (subcount >= cStyleSearchThreshold) |
return 0; |
- currentNode = currentNode->previousSibling(); |
+ currentNode = currentNode->nextSibling(); |
} |
currentNode = locateCousinList(thisCousin->parentElement(), visitedNodeCount); |
thisCousin = currentNode; |
@@ -737,7 +737,7 @@ bool StyleResolver::canShareStyleWithElement(Element* element) const |
inline Element* StyleResolver::findSiblingForStyleSharing(Node* node, unsigned& count) const |
{ |
- for (; node; node = node->previousSibling()) { |
+ for (; node; node = node->nextSibling()) { |
if (!node->isStyledElement()) |
continue; |
if (canShareStyleWithElement(toElement(node))) |
@@ -791,11 +791,11 @@ RenderStyle* StyleResolver::locateSharedStyle() |
// FIXME: This shouldn't be a member variable. The style sharing code could be factored out of StyleResolver. |
state.setElementAffectedByClassRules(state.element() && state.element()->hasClass() && classNamesAffectedByRules(state.element()->classNames())); |
- // Check previous siblings and their cousins. |
+ // Check next siblings and their cousins. |
unsigned count = 0; |
unsigned visitedNodeCount = 0; |
Element* shareElement = 0; |
- Node* cousinList = state.styledElement()->previousSibling(); |
+ Node* cousinList = state.styledElement()->nextSibling(); |
while (cousinList) { |
shareElement = findSiblingForStyleSharing(cousinList, count); |
if (shareElement) |
@@ -997,8 +997,8 @@ static inline bool isAtShadowBoundary(const Element* element) |
return parentNode && parentNode->isShadowRoot(); |
} |
-PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderStyle* defaultParent, |
- StyleSharingBehavior sharingBehavior, RuleMatchingBehavior matchingBehavior, RenderRegion* regionForStyling) |
+PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderStyle* defaultParent, StyleSharingBehavior sharingBehavior, |
+ RuleMatchingBehavior matchingBehavior, RenderRegion* regionForStyling, int childIndex) |
{ |
// Once an element has a renderer, we don't try to destroy it, since otherwise the renderer |
// will vanish if a style recalc happens during loading. |
@@ -1013,7 +1013,7 @@ PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderS |
} |
StyleResolverState& state = m_state; |
- state.initForStyleResolve(document(), element, defaultParent, regionForStyling); |
+ state.initForStyleResolve(document(), element, childIndex, defaultParent, regionForStyling); |
if (sharingBehavior == AllowStyleSharing && !state.distributedToInsertionPoint()) { |
RenderStyle* sharedStyle = locateSharedStyle(); |
if (sharedStyle) { |
@@ -1204,7 +1204,7 @@ PassRefPtr<RenderStyle> StyleResolver::pseudoStyleForElement(Element* e, const P |
StyleResolverState& state = m_state; |
- state.initForStyleResolve(document(), e, parentStyle); |
+ state.initForStyleResolve(document(), e, 0, parentStyle); |
if (pseudoStyleRequest.allowsInheritance(state.parentStyle())) { |
state.setStyle(RenderStyle::create()); |
@@ -1704,7 +1704,7 @@ PassRefPtr<CSSRuleList> StyleResolver::pseudoStyleRulesForElement(Element* e, Ps |
if (!e || !e->document()->haveStylesheetsLoaded()) |
return 0; |
- m_state.initForStyleResolve(document(), e, 0); |
+ m_state.initForStyleResolve(document(), e); |
ElementRuleCollector collector(this, m_state); |
collector.setMode(SelectorChecker::CollectingRules); |
@@ -2051,7 +2051,7 @@ void StyleResolver::applyMatchedProperties(const MatchResult& matchResult, const |
void StyleResolver::applyPropertyToStyle(CSSPropertyID id, CSSValue* value, RenderStyle* style) |
{ |
- m_state.initForStyleResolve(document(), 0, style); |
+ m_state.initForStyleResolve(document(), 0, 0, style); |
m_state.setStyle(style); |
applyPropertyToCurrentStyle(id, value); |
} |