Changeset 261841 in webkit
- Timestamp:
- May 18, 2020 5:52:23 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 50 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r261821 r261841 1 2020-05-18 Oriol Brufau <obrufau@igalia.com> 2 3 [css-grid] Clear the override width for computing percent margins 4 https://bugs.webkit.org/show_bug.cgi?id=209461 5 6 Reviewed by Manuel Rego Casasnovas. 7 8 Import new WPT tests and update existing ones. 9 10 * web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages-expected.txt: 11 * web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001-expected.txt: Added. 12 * web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html: Added. 13 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-001.html: 14 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-002.html: 15 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003-expected.xht: Added. 16 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html: Added. 17 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004-expected.xht: Added. 18 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html: Added. 19 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005-expected.xht: Added. 20 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html: Added. 21 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006-expected.xht: Added. 22 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html: Added. 23 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007-expected.xht: Added. 24 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html: Added. 25 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008-expected.xht: Added. 26 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html: Added. 27 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009-expected.xht: Added. 28 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html: Added. 29 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010-expected.xht: Added. 30 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html: Added. 31 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011-expected.xht: Added. 32 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html: Added. 33 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012-expected.xht: Added. 34 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html: Added. 35 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013-expected.xht: Added. 36 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html: Added. 37 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014-expected.xht: Added. 38 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html: Added. 39 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html: 40 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html: 41 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-001.html: 42 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002.html: 43 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-001.html: 44 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002.html: 45 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003-expected.xht: Added. 46 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html: Added. 47 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004-expected.xht: Added. 48 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html: Added. 49 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005-expected.xht: Added. 50 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html: Added. 51 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006-expected.xht: Added. 52 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html: Added. 53 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007-expected.xht: Added. 54 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html: Added. 55 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008-expected.xht: Added. 56 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html: Added. 57 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009-expected.xht: Added. 58 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html: Added. 59 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010-expected.xht: Added. 60 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html: Added. 61 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011-expected.xht: Added. 62 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html: Added. 63 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012-expected.xht: Added. 64 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html: Added. 65 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013-expected.xht: Added. 66 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html: Added. 67 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014-expected.xht: Added. 68 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html: Added. 69 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html: 70 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html: 71 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html: 72 * web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html: 73 * web-platform-tests/css/css-grid/grid-items/w3c-import.log: 74 1 75 2020-05-18 Rob Buis <rbuis@igalia.com> 2 76 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages-expected.txt
r261767 r261841 3 3 PASS auto - rows 4 4 PASS min - columns 5 FAIL min - rows assert_equals: grid-template-rows expected "50px" but got "150px" 5 PASS min - rows 6 6 PASS max - columns 7 7 PASS max - rows … … 9 9 PASS size - rows 10 10 PASS min max - columns 11 FAIL min max - rows assert_equals: grid-template-rows expected "50px" but got "150px" 11 PASS min max - rows 12 12 PASS min size - columns 13 FAIL min size - rows assert_equals: grid-template-rows expected "50px" but got "200px" 13 PASS min size - rows 14 14 PASS max size - columns 15 15 PASS max size - rows 16 16 PASS min max size - columns 17 FAIL min max size - rows assert_equals: grid-template-rows expected "50px" but got "150px" 17 PASS min max size - rows 18 18 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-001.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage margins are resolved against the inline size of their grid area (in a fixed size track)."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 30 31 <script src="/resources/testharnessreport.js"></script> 31 32 <script src="/resources/check-layout-th.js"></script> 33 <script type="text/javascript"> 34 setup({ explicit_done: true }); 35 </script> 32 36 33 <body onload=" checkLayout('.grid')">37 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 34 38 35 39 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-002.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage margins are resolved against the inline size of their grid area (in a track with fixed max sizing function and intrinsic min)."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 30 31 <script src="/resources/testharnessreport.js"></script> 31 32 <script src="/resources/check-layout-th.js"></script> 33 <script type="text/javascript"> 34 setup({ explicit_done: true }); 35 </script> 32 36 33 <body onload=" checkLayout('.grid')">37 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 34 38 35 39 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage margins are resolved against the inline size of their grid area (in a fixed size track) in a vertical-lr grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage margins are resolved against the inline size of their grid area (in a track with fixed max sizing function and intrinsic min) in a vertical-lr grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-001.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage margins are resolved against the inline size of their grid area (in a fixed size track) in a vertical-rl grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> … … 71 75 72 76 <div class="grid directionRTL"> 73 <div class="marginLeft50Percent" data-expected-margin-left="50" data- expected-x="60" data-expected-width="10" data-expected-height="10">X</div>77 <div class="marginLeft50Percent" data-expected-margin-left="50" data-offset-x="60" data-expected-width="10" data-expected-height="10">X</div> 74 78 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 75 79 </div> … … 78 82 79 83 <div class="grid directionRTL"> 80 <div class="marginRight50Percent" data-expected-margin-right="50" data- expected-x="10" data-expected-width="10" data-expected-height="10">X</div>84 <div class="marginRight50Percent" data-expected-margin-right="50" data-offset-x="10" data-expected-width="10" data-expected-height="10">X</div> 81 85 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 82 86 </div> … … 85 89 86 90 <div class="grid directionRTL"> 87 <div class="marginTop50Percent" data-expected-margin-top="50" data- expected-y="490" data-expected-width="10" data-expected-height="10">X</div>91 <div class="marginTop50Percent" data-expected-margin-top="50" data-offset-y="490" data-expected-width="10" data-expected-height="10">X</div> 88 92 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 89 93 </div> … … 92 96 93 97 <div class="grid directionRTL"> 94 <div class="marginBottom50Percent" data-expected-margin-bottom="50" data- expected-y="440" data-expected-width="10" data-expected-height="10">X</div>98 <div class="marginBottom50Percent" data-expected-margin-bottom="50" data-offset-y="440" data-expected-width="10" data-expected-height="10">X</div> 95 99 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 96 100 </div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage margins are resolved against the inline size of their grid area (in a track with fixed max sizing function and intrinsic min) in a vertical-rl grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> … … 71 75 72 76 <div class="grid directionRTL"> 73 <div class="marginLeft50Percent" data-expected-margin-left="50" data- expected-x="60" data-expected-width="10" data-expected-height="10">X</div>77 <div class="marginLeft50Percent" data-expected-margin-left="50" data-offset-x="60" data-expected-width="10" data-expected-height="10">X</div> 74 78 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 75 79 </div> … … 78 82 79 83 <div class="grid directionRTL"> 80 <div class="marginRight50Percent" data-expected-margin-right="50" data- expected-x="10" data-expected-width="10" data-expected-height="10">X</div>84 <div class="marginRight50Percent" data-expected-margin-right="50" data-offset-x="10" data-expected-width="10" data-expected-height="10">X</div> 81 85 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 82 86 </div> … … 85 89 86 90 <div class="grid directionRTL"> 87 <div class="marginTop50Percent" data-expected-margin-top="50" data- expected-y="490" data-expected-width="10" data-expected-height="10">X</div>91 <div class="marginTop50Percent" data-expected-margin-top="50" data-offset-y="490" data-expected-width="10" data-expected-height="10">X</div> 88 92 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 89 93 </div> … … 92 96 93 97 <div class="grid directionRTL"> 94 <div class="marginBottom50Percent" data-expected-margin-bottom="50" data- expected-y="440" data-expected-width="10" data-expected-height="10">X</div>98 <div class="marginBottom50Percent" data-expected-margin-bottom="50" data-offset-y="440" data-expected-width="10" data-expected-height="10">X</div> 95 99 <div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div> 96 100 </div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-001.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage paddings are resolved against the inline size of their grid area (in a fixed size track)."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 30 31 <script src="/resources/testharnessreport.js"></script> 31 32 <script src="/resources/check-layout-th.js"></script> 33 <script type="text/javascript"> 34 setup({ explicit_done: true }); 35 </script> 32 36 33 <body onload=" checkLayout('.grid')">37 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 34 38 35 39 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage paddings are resolved against the inline size of their grid area (in a track with fixed max sizing function and intrinsic min)."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 30 31 <script src="/resources/testharnessreport.js"></script> 31 32 <script src="/resources/check-layout-th.js"></script> 33 <script type="text/javascript"> 34 setup({ explicit_done: true }); 35 </script> 32 36 33 <body onload=" checkLayout('.grid')">37 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 34 38 35 39 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage paddings are resolved against the inline size of their grid area (in a fixed size track) in a vertical-lr grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage paddings are resolved against the inline size of their grid area (in a track with fixed max sizing function and intrinsic min) in a vertical-lr grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage paddings are resolved against the inline size of their grid area (in a fixed size track) in a vertical-rl grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html
r253629 r261841 6 6 <meta name="assert" content="Checks grid items percentage paddings are resolved against the inline size of their grid area (in a track with fixed max sizing function and intrinsic min) in a vertical-rl grid container."> 7 7 <link rel="stylesheet" href="/css/support/grid.css"> 8 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 9 <style> 9 10 .grid { … … 31 32 <script src="/resources/testharnessreport.js"></script> 32 33 <script src="/resources/check-layout-th.js"></script> 34 <script type="text/javascript"> 35 setup({ explicit_done: true }); 36 </script> 33 37 34 <body onload=" checkLayout('.grid')">38 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })"> 35 39 36 40 <div id="log"></div> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/w3c-import.log
r238079 r261841 95 95 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-001.html 96 96 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-002.html 97 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003-expected.xht 98 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html 99 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004-expected.xht 100 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html 101 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005-expected.xht 102 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html 103 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006-expected.xht 104 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html 105 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007-expected.xht 106 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html 107 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008-expected.xht 108 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html 109 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009-expected.xht 110 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html 111 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010-expected.xht 112 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html 113 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011-expected.xht 114 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html 115 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012-expected.xht 116 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html 117 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013-expected.xht 118 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html 119 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014-expected.xht 120 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html 97 121 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html 98 122 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html … … 101 125 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-001.html 102 126 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002.html 127 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003-expected.xht 128 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html 129 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004-expected.xht 130 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html 131 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005-expected.xht 132 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html 133 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006-expected.xht 134 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html 135 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007-expected.xht 136 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html 137 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008-expected.xht 138 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html 139 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009-expected.xht 140 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html 141 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010-expected.xht 142 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html 143 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011-expected.xht 144 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html 145 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012-expected.xht 146 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html 147 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013-expected.xht 148 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html 149 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014-expected.xht 150 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html 103 151 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html 104 152 /LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html -
trunk/Source/WebCore/ChangeLog
r261840 r261841 1 2020-05-18 Oriol Brufau <obrufau@igalia.com> 2 3 [css-grid] Clear the override width for computing percent margins 4 https://bugs.webkit.org/show_bug.cgi?id=209461 5 6 Reviewed by Manuel Rego Casasnovas. 7 8 When calculating the min-content contribution of a grid item of an auto 9 sized grid track we must consider the grid item's margin. When the grid 10 item's area is indefinite, a percent margin is resolved to zero. 11 However, when performing a relayout, the percent margin may be solved 12 against the previously computed grid area, since the grid item has 13 already an OverrideContainingBlockLogicalWidth value. 14 15 In order to re-compute the percent margin properly, we need to clear 16 the previously override value. It's important to be careful of not 17 clearing the override value set during intrinsic size, since we need 18 it for the actual layout phase. Hence, we only reset the 'override' 19 value when we are executing a definite strategy. 20 21 Tests: imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages.html 22 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html 23 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html 24 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html 25 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html 26 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html 27 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html 28 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html 29 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html 30 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html 31 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html 32 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html 33 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html 34 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html 35 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html 36 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html 37 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html 38 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html 39 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html 40 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html 41 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html 42 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html 43 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html 44 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html 45 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html 46 imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html 47 48 * rendering/GridTrackSizingAlgorithm.cpp: 49 (WebCore::hasRelativeMarginOrPaddingForChild): 50 (WebCore::hasRelativeOrIntrinsicSizeForChild): 51 (WebCore::shouldClearOverrideContainingBlockContentSizeForChild): 52 (WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const): 53 (WebCore::GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild const): 54 (WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const): 55 (WebCore::DefiniteSizeStrategy::minContentForChild const): 56 * rendering/GridTrackSizingAlgorithm.h: 57 1 58 2020-05-18 David Kilzer <ddkilzer@apple.com> 2 59 -
trunk/Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp
r261767 r261841 107 107 } 108 108 109 static bool shouldClearOverrideContainingBlockContentSizeForChild(const RenderBox& child, GridTrackSizingDirection direction) 109 static bool hasRelativeMarginOrPaddingForChild(const RenderBox& child, GridTrackSizingDirection direction) 110 { 111 if (direction == ForColumns) 112 return child.style().marginStart().isPercentOrCalculated() || child.style().marginEnd().isPercentOrCalculated() || child.style().paddingStart().isPercentOrCalculated() || child.style().paddingEnd().isPercentOrCalculated(); 113 return child.style().marginBefore().isPercentOrCalculated() || child.style().marginAfter().isPercentOrCalculated() || child.style().paddingBefore().isPercentOrCalculated() || child.style().paddingAfter().isPercentOrCalculated(); 114 } 115 static bool hasRelativeOrIntrinsicSizeForChild(const RenderBox& child, GridTrackSizingDirection direction) 110 116 { 111 117 if (direction == ForColumns) 112 118 return child.hasRelativeLogicalWidth() || child.style().logicalWidth().isIntrinsicOrAuto(); 113 119 return child.hasRelativeLogicalHeight() || child.style().logicalHeight().isIntrinsicOrAuto(); 120 } 121 122 static bool shouldClearOverrideContainingBlockContentSizeForChild(const RenderBox& child, GridTrackSizingDirection direction) 123 { 124 return hasRelativeOrIntrinsicSizeForChild(child, direction) || hasRelativeMarginOrPaddingForChild(child, direction); 114 125 } 115 126 … … 120 131 else 121 132 child.setOverrideContainingBlockContentLogicalHeight(size); 122 }123 124 // FIXME: we borrowed this from RenderBlock. We cannot call it from here because it's protected for RenderObjects.125 static LayoutUnit marginIntrinsicLogicalWidthForChild(const RenderGrid* renderGrid, RenderBox& child)126 {127 // A margin has three types: fixed, percentage, and auto (variable).128 // Auto and percentage margins become 0 when computing min/max width.129 // Fixed margins can be added in as is.130 Length marginLeft = child.style().marginStartUsing(&renderGrid->style());131 Length marginRight = child.style().marginEndUsing(&renderGrid->style());132 LayoutUnit margin;133 if (marginLeft.isFixed())134 margin += marginLeft.value();135 if (marginRight.isFixed())136 margin += marginRight.value();137 return margin;138 133 } 139 134 … … 833 828 834 829 LayoutUnit gridAreaSize = m_algorithm.gridAreaBreadthForChild(child, childInlineDirection); 835 if (isRowAxis) 836 return minLogicalWidthForChild(child, childMinSize, gridAreaSize) + baselineShim; 837 838 bool overrideSizeHasChanged = updateOverrideContainingBlockContentSizeForChild(child, childInlineDirection, gridAreaSize); 839 layoutGridItemForMinSizeComputation(child, overrideSizeHasChanged); 840 841 return child.computeLogicalHeightUsing(MinSize, childMinSize, WTF::nullopt).valueOr(0) + child.marginLogicalHeight() + child.scrollbarLogicalHeight() + baselineShim; 830 return minLogicalSizeForChild(child, childMinSize, gridAreaSize) + baselineShim; 842 831 } 843 832 … … 921 910 } 922 911 912 LayoutUnit GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild(RenderBox& child, const Length& childMinSize, LayoutUnit availableSize) const 913 { 914 GridTrackSizingDirection childInlineDirection = GridLayoutFunctions::flowAwareDirectionForChild(*renderGrid(), child, ForColumns); 915 bool isRowAxis = direction() == childInlineDirection; 916 if (isRowAxis) 917 return child.computeLogicalWidthInFragmentUsing(MinSize, childMinSize, availableSize, *renderGrid(), nullptr) + GridLayoutFunctions::marginLogicalSizeForChild(*renderGrid(), childInlineDirection, child); 918 bool overrideSizeHasChanged = updateOverrideContainingBlockContentSizeForChild(child, childInlineDirection, availableSize); 919 layoutGridItemForMinSizeComputation(child, overrideSizeHasChanged); 920 GridTrackSizingDirection childBlockDirection = GridLayoutFunctions::flowAwareDirectionForChild(*renderGrid(), child, ForRows); 921 return child.computeLogicalHeightUsing(MinSize, childMinSize, WTF::nullopt).valueOr(0) + GridLayoutFunctions::marginLogicalSizeForChild(*renderGrid(), childBlockDirection, child); 922 } 923 923 924 class IndefiniteSizeStrategy final : public GridTrackSizingAlgorithmStrategy { 924 925 public: … … 927 928 928 929 private: 929 LayoutUnit minLogicalWidthForChild(RenderBox&, Length childMinSize, LayoutUnit availableSize) const override;930 930 void layoutGridItemForMinSizeComputation(RenderBox&, bool overrideSizeHasChanged) const override; 931 931 void maximizeTracks(Vector<GridTrack>&, Optional<LayoutUnit>& freeSpace) override; … … 934 934 LayoutUnit freeSpaceForStretchAutoTracksStep() const override; 935 935 }; 936 937 LayoutUnit IndefiniteSizeStrategy::minLogicalWidthForChild(RenderBox& child, Length childMinSize, LayoutUnit availableSize) const938 {939 return child.computeLogicalWidthInFragmentUsing(MinSize, childMinSize, availableSize, *renderGrid(), nullptr) + marginIntrinsicLogicalWidthForChild(renderGrid(), child);940 }941 936 942 937 void IndefiniteSizeStrategy::layoutGridItemForMinSizeComputation(RenderBox& child, bool overrideSizeHasChanged) const … … 1028 1023 1029 1024 private: 1030 LayoutUnit minLogicalWidthForChild(RenderBox&, Length childMinSize, LayoutUnit availableSize) const override;1031 1025 void layoutGridItemForMinSizeComputation(RenderBox&, bool overrideSizeHasChanged) const override; 1032 1026 void maximizeTracks(Vector<GridTrack>&, Optional<LayoutUnit>& freeSpace) override; … … 1034 1028 bool recomputeUsedFlexFractionIfNeeded(double& flexFraction, LayoutUnit& totalGrowth) const override; 1035 1029 LayoutUnit freeSpaceForStretchAutoTracksStep() const override; 1030 LayoutUnit minContentForChild(RenderBox&) const override; 1031 LayoutUnit minLogicalSizeForChild(RenderBox&, const Length& childMinSize, LayoutUnit availableSize) const override; 1036 1032 }; 1037 1033 … … 1048 1044 } 1049 1045 1050 LayoutUnit DefiniteSizeStrategy::minLogicalWidthForChild(RenderBox& child, Length childMinSize, LayoutUnit availableSize) const 1051 { 1052 LayoutUnit marginLogicalWidth = 1053 GridLayoutFunctions::computeMarginLogicalSizeForChild(*renderGrid(), ForColumns, child); 1054 return child.computeLogicalWidthInFragmentUsing(MinSize, childMinSize, availableSize, *renderGrid(), nullptr) + marginLogicalWidth; 1046 LayoutUnit DefiniteSizeStrategy::minLogicalSizeForChild(RenderBox& child, const Length& childMinSize, LayoutUnit availableSize) const 1047 { 1048 GridTrackSizingDirection childInlineDirection = GridLayoutFunctions::flowAwareDirectionForChild(*renderGrid(), child, ForColumns); 1049 LayoutUnit indefiniteSize = direction() == childInlineDirection ? LayoutUnit() : LayoutUnit(-1); 1050 GridTrackSizingDirection flowAwareDirection = GridLayoutFunctions::flowAwareDirectionForChild(*renderGrid(), child, direction()); 1051 if (hasRelativeMarginOrPaddingForChild(child, flowAwareDirection) || (direction() != childInlineDirection && hasRelativeOrIntrinsicSizeForChild(child, flowAwareDirection))) 1052 setOverrideContainingBlockContentSizeForChild(child, direction(), indefiniteSize); 1053 return GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild(child, childMinSize, availableSize); 1055 1054 } 1056 1055 … … 1089 1088 { 1090 1089 return m_algorithm.freeSpace(direction()).value(); 1090 } 1091 1092 LayoutUnit DefiniteSizeStrategy::minContentForChild(RenderBox& child) const 1093 { 1094 GridTrackSizingDirection childInlineDirection = GridLayoutFunctions::flowAwareDirectionForChild(*renderGrid(), child, ForColumns); 1095 if (direction() == childInlineDirection && child.needsLayout() && shouldClearOverrideContainingBlockContentSizeForChild(child, ForColumns)) 1096 setOverrideContainingBlockContentSizeForChild(child, childInlineDirection, LayoutUnit()); 1097 return GridTrackSizingAlgorithmStrategy::minContentForChild(child); 1091 1098 } 1092 1099 -
trunk/Source/WebCore/rendering/GridTrackSizingAlgorithm.h
r256826 r261841 253 253 WTF_MAKE_FAST_ALLOCATED; 254 254 public: 255 LayoutUnit minContentForChild(RenderBox&) const;255 virtual LayoutUnit minContentForChild(RenderBox&) const; 256 256 LayoutUnit maxContentForChild(RenderBox&) const; 257 257 LayoutUnit minSizeForChild(RenderBox&) const; … … 268 268 : m_algorithm(algorithm) { } 269 269 270 virtual LayoutUnit minLogical WidthForChild(RenderBox&, Length childMinSize, LayoutUnit availableSize) const = 0;270 virtual LayoutUnit minLogicalSizeForChild(RenderBox&, const Length& childMinSize, LayoutUnit availableSize) const; 271 271 virtual void layoutGridItemForMinSizeComputation(RenderBox&, bool overrideSizeHasChanged) const = 0; 272 272
Note: See TracChangeset
for help on using the changeset viewer.