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

Side by Side Diff: Source/core/rendering/RenderMultiColumnSet.cpp

Issue 263083009: [New Multicolumn] Make fast/multicol/overflow-content.html pass in the new implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 largestHeight = height; 111 largestHeight = height;
112 indexWithLargestHeight = i; 112 indexWithLargestHeight = i;
113 } 113 }
114 previousOffset = run.breakOffset(); 114 previousOffset = run.breakOffset();
115 } 115 }
116 return indexWithLargestHeight; 116 return indexWithLargestHeight;
117 } 117 }
118 118
119 void RenderMultiColumnSet::distributeImplicitBreaks() 119 void RenderMultiColumnSet::distributeImplicitBreaks()
120 { 120 {
121 unsigned breakCount = forcedBreaksCount();
122
123 #ifndef NDEBUG 121 #ifndef NDEBUG
124 // There should be no implicit breaks assumed at this point. 122 // There should be no implicit breaks assumed at this point.
125 for (unsigned i = 0; i < breakCount; i++) 123 for (unsigned i = 0; i < forcedBreaksCount(); i++)
126 ASSERT(!m_contentRuns[i].assumedImplicitBreaks()); 124 ASSERT(!m_contentRuns[i].assumedImplicitBreaks());
127 #endif // NDEBUG 125 #endif // NDEBUG
128 126
129 // There will always be at least one break, since the flow thread reports a "forced break" at 127 // Insert a final content run to encompass all content. This will include ov erflow if this is
130 // end of content. 128 // the last set.
131 ASSERT(breakCount >= 1); 129 addForcedBreak(logicalBottomInFlowThread());
Julien - ping for review 2014/05/07 00:55:17 Doesn't this make the call to applyBreakAfterConte
Julien - ping for review 2014/05/07 01:01:11 Forget this comment, I missed that this change had
130 unsigned breakCount = forcedBreaksCount();
132 131
133 // If there is room for more breaks (to reach the used value of column-count ), imagine that we 132 // If there is room for more breaks (to reach the used value of column-count ), imagine that we
134 // insert implicit breaks at suitable locations. At any given time, the cont ent run with the 133 // insert implicit breaks at suitable locations. At any given time, the cont ent run with the
135 // currently tallest columns will get another implicit break "inserted", whi ch will increase its 134 // currently tallest columns will get another implicit break "inserted", whi ch will increase its
136 // column count by one and shrink its columns' height. Repeat until we have the desired total 135 // column count by one and shrink its columns' height. Repeat until we have the desired total
137 // number of breaks. The largest column height among the runs will then be t he initial column 136 // number of breaks. The largest column height among the runs will then be t he initial column
138 // height for the balancer to use. 137 // height for the balancer to use.
139 while (breakCount < m_computedColumnCount) { 138 while (breakCount < m_computedColumnCount) {
140 unsigned index = findRunWithTallestColumns(); 139 unsigned index = findRunWithTallestColumns();
141 m_contentRuns[index].assumeAnotherImplicitBreak(); 140 m_contentRuns[index].assumeAnotherImplicitBreak();
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 fragments.append(fragment); 603 fragments.append(fragment);
605 } 604 }
606 } 605 }
607 606
608 const char* RenderMultiColumnSet::renderName() const 607 const char* RenderMultiColumnSet::renderName() const
609 { 608 {
610 return "RenderMultiColumnSet"; 609 return "RenderMultiColumnSet";
611 } 610 }
612 611
613 } 612 }
OLDNEW
« Source/core/rendering/RenderBlock.cpp ('K') | « Source/core/rendering/RenderMultiColumnSet.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698