Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Unified Diff: third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp

Issue 2716583005: Do not promote position sticky or fixed elements unless they move with scroll. (Closed)
Patch Set: Avoid computing constraints for non-anchored sticky and add/update tests. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
index aca28342b55b0d8d63095c2406bf06611a14e85a..ce538b5408d54c5540ccc8d371698c8bb9be082f 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
@@ -247,8 +247,7 @@ void CompositingRequirementsUpdater::updateRecursive(
layer->stackingNode()->updateLayerListsIfNeeded();
CompositingReasons reasonsToComposite = CompositingReasonNone;
- CompositingReasons directReasons =
- m_compositingReasonFinder.directReasons(layer);
+ CompositingReasons directReasons = CompositingReasonNone;
// Video is special. It's the only PaintLayer type that can both have
// PaintLayer children and whose children can't use its backing to render
@@ -260,14 +259,15 @@ void CompositingRequirementsUpdater::updateRecursive(
bool hasCompositedScrollingAncestor =
layer->ancestorScrollingLayer() &&
- (m_compositingReasonFinder.directReasons(
- layer->ancestorScrollingLayer()) &
+ (m_compositingReasonFinder.directReasons(layer->ancestorScrollingLayer(),
+ false) &
CompositingReasonOverflowScrollingTouch);
// TODO(chrishtr): use |hasCompositedScrollingAncestor| instead.
- if (currentRecursionData.m_hasCompositedScrollingAncestor &&
- layer->layoutObject().styleRef().hasViewportConstrainedPosition())
- directReasons |= CompositingReasonScrollDependentPosition;
+ const bool ignoreLCDText =
+ currentRecursionData.m_hasCompositedScrollingAncestor;
+ directReasons |=
+ m_compositingReasonFinder.directReasons(layer, ignoreLCDText);
bool canBeComposited = compositor->canBeComposited(layer);
if (canBeComposited) {

Powered by Google App Engine
This is Rietveld 408576698