| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/layout/ng/ng_box.h" | 5 #include "core/layout/ng/ng_box.h" |
| 6 | 6 |
| 7 #include "core/layout/LayoutBlockFlow.h" | 7 #include "core/layout/LayoutBlockFlow.h" |
| 8 #include "core/layout/ng/layout_ng_block_flow.h" | 8 #include "core/layout/ng/layout_ng_block_flow.h" |
| 9 #include "core/layout/ng/ng_block_layout_algorithm.h" | 9 #include "core/layout/ng/ng_block_layout_algorithm.h" |
| 10 #include "core/layout/ng/ng_constraint_space.h" | 10 #include "core/layout/ng/ng_constraint_space.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 } | 26 } |
| 27 | 27 |
| 28 bool NGBox::Layout(const NGConstraintSpace* constraint_space, | 28 bool NGBox::Layout(const NGConstraintSpace* constraint_space, |
| 29 NGFragment** out) { | 29 NGFragment** out) { |
| 30 if (layout_box_ && layout_box_->isOutOfFlowPositioned()) | 30 if (layout_box_ && layout_box_->isOutOfFlowPositioned()) |
| 31 layout_box_->containingBlock()->insertPositionedObject(layout_box_); | 31 layout_box_->containingBlock()->insertPositionedObject(layout_box_); |
| 32 // We can either use the new layout code to do the layout and then copy the | 32 // We can either use the new layout code to do the layout and then copy the |
| 33 // resulting size to the LayoutObject, or use the old layout code and | 33 // resulting size to the LayoutObject, or use the old layout code and |
| 34 // synthesize a fragment. | 34 // synthesize a fragment. |
| 35 if (CanUseNewLayout()) { | 35 if (CanUseNewLayout()) { |
| 36 if (!algorithm_) | |
| 37 algorithm_ = new NGBlockLayoutAlgorithm(Style(), FirstChild()); | |
| 38 // Change the coordinate system of the constraint space. | 36 // Change the coordinate system of the constraint space. |
| 39 NGConstraintSpace* child_constraint_space = new NGConstraintSpace( | 37 NGConstraintSpace* child_constraint_space = new NGConstraintSpace( |
| 40 FromPlatformWritingMode(Style()->getWritingMode()), | 38 FromPlatformWritingMode(Style()->getWritingMode()), |
| 41 FromPlatformDirection(Style()->direction()), | 39 FromPlatformDirection(Style()->direction()), |
| 42 constraint_space->MutablePhysicalSpace()); | 40 constraint_space->MutablePhysicalSpace()); |
| 43 | 41 |
| 42 if (!algorithm_) |
| 43 algorithm_ = new NGBlockLayoutAlgorithm(Style(), FirstChild(), |
| 44 child_constraint_space); |
| 45 |
| 44 NGPhysicalFragment* fragment = nullptr; | 46 NGPhysicalFragment* fragment = nullptr; |
| 45 if (!algorithm_->Layout(child_constraint_space, &fragment)) | 47 if (!algorithm_->Layout(&fragment)) |
| 46 return false; | 48 return false; |
| 47 fragment_ = fragment; | 49 fragment_ = fragment; |
| 48 | 50 |
| 49 if (layout_box_) { | 51 if (layout_box_) { |
| 50 CopyFragmentDataToLayoutBox(*constraint_space); | 52 CopyFragmentDataToLayoutBox(*constraint_space); |
| 51 } | 53 } |
| 52 } else { | 54 } else { |
| 53 DCHECK(layout_box_); | 55 DCHECK(layout_box_); |
| 54 fragment_ = RunOldLayout(*constraint_space); | 56 fragment_ = RunOldLayout(*constraint_space); |
| 55 } | 57 } |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 .SetBlockSize(layout_box_->logicalHeight()) | 179 .SetBlockSize(layout_box_->logicalHeight()) |
| 178 .SetDirection(FromPlatformDirection(layout_box_->styleRef().direction())) | 180 .SetDirection(FromPlatformDirection(layout_box_->styleRef().direction())) |
| 179 .SetWritingMode( | 181 .SetWritingMode( |
| 180 FromPlatformWritingMode(layout_box_->styleRef().getWritingMode())) | 182 FromPlatformWritingMode(layout_box_->styleRef().getWritingMode())) |
| 181 .SetInlineOverflow(overflow.width()) | 183 .SetInlineOverflow(overflow.width()) |
| 182 .SetBlockOverflow(overflow.height()); | 184 .SetBlockOverflow(overflow.height()); |
| 183 return builder.ToFragment(); | 185 return builder.ToFragment(); |
| 184 } | 186 } |
| 185 | 187 |
| 186 } // namespace blink | 188 } // namespace blink |
| OLD | NEW |