Commit 84ae8467 authored by abarth@chromium.org's avatar abarth@chromium.org

Remove support for CompositingReasonPositionSticky

Our support for position: sticky isn't even in the experimental feature set. We
shouldn't be burning time during every frame checking whether any RenderLayers
have sticky position.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/328263002

git-svn-id: svn://svn.chromium.org/blink/trunk@175992 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 58068c47
......@@ -136,9 +136,6 @@ CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(cons
directReasons |= CompositingReasonOverflowScrollingTouch;
}
if (requiresCompositingForPositionSticky(renderer, layer))
directReasons |= CompositingReasonPositionSticky;
if (requiresCompositingForPositionFixed(renderer, layer, 0))
directReasons |= CompositingReasonPositionFixed;
......@@ -156,22 +153,6 @@ bool CompositingReasonFinder::requiresCompositingForAnimation(RenderStyle* style
return style->shouldCompositeForCurrentAnimations();
}
bool CompositingReasonFinder::requiresCompositingForPosition(RenderObject* renderer, const RenderLayer* layer, RenderLayer::ViewportConstrainedNotCompositedReason* viewportConstrainedNotCompositedReason) const
{
return requiresCompositingForPositionSticky(renderer, layer) || requiresCompositingForPositionFixed(renderer, layer, viewportConstrainedNotCompositedReason);
}
bool CompositingReasonFinder::requiresCompositingForPositionSticky(RenderObject* renderer, const RenderLayer* layer) const
{
if (!(m_compositingTriggers & ViewportConstrainedPositionedTrigger))
return false;
if (renderer->style()->position() != StickyPosition)
return false;
// FIXME: This probably isn't correct for accelerated overflow scrolling. crbug.com/361723
// Instead it should return false only if the layer is not inside a scrollable region.
return !layer->enclosingOverflowClipLayer(ExcludeSelf);
}
bool CompositingReasonFinder::requiresCompositingForPositionFixed(RenderObject* renderer, const RenderLayer* layer, RenderLayer::ViewportConstrainedNotCompositedReason* viewportConstrainedNotCompositedReason) const
{
if (!(m_compositingTriggers & ViewportConstrainedPositionedTrigger))
......
......@@ -27,7 +27,7 @@ public:
bool hasOverflowScrollTrigger() const;
bool requiresCompositingForScrollableFrame() const;
bool requiresCompositingForPosition(RenderObject*, const RenderLayer*, RenderLayer::ViewportConstrainedNotCompositedReason*) const;
bool requiresCompositingForPositionFixed(RenderObject*, const RenderLayer*, RenderLayer::ViewportConstrainedNotCompositedReason*) const;
private:
bool isMainFrame() const;
......@@ -37,8 +37,6 @@ private:
bool requiresCompositingForTransform(RenderObject*) const;
bool requiresCompositingForFilters(RenderObject*) const;
bool requiresCompositingForAnimation(RenderStyle*) const;
bool requiresCompositingForPositionSticky(RenderObject*, const RenderLayer*) const;
bool requiresCompositingForPositionFixed(RenderObject*, const RenderLayer*, RenderLayer::ViewportConstrainedNotCompositedReason*) const;
RenderView& m_renderView;
CompositingTriggerFlags m_compositingTriggers;
......
......@@ -466,7 +466,7 @@ bool RenderLayerCompositor::allocateOrClearCompositedLayerMapping(RenderLayer* l
bool RenderLayerCompositor::updateLayerIfViewportConstrained(RenderLayer* layer)
{
RenderLayer::ViewportConstrainedNotCompositedReason viewportConstrainedNotCompositedReason = RenderLayer::NoNotCompositedReason;
m_compositingReasonFinder.requiresCompositingForPosition(layer->renderer(), layer, &viewportConstrainedNotCompositedReason);
m_compositingReasonFinder.requiresCompositingForPositionFixed(layer->renderer(), layer, &viewportConstrainedNotCompositedReason);
if (layer->viewportConstrainedNotCompositedReason() != viewportConstrainedNotCompositedReason) {
ASSERT(viewportConstrainedNotCompositedReason == RenderLayer::NoNotCompositedReason || layer->renderer()->style()->position() == FixedPosition);
......
......@@ -24,7 +24,7 @@ const uint64_t CompositingReasonActiveAnimation = UINT64_
const uint64_t CompositingReasonTransitionProperty = UINT64_C(1) << 7;
const uint64_t CompositingReasonFilters = UINT64_C(1) << 8;
const uint64_t CompositingReasonPositionFixed = UINT64_C(1) << 9;
const uint64_t CompositingReasonPositionSticky = UINT64_C(1) << 10;
// Bit 10 is available.
const uint64_t CompositingReasonOverflowScrollingTouch = UINT64_C(1) << 11;
const uint64_t CompositingReasonOverflowScrollingParent = UINT64_C(1) << 12;
const uint64_t CompositingReasonOutOfFlowClipping = UINT64_C(1) << 13;
......@@ -83,7 +83,6 @@ const uint64_t CompositingReasonComboAllDirectReasons =
| CompositingReasonTransitionProperty
| CompositingReasonFilters
| CompositingReasonPositionFixed
| CompositingReasonPositionSticky
| CompositingReasonOverflowScrollingTouch
| CompositingReasonOverflowScrollingParent
| CompositingReasonOutOfFlowClipping
......@@ -173,9 +172,7 @@ static const CompositingReasonStringMap compositingReasonStringMap[] = {
{ CompositingReasonPositionFixed,
"positionFixed",
"Is fixed position" },
{ CompositingReasonPositionSticky,
"positionSticky",
"Is sticky position" },
{ 0, 0, 0 }, // Available.
{ CompositingReasonOverflowScrollingTouch,
"overflowScrollingTouch",
"Is a scrollable overflow element" },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment