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

Unified Diff: Source/core/layout/compositing/CompositingReasonFinder.cpp

Issue 1287623002: Delete blink code for scroll-blocks-on (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Merge with trunk (no changes from previous patch) Created 5 years, 4 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
« no previous file with comments | « Source/core/layout/compositing/CompositingReasonFinder.h ('k') | Source/core/style/ComputedStyle.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/layout/compositing/CompositingReasonFinder.cpp
diff --git a/Source/core/layout/compositing/CompositingReasonFinder.cpp b/Source/core/layout/compositing/CompositingReasonFinder.cpp
index 20fdc37178d17b915fb85899b0378f56823d76b6..872073d7418ac37fd9f1e91434c25268fd0d3432 100644
--- a/Source/core/layout/compositing/CompositingReasonFinder.cpp
+++ b/Source/core/layout/compositing/CompositingReasonFinder.cpp
@@ -53,10 +53,6 @@ CompositingReasons CompositingReasonFinder::directReasons(const DeprecatedPaintL
ASSERT(potentialCompositingReasonsFromStyle(layer->layoutObject()) == layer->potentialCompositingReasonsFromStyle());
CompositingReasons styleDeterminedDirectCompositingReasons = layer->potentialCompositingReasonsFromStyle() & CompositingReasonComboAllDirectStyleDeterminedReasons;
- // Apply optimizations for scroll-blocks-on which require comparing style between objects.
- if ((styleDeterminedDirectCompositingReasons & CompositingReasonScrollBlocksOn) && !requiresCompositingForScrollBlocksOn(layer->layoutObject()))
- styleDeterminedDirectCompositingReasons &= ~CompositingReasonScrollBlocksOn;
-
return styleDeterminedDirectCompositingReasons | nonStyleDeterminedDirectReasons(layer);
}
@@ -104,12 +100,6 @@ CompositingReasons CompositingReasonFinder::potentialCompositingReasonsFromStyle
if (style.hasPerspective())
reasons |= CompositingReasonPerspectiveWith3DDescendants;
- // Ignore scroll-blocks-on on the document element, because it will get propagated to
- // the LayoutView (by Document::inheritHtmlAndBodyElementStyles) and we don't want to
- // create two composited layers.
- if (style.hasScrollBlocksOn() && !layoutObject->isDocumentElement())
- reasons |= CompositingReasonScrollBlocksOn;
-
if (style.hasCompositorProxy())
reasons |= CompositingReasonCompositorProxy;
@@ -193,47 +183,4 @@ bool CompositingReasonFinder::requiresCompositingForPositionFixed(const Deprecat
return layer->scrollsWithViewport() && m_layoutView.frameView()->isScrollable();
}
-bool CompositingReasonFinder::requiresCompositingForScrollBlocksOn(const LayoutObject* layoutObject) const
-{
- // Note that the other requires* functions run at LayoutObject::styleDidChange time and so can rely
- // only on the style of their object. This function runs at CompositingRequirementsUpdater::update
- // time, and so can consider the style of other objects.
- const ComputedStyle& style = layoutObject->styleRef();
-
- // We should only get here by CompositingReasonScrollBlocksOn being a potential compositing reason.
- ASSERT(style.hasScrollBlocksOn() && !layoutObject->isDocumentElement());
-
- // scroll-blocks-on style is propagated from the document element to the document.
- ASSERT(!layoutObject->isLayoutView()
- || !layoutObject->document().documentElement()
- || !layoutObject->document().documentElement()->layoutObject()
- || layoutObject->document().documentElement()->layoutObject()->style()->scrollBlocksOn() == style.scrollBlocksOn());
-
- // When a scroll occurs, it's the union of all bits set on the target element's containing block
- // chain that determines the behavior. Thus we really only need a new layer if this object contains
- // additional bits from those set by all objects in it's containing block chain. But determining
- // this fully is probably more expensive than it's worth. Instead we just have fast-paths here for
- // the most common cases of unnecessary layer creation.
- // Optimizing this fully would avoid layer explosion in pathological cases like '*' rules.
- // We could consider tracking the current state in CompositingRequirementsUpdater::update.
-
- // Ensure iframes don't get composited when they require no more blocking than their parent.
- if (layoutObject->isLayoutView()) {
- if (const FrameView* parentFrame = toLayoutView(layoutObject)->frameView()->parentFrameView()) {
- if (const LayoutView* parentLayoutObject = parentFrame->layoutView()) {
- // Does this frame contain only blocks-on bits already present in the parent frame?
- if (!(style.scrollBlocksOn() & ~parentLayoutObject->style()->scrollBlocksOn()))
- return false;
- }
- } else {
- // The root frame will either always already be composited, or compositing will be disabled.
- // Either way, we don't need to require compositing for scroll blocks on. This avoids
- // enabling compositing by default, and avoids cluttering the root layers compositing reasons.
- return false;
- }
- }
-
- return true;
-}
-
}
« no previous file with comments | « Source/core/layout/compositing/CompositingReasonFinder.h ('k') | Source/core/style/ComputedStyle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698