Changeset 258735 in webkit
- Timestamp:
- Mar 19, 2020 3:27:06 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 32 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r258727 r258735 1 2020-03-19 Javier Fernandez <jfernandez@igalia.com> 2 3 [css-grid] Changes in grid or elements inside the grid affects margin on other elements in the grid 4 https://bugs.webkit.org/show_bug.cgi?id=209203 5 6 Reviewed by Darin Adler. 7 8 Imported new Web Platform tests to detect regressions in the auto-margins logic durignn relayouts. 9 10 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-001-expected.txt: Added. 11 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-001.html: Added. 12 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-002-expected.txt: Added. 13 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-002.html: Added. 14 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-003-expected.txt: Added. 15 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-003.html: Added. 16 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-004-expected.txt: Added. 17 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-004.html: Added. 18 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-005-expected.txt: Added. 19 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-005.html: Added. 20 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-006-expected.txt: Added. 21 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-006.html: Added. 22 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-007-expected.txt: Added. 23 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-007.html: Added. 24 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-008-expected.html: Added. 25 * web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-008.html: Added. 26 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-001-expected.txt: Added. 27 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-001.html: Added. 28 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-002-expected.txt: Added. 29 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-002.html: Added. 30 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-003-expected.txt: Added. 31 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-003.html: Added. 32 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-004-expected.txt: Added. 33 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-004.html: Added. 34 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-005-expected.txt: Added. 35 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-005.html: Added. 36 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-006-expected.txt: Added. 37 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-006.html: Added. 38 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-007-expected.txt: Added. 39 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-007.html: Added. 40 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-008-expected.html: Added. 41 * web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-008.html: Added. 42 1 43 2020-03-19 Myles C. Maxfield <mmaxfield@apple.com> 2 44 -
trunk/Source/WebCore/ChangeLog
r258733 r258735 1 2020-03-19 Javier Fernandez <jfernandez@igalia.com> 2 3 [css-grid] Changes in grid or elements inside the grid affects margin on other elements in the grid 4 https://bugs.webkit.org/show_bug.cgi?id=209203 5 6 Reviewed by Darin Adler. 7 8 We should ignore the previously computed auto margins wheneven a relayout is performed. 9 10 Tests: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-001.html 11 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-002.html 12 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-003.html 13 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-004.html 14 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-005.html 15 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-006.html 16 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-007.html 17 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-008.html 18 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-001.html 19 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-002.html 20 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-003.html 21 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-004.html 22 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-005.html 23 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-006.html 24 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-007.html 25 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-008.html 26 27 * rendering/RenderGrid.cpp: 28 (WebCore::RenderGrid::updateAutoMarginsInRowAxisIfNeeded): 29 (WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded): 30 1 31 2020-03-19 Andres Gonzalez <andresg_22@apple.com> 2 32 -
trunk/Source/WebCore/rendering/RenderGrid.cpp
r254561 r258735 1173 1173 ASSERT(!child.isOutOfFlowPositioned()); 1174 1174 1175 LayoutUnit availableAlignmentSpace = child.overrideContainingBlockContentLogicalWidth().value() - child.logicalWidth() - child.marginLogicalWidth();1176 if (availableAlignmentSpace <= 0)1177 return;1178 1179 1175 const RenderStyle& parentStyle = style(); 1180 1176 Length marginStart = child.style().marginStartUsing(&parentStyle); 1181 1177 Length marginEnd = child.style().marginEndUsing(&parentStyle); 1178 LayoutUnit marginLogicalWidth; 1179 // We should only consider computed margins if their specified value isn't 1180 // 'auto', since such computed value may come from a previous layout and may 1181 // be incorrect now. 1182 if (!marginStart.isAuto()) 1183 marginLogicalWidth += child.marginStart(); 1184 if (!marginEnd.isAuto()) 1185 marginLogicalWidth += child.marginEnd(); 1186 1187 LayoutUnit availableAlignmentSpace = child.overrideContainingBlockContentLogicalWidth().value() - child.logicalWidth() - marginLogicalWidth; 1188 if (availableAlignmentSpace <= 0) 1189 return; 1190 1182 1191 if (marginStart.isAuto() && marginEnd.isAuto()) { 1183 1192 child.setMarginStart(availableAlignmentSpace / 2, &parentStyle); … … 1195 1204 ASSERT(!child.isOutOfFlowPositioned()); 1196 1205 1197 LayoutUnit availableAlignmentSpace = child.overrideContainingBlockContentLogicalHeight().value() - child.logicalHeight() - child.marginLogicalHeight();1198 if (availableAlignmentSpace <= 0)1199 return;1200 1201 1206 const RenderStyle& parentStyle = style(); 1202 1207 Length marginBefore = child.style().marginBeforeUsing(&parentStyle); 1203 1208 Length marginAfter = child.style().marginAfterUsing(&parentStyle); 1209 LayoutUnit marginLogicalHeight; 1210 // We should only consider computed margins if their specified value isn't 1211 // 'auto', since such computed value may come from a previous layout and may 1212 // be incorrect now. 1213 if (!marginBefore.isAuto()) 1214 marginLogicalHeight += child.marginBefore(); 1215 if (!marginAfter.isAuto()) 1216 marginLogicalHeight += child.marginAfter(); 1217 1218 LayoutUnit availableAlignmentSpace = child.overrideContainingBlockContentLogicalHeight().value() - child.logicalHeight() - marginLogicalHeight; 1219 if (availableAlignmentSpace <= 0) 1220 return; 1221 1204 1222 if (marginBefore.isAuto() && marginAfter.isAuto()) { 1205 1223 child.setMarginBefore(availableAlignmentSpace / 2, &parentStyle);
Note: See TracChangeset
for help on using the changeset viewer.