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

Issue 2128093003: [css-flexbox] Don't over-invalidate flex items (Closed)

Created:
4 years, 5 months ago by cbiesinger
Modified:
4 years, 5 months ago
Reviewers:
dgrogan, eae, cbiesinger1
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
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[css-flexbox] Don't over-invalidate flex items dirtyForLayoutFromPercentageHeightDescendants invalidates too much. We already have code to handle this case, so remove this call. We did have a bug in that code though -- we do need to force layout on flex items even if did not lay them out already: such percentages are only resolvable if the flexbox has a definite height. However, whether the flexbox height is definite may have changed since the last layout. So, we need to relayout in either case. The similar code in applyStretchAlignment does not have this issue because percentages in the cross axis can be resolved independent of whether the flexbox height itself is definite. This is covered by an existing test; the call to dirtyForLayoutFromPercentageHeightDescendants was previously covering this case but is slower. This caused a massive performance regression (many minutes to lay out a flexbox-based website instead of a few seconds). TEST=css3/flexbox/definite-cross-sizes.html BUG=595361, 617792 R=dgrogan@chromium.org,eae@chromium.org Committed: https://crrev.com/e31affc47d4167415327e54c48da086e9152ee10 Cr-Commit-Position: refs/heads/master@{#404056}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+2 lines, -4 lines) Patch
M third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp View 2 chunks +2 lines, -4 lines 0 comments Download

Messages

Total messages: 15 (6 generated)
cbiesinger
4 years, 5 months ago (2016-07-06 22:36:46 UTC) #1
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2128093003/1
4 years, 5 months ago (2016-07-06 22:37:52 UTC) #3
eae
Nice fix, thanks for the detailed description! LGTM
4 years, 5 months ago (2016-07-06 23:32:58 UTC) #4
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/2128093003/1
4 years, 5 months ago (2016-07-06 23:34:38 UTC) #7
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/251033)
4 years, 5 months ago (2016-07-07 01:27:56 UTC) #9
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/2128093003/1
4 years, 5 months ago (2016-07-07 01:34:45 UTC) #11
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 5 months ago (2016-07-07 03:05:58 UTC) #12
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-07-07 03:06:05 UTC) #13
commit-bot: I haz the power
4 years, 5 months ago (2016-07-07 03:08:35 UTC) #15
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/e31affc47d4167415327e54c48da086e9152ee10
Cr-Commit-Position: refs/heads/master@{#404056}

Powered by Google App Engine
This is Rietveld 408576698