Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index e8186688e1b0e2a7a5c1c73199211117e76dfad0..cc2967fc3438809203aae2457ed9c3ccbd279a2d 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -484,8 +484,8 @@ void RenderLayer::dirtyAncestorChainHasSelfPaintingLayerDescendantStatus() |
bool RenderLayer::acceleratedCompositingForOverflowScrollEnabled() const |
{ |
return renderer()->frame() |
- && renderer()->frame()->page() |
- && renderer()->frame()->page()->settings()->acceleratedCompositingForOverflowScrollEnabled(); |
+ && renderer()->frame()->page()->settings() |
Julien - ping for review
2013/05/13 20:48:56
I don't think this is right: the page can be NULL,
|
+ && (renderer()->frame()->page()->settings()->acceleratedCompositingForOverflowScrollEnabled() != AcceleratedCompositingForOverflowScrollDisabled); |
} |
// If we are a stacking container, then this function will determine if our |
@@ -567,7 +567,7 @@ bool RenderLayer::acceleratedCompositingForOverflowScrollEnabled() const |
// And we would conclude that C could be promoted. |
void RenderLayer::updateDescendantsAreContiguousInStackingOrder() |
{ |
- if (!m_descendantsAreContiguousInStackingOrderDirty || !isStackingContext() || !acceleratedCompositingForOverflowScrollEnabled()) |
+ if (!m_descendantsAreContiguousInStackingOrderDirty || !isStackingContext() || acceleratedCompositingForOverflowScrollEnabled() == AcceleratedCompositingForOverflowScrollDisabled) |
return; |
ASSERT(!m_normalFlowListDirty); |
@@ -2057,6 +2057,20 @@ bool RenderLayer::usesCompositedScrolling() const |
bool RenderLayer::needsCompositedScrolling() const |
{ |
+ AcceleratedCompositingForOverflowScrollEnabledMode mode = AcceleratedCompositingForOverflowScrollDisabled; |
+ if (renderer()->frame() && renderer()->frame()->page()->settings()) |
Julien - ping for review
2013/05/13 20:48:56
Same comment here about NULL-checking settings.
|
+ mode = renderer()->frame()->page()->settings()->acceleratedCompositingForOverflowScrollEnabled(); |
+ |
+ switch (mode) { |
+ case AcceleratedCompositingForOverflowScrollEnabled: |
+ return m_needsCompositedScrolling; |
+ case AcceleratedCompositingForOverflowScrollDisabled: |
+ return false; |
+ case AcceleratedCompositingForOverflowScrollAlwaysOn: |
+ return true; |
+ } |
+ |
+ ASSERT_NOT_REACHED(); |
return m_needsCompositedScrolling; |
} |