Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
index 29ab883ec348664c08b3a50d519bcd217cdea14f..12973f21307941c0d0f9db9ea99c55999efa9366 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
@@ -75,6 +75,7 @@ |
#include "platform/scroll/ScrollAnimatorBase.h" |
#include "platform/scroll/ScrollbarTheme.h" |
#include "public/platform/Platform.h" |
+#include "public/platform/WebCompositorMutableProperties.h" |
namespace blink { |
@@ -1381,11 +1382,17 @@ bool PaintLayerScrollableArea::usesCompositedScrolling() const |
static bool layerNeedsCompositedScrolling(PaintLayerScrollableArea::LCDTextMode mode, const PaintLayer* layer) |
{ |
+ if (!layer->scrollsOverflow()) |
+ return false; |
+ |
+ Node* node = layer->enclosingElement(); |
esprehn
2015/12/02 03:28:49
heh, enclosingElement needs to be renamed enclosin
Ian Vollick
2015/12/03 17:54:43
Sounds good. Here's a cleanup cl for that: https:/
Ian Vollick
2015/12/03 22:33:02
enclosingNode been landed and I've rebased this ch
|
+ if (node && node->isElementNode() && (toElement(node)->compositorMutableProperties() & (WebCompositorMutablePropertyScrollTop | WebCompositorMutablePropertyScrollLeft))) |
+ return true; |
+ |
if (mode == PaintLayerScrollableArea::ConsiderLCDText && !layer->compositor()->preferCompositingToLCDTextEnabled()) |
return false; |
- return layer->scrollsOverflow() |
- && !layer->hasDescendantWithClipPath() |
+ return !layer->hasDescendantWithClipPath() |
&& !layer->hasAncestorWithClipPath() |
&& !layer->layoutObject()->style()->hasBorderRadius(); |
} |