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

Issue 2692083002: Avoid unnecessary cell layout on nested percent height tables (Closed)

Created:
3 years, 10 months ago by rhogan
Modified:
3 years, 10 months ago
Reviewers:
CC:
chromium-reviews
Target Ref:
refs/pending/branch-heads/2987
Project:
chromium
Visibility:
Public.

Description

Avoid unnecessary cell layout on nested percent height tables In the test, the nested percent height tables mean that each cell will get at least three layouts (LayoutTableRow::layout(),calcRowLogicalHeight(), layoutRows()) during the layout of the section - and this cascades down the tree with the lowest children getting hundreds of repeated layouts. This inefficiency has always been there, we've just introduced it for the percent height situation with crrev.com/2441373002. To avoid this don't bother computing the height of the section based on row sizes (calcRowLogicalHeight()), unless the section itself needed a layout - the previously calculated value will do. The only complication this introduces is: any extra logical height from the table that we previously discarded when distributing to the rows we will now try to distribute again. This can change the size of the section and cause extra paints. BUG=687061 Review-Url: https://codereview.chromium.org/2670603002 Cr-Commit-Position: refs/heads/master@{#449101} (cherry picked from commit d3ceb0147ad9f4d4a9b41cea0362d6221cb72302) Review-Url: https://codereview.chromium.org/2692083002 . Cr-Commit-Position: refs/branch-heads/2987@{#485} Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943} Committed: https://chromium.googlesource.com/chromium/src/+/6956d4ec3f63e0fec4100bcbe6f502d111b189e7

Patch Set 1 #

Messages

Total messages: 2 (1 generated)
rhogan
3 years, 10 months ago (2017-02-13 20:26:57 UTC) #2
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
6956d4ec3f63e0fec4100bcbe6f502d111b189e7.

Powered by Google App Engine
This is Rietveld 408576698