Index: Source/core/css/resolver/StyleResolver.cpp |
diff --git a/Source/core/css/resolver/StyleResolver.cpp b/Source/core/css/resolver/StyleResolver.cpp |
index 747a305c5b1aa2cb547204d094778e647ecce4f0..f8e1636e85a58dc73d72be958296e2cc77d336b7 100644 |
--- a/Source/core/css/resolver/StyleResolver.cpp |
+++ b/Source/core/css/resolver/StyleResolver.cpp |
@@ -776,6 +776,7 @@ bool StyleResolver::pseudoStyleForElementInternal(Element& element, const Pseudo |
state.setParentStyle(RenderStyle::clone(state.style())); |
} |
+ state.style()->setStyleType(pseudoStyleRequest.pseudoId); |
state.fontBuilder().initForStyleResolve(state.document(), state.style()); |
// Since we don't use pseudo-elements in any of our quirk/print |
@@ -792,8 +793,6 @@ bool StyleResolver::pseudoStyleForElementInternal(Element& element, const Pseudo |
if (collector.matchedResult().matchedProperties.isEmpty()) |
return false; |
- state.style()->setStyleType(pseudoStyleRequest.pseudoId); |
- |
applyMatchedProperties(state, collector.matchedResult()); |
applyCallbackSelectors(state); |
@@ -828,8 +827,11 @@ PassRefPtr<RenderStyle> StyleResolver::pseudoStyleForElement(Element* element, c |
return nullptr; |
StyleResolverState state(document(), element, parentStyle); |
- if (!pseudoStyleForElementInternal(*element, pseudoStyleRequest, parentStyle, state)) |
- return nullptr; |
+ if (!pseudoStyleForElementInternal(*element, pseudoStyleRequest, parentStyle, state)) { |
+ if (pseudoStyleRequest.type == PseudoStyleRequest::ForRenderer) |
esprehn
2014/09/17 19:04:42
This doesn't make sense, pseudoStyleForElementInte
rune
2014/09/17 20:00:33
http://www.w3.org/TR/CSS2/generate.html#before-aft
|
+ return nullptr; |
+ return state.takeStyle(); |
+ } |
if (PseudoElement* pseudoElement = element->pseudoElement(pseudoStyleRequest.pseudoId)) |
setAnimationUpdateIfNeeded(state, *pseudoElement); |