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

Issue 2708883005: Handle nested position:sticky elements correctly (main thread) (Closed)

Created:
3 years, 10 months ago by smcgruer
Modified:
3 years, 10 months ago
CC:
chromium-reviews, kenneth.christiansen, szager+layoutwatch_chromium.org, zoltan1, blink-reviews-layout_chromium.org, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering, blink-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Handle nested position:sticky elements correctly (main thread) In order to correctly calculate the sticky offset for nested sticky, we must track the accumulated sticky offset from our ancestor sticky elements. This accumulation must then be used to adjust the location of the two constraint rects. This patch fixed nested position: sticky only for the main thread side. A compositor fix will follow in a later patch. To ensure that nested sticky behaves properly in the meantime, we also disallow compositing of sticky elements if nesting is detected. BUG=672710 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2708883005 Cr-Commit-Position: refs/heads/master@{#452944} Committed: https://chromium.googlesource.com/chromium/src/+/b693f94a81551da0334f9fb297813e617d9539c0

Patch Set 1 #

Patch Set 2 : Remove accidental file #

Patch Set 3 : Rebase #

Total comments: 30

Patch Set 4 : LayoutTest cleanup #

Patch Set 5 : Address reviewer comments #

Total comments: 6

Patch Set 6 : Address reviewer comments #

Total comments: 4

Patch Set 7 : Remove isBoxModelObject() check #

Patch Set 8 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1465 lines, -49 lines) Patch
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html View 1 2 3 1 chunk +81 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep-expected.html View 1 2 3 1 chunk +58 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-inline.html View 1 2 3 1 chunk +52 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-inline-expected.html View 1 2 3 1 chunk +27 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-left.html View 1 2 3 1 chunk +88 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-left-expected.html View 1 2 3 1 chunk +55 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-table.html View 1 2 3 1 chunk +70 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-table-expected.html View 1 2 3 1 chunk +50 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-top.html View 1 2 3 1 chunk +87 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-top-expected.html View 1 2 3 1 chunk +56 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 1 chunk +11 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 2 3 4 5 6 7 6 chunks +77 lines, -21 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp View 1 2 3 4 5 6 7 1 chunk +583 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 1 chunk +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/MapCoordinatesFlags.h View 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp View 1 2 3 4 5 6 7 1 chunk +15 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinderTest.cpp View 1 2 3 4 1 chunk +32 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/page/scrolling/StickyPositionScrollingConstraints.h View 1 2 3 4 6 chunks +74 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/page/scrolling/StickyPositionScrollingConstraints.cpp View 1 2 3 4 4 chunks +37 lines, -19 lines 0 comments Download

Messages

Total messages: 35 (23 generated)
smcgruer
There are still a few TODOs to polish off and get right, but I think ...
3 years, 10 months ago (2017-02-22 21:05:58 UTC) #11
flackr
For reference this was split off from https://codereview.chromium.org/2636253002/ https://codereview.chromium.org/2708883005/diff/40001/third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html File third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html (right): https://codereview.chromium.org/2708883005/diff/40001/third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html#newcode4 third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html:4: internals.settings.setCSSStickyPositionEnabled(true); ...
3 years, 10 months ago (2017-02-22 22:40:15 UTC) #12
smcgruer
https://codereview.chromium.org/2708883005/diff/40001/third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html File third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html (right): https://codereview.chromium.org/2708883005/diff/40001/third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html#newcode4 third_party/WebKit/LayoutTests/fast/css/sticky/nested/sticky-nested-deep.html:4: internals.settings.setCSSStickyPositionEnabled(true); On 2017/02/22 22:40:14, flackr wrote: > nit: use ...
3 years, 10 months ago (2017-02-23 20:14:17 UTC) #13
flackr
https://codereview.chromium.org/2708883005/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/2708883005/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode59 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:59: if (!o || !o->layer()->ancestorOverflowLayer()) Maybe we should pass ancestorOverflowLayer ...
3 years, 10 months ago (2017-02-24 01:33:33 UTC) #14
smcgruer
https://codereview.chromium.org/2708883005/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/2708883005/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode59 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:59: if (!o || !o->layer()->ancestorOverflowLayer()) On 2017/02/24 01:33:33, flackr wrote: ...
3 years, 10 months ago (2017-02-24 14:17:43 UTC) #15
flackr
LGTM https://codereview.chromium.org/2708883005/diff/100001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/2708883005/diff/100001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode1040 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:1040: // compositing inputs have been computed? I don't ...
3 years, 10 months ago (2017-02-24 15:07:37 UTC) #16
smcgruer
https://codereview.chromium.org/2708883005/diff/100001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/2708883005/diff/100001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode1040 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:1040: // compositing inputs have been computed? On 2017/02/24 15:07:37, ...
3 years, 10 months ago (2017-02-24 15:27:57 UTC) #17
smcgruer
+schenney for blink OWNERS (Chris is still OOO I think)
3 years, 10 months ago (2017-02-24 18:31:43 UTC) #19
Stephen Chennney
On 2017/02/24 18:31:43, smcgruer wrote: > +schenney for blink OWNERS (Chris is still OOO I ...
3 years, 10 months ago (2017-02-24 18:58:11 UTC) #24
Stephen Chennney
On 2017/02/24 18:58:11, Stephen Chennney wrote: > On 2017/02/24 18:31:43, smcgruer wrote: > > +schenney ...
3 years, 10 months ago (2017-02-24 21:42:01 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2708883005/140001
3 years, 10 months ago (2017-02-24 21:58:11 UTC) #32
commit-bot: I haz the power
3 years, 10 months ago (2017-02-24 22:08:08 UTC) #35
Message was sent while issue was closed.
Committed patchset #8 (id:140001) as
https://chromium.googlesource.com/chromium/src/+/b693f94a81551da0334f9fb29781...

Powered by Google App Engine
This is Rietveld 408576698