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

Issue 1181693004: Add out-of-flow descendants of spanners to their containing blocks in time. (Closed)

Created:
5 years, 6 months ago by mstensho (USE GERRIT)
Modified:
5 years, 6 months ago
CC:
blink-reviews, blink-reviews-rendering, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, mstensho (USE GERRIT), pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/remotes/origin/master
Project:
blink
Visibility:
Public.

Description

Add out-of-flow descendants of spanners to their containing blocks in time. A column spanner isn't laid out as a normal child in the flow thread, since the flow thread isn't a containing block for spanners. However, out-of-flow descendants of a spanner may have their containing blocks somewhere outside the spanner but inside the flow thread, and those have to be laid out as part of flow thread layout (layoutPositionedObjects() on their containing block). Therefore we have to add such out-of-flow objects to their respective containing blocks when skipping spanners, or they'll never get laid out. We also have to bail from updateBlockChildDirtyBitsBeforeLayout() for out-of-flow objects, so that they don't get marked when laying out the spanner. They may already have been laid out at that point (as part of flow thread layout), in which case we'll never get back to laying them out again if marked (since we're way past that point in the tree). In any case, it's a pretty useless thing to mark out-of-flow objects for layout here, since we by doing that would kind of be assuming that the out-of-flow child has its parent as its containing block (which may be true, by all means, but not something that should be taken for granted). Added a reftest that would assert and probably fail visually too without this fix. BUG=498770 R=dsinclair@chromium.org,jchaffraix@chromium.org Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197071

Patch Set 1 #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+52 lines, -0 lines) Patch
A LayoutTests/fast/multicol/span/abspos-containing-block-outside-spanner.html View 1 chunk +23 lines, -0 lines 0 comments Download
A LayoutTests/fast/multicol/span/abspos-containing-block-outside-spanner-expected.html View 1 chunk +9 lines, -0 lines 0 comments Download
M Source/core/layout/LayoutBlock.cpp View 1 chunk +7 lines, -0 lines 2 comments Download
M Source/core/layout/LayoutMultiColumnFlowThread.cpp View 1 chunk +13 lines, -0 lines 0 comments Download

Messages

Total messages: 8 (2 generated)
mstensho (USE GERRIT)
5 years, 6 months ago (2015-06-11 22:21:18 UTC) #1
dsinclair
https://codereview.chromium.org/1181693004/diff/1/Source/core/layout/LayoutBlock.cpp File Source/core/layout/LayoutBlock.cpp (right): https://codereview.chromium.org/1181693004/diff/1/Source/core/layout/LayoutBlock.cpp#newcode1045 Source/core/layout/LayoutBlock.cpp:1045: if (child.isOutOfFlowPositioned()) { Doesn't this mean that an out ...
5 years, 6 months ago (2015-06-12 13:40:45 UTC) #3
mstensho (USE GERRIT)
https://codereview.chromium.org/1181693004/diff/1/Source/core/layout/LayoutBlock.cpp File Source/core/layout/LayoutBlock.cpp (right): https://codereview.chromium.org/1181693004/diff/1/Source/core/layout/LayoutBlock.cpp#newcode1045 Source/core/layout/LayoutBlock.cpp:1045: if (child.isOutOfFlowPositioned()) { On 2015/06/12 13:40:45, dsinclair wrote: > ...
5 years, 6 months ago (2015-06-12 13:45:09 UTC) #4
dsinclair
lgtm
5 years, 6 months ago (2015-06-12 20:44:25 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1181693004/1
5 years, 6 months ago (2015-06-12 20:44:55 UTC) #7
commit-bot: I haz the power
5 years, 6 months ago (2015-06-12 23:38:10 UTC) #8
Message was sent while issue was closed.
Committed patchset #1 (id:1) as
https://src.chromium.org/viewvc/blink?view=rev&revision=197071

Powered by Google App Engine
This is Rietveld 408576698