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_length_utils.h" | 5 #include "core/layout/ng/ng_length_utils.h" |
6 | 6 |
7 #include "core/layout/ng/ng_constraint_space.h" | 7 #include "core/layout/ng/ng_constraint_space.h" |
8 #include "core/layout/ng/ng_constraint_space_builder.h" | 8 #include "core/layout/ng/ng_constraint_space_builder.h" |
9 #include "core/layout/ng/ng_fragment.h" | 9 #include "core/layout/ng/ng_fragment.h" |
10 #include "core/style/ComputedStyle.h" | 10 #include "core/style/ComputedStyle.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 value = min_and_max->min_content; | 92 value = min_and_max->min_content; |
93 } else if (length.isMaxContent() || available_size == LayoutUnit::max()) { | 93 } else if (length.isMaxContent() || available_size == LayoutUnit::max()) { |
94 // If the available space is infinite, fit-content resolves to | 94 // If the available space is infinite, fit-content resolves to |
95 // max-content. See css-sizing section 2.1. | 95 // max-content. See css-sizing section 2.1. |
96 value = min_and_max->max_content; | 96 value = min_and_max->max_content; |
97 } else { | 97 } else { |
98 NGBoxStrut margins = ComputeMargins( | 98 NGBoxStrut margins = ComputeMargins( |
99 constraint_space, style, | 99 constraint_space, style, |
100 FromPlatformWritingMode(style.getWritingMode()), style.direction()); | 100 FromPlatformWritingMode(style.getWritingMode()), style.direction()); |
101 LayoutUnit fill_available = | 101 LayoutUnit fill_available = |
102 std::max(LayoutUnit(), available_size - margins.InlineSum() - | 102 std::max(LayoutUnit(), |
103 border_and_padding.InlineSum()); | 103 available_size - margins.InlineSum() - |
| 104 border_and_padding.InlineSum()); |
104 value = min_and_max->ShrinkToFit(fill_available); | 105 value = min_and_max->ShrinkToFit(fill_available); |
105 } | 106 } |
106 return value + border_and_padding.InlineSum(); | 107 return value + border_and_padding.InlineSum(); |
107 } | 108 } |
108 case DeviceWidth: | 109 case DeviceWidth: |
109 case DeviceHeight: | 110 case DeviceHeight: |
110 case ExtendToZoom: | 111 case ExtendToZoom: |
111 NOTREACHED() << "These should only be used for viewport definitions"; | 112 NOTREACHED() << "These should only be used for viewport definitions"; |
112 case MaxSizeNone: | 113 case MaxSizeNone: |
113 default: | 114 default: |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 Optional<LayoutUnit> min, | 410 Optional<LayoutUnit> min, |
410 Optional<LayoutUnit> max) { | 411 Optional<LayoutUnit> max) { |
411 if (max && length > max.value()) | 412 if (max && length > max.value()) |
412 length = max.value(); | 413 length = max.value(); |
413 if (min && length < min.value()) | 414 if (min && length < min.value()) |
414 length = min.value(); | 415 length = min.value(); |
415 return length; | 416 return length; |
416 } | 417 } |
417 | 418 |
418 } // namespace blink | 419 } // namespace blink |
OLD | NEW |