Chromium Code Reviews| Index: Source/core/rendering/RenderObject.cpp |
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp |
| index 9c8086c3227d76a293079398053446b5ce96de1c..821b339488fd6471f2fd6c79767dbae623c75f11 100644 |
| --- a/Source/core/rendering/RenderObject.cpp |
| +++ b/Source/core/rendering/RenderObject.cpp |
| @@ -1788,7 +1788,7 @@ Color RenderObject::selectionBackgroundColor() const |
| if (!isSelectable()) |
| return Color::transparent; |
| - if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequest(SELECTION))) |
| + if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyleFromParentOrShadowHost()) |
| return resolveColor(pseudoStyle.get(), CSSPropertyBackgroundColor).blendWithWhite(); |
| return frame()->selection().isFocusedAndActive() ? |
| RenderTheme::theme().activeSelectionBackgroundColor() : |
| @@ -1802,7 +1802,7 @@ Color RenderObject::selectionColor(int colorProperty) const |
| if (!isSelectable() || (frame()->view()->paintBehavior() & PaintBehaviorSelectionOnly)) |
| return resolveColor(colorProperty); |
| - if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequest(SELECTION))) |
| + if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyleFromParentOrShadowHost()) |
| return resolveColor(pseudoStyle.get(), colorProperty); |
| if (!RenderTheme::theme().supportsSelectionForegroundColors()) |
| return resolveColor(colorProperty); |
| @@ -2983,6 +2983,13 @@ PassRefPtr<RenderStyle> RenderObject::getUncachedPseudoStyle(const PseudoStyleRe |
| return document().ensureStyleResolver().pseudoStyleForElement(element, pseudoStyleRequest, parentStyle); |
| } |
| +PassRefPtr<RenderStyle> RenderObject::getUncachedPseudoStyleFromParentOrShadowHost() const |
| +{ |
| + if (node() && node()->shadowHost()) |
| + return node()->shadowHost()->renderer()->getUncachedPseudoStyle(PseudoStyleRequest(SELECTION)); |
|
esprehn
2014/04/10 22:20:38
I don't think this is right. Now if you have:
<di
|
| + return getUncachedPseudoStyle(PseudoStyleRequest(SELECTION)); |
| +} |
| + |
| bool RenderObject::hasBlendMode() const |
| { |
| return RuntimeEnabledFeatures::cssCompositingEnabled() && style() && style()->hasBlendMode(); |