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(); |