Title: [199874] trunk
- Revision
- 199874
- Author
- r...@igalia.com
- Date
- 2016-04-22 00:54:22 -0700 (Fri, 22 Apr 2016)
Log Message
[css-grid] Fix bug with positioned items in vertical writing mode
https://bugs.webkit.org/show_bug.cgi?id=156870
Reviewed by Darin Adler.
Source/WebCore:
In RenderGrid::offsetAndBreadthForPositionedChild() we were using
directly borderLeft(), which is wrong in vertical writing modes.
To fix it we just need to use borderLogicalLeft() which is aware of
the current writing mode.
Test: fast/css-grid-layout/grid-positioned-children-writing-modes.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
LayoutTests:
Add new test to check positioned items in different writing modes
and direction combinations.
* fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html: Added.
* fast/css-grid-layout/grid-positioned-children-writing-modes.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (199873 => 199874)
--- trunk/LayoutTests/ChangeLog 2016-04-22 07:09:12 UTC (rev 199873)
+++ trunk/LayoutTests/ChangeLog 2016-04-22 07:54:22 UTC (rev 199874)
@@ -1,3 +1,16 @@
+2016-04-22 Manuel Rego Casasnovas <r...@igalia.com>
+
+ [css-grid] Fix bug with positioned items in vertical writing mode
+ https://bugs.webkit.org/show_bug.cgi?id=156870
+
+ Reviewed by Darin Adler.
+
+ Add new test to check positioned items in different writing modes
+ and direction combinations.
+
+ * fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html: Added.
+ * fast/css-grid-layout/grid-positioned-children-writing-modes.html: Added.
+
2016-04-21 Chris Dumez <cdu...@apple.com>
Drop [UsePointersEvenForNonNullableObjectArguments] from Document
Added: trunk/LayoutTests/fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html (0 => 199874)
--- trunk/LayoutTests/fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html 2016-04-22 07:54:22 UTC (rev 199874)
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<link href="" rel="stylesheet">
+<style>
+
+.grid {
+ display: block;
+ margin: 5px;
+ width: 50px;
+ height: 25px;
+ padding: 5px 10px 15px 20px;
+ border-style: solid;
+ border-width: 5px 10px 15px 20px;
+ float: left;
+}
+
+.green {
+ background-color: green;
+ width: 30px;
+ height: 20px;
+ font: 10px/1 Ahem;
+}
+
+.verticalSize {
+ width: 20px;
+ height: 30px;
+}
+
+</style>
+
+<p>This test checks the behavior of the positioned grid children in combination with the writing modes and text direction properties.</p>
+<p>For the test to pass you should see no red and only green boxes. The black box will be positioned depending on the writing mode and text direction values.</p>
+
+<div class="grid">
+ <div class="green">XX</div>
+</div>
+
+<div class="grid verticalRL">
+ <div class="green verticalSize">XX</div>
+</div>
+
+<div class="grid verticalLR">
+ <div class="green verticalSize">XX</div>
+</div>
+
+<div class="grid directionRTL">
+ <div class="green">XX</div>
+</div>
+
+<div class="grid verticalRL directionRTL">
+ <div class="green verticalSize">XX</div>
+</div>
+
+<div class="grid verticalLR directionRTL">
+ <div class="green verticalSize">XX</div>
+</div>
+
+<div class="grid">
+ <div class="green">XX</div>
+</div>
+
+<div class="grid verticalRL">
+ <div class="green verticalSize">XX</div>
+</div>
+
+<div class="grid verticalLR">
+ <div class="green verticalSize">XX</div>
+</div>
+
+<div class="grid directionRTL">
+ <div class="green">XX</div>
+</div>
+
+<div class="grid verticalRL directionRTL">
+ <div class="green verticalSize">XX</div>
+</div>
+
+<div class="grid verticalLR directionRTL">
+ <div class="green verticalSize">XX</div>
+</div>
Added: trunk/LayoutTests/fast/css-grid-layout/grid-positioned-children-writing-modes.html (0 => 199874)
--- trunk/LayoutTests/fast/css-grid-layout/grid-positioned-children-writing-modes.html (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-positioned-children-writing-modes.html 2016-04-22 07:54:22 UTC (rev 199874)
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<link href="" rel="stylesheet">
+<style>
+
+.grid {
+ margin: 5px;
+ width: 50px;
+ height: 25px;
+ -webkit-grid: 20px / 30px;
+ padding: 5px 10px 15px 20px;
+ border-style: solid;
+ border-width: 5px 10px 15px 20px;
+ float: left;
+ /* Ensures that the grid container is the containing block of the grid children. */
+ position: relative;
+}
+
+.absolute {
+ position: absolute;
+}
+
+.onlyFirstRowOnlyFirstColumn {
+ background-color: green;
+ -webkit-grid-column: 1 / 2;
+ -webkit-grid-row: 1 / 2;
+}
+
+.offsets {
+ left: 0;
+ top: 0;
+}
+
+.red {
+ background-color: red;
+}
+
+</style>
+
+<p>This test checks the behavior of the positioned grid children in combination with the writing modes and text direction properties.</p>
+<p>For the test to pass you should see no red and only green boxes. The black box will be positioned depending on the writing mode and text direction values.</p>
+
+<div class="grid">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalRL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalLR">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid directionRTL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalRL directionRTL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalLR directionRTL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute offsets onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalRL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute offsets onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalLR">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute offsets onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid directionRTL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute offsets onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalRL directionRTL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute offsets onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
+
+<div class="grid verticalLR directionRTL">
+ <div class="sizedToGridArea red"></div>
+ <div class="sizedToGridArea absolute offsets onlyFirstRowOnlyFirstColumn">XX</div>
+</div>
Modified: trunk/Source/WebCore/ChangeLog (199873 => 199874)
--- trunk/Source/WebCore/ChangeLog 2016-04-22 07:09:12 UTC (rev 199873)
+++ trunk/Source/WebCore/ChangeLog 2016-04-22 07:54:22 UTC (rev 199874)
@@ -1,3 +1,21 @@
+2016-04-22 Manuel Rego Casasnovas <r...@igalia.com>
+
+ [css-grid] Fix bug with positioned items in vertical writing mode
+ https://bugs.webkit.org/show_bug.cgi?id=156870
+
+ Reviewed by Darin Adler.
+
+ In RenderGrid::offsetAndBreadthForPositionedChild() we were using
+ directly borderLeft(), which is wrong in vertical writing modes.
+
+ To fix it we just need to use borderLogicalLeft() which is aware of
+ the current writing mode.
+
+ Test: fast/css-grid-layout/grid-positioned-children-writing-modes.html
+
+ * rendering/RenderGrid.cpp:
+ (WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
+
2016-04-21 Zan Dobersek <zdober...@igalia.com>
REGRESSION(r199738): The ANGLE update broke accelerated compositing in GTK+ port
Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (199873 => 199874)
--- trunk/Source/WebCore/rendering/RenderGrid.cpp 2016-04-22 07:09:12 UTC (rev 199873)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp 2016-04-22 07:54:22 UTC (rev 199874)
@@ -1583,7 +1583,7 @@
if (endIsAuto)
offset = LayoutUnit();
else {
- offset = translateRTLCoordinate(m_columnPositions[endLine]) - borderLeft();
+ offset = translateRTLCoordinate(m_columnPositions[endLine]) - borderLogicalLeft();
if (endLine > firstExplicitLine && endLine < lastExplicitLine) {
offset += guttersSize(direction, 2);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes