Changeset 217486 in webkit


Ignore:
Timestamp:
May 26, 2017 3:18:14 AM (7 years ago)
Author:
Manuel Rego Casasnovas
Message:

[css-grid] Add support for orthogonal positioned grid items
https://bugs.webkit.org/show_bug.cgi?id=172591

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Imported new tests for this feature from WPT repository.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-002-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-002.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-003-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-003.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-004-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-004.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-005-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-005.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-006-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-006.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-007-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-007.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-008-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-008.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-009-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-009.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-010-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-010.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-011-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-011.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-012-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-012.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-013-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-013.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-014-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-014.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-015-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-015.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-016-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-016.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-017-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-017.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/w3c-import.log:

Source/WebCore:

This patch adds support for positioned grid items with orthogonal flows.
Basically it just needs to check if the item is orthogonal to use
the column or row offset as logical left or top depending on the case.

Tests: imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-*.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutPositionedObject):

LayoutTests:

Two of the new imported tests are failing due to an issue with margins
and orthogonal items, which is unrelated to this patch (see bug #172590).

Location:
trunk
Files:
34 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r217477 r217486  
     12017-05-26  Manuel Rego Casasnovas  <rego@igalia.com>
     2
     3        [css-grid] Add support for orthogonal positioned grid items
     4        https://bugs.webkit.org/show_bug.cgi?id=172591
     5
     6        Reviewed by Sergio Villar Senin.
     7
     8        Two of the new imported tests are failing due to an issue with margins
     9        and orthogonal items, which is unrelated to this patch (see bug #172590).
     10
     11        * TestExpectations:
     12
    1132017-05-25  Emilio Cobos Álvarez  <ecobos@igalia.com>
    214
  • trunk/LayoutTests/TestExpectations

    r217477 r217486  
    285285webkit.org/b/165062 fast/css-grid-layout/grid-baseline.html [ ImageOnlyFailure ]
    286286webkit.org/b/165062 fast/css-grid-layout/grid-baseline-margins.html [ ImageOnlyFailure ]
     287webkit.org/b/172590 imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-013.html [ ImageOnlyFailure ]
     288webkit.org/b/172590 imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-017.html [ ImageOnlyFailure ]
    287289webkit.org/b/149891 imported/w3c/web-platform-tests/css/css-grid-1/grid-layout-properties.html [ Failure ]
    288290webkit.org/b/169271 imported/w3c/web-platform-tests/css/css-grid-1/grid-items/grid-items-sizing-alignment-001.html [ ImageOnlyFailure ]
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r217302 r217486  
     12017-05-26  Manuel Rego Casasnovas  <rego@igalia.com>
     2
     3        [css-grid] Add support for orthogonal positioned grid items
     4        https://bugs.webkit.org/show_bug.cgi?id=172591
     5
     6        Reviewed by Sergio Villar Senin.
     7
     8        Imported new tests for this feature from WPT repository.
     9
     10        * resources/import-expectations.json:
     11        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001-expected.html: Added.
     12        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001.html: Added.
     13        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-002-expected.html: Added.
     14        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-002.html: Added.
     15        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-003-expected.html: Added.
     16        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-003.html: Added.
     17        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-004-expected.html: Added.
     18        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-004.html: Added.
     19        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-005-expected.html: Added.
     20        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-005.html: Added.
     21        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-006-expected.html: Added.
     22        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-006.html: Added.
     23        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-007-expected.html: Added.
     24        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-007.html: Added.
     25        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-008-expected.html: Added.
     26        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-008.html: Added.
     27        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-009-expected.html: Added.
     28        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-009.html: Added.
     29        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-010-expected.html: Added.
     30        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-010.html: Added.
     31        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-011-expected.html: Added.
     32        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-011.html: Added.
     33        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-012-expected.html: Added.
     34        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-012.html: Added.
     35        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-013-expected.html: Added.
     36        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-013.html: Added.
     37        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-014-expected.html: Added.
     38        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-014.html: Added.
     39        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-015-expected.html: Added.
     40        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-015.html: Added.
     41        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-016-expected.html: Added.
     42        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-016.html: Added.
     43        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-017-expected.html: Added.
     44        * web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-017.html: Added.
     45        * web-platform-tests/css/css-grid-1/abspos/w3c-import.log:
     46
    1472017-05-23  Manuel Rego Casasnovas  <rego@igalia.com>
    248
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/w3c-import.log

    r217225 r217486  
    1515------------------------------------------------------------------------
    1616List of files:
     17/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001-expected.html
     18/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001.html
     19/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-002-expected.html
     20/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-002.html
     21/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-003-expected.html
     22/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-003.html
     23/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-004-expected.html
     24/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-004.html
     25/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-005-expected.html
     26/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-005.html
     27/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-006-expected.html
     28/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-006.html
     29/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-007-expected.html
     30/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-007.html
     31/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-008-expected.html
     32/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-008.html
     33/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-009-expected.html
     34/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-009.html
     35/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-010-expected.html
     36/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-010.html
     37/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-011-expected.html
     38/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-011.html
     39/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-012-expected.html
     40/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-012.html
     41/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-013-expected.html
     42/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-013.html
     43/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-014-expected.html
     44/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-014.html
     45/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-015-expected.html
     46/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-015.html
     47/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-016-expected.html
     48/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-016.html
     49/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-017-expected.html
     50/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-017.html
    1751/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-001-expected.html
    1852/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-001.html
  • trunk/Source/WebCore/ChangeLog

    r217477 r217486  
     12017-05-26  Manuel Rego Casasnovas  <rego@igalia.com>
     2
     3        [css-grid] Add support for orthogonal positioned grid items
     4        https://bugs.webkit.org/show_bug.cgi?id=172591
     5
     6        Reviewed by Sergio Villar Senin.
     7
     8        This patch adds support for positioned grid items with orthogonal flows.
     9        Basically it just needs to check if the item is orthogonal to use
     10        the column or row offset as logical left or top depending on the case.
     11
     12        Tests: imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-***.html
     13
     14        * rendering/RenderGrid.cpp:
     15        (WebCore::RenderGrid::layoutPositionedObject):
     16
    1172017-05-25  Emilio Cobos Álvarez  <ecobos@igalia.com>
    218
  • trunk/Source/WebCore/rendering/RenderGrid.cpp

    r217411 r217486  
    941941void RenderGrid::layoutPositionedObject(RenderBox& child, bool relayoutChildren, bool fixedPositionObjectsOnly)
    942942{
    943     if (isOrthogonalChild(child)) {
    944         // FIXME: Properly support orthogonal writing mode.
    945         RenderBlock::layoutPositionedObject(child, relayoutChildren, fixedPositionObjectsOnly);
    946         return;
    947     }
    948 
    949943    LayoutUnit columnOffset;
    950944    LayoutUnit columnBreadth;
     
    964958    RenderBlock::layoutPositionedObject(child, relayoutChildren, fixedPositionObjectsOnly);
    965959
    966     child.setLogicalLocation(LayoutPoint(child.logicalLeft() + columnOffset, child.logicalTop() + rowOffset));
     960    bool isOrthogonal = isOrthogonalChild(child);
     961    LayoutUnit logicalLeft = child.logicalLeft() + (isOrthogonal ? rowOffset : columnOffset);
     962    LayoutUnit logicalTop = child.logicalTop() + (isOrthogonal ? columnOffset : rowOffset);
     963    child.setLogicalLocation(LayoutPoint(logicalLeft, logicalTop));
    967964}
    968965
    969966void RenderGrid::offsetAndBreadthForPositionedChild(const RenderBox& child, GridTrackSizingDirection direction, LayoutUnit& offset, LayoutUnit& breadth)
    970967{
    971     ASSERT(!isOrthogonalChild(child));
    972968    bool isRowAxis = direction == ForColumns;
    973969
Note: See TracChangeset for help on using the changeset viewer.