|
|
Created:
4 years, 7 months ago by mstensho (USE GERRIT) Modified:
4 years, 7 months ago Reviewers:
leviw_travelin_and_unemployed, szager1, wkorman, eae CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_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. |
DescriptionRemove LayoutFlowThread stuff from line layout code.
We used to force full line layout if we had a flow thread with no column sets.
This may have made sense at some point in the past, where we created column
sets on the fly during layout, but we don't do that anymore (because we don't
mutate the layout tree structure during layout anymore). If we have no column
sets, it means that we cannot have any lines, since there's no column content
(because if there were, we'd have at least one column set). So it was a
pointless (albeit harmless) check.
There was also a flow thread check around some code that checks if previously
created lines will be affected by floats in new ways. If this is the right
thing to do for flowthread based fragmentation, it's also the right thing to do
for non-flowthread based (e.g. printing) fragmentation, so just remove the
check.
Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We
don't have to do anything at all unless we have floats. Let's figure this out
as early as possible and bail if we can.
Also locate the last line in the block flow in a simpler way. Call
lastRootBox() instead of walking some chain of lines all the way to the end.
Committed: https://crrev.com/ebfc536321dddcab1696da3d87edf9115026be42
Cr-Commit-Position: refs/heads/master@{#389720}
Patch Set 1 #Patch Set 2 : De-awesomeified the patch. We need this when not paginated too, since lineDelta may be non-zero. #
Created: 4 years, 7 months ago
Messages
Total messages: 19 (8 generated)
mstensho@opera.com changed reviewers: + eae@chromium.org, leviw@chromium.org, szager@chromium.org, wkorman@chromium.org
The CQ bit was checked by leviw@chromium.org
lgtm Awesome simplification!
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1915803004/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1915803004/1
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Description was changed from ========== Remove LayoutFlowThread stuff from line layout code. We used to force full line layout if we had a flow thread with no column sets. This may have made sense at some point in the past, where we created column sets on the fly during layout, but we don't do that anymore (because we don't mutate the layout tree structure during layout anymore). If we have no column sets, it means that we cannot have any lines, since there's no column content (because if there were, we'd have at least one column set). So it was a pointless (albeit harmless) check. There was also a flow thread check around some code that checks if previously created lines will be affected by floats in new ways. If this is the right thing to do for flowthread based fragmentation, it's also the right thing to do for non-flowthread based (e.g. printing) fragmentation, so just remove the check. Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We don't have to do anything at all unless we both have floats and are paginated. Let's figure this out as early as possible and bail if we can. Also locate the last line in the block flow in a simpler way. Call lastRootBox() instead of walking some chain of lines all the way to the end. ========== to ========== Remove LayoutFlowThread stuff from line layout code. We used to force full line layout if we had a flow thread with no column sets. This may have made sense at some point in the past, where we created column sets on the fly during layout, but we don't do that anymore (because we don't mutate the layout tree structure during layout anymore). If we have no column sets, it means that we cannot have any lines, since there's no column content (because if there were, we'd have at least one column set). So it was a pointless (albeit harmless) check. There was also a flow thread check around some code that checks if previously created lines will be affected by floats in new ways. If this is the right thing to do for flowthread based fragmentation, it's also the right thing to do for non-flowthread based (e.g. printing) fragmentation, so just remove the check. Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We don't have to do anything at all unless we have floats. Let's figure this out as early as possible and bail if we can. Also locate the last line in the block flow in a simpler way. Call lastRootBox() instead of walking some chain of lines all the way to the end. ==========
Looks like I over-simplified it. fast/block/float/float-at-start-of-clean-lines-that-are-subsequently-dirtied.html pointed out to me that we certainly don't need to be paginated for this code to be useful. But we still need floats, though.
On 2016/04/26 06:11:00, mstensho wrote: > Looks like I over-simplified it. > > fast/block/float/float-at-start-of-clean-lines-that-are-subsequently-dirtied.html > pointed out to me that we certainly don't need to be paginated for this code to > be useful. But we still need floats, though. Oh floats, always getting in the way....
On 2016/04/26 06:12:11, eae wrote: > Oh floats, always getting in the way.... As defined in the spec. :)
On 2016/04/26 06:18:04, mstensho wrote: > On 2016/04/26 06:12:11, eae wrote: > > Oh floats, always getting in the way.... > > As defined in the spec. :) Well played sir, well played!
The CQ bit was checked by mstensho@opera.com
The patchset sent to the CQ was uploaded after l-g-t-m from leviw@chromium.org Link to the patchset: https://codereview.chromium.org/1915803004/#ps20001 (title: "De-awesomeified the patch. We need this when not paginated too, since lineDelta may be non-zero.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1915803004/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1915803004/20001
Message was sent while issue was closed.
Description was changed from ========== Remove LayoutFlowThread stuff from line layout code. We used to force full line layout if we had a flow thread with no column sets. This may have made sense at some point in the past, where we created column sets on the fly during layout, but we don't do that anymore (because we don't mutate the layout tree structure during layout anymore). If we have no column sets, it means that we cannot have any lines, since there's no column content (because if there were, we'd have at least one column set). So it was a pointless (albeit harmless) check. There was also a flow thread check around some code that checks if previously created lines will be affected by floats in new ways. If this is the right thing to do for flowthread based fragmentation, it's also the right thing to do for non-flowthread based (e.g. printing) fragmentation, so just remove the check. Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We don't have to do anything at all unless we have floats. Let's figure this out as early as possible and bail if we can. Also locate the last line in the block flow in a simpler way. Call lastRootBox() instead of walking some chain of lines all the way to the end. ========== to ========== Remove LayoutFlowThread stuff from line layout code. We used to force full line layout if we had a flow thread with no column sets. This may have made sense at some point in the past, where we created column sets on the fly during layout, but we don't do that anymore (because we don't mutate the layout tree structure during layout anymore). If we have no column sets, it means that we cannot have any lines, since there's no column content (because if there were, we'd have at least one column set). So it was a pointless (albeit harmless) check. There was also a flow thread check around some code that checks if previously created lines will be affected by floats in new ways. If this is the right thing to do for flowthread based fragmentation, it's also the right thing to do for non-flowthread based (e.g. printing) fragmentation, so just remove the check. Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We don't have to do anything at all unless we have floats. Let's figure this out as early as possible and bail if we can. Also locate the last line in the block flow in a simpler way. Call lastRootBox() instead of walking some chain of lines all the way to the end. ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Remove LayoutFlowThread stuff from line layout code. We used to force full line layout if we had a flow thread with no column sets. This may have made sense at some point in the past, where we created column sets on the fly during layout, but we don't do that anymore (because we don't mutate the layout tree structure during layout anymore). If we have no column sets, it means that we cannot have any lines, since there's no column content (because if there were, we'd have at least one column set). So it was a pointless (albeit harmless) check. There was also a flow thread check around some code that checks if previously created lines will be affected by floats in new ways. If this is the right thing to do for flowthread based fragmentation, it's also the right thing to do for non-flowthread based (e.g. printing) fragmentation, so just remove the check. Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We don't have to do anything at all unless we have floats. Let's figure this out as early as possible and bail if we can. Also locate the last line in the block flow in a simpler way. Call lastRootBox() instead of walking some chain of lines all the way to the end. ========== to ========== Remove LayoutFlowThread stuff from line layout code. We used to force full line layout if we had a flow thread with no column sets. This may have made sense at some point in the past, where we created column sets on the fly during layout, but we don't do that anymore (because we don't mutate the layout tree structure during layout anymore). If we have no column sets, it means that we cannot have any lines, since there's no column content (because if there were, we'd have at least one column set). So it was a pointless (albeit harmless) check. There was also a flow thread check around some code that checks if previously created lines will be affected by floats in new ways. If this is the right thing to do for flowthread based fragmentation, it's also the right thing to do for non-flowthread based (e.g. printing) fragmentation, so just remove the check. Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We don't have to do anything at all unless we have floats. Let's figure this out as early as possible and bail if we can. Also locate the last line in the block flow in a simpler way. Call lastRootBox() instead of walking some chain of lines all the way to the end. Committed: https://crrev.com/ebfc536321dddcab1696da3d87edf9115026be42 Cr-Commit-Position: refs/heads/master@{#389720} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/ebfc536321dddcab1696da3d87edf9115026be42 Cr-Commit-Position: refs/heads/master@{#389720} |