| Differences between
and this patch
- a/LayoutTests/TestExpectations -47 lines
Lines 4804-4868 imported/w3c/web-platform-tests/css/css-contain/contain-paint-stacking-context-0 a/LayoutTests/TestExpectations_sec1
4804
imported/w3c/web-platform-tests/css/css-contain/contain-paint-stacking-context-001b.html [ ImageOnlyFailure ]
4804
imported/w3c/web-platform-tests/css/css-contain/contain-paint-stacking-context-001b.html [ ImageOnlyFailure ]
4805
imported/w3c/web-platform-tests/css/css-contain/contain-paint-table-001.html [ ImageOnlyFailure ]
4805
imported/w3c/web-platform-tests/css/css-contain/contain-paint-table-001.html [ ImageOnlyFailure ]
4806
imported/w3c/web-platform-tests/css/css-contain/contain-paint-table-002.html [ ImageOnlyFailure ]
4806
imported/w3c/web-platform-tests/css/css-contain/contain-paint-table-002.html [ ImageOnlyFailure ]
4807
imported/w3c/web-platform-tests/css/css-contain/contain-size-011.html [ ImageOnlyFailure ]
4808
imported/w3c/web-platform-tests/css/css-contain/contain-size-013.html [ ImageOnlyFailure ]
4809
imported/w3c/web-platform-tests/css/css-contain/contain-size-021.html [ ImageOnlyFailure ]
4810
imported/w3c/web-platform-tests/css/css-contain/contain-size-023.html [ ImageOnlyFailure ]
4811
imported/w3c/web-platform-tests/css/css-contain/contain-size-025.html [ ImageOnlyFailure ]
4812
imported/w3c/web-platform-tests/css/css-contain/contain-size-027.html [ ImageOnlyFailure ]
4813
imported/w3c/web-platform-tests/css/css-contain/contain-size-041.html [ ImageOnlyFailure ]
4814
imported/w3c/web-platform-tests/css/css-contain/contain-size-042.html [ ImageOnlyFailure ]
4815
imported/w3c/web-platform-tests/css/css-contain/contain-size-056.html [ ImageOnlyFailure ]
4816
imported/w3c/web-platform-tests/css/css-contain/contain-size-061.html [ ImageOnlyFailure ]
4817
imported/w3c/web-platform-tests/css/css-contain/contain-size-062.html [ ImageOnlyFailure ]
4818
imported/w3c/web-platform-tests/css/css-contain/contain-size-063.html [ ImageOnlyFailure ]
4819
imported/w3c/web-platform-tests/css/css-contain/contain-size-064.html [ ImageOnlyFailure ]
4807
imported/w3c/web-platform-tests/css/css-contain/contain-size-064.html [ ImageOnlyFailure ]
4820
imported/w3c/web-platform-tests/css/css-contain/contain-size-block-001.html [ ImageOnlyFailure ]
4821
imported/w3c/web-platform-tests/css/css-contain/contain-size-block-002.html [ ImageOnlyFailure ]
4822
imported/w3c/web-platform-tests/css/css-contain/contain-size-block-003.html [ ImageOnlyFailure ]
4808
imported/w3c/web-platform-tests/css/css-contain/contain-size-block-003.html [ ImageOnlyFailure ]
4823
imported/w3c/web-platform-tests/css/css-contain/contain-size-block-004.html [ ImageOnlyFailure ]
4824
imported/w3c/web-platform-tests/css/css-contain/contain-size-borders.html [ ImageOnlyFailure ]
4825
imported/w3c/web-platform-tests/css/css-contain/contain-size-breaks-001.html [ ImageOnlyFailure ]
4826
imported/w3c/web-platform-tests/css/css-contain/contain-size-button-001.html [ ImageOnlyFailure ]
4809
imported/w3c/web-platform-tests/css/css-contain/contain-size-button-001.html [ ImageOnlyFailure ]
4827
imported/w3c/web-platform-tests/css/css-contain/contain-size-button-002.html [ ImageOnlyFailure ]
4810
imported/w3c/web-platform-tests/css/css-contain/contain-size-button-002.html [ ImageOnlyFailure ]
4828
imported/w3c/web-platform-tests/css/css-contain/contain-size-fieldset-001.html [ ImageOnlyFailure ]
4829
imported/w3c/web-platform-tests/css/css-contain/contain-size-fieldset-002.html [ ImageOnlyFailure ]
4830
imported/w3c/web-platform-tests/css/css-contain/contain-size-fieldset-003.html [ ImageOnlyFailure ]
4831
imported/w3c/web-platform-tests/css/css-contain/contain-size-fieldset-004.html [ ImageOnlyFailure ]
4832
imported/w3c/web-platform-tests/css/css-contain/contain-size-flex-001.html [ ImageOnlyFailure ]
4833
imported/w3c/web-platform-tests/css/css-contain/contain-size-flexbox-001.html [ ImageOnlyFailure ]
4834
imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-001.html [ ImageOnlyFailure ]
4835
imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-002.html [ ImageOnlyFailure ]
4836
imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-005.html [ ImageOnlyFailure ]
4837
imported/w3c/web-platform-tests/css/css-contain/contain-size-inline-block-001.html [ ImageOnlyFailure ]
4838
imported/w3c/web-platform-tests/css/css-contain/contain-size-inline-block-002.html [ ImageOnlyFailure ]
4839
imported/w3c/web-platform-tests/css/css-contain/contain-size-inline-block-003.html [ ImageOnlyFailure ]
4811
imported/w3c/web-platform-tests/css/css-contain/contain-size-inline-block-003.html [ ImageOnlyFailure ]
4840
imported/w3c/web-platform-tests/css/css-contain/contain-size-inline-block-004.html [ ImageOnlyFailure ]
4841
imported/w3c/web-platform-tests/css/css-contain/contain-size-inline-flex-001.html [ ImageOnlyFailure ]
4842
imported/w3c/web-platform-tests/css/css-contain/contain-size-monolithic-001.html [ ImageOnlyFailure ]
4812
imported/w3c/web-platform-tests/css/css-contain/contain-size-monolithic-001.html [ ImageOnlyFailure ]
4843
imported/w3c/web-platform-tests/css/css-contain/contain-size-monolithic-002.html [ ImageOnlyFailure ]
4813
imported/w3c/web-platform-tests/css/css-contain/contain-size-monolithic-002.html [ ImageOnlyFailure ]
4844
imported/w3c/web-platform-tests/css/css-contain/contain-size-multicol-001.html [ ImageOnlyFailure ]
4845
imported/w3c/web-platform-tests/css/css-contain/contain-size-multicol-002.html [ ImageOnlyFailure ]
4846
imported/w3c/web-platform-tests/css/css-contain/contain-size-multicol-003.html [ ImageOnlyFailure ]
4847
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-001.html [ ImageOnlyFailure ]
4848
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-002.html [ ImageOnlyFailure ]
4814
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-002.html [ ImageOnlyFailure ]
4849
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-003a.html [ ImageOnlyFailure ]
4850
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-003b.html [ ImageOnlyFailure ]
4851
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-003c.html [ ImageOnlyFailure ]
4852
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-004.html [ ImageOnlyFailure ]
4853
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-005.html [ ImageOnlyFailure ]
4854
imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-006.html [ ImageOnlyFailure ]
4855
imported/w3c/web-platform-tests/css/css-contain/contain-size-scrollbars-001.html [ ImageOnlyFailure ]
4856
imported/w3c/web-platform-tests/css/css-contain/contain-size-scrollbars-002.html [ ImageOnlyFailure ]
4857
imported/w3c/web-platform-tests/css/css-contain/contain-size-scrollbars-003.html [ ImageOnlyFailure ]
4858
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-001.html [ ImageOnlyFailure ]
4815
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-001.html [ ImageOnlyFailure ]
4859
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-002.html [ ImageOnlyFailure ]
4816
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-002.html [ ImageOnlyFailure ]
4860
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-elem-001.html [ ImageOnlyFailure ]
4817
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-elem-001.html [ ImageOnlyFailure ]
4861
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-elem-002.html [ ImageOnlyFailure ]
4818
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-elem-002.html [ ImageOnlyFailure ]
4862
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-elem-003.html [ ImageOnlyFailure ]
4863
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-elem-004.html [ ImageOnlyFailure ]
4864
imported/w3c/web-platform-tests/css/css-contain/contain-size-select-elem-005.html [ ImageOnlyFailure ]
4865
imported/w3c/web-platform-tests/css/css-contain/contain-size-table-caption-001.html [ ImageOnlyFailure ]
4866
imported/w3c/web-platform-tests/css/css-contain/contain-strict-001.html [ ImageOnlyFailure ]
4819
imported/w3c/web-platform-tests/css/css-contain/contain-strict-001.html [ ImageOnlyFailure ]
4867
imported/w3c/web-platform-tests/css/css-contain/contain-strict-002.html [ ImageOnlyFailure ]
4820
imported/w3c/web-platform-tests/css/css-contain/contain-strict-002.html [ ImageOnlyFailure ]
4868
imported/w3c/web-platform-tests/css/css-contain/contain-strict-003.html [ ImageOnlyFailure ]
4821
imported/w3c/web-platform-tests/css/css-contain/contain-strict-003.html [ ImageOnlyFailure ]
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-003-expected.txt -3 / +9 lines
Lines 13-20 PASS .grid 11 a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-003-expected.txt_sec1
13
PASS .grid 12
13
PASS .grid 12
14
PASS .grid 13
14
PASS .grid 13
15
PASS .grid 14
15
PASS .grid 14
16
PASS .grid 15
16
FAIL .grid 15 assert_equals:
17
PASS .grid 16
17
<div class="grid" style="grid: minmax(40px, 60px) / minmax(50px, 100px);" data-expected-width="100" data-expected-height="60">
18
</div>
19
height expected 60 but got 40
20
FAIL .grid 16 assert_equals:
21
<div class="grid" style="grid: minmax(40px, 60px) / minmax(50px, 100px); width: min-content; height: min-content;" data-expected-width="50" data-expected-height="60">
22
</div>
23
height expected 60 but got 40
18
PASS .grid 17
24
PASS .grid 17
19
PASS .grid 18
25
PASS .grid 18
20
PASS .grid 19
26
PASS .grid 19
Lines 48-54 FAIL .grid 39 assert_equals: a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-003-expected.txt_sec2
48
  <div data-expected-width="100" data-expected-height="50" data-offset-x="0" data-offset-y="10">XXX</div>
54
  <div data-expected-width="100" data-expected-height="50" data-offset-x="0" data-offset-y="10">XXX</div>
49
  <div data-expected-width="40" data-expected-height="50" data-offset-x="100" data-offset-y="10">XXXX</div>
55
  <div data-expected-width="40" data-expected-height="50" data-offset-x="100" data-offset-y="10">XXXX</div>
50
</div>
56
</div>
51
width expected 100 but got 140
57
height expected 10 but got 0
52
58
53
X
59
X
54
XX
60
XX
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-004-expected.txt -60 / +68 lines
Lines 1-108 a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-grid-004-expected.txt_sec1
1
1
2
PASS .grid 1
2
PASS .grid 1
3
FAIL .grid 2 assert_equals:
3
PASS .grid 2
4
<div class="grid percent min-content" data-expected-height="0" data-expected-width="0">
5
  <div data-expected-height="0" data-expected-width="0">XXXX</div>
6
</div>
7
width expected 0 but got 300
8
PASS .grid 3
4
PASS .grid 3
9
FAIL .grid 4 assert_equals:
5
PASS .grid 4
10
<div class="grid percent max-content" data-expected-height="0" data-expected-width="0">
11
  <div data-expected-height="0" data-expected-width="0">XXXX</div>
12
</div>
13
width expected 0 but got 300
14
PASS .grid 5
6
PASS .grid 5
15
PASS .grid 6
7
PASS .grid 6
16
PASS .grid 7
8
PASS .grid 7
17
FAIL .grid 8 assert_equals:
9
PASS .grid 8
18
<div class="grid calc min-content" data-expected-height="0" data-expected-width="0">
19
  <div data-expected-height="100" data-expected-width="100">XXXX</div>
20
</div>
21
width expected 0 but got 300
22
PASS .grid 9
10
PASS .grid 9
23
FAIL .grid 10 assert_equals:
11
PASS .grid 10
24
<div class="grid calc max-content" data-expected-height="0" data-expected-width="0">
25
  <div data-expected-height="100" data-expected-width="100">XXXX</div>
26
</div>
27
width expected 0 but got 300
28
PASS .grid 11
12
PASS .grid 11
29
PASS .grid 12
13
PASS .grid 12
30
PASS .grid 13
14
FAIL .grid 13 assert_equals:
15
<div class="grid minmax-percent-fixed min-content" data-expected-height="100" data-expected-width="0">
16
  <div data-expected-height="100" data-expected-width="0"></div>
17
</div>
18
height expected 100 but got 0
31
FAIL .grid 14 assert_equals:
19
FAIL .grid 14 assert_equals:
32
<div class="grid minmax-percent-fixed min-content" data-expected-height="100" data-expected-width="0">
20
<div class="grid minmax-percent-fixed min-content" data-expected-height="100" data-expected-width="0">
33
  <div data-expected-height="100" data-expected-width="0">XXXX</div>
21
  <div data-expected-height="100" data-expected-width="0">XXXX</div>
34
</div>
22
</div>
35
width expected 0 but got 100
23
height expected 100 but got 0
36
PASS .grid 15
24
FAIL .grid 15 assert_equals:
37
PASS .grid 16
25
<div class="grid minmax-percent-fixed max-content" data-expected-height="100" data-expected-width="100">
38
PASS .grid 17
26
  <div data-expected-height="100" data-expected-width="200"></div>
39
PASS .grid 18
27
</div>
28
height expected 100 but got 0
29
FAIL .grid 16 assert_equals:
30
<div class="grid minmax-percent-fixed max-content" data-expected-height="100" data-expected-width="100">
31
  <div data-expected-height="100" data-expected-width="200">XXXX</div>
32
</div>
33
height expected 100 but got 0
34
FAIL .grid 17 assert_equals:
35
<div class="grid minmax-percent-fixed fixed" data-expected-height="100" data-expected-width="100">
36
  <div data-expected-height="100" data-expected-width="200"></div>
37
</div>
38
height expected 100 but got 50
39
FAIL .grid 18 assert_equals:
40
<div class="grid minmax-percent-fixed fixed" data-expected-height="100" data-expected-width="100">
41
  <div data-expected-height="100" data-expected-width="200">XXXX</div>
42
</div>
43
height expected 100 but got 50
40
PASS .grid 19
44
PASS .grid 19
41
PASS .grid 20
45
PASS .grid 20
42
PASS .grid 21
46
PASS .grid 21
43
FAIL .grid 22 assert_equals:
47
PASS .grid 22
44
<div class="grid minmax-fixed-percent max-content" data-expected-height="100" data-expected-width="100">
45
  <div data-expected-height="100" data-expected-width="100">XXXX</div>
46
</div>
47
width expected 100 but got 300
48
PASS .grid 23
48
PASS .grid 23
49
PASS .grid 24
49
PASS .grid 24
50
PASS .grid 25
50
PASS .grid 25
51
FAIL .grid 26 assert_equals:
51
PASS .grid 26
52
<div class="grid minmax-percent-flex min-content" data-expected-height="0" data-expected-width="0">
53
  <div data-expected-height="0" data-expected-width="0">XXXX</div>
54
</div>
55
width expected 0 but got 300
56
PASS .grid 27
52
PASS .grid 27
57
FAIL .grid 28 assert_equals:
53
PASS .grid 28
58
<div class="grid minmax-percent-flex max-content" data-expected-height="0" data-expected-width="0">
54
FAIL .grid 29 assert_equals:
59
  <div data-expected-height="0" data-expected-width="0">XXXX</div>
55
<div class="grid minmax-percent-flex fixed" data-expected-height="100" data-expected-width="100">
56
  <div data-expected-height="100" data-expected-width="200"></div>
57
</div>
58
height expected 100 but got 50
59
FAIL .grid 30 assert_equals:
60
<div class="grid minmax-percent-flex fixed" data-expected-height="100" data-expected-width="100">
61
  <div data-expected-height="100" data-expected-width="200">XXXX</div>
60
</div>
62
</div>
61
width expected 0 but got 300
63
height expected 100 but got 50
62
PASS .grid 29
63
PASS .grid 30
64
PASS .grid 31
64
PASS .grid 31
65
FAIL .grid 32 assert_equals:
65
FAIL .grid 32 assert_equals:
66
<div class="grid minmax-intrinsic-percent min-content" data-expected-height="0" data-expected-width="0">
66
<div class="grid minmax-intrinsic-percent min-content" data-expected-height="0" data-expected-width="0">
67
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
67
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
68
</div>
68
</div>
69
width expected 0 but got 300
69
width expected 300 but got 0
70
PASS .grid 33
70
PASS .grid 33
71
FAIL .grid 34 assert_equals:
71
FAIL .grid 34 assert_equals:
72
<div class="grid minmax-intrinsic-percent max-content" data-expected-height="0" data-expected-width="0">
72
<div class="grid minmax-intrinsic-percent max-content" data-expected-height="0" data-expected-width="0">
73
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
73
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
74
</div>
74
</div>
75
width expected 0 but got 300
75
width expected 300 but got 0
76
PASS .grid 35
76
FAIL .grid 35 assert_equals:
77
PASS .grid 36
77
<div class="grid minmax-intrinsic-percent fixed" data-expected-height="100" data-expected-width="100">
78
PASS .grid 37
78
  <div data-expected-height="50" data-expected-width="100"></div>
79
FAIL .grid 38 assert_equals:
80
<div class="grid minmax-percent-intrinsic min-content" data-expected-height="0" data-expected-width="0">
81
  <div data-expected-height="0" data-expected-width="0">XXXX</div>
82
</div>
79
</div>
83
width expected 0 but got 300
80
width expected 100 but got 0
84
PASS .grid 39
81
FAIL .grid 36 assert_equals:
85
FAIL .grid 40 assert_equals:
82
<div class="grid minmax-intrinsic-percent fixed" data-expected-height="100" data-expected-width="100">
86
<div class="grid minmax-percent-intrinsic max-content" data-expected-height="0" data-expected-width="0">
83
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
87
  <div data-expected-height="0" data-expected-width="0">XXXX</div>
88
</div>
84
</div>
89
width expected 0 but got 300
85
width expected 300 but got 0
86
PASS .grid 37
87
PASS .grid 38
88
PASS .grid 39
89
PASS .grid 40
90
PASS .grid 41
90
PASS .grid 41
91
PASS .grid 42
91
FAIL .grid 42 assert_equals:
92
<div class="grid minmax-percent-intrinsic fixed" data-expected-height="100" data-expected-width="100">
93
  <div data-expected-height="75" data-expected-width="200">XXXX</div>
94
</div>
95
height expected 75 but got 50
92
PASS .grid 43
96
PASS .grid 43
93
FAIL .grid 44 assert_equals:
97
FAIL .grid 44 assert_equals:
94
<div class="grid fit-content min-content" data-expected-height="0" data-expected-width="0">
98
<div class="grid fit-content min-content" data-expected-height="0" data-expected-width="0">
95
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
99
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
96
</div>
100
</div>
97
width expected 0 but got 300
101
width expected 300 but got 0
98
PASS .grid 45
102
PASS .grid 45
99
FAIL .grid 46 assert_equals:
103
FAIL .grid 46 assert_equals:
100
<div class="grid fit-content max-content" data-expected-height="0" data-expected-width="0">
104
<div class="grid fit-content max-content" data-expected-height="0" data-expected-width="0">
101
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
105
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
102
</div>
106
</div>
103
width expected 0 but got 300
107
width expected 300 but got 0
104
PASS .grid 47
108
PASS .grid 47
105
PASS .grid 48
109
FAIL .grid 48 assert_equals:
110
<div class="grid fit-content fixed" data-expected-height="100" data-expected-width="100">
111
  <div data-expected-height="75" data-expected-width="300">XXXX</div>
112
</div>
113
width expected 300 but got 0
106
XXXX
114
XXXX
107
XXXX
115
XXXX
108
XXXX
116
XXXX
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-multicol-as-flex-item-expected.txt -7 / +1 lines
Lines 1-11 a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-multicol-as-flex-item-expected.txt_sec1
1
There should be a green square below.
1
There should be a green square below.
2
2
3
3
4
FAIL #flex 1 assert_equals:
4
PASS #flex 1
5
<div id="flex">
6
  <div id="multicol" data-expected-width="100" data-expected-height="100">
7
    <div style="width:1000px; height:1px;"></div>
8
  </div>
9
</div>
10
width expected 100 but got 784
11
5
- a/Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp -2 / +7 lines
Lines 736-744 void GridTrackSizingAlgorithm::computeGridContainerIntrinsicSizes() a/Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp_sec1
736
736
737
    Vector<GridTrack>& allTracks = tracks(m_direction);
737
    Vector<GridTrack>& allTracks = tracks(m_direction);
738
    for (auto& track : allTracks) {
738
    for (auto& track : allTracks) {
739
        ASSERT(!track.infiniteGrowthPotential());
739
        ASSERT(m_renderGrid->shouldApplySizeContainment() || !track.infiniteGrowthPotential());
740
        m_minContentSize += track.baseSize();
740
        m_minContentSize += track.baseSize();
741
        m_maxContentSize += track.growthLimit();
741
        m_maxContentSize += track.growthLimitIsInfinite() ? track.baseSize() : track.growthLimit();
742
        // The growth limit caps must be cleared now in order to properly sort
742
        // The growth limit caps must be cleared now in order to properly sort
743
        // tracks by growth potential on an eventual "Maximize Tracks".
743
        // tracks by growth potential on an eventual "Maximize Tracks".
744
        track.setGrowthLimitCap(WTF::nullopt);
744
        track.setGrowthLimitCap(WTF::nullopt);
Lines 1325-1330 void GridTrackSizingAlgorithm::run() a/Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp_sec2
1325
    const Optional<LayoutUnit> initialFreeSpace = freeSpace(m_direction);
1325
    const Optional<LayoutUnit> initialFreeSpace = freeSpace(m_direction);
1326
    initializeTrackSizes();
1326
    initializeTrackSizes();
1327
1327
1328
    if(m_renderGrid->shouldApplySizeContainment()) {
1329
        computeGridContainerIntrinsicSizes();
1330
        return;
1331
    }
1332
1328
    // Step 2.
1333
    // Step 2.
1329
    if (!m_contentSizedTracksIndex.isEmpty())
1334
    if (!m_contentSizedTracksIndex.isEmpty())
1330
        resolveIntrinsicTrackSizes();
1335
        resolveIntrinsicTrackSizes();
- a/Source/WebCore/rendering/RenderBlock.cpp -2 / +2 lines
Lines 2261-2268 void RenderBlock::offsetForContents(LayoutPoint& offset) const a/Source/WebCore/rendering/RenderBlock.cpp_sec1
2261
void RenderBlock::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
2261
void RenderBlock::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
2262
{
2262
{
2263
    ASSERT(!childrenInline());
2263
    ASSERT(!childrenInline());
2264
    
2264
    if (!shouldApplySizeContainment())
2265
    computeBlockPreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
2265
        computeBlockPreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
2266
2266
2267
    maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth);
2267
    maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth);
2268
2268
- a/Source/WebCore/rendering/RenderBlockFlow.cpp -4 / +6 lines
Lines 339-348 void RenderBlockFlow::adjustIntrinsicLogicalWidthsForColumns(LayoutUnit& minLogi a/Source/WebCore/rendering/RenderBlockFlow.cpp_sec1
339
339
340
void RenderBlockFlow::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
340
void RenderBlockFlow::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
341
{
341
{
342
    if (childrenInline())
342
    if (!shouldApplySizeContainment()) {
343
        computeInlinePreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
343
        if (childrenInline())
344
    else
344
            computeInlinePreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
345
        computeBlockPreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
345
        else
346
            computeBlockPreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
347
    }
346
348
347
    maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth);
349
    maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth);
348
350
- a/Source/WebCore/rendering/RenderBox.cpp -1 / +7 lines
Lines 2876-2881 void RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem(LayoutUnit height) a/Source/WebCore/rendering/RenderBox.cpp_sec1
2876
2876
2877
void RenderBox::updateLogicalHeight()
2877
void RenderBox::updateLogicalHeight()
2878
{
2878
{
2879
    if (shouldApplySizeContainment() && !isRenderGrid()) {
2880
        auto borderAndPading = RenderBox::borderBefore() + RenderBox::paddingBefore() + RenderBox::borderAfter() + RenderBox::paddingAfter();
2881
        setLogicalHeight(borderAndPading + scrollbarLogicalHeight());
2882
    }
2883
2879
    cacheIntrinsicContentLogicalHeightForFlexItem(contentLogicalHeight());
2884
    cacheIntrinsicContentLogicalHeightForFlexItem(contentLogicalHeight());
2880
    auto computedValues = computeLogicalHeight(logicalHeight(), logicalTop());
2885
    auto computedValues = computeLogicalHeight(logicalHeight(), logicalTop());
2881
    setLogicalHeight(computedValues.m_extent);
2886
    setLogicalHeight(computedValues.m_extent);
Lines 4857-4863 bool RenderBox::isUnsplittableForPagination() const a/Source/WebCore/rendering/RenderBox.cpp_sec2
4857
    return isReplaced()
4862
    return isReplaced()
4858
        || hasUnsplittableScrollingOverflow()
4863
        || hasUnsplittableScrollingOverflow()
4859
        || (parent() && isWritingModeRoot())
4864
        || (parent() && isWritingModeRoot())
4860
        || (isFloating() && style().styleType() == PseudoId::FirstLetter && style().initialLetterDrop() > 0);
4865
        || (isFloating() && style().styleType() == PseudoId::FirstLetter && style().initialLetterDrop() > 0)
4866
        || shouldApplySizeContainment();
4861
}
4867
}
4862
4868
4863
LayoutUnit RenderBox::lineHeight(bool /*firstLine*/, LineDirectionMode direction, LinePositionMode /*linePositionMode*/) const
4869
LayoutUnit RenderBox::lineHeight(bool /*firstLine*/, LineDirectionMode direction, LinePositionMode /*linePositionMode*/) const
- a/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp -17 / +19 lines
Lines 187-212 void RenderDeprecatedFlexibleBox::styleWillChange(StyleDifference diff, const Re a/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp_sec1
187
187
188
void RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
188
void RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
189
{
189
{
190
    if (hasMultipleLines() || isVertical()) {
190
    if (!shouldApplySizeContainment()) {
191
        for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
191
        if (hasMultipleLines() || isVertical()) {
192
            if (childDoesNotAffectWidthOrFlexing(child))
192
            for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
193
                continue;
193
                if (childDoesNotAffectWidthOrFlexing(child))
194
                    continue;
194
195
195
            LayoutUnit margin = marginWidthForChild(child);
196
                LayoutUnit margin = marginWidthForChild(child);
196
            LayoutUnit width = child->minPreferredLogicalWidth() + margin;
197
                LayoutUnit width = child->minPreferredLogicalWidth() + margin;
197
            minLogicalWidth = std::max(width, minLogicalWidth);
198
                minLogicalWidth = std::max(width, minLogicalWidth);
198
199
199
            width = child->maxPreferredLogicalWidth() + margin;
200
                width = child->maxPreferredLogicalWidth() + margin;
200
            maxLogicalWidth = std::max(width, maxLogicalWidth);
201
                maxLogicalWidth = std::max(width, maxLogicalWidth);
201
        }
202
            }
202
    } else {
203
        } else {
203
        for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
204
            for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
204
            if (childDoesNotAffectWidthOrFlexing(child))
205
                if (childDoesNotAffectWidthOrFlexing(child))
205
                continue;
206
                    continue;
206
207
207
            LayoutUnit margin = marginWidthForChild(child);
208
                LayoutUnit margin = marginWidthForChild(child);
208
            minLogicalWidth += child->minPreferredLogicalWidth() + margin;
209
                minLogicalWidth += child->minPreferredLogicalWidth() + margin;
209
            maxLogicalWidth += child->maxPreferredLogicalWidth() + margin;
210
                maxLogicalWidth += child->maxPreferredLogicalWidth() + margin;
211
            }
210
        }
212
        }
211
    }
213
    }
212
214
- a/Source/WebCore/rendering/RenderFileUploadControl.cpp +2 lines
Lines 197-202 void RenderFileUploadControl::paintObject(PaintInfo& paintInfo, const LayoutPoin a/Source/WebCore/rendering/RenderFileUploadControl.cpp_sec1
197
197
198
void RenderFileUploadControl::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
198
void RenderFileUploadControl::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
199
{
199
{
200
    if (shouldApplySizeContainment())
201
        return;
200
    // Figure out how big the filename space needs to be for a given number of characters
202
    // Figure out how big the filename space needs to be for a given number of characters
201
    // (using "0" as the nominal character).
203
    // (using "0" as the nominal character).
202
    const UChar character = '0';
204
    const UChar character = '0';
- a/Source/WebCore/rendering/RenderFlexibleBox.cpp -52 / +56 lines
Lines 83-142 const char* RenderFlexibleBox::renderName() const a/Source/WebCore/rendering/RenderFlexibleBox.cpp_sec1
83
83
84
void RenderFlexibleBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
84
void RenderFlexibleBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
85
{
85
{
86
    LayoutUnit childMinWidth;
86
    if (!shouldApplySizeContainment()) {
87
    LayoutUnit childMaxWidth;
87
        LayoutUnit childMinWidth;
88
    bool hadExcludedChildren = computePreferredWidthsForExcludedChildren(childMinWidth, childMaxWidth);
88
        LayoutUnit childMaxWidth;
89
89
        bool hadExcludedChildren = computePreferredWidthsForExcludedChildren(childMinWidth, childMaxWidth);
90
    // FIXME: We're ignoring flex-basis here and we shouldn't. We can't start
90
91
    // honoring it though until the flex shorthand stops setting it to 0. See
91
        // FIXME: We're ignoring flex-basis here and we shouldn't. We can't start
92
    // https://bugs.webkit.org/show_bug.cgi?id=116117 and
92
        // honoring it though until the flex shorthand stops setting it to 0. See
93
    // https://crbug.com/240765.
93
        // https://bugs.webkit.org/show_bug.cgi?id=116117 and
94
    size_t numItemsWithNormalLayout = 0;
94
        // https://crbug.com/240765.
95
    for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
95
        size_t numItemsWithNormalLayout = 0;
96
        if (child->isOutOfFlowPositioned() || child->isExcludedFromNormalLayout())
96
        for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
97
            continue;
97
            if (child->isOutOfFlowPositioned() || child->isExcludedFromNormalLayout())
98
        ++numItemsWithNormalLayout;
98
                continue;
99
            ++numItemsWithNormalLayout;
99
100
100
        LayoutUnit margin = marginIntrinsicLogicalWidthForChild(*child);
101
            LayoutUnit margin = marginIntrinsicLogicalWidthForChild(*child);
101
        
102
            
102
        LayoutUnit minPreferredLogicalWidth;
103
            LayoutUnit minPreferredLogicalWidth;
103
        LayoutUnit maxPreferredLogicalWidth;
104
            LayoutUnit maxPreferredLogicalWidth;
104
        computeChildPreferredLogicalWidths(*child, minPreferredLogicalWidth, maxPreferredLogicalWidth);
105
            computeChildPreferredLogicalWidths(*child, minPreferredLogicalWidth, maxPreferredLogicalWidth);
105
        
106
            
106
        minPreferredLogicalWidth += margin;
107
            minPreferredLogicalWidth += margin;
107
        maxPreferredLogicalWidth += margin;
108
            maxPreferredLogicalWidth += margin;
108
109
109
        if (!isColumnFlow()) {
110
            if (!isColumnFlow()) {
110
            maxLogicalWidth += maxPreferredLogicalWidth;
111
                maxLogicalWidth += maxPreferredLogicalWidth;
111
            if (isMultiline()) {
112
                if (isMultiline()) {
112
                // For multiline, the min preferred width is if you put a break between
113
                    // For multiline, the min preferred width is if you put a break between
113
                // each item.
114
                    // each item.
114
                minLogicalWidth = std::max(minLogicalWidth, minPreferredLogicalWidth);
115
                    minLogicalWidth = std::max(minLogicalWidth, minPreferredLogicalWidth);
115
            } else
116
                } else
116
                minLogicalWidth += minPreferredLogicalWidth;
117
                    minLogicalWidth += minPreferredLogicalWidth;
117
        } else {
118
            } else {
118
            minLogicalWidth = std::max(minPreferredLogicalWidth, minLogicalWidth);
119
                minLogicalWidth = std::max(minPreferredLogicalWidth, minLogicalWidth);
119
            maxLogicalWidth = std::max(maxPreferredLogicalWidth, maxLogicalWidth);
120
                maxLogicalWidth = std::max(maxPreferredLogicalWidth, maxLogicalWidth);
121
            }
120
        }
122
        }
121
    }
122
123
123
    if (!isColumnFlow() && numItemsWithNormalLayout > 1) {
124
        if (!isColumnFlow() && numItemsWithNormalLayout > 1) {
124
        LayoutUnit inlineGapSize = (numItemsWithNormalLayout - 1) * computeGap(GapType::BetweenItems);
125
            LayoutUnit inlineGapSize = (numItemsWithNormalLayout - 1) * computeGap(GapType::BetweenItems);
125
        maxLogicalWidth += inlineGapSize;
126
            maxLogicalWidth += inlineGapSize;
126
        if (!isMultiline())
127
            if (!isMultiline())
127
            minLogicalWidth += inlineGapSize;
128
                minLogicalWidth += inlineGapSize;
128
    }
129
        }
129
130
130
    maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth);
131
        maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth);
131
    
132
        
132
    // Due to negative margins, it is possible that we calculated a negative
133
        // Due to negative margins, it is possible that we calculated a negative
133
    // intrinsic width. Make sure that we never return a negative width.
134
        // intrinsic width. Make sure that we never return a negative width.
134
    minLogicalWidth = std::max(0_lu, minLogicalWidth);
135
        minLogicalWidth = std::max(0_lu, minLogicalWidth);
135
    maxLogicalWidth = std::max(0_lu, maxLogicalWidth);
136
        maxLogicalWidth = std::max(0_lu, maxLogicalWidth);
136
    
137
        
137
    if (hadExcludedChildren) {
138
        if (hadExcludedChildren) {
138
        minLogicalWidth = std::max(minLogicalWidth, childMinWidth);
139
            minLogicalWidth = std::max(minLogicalWidth, childMinWidth);
139
        maxLogicalWidth = std::max(maxLogicalWidth, childMaxWidth);
140
            maxLogicalWidth = std::max(maxLogicalWidth, childMaxWidth);
141
        }
140
    }
142
    }
141
143
142
    LayoutUnit scrollbarWidth(scrollbarLogicalWidth());
144
    LayoutUnit scrollbarWidth(scrollbarLogicalWidth());
Lines 1023-1031 void RenderFlexibleBox::layoutFlexItems(bool relayoutChildren) a/Source/WebCore/rendering/RenderFlexibleBox.cpp_sec2
1023
        // Instead of just checking if we have a line, make sure the flexbox
1025
        // Instead of just checking if we have a line, make sure the flexbox
1024
        // has at least a line's worth of height to cover this case.
1026
        // has at least a line's worth of height to cover this case.
1025
        LayoutUnit minHeight = borderAndPaddingLogicalHeight() + lineHeight(true, isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes) + scrollbarLogicalHeight();
1027
        LayoutUnit minHeight = borderAndPaddingLogicalHeight() + lineHeight(true, isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes) + scrollbarLogicalHeight();
1026
        if (size().height() < minHeight)
1028
        if (size().height() < minHeight/* || shouldApplySizeContainment()*/)
1027
            setLogicalHeight(minHeight);
1029
            setLogicalHeight(minHeight);
1028
    }
1030
    }/* else if (shouldApplySizeContainment()) {
1031
        setLogicalHeight(borderAndPaddingLogicalHeight() + scrollbarLogicalHeight());
1032
    }*/
1029
1033
1030
    if (!isColumnFlow() && numLines > 1)
1034
    if (!isColumnFlow() && numLines > 1)
1031
        setLogicalHeight(logicalHeight() + computeGap(GapType::BetweenLines) * (numLines - 1));
1035
        setLogicalHeight(logicalHeight() + computeGap(GapType::BetweenLines) * (numLines - 1));
- a/Source/WebCore/rendering/RenderImage.cpp +1 lines
Lines 844-849 void RenderImage::layoutShadowContent(const LayoutSize& oldSize) a/Source/WebCore/rendering/RenderImage.cpp_sec1
844
844
845
void RenderImage::computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio) const
845
void RenderImage::computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio) const
846
{
846
{
847
    ASSERT(!shouldApplySizeContainment());
847
    RenderReplaced::computeIntrinsicRatioInformation(intrinsicSize, intrinsicRatio);
848
    RenderReplaced::computeIntrinsicRatioInformation(intrinsicSize, intrinsicRatio);
848
849
849
    // Our intrinsicSize is empty if we're rendering generated images with relative width/height. Figure out the right intrinsic size to use.
850
    // Our intrinsicSize is empty if we're rendering generated images with relative width/height. Figure out the right intrinsic size to use.
- a/Source/WebCore/rendering/RenderListBox.cpp -1 / +1 lines
Lines 211-217 void RenderListBox::scrollToRevealSelection() a/Source/WebCore/rendering/RenderListBox.cpp_sec1
211
211
212
void RenderListBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
212
void RenderListBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
213
{
213
{
214
    maxLogicalWidth = m_optionsWidth + 2 * optionsSpacingHorizontal;
214
    maxLogicalWidth = shouldApplySizeContainment() ? 2 * optionsSpacingHorizontal : m_optionsWidth + 2 * optionsSpacingHorizontal;
215
    if (m_vBar)
215
    if (m_vBar)
216
        maxLogicalWidth += m_vBar->width();
216
        maxLogicalWidth += m_vBar->width();
217
    if (!style().width().isPercentOrCalculated())
217
    if (!style().width().isPercentOrCalculated())
- a/Source/WebCore/rendering/RenderMenuList.cpp -1 / +2 lines
Lines 315-321 LayoutRect RenderMenuList::controlClipRect(const LayoutPoint& additionalOffset) a/Source/WebCore/rendering/RenderMenuList.cpp_sec1
315
315
316
void RenderMenuList::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
316
void RenderMenuList::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
317
{
317
{
318
    maxLogicalWidth = std::max(m_optionsWidth, theme().minimumMenuListSize(style())) + m_innerBlock->paddingLeft() + m_innerBlock->paddingRight();
318
    maxLogicalWidth = shouldApplySizeContainment() ? theme().minimumMenuListSize(style()) : std::max(m_optionsWidth, theme().minimumMenuListSize(style()));
319
    maxLogicalWidth += m_innerBlock->paddingLeft() + m_innerBlock->paddingRight();
319
    if (!style().width().isPercentOrCalculated())
320
    if (!style().width().isPercentOrCalculated())
320
        minLogicalWidth = maxLogicalWidth;
321
        minLogicalWidth = maxLogicalWidth;
321
}
322
}
- a/Source/WebCore/rendering/RenderObject.h +9 lines
Lines 724-729 public: a/Source/WebCore/rendering/RenderObject.h_sec1
724
724
725
    virtual String debugDescription() const;
725
    virtual String debugDescription() const;
726
726
727
    bool isAtomicInlineLevelBox() const {
728
        return style().isDisplayInlineType() && !(style().display() == DisplayType::Inline && !isReplaced());
729
    }
730
731
    bool shouldApplySizeContainment() const {
732
        return style().contain().contains(Containment::Size) && (!isInline() || isAtomicInlineLevelBox())
733
            && !isRubyText() && (!isTablePart() || isTableCaption()) && !isTable();
734
    }
735
727
protected:
736
protected:
728
    //////////////////////////////////////////
737
    //////////////////////////////////////////
729
    // Helper functions. Dangerous to use!
738
    // Helper functions. Dangerous to use!
- a/Source/WebCore/rendering/RenderReplaced.cpp -2 / +4 lines
Lines 389-395 bool RenderReplaced::setNeedsLayoutIfNeededAfterIntrinsicSizeChange() a/Source/WebCore/rendering/RenderReplaced.cpp_sec1
389
void RenderReplaced::computeAspectRatioInformationForRenderBox(RenderBox* contentRenderer, FloatSize& constrainedSize, double& intrinsicRatio) const
389
void RenderReplaced::computeAspectRatioInformationForRenderBox(RenderBox* contentRenderer, FloatSize& constrainedSize, double& intrinsicRatio) const
390
{
390
{
391
    FloatSize intrinsicSize;
391
    FloatSize intrinsicSize;
392
    if (contentRenderer) {
392
    if (shouldApplySizeContainment())
393
        RenderReplaced::computeIntrinsicRatioInformation(intrinsicSize, intrinsicRatio);
394
    else if (contentRenderer) {
393
        contentRenderer->computeIntrinsicRatioInformation(intrinsicSize, intrinsicRatio);
395
        contentRenderer->computeIntrinsicRatioInformation(intrinsicSize, intrinsicRatio);
394
396
395
        if (style().aspectRatioType() == AspectRatioType::Ratio || (style().aspectRatioType() == AspectRatioType::AutoAndRatio && !intrinsicRatio))
397
        if (style().aspectRatioType() == AspectRatioType::Ratio || (style().aspectRatioType() == AspectRatioType::AutoAndRatio && !intrinsicRatio))
Lines 477-483 RoundedRect RenderReplaced::roundedContentBoxRect() const a/Source/WebCore/rendering/RenderReplaced.cpp_sec2
477
void RenderReplaced::computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio) const
479
void RenderReplaced::computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio) const
478
{
480
{
479
    // If there's an embeddedContentBox() of a remote, referenced document available, this code-path should never be used.
481
    // If there's an embeddedContentBox() of a remote, referenced document available, this code-path should never be used.
480
    ASSERT(!embeddedContentBox());
482
    ASSERT(!embeddedContentBox() || shouldApplySizeContainment());
481
    intrinsicSize = FloatSize(intrinsicLogicalWidth(), intrinsicLogicalHeight());
483
    intrinsicSize = FloatSize(intrinsicLogicalWidth(), intrinsicLogicalHeight());
482
484
483
    if (style().hasAspectRatio()) {
485
    if (style().hasAspectRatio()) {
- a/Source/WebCore/rendering/RenderReplaced.h -1 / +5 lines
Lines 40-46 public: a/Source/WebCore/rendering/RenderReplaced.h_sec1
40
    bool hasReplacedLogicalHeight() const;
40
    bool hasReplacedLogicalHeight() const;
41
    bool setNeedsLayoutIfNeededAfterIntrinsicSizeChange();
41
    bool setNeedsLayoutIfNeededAfterIntrinsicSizeChange();
42
42
43
    LayoutSize intrinsicSize() const final { return m_intrinsicSize; }
43
    LayoutSize intrinsicSize() const final {
44
        if (shouldApplySizeContainment())
45
            return LayoutSize();
46
        return m_intrinsicSize;
47
    }
44
    
48
    
45
    RoundedRect roundedContentBoxRect() const;
49
    RoundedRect roundedContentBoxRect() const;
46
    
50
    
- a/Source/WebCore/rendering/RenderSlider.cpp +2 lines
Lines 69-74 int RenderSlider::baselinePosition(FontBaseline, bool /*firstLine*/, LineDirecti a/Source/WebCore/rendering/RenderSlider.cpp_sec1
69
69
70
void RenderSlider::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
70
void RenderSlider::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
71
{
71
{
72
    if (shouldApplySizeContainment())
73
        return;
72
    maxLogicalWidth = defaultTrackLength * style().effectiveZoom();
74
    maxLogicalWidth = defaultTrackLength * style().effectiveZoom();
73
    if (!style().width().isPercentOrCalculated())
75
    if (!style().width().isPercentOrCalculated())
74
        minLogicalWidth = maxLogicalWidth;
76
        minLogicalWidth = maxLogicalWidth;
- a/Source/WebCore/rendering/RenderTextControl.cpp +2 lines
Lines 156-161 float RenderTextControl::scaleEmToUnits(int x) const a/Source/WebCore/rendering/RenderTextControl.cpp_sec1
156
156
157
void RenderTextControl::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
157
void RenderTextControl::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
158
{
158
{
159
    if (shouldApplySizeContainment())
160
        return;
159
    // Use average character width. Matches IE.
161
    // Use average character width. Matches IE.
160
    maxLogicalWidth = preferredContentLogicalWidth(const_cast<RenderTextControl*>(this)->getAverageCharWidth());
162
    maxLogicalWidth = preferredContentLogicalWidth(const_cast<RenderTextControl*>(this)->getAverageCharWidth());
161
    if (RenderBox* innerTextRenderBox = innerTextElement()->renderBox())
163
    if (RenderBox* innerTextRenderBox = innerTextElement()->renderBox())
- a/Source/WebCore/rendering/RenderVideo.cpp +3 lines
Lines 123-128 bool RenderVideo::updateIntrinsicSize() a/Source/WebCore/rendering/RenderVideo.cpp_sec1
123
123
124
LayoutSize RenderVideo::calculateIntrinsicSize()
124
LayoutSize RenderVideo::calculateIntrinsicSize()
125
{
125
{
126
    if (shouldApplySizeContainment())
127
        return LayoutSize();
128
126
    // Spec text from 4.8.6
129
    // Spec text from 4.8.6
127
    //
130
    //
128
    // The intrinsic width of a video element's playback area is the intrinsic width 
131
    // The intrinsic width of a video element's playback area is the intrinsic width 
- a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp +2 lines
Lines 70-75 SVGSVGElement& RenderSVGRoot::svgSVGElement() const a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp_sec1
70
70
71
void RenderSVGRoot::computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio) const
71
void RenderSVGRoot::computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio) const
72
{
72
{
73
    ASSERT(!shouldApplySizeContainment());
74
73
    // Spec: http://www.w3.org/TR/SVG/coords.html#IntrinsicSizing
75
    // Spec: http://www.w3.org/TR/SVG/coords.html#IntrinsicSizing
74
    // SVG needs to specify how to calculate some intrinsic sizing properties to enable inclusion within other languages.
76
    // SVG needs to specify how to calculate some intrinsic sizing properties to enable inclusion within other languages.
75
77

Return to Bug 223570