New issue
Advanced search Search tips
Starred by 11 users
Status: Duplicate
Merged: issue 231752
Owner: ----
Closed: Jun 2014
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment
Implement position: sticky
Project Member Reported by abarth@chromium.org, Jun 27 2014 Back to list
The current implementation of position sticky in Blink does not integrate correctly with compositing or scrolling.  We eventually want to implement position sticky, but the current implementation is getting the way of work to improve scrolling and compositing.  Once scrolling and compositing are in better shape, we can re-introduce position sticky in a way that integrates correctly with the rest of the system.
 
Comment 1 by abarth@chromium.org, Jun 27 2014
As one exmaple, position: sticky relies upon RenderLayer::updateLayerPositionsAfterDocumentScroll, which we're about to remove.
Mergedinto: 231752
Status: Duplicate
Comment 3 by abarth@chromium.org, Jun 27 2014
https://codereview.chromium.org/331653004 is an example CL unlocked by removing the current implementation of position: sticky.
Project Member Comment 4 by bugdroid1@chromium.org, Jun 27 2014
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=177128

------------------------------------------------------------------
r177128 | chrome-bot@google.com | 2014-06-27T20:35:40.356966Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBlock.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSPrimitiveValueMappings.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderFlowThread.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/RuntimeEnabledFeatures.in?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyleConstants.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.h?r1=177128&r2=177127&pathrev=177128
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/sticky?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyle.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/FrameView.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/StaleTestExpectations?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderObject.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/parser/BisonCSSParser-in.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderLayer.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSValueKeywords.in?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/LayoutState.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/resolver/StyleAdjuster.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/devtools/front_end/layers/LayerDetailsView.js?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderInline.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/scrolling/ScrollingConstraints.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderInline.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderTableRow.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/scrolling/ScrollingConstraints.h?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositingReasonFinder.cpp?r1=177128&r2=177127&pathrev=177128
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.cpp?r1=177128&r2=177127&pathrev=177128

Remove position: sticky

We would eventually like to implement position: sticky, but the current
implementation isn't designed in a way that integrates well with the existing
scrolling and compositing system. For example, position: sticky relies upon
updateLayerPositionsAfterDocumentScroll to function correctly, but that
function has no other purpose and can otherwise be removed. Similarly,
position: sticky doesn't work at all with composited overflow scrolling, which
is now the default mechanism for driving scrolling in the engine.

Once we've got our scrolling and compositing house in order, we should return
to position: sticky and implement the feature in a way that integrates well
with the rest of the engine. For now, however, this CL removes our current
implementation so we can focus on improving our implementation of the scrolling
features we've already shipped.

R=eseidel@chromium.org, esprehn@chromium.org
BUG= 389638 ,  231752 

Review URL: https://codereview.chromium.org/346603007
-----------------------------------------------------------------
Comment 5 by laforge@google.com, Jan 9 2015
Labels: -Cr-Blink-Rendering Cr-Blink-Layout
Migrate from Cr-Blink-Rendering to Cr-Blink-Layout
is there any (even approximate) ETA on this?
cf. https://dev.modern.ie/platform/status/positionsticky/
Sign in to add a comment