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

Issue 1734203002: Fully (?) fix overflow: auto with delayed scroll updates (Closed)

Created:
4 years, 10 months ago by cbiesinger
Modified:
4 years, 10 months ago
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, slimming-paint-reviews_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fully (?) fix overflow: auto with delayed scroll updates The scroll delaying code, used by Flexbox, never lays out the parent after the child relayout. This is a problem especially because the layout can add/remove a horizontal scrollbar, which changes the height of the element. A vertical scrollbar has this problem less often, though it sometimes does, especially in case of flex items. As far as I can tell, this never worked correctly since the scroll delaying code existed. This patch changes it so that when we eventually do the scroll info updates, we mark the ancestor chain for layout (up to the outer flexbox) and then call layoutFlexItems again, to do the correct layout. See also the discussion thread at https://groups.google.com/a/chromium.org/d/topic/layout-dev/e7Wzvxu7qiA/discussion BUG=579401, 584363 Committed: https://crrev.com/775378f6ac8293e20a393c5203f5431a4a679339 Cr-Commit-Position: refs/heads/master@{#377826}

Patch Set 1 #

Total comments: 2

Patch Set 2 : review comments #

Total comments: 2

Patch Set 3 : review comment #

Total comments: 3

Patch Set 4 : more review comment #

Total comments: 1

Patch Set 5 : added comment #

Messages

Total messages: 37 (18 generated)
cbiesinger
https://codereview.chromium.org/1734203002/diff/1/third_party/WebKit/LayoutTests/css3/flexbox/overflow-auto-resizes-correctly.html File third_party/WebKit/LayoutTests/css3/flexbox/overflow-auto-resizes-correctly.html (right): https://codereview.chromium.org/1734203002/diff/1/third_party/WebKit/LayoutTests/css3/flexbox/overflow-auto-resizes-correctly.html#newcode22 third_party/WebKit/LayoutTests/css3/flexbox/overflow-auto-resizes-correctly.html:22: max-height: 200px; I made this change because I am ...
4 years, 10 months ago (2016-02-25 20:46:26 UTC) #1
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1734203002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1734203002/1
4 years, 10 months ago (2016-02-25 20:49:46 UTC) #3
szager1
Wow, this is WAY better than my fix. https://codereview.chromium.org/1734203002/diff/1/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp File third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp (right): https://codereview.chromium.org/1734203002/diff/1/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp#newcode704 third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp:704: didMarkForLayout ...
4 years, 10 months ago (2016-02-25 21:08:09 UTC) #8
cbiesinger
Good point. Made that change and renamed that variable to didMarkForDelayedLayout. Also, this patch does ...
4 years, 10 months ago (2016-02-25 21:29:38 UTC) #10
leviw_travelin_and_unemployed
Nice work! https://codereview.chromium.org/1734203002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp File third_party/WebKit/Source/core/layout/LayoutBlock.cpp (right): https://codereview.chromium.org/1734203002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp#newcode842 third_party/WebKit/Source/core/layout/LayoutBlock.cpp:842: bool didMarking = false; This could have ...
4 years, 10 months ago (2016-02-25 21:31:29 UTC) #11
cbiesinger
https://codereview.chromium.org/1734203002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp File third_party/WebKit/Source/core/layout/LayoutBlock.cpp (right): https://codereview.chromium.org/1734203002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlock.cpp#newcode842 third_party/WebKit/Source/core/layout/LayoutBlock.cpp:842: bool didMarking = false; On 2016/02/25 21:31:28, leviw wrote: ...
4 years, 10 months ago (2016-02-25 21:33:13 UTC) #12
skobes
Can you put some more detail in the change description?
4 years, 10 months ago (2016-02-25 21:33:33 UTC) #13
szager1
lgtm after addressing skobes and leviw comments.
4 years, 10 months ago (2016-02-25 21:38:39 UTC) #14
cbiesinger
Improved the description. skobes/leviw any further comments?
4 years, 10 months ago (2016-02-25 21:45:54 UTC) #16
leviw_travelin_and_unemployed
LGTM! :D https://codereview.chromium.org/1734203002/diff/40001/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp File third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp (right): https://codereview.chromium.org/1734203002/diff/40001/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp#newcode535 third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp:535: LayoutBlock::finishDelayUpdateScrollInfo(0); nullptr https://codereview.chromium.org/1734203002/diff/40001/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp#newcode786 third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp:786: LayoutBlock::finishDelayUpdateScrollInfo(0); ditto https://codereview.chromium.org/1734203002/diff/40001/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h ...
4 years, 10 months ago (2016-02-25 21:49:51 UTC) #19
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1734203002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1734203002/40001
4 years, 10 months ago (2016-02-25 21:51:55 UTC) #20
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1734203002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1734203002/60001
4 years, 10 months ago (2016-02-25 22:00:04 UTC) #22
skobes
lgtm % nit https://codereview.chromium.org/1734203002/diff/60001/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h File third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h (right): https://codereview.chromium.org/1734203002/diff/60001/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h#newcode256 third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h:256: bool updateAfterLayout(SubtreeLayoutScope* = nullptr); Can you ...
4 years, 10 months ago (2016-02-25 22:09:31 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1734203002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1734203002/80001
4 years, 10 months ago (2016-02-25 22:33:57 UTC) #28
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/179895)
4 years, 10 months ago (2016-02-26 02:42:43 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1734203002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1734203002/80001
4 years, 10 months ago (2016-02-26 03:30:38 UTC) #32
commit-bot: I haz the power
Committed patchset #5 (id:80001)
4 years, 10 months ago (2016-02-26 06:06:09 UTC) #34
commit-bot: I haz the power
Patchset 5 (id:??) landed as https://crrev.com/775378f6ac8293e20a393c5203f5431a4a679339 Cr-Commit-Position: refs/heads/master@{#377826}
4 years, 10 months ago (2016-02-26 06:07:06 UTC) #36
lfg
4 years, 9 months ago (2016-02-29 23:45:05 UTC) #37
Message was sent while issue was closed.
A revert of this CL (patchset #5 id:80001) has been created in
https://codereview.chromium.org/1746353002/ by lfg@chromium.org.

The reason for reverting is: Crashes in blink::LayoutObject::container. See
https://crbug.com/525316..

Powered by Google App Engine
This is Rietveld 408576698