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

Issue 2553833002: Refactor layoutBlock() and layoutBlockFlow(). Happens to fix bugs. (Closed)

Created:
4 years ago by mstensho (USE GERRIT)
Modified:
4 years ago
Reviewers:
szager1
CC:
chromium-reviews, 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

Refactor layoutBlock() and layoutBlockFlow(). Happens to fix bugs. Move what only needs to be done once into layoutBlock(). Rename layoutBlockFlow() to layoutChildren(). Establish LayoutState once, and compare with the actual previous height to properly detect height changes. This fixes two issues with the PaintLayerScrollableArea::FreezeScrollbarsScope mechanism. Tests added. 1. We used to push LayoutState for the same object twice when freezing scrollbars, which confused the fragmentation machinery. 2. We failed to detect height changes when freezing scrollbars, because we were unable to compare against the original height (we compared against the height we had when entering the second layout pass, rather than comparing against the one we had when entering the first layout pass). We might therefore end up skipping necessary re-layout of absolutely positioned descendants. BUG=669039, 670660 Committed: https://crrev.com/9d96126f67850daf3c07586dc09fa334d592529c Cr-Commit-Position: refs/heads/master@{#436414}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+108 lines, -59 lines) Patch
A third_party/WebKit/LayoutTests/fast/block/shrink-to-fit-with-height-stretched-abspos-and-auto-scrollbar-sibling.html View 1 chunk +23 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fragmentation/auto-scrollbar-shrink-to-fit.html View 1 chunk +29 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp View 5 chunks +55 lines, -58 lines 0 comments Download

Messages

Total messages: 13 (8 generated)
mstensho (USE GERRIT)
4 years ago (2016-12-05 19:46:57 UTC) #4
szager1
This is without question my favorite CL of 2016. lgtm
4 years ago (2016-12-05 21:17:31 UTC) #5
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/2553833002/1
4 years ago (2016-12-05 21:26:06 UTC) #9
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years ago (2016-12-05 21:31:38 UTC) #11
commit-bot: I haz the power
4 years ago (2016-12-05 21:35:14 UTC) #13
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/9d96126f67850daf3c07586dc09fa334d592529c
Cr-Commit-Position: refs/heads/master@{#436414}

Powered by Google App Engine
This is Rietveld 408576698