Changeset 274099 in webkit


Ignore:
Timestamp:
Mar 8, 2021 1:12:54 PM (17 months ago)
Author:
commit-queue@webkit.org
Message:

Fix replaced element definiteness as a grid-item
https://bugs.webkit.org/show_bug.cgi?id=221337

Patch by Ziran Sun <Ziran Sun> on 2021-03-08
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

The test is imported from WPT.

  • web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html: Added.

Source/WebCore:

When resolving indefinite percentage sizes against an intrinsic size for replaced grid item, if 'height'
has a computed value of 'auto', and the element has an intrinsic ratio then the used value of 'height'is:
(used width) / (intrinsic ratio) according to http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height
(10.6.2 Inline, replaced elements).

This changes makes RenderReplaced::hasReplacedLogicalHeight to return false when a replaced grid-item
has an indefinite containing-block override logical-height. This is to make sure
RenderReplaced::computeReplacedLogicalHeight() handles cases described correctly.

It is an import of chromium CL at https://chromium-review.googlesource.com/c/chromium/src/+/2562558
This change only picks parts that is applicable for WebKit from the chromium CL. It also fix test
css/css-grid/grid-item-percentage-quirk-001.html in WPT.

Test: imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html
Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html
Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):

Location:
trunk
Files:
6 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r274055 r274099  
     12021-03-08  Ziran Sun  <zsun@igalia.com>
     2
     3        Fix replaced element definiteness as a grid-item
     4        https://bugs.webkit.org/show_bug.cgi?id=221337
     5
     6        Reviewed by Javier Fernandez.
     7
     8        The test is imported from WPT.
     9
     10        * web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced-expected.html: Added.
     11        * web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html: Added.
     12        * web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html: Added.
     13        * web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html: Added.
     14        * web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html: Added.
     15        * web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html: Added.
     16
    1172021-03-07  Antoine Quint  <graouts@webkit.org>
    218
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/w3c-import.log

    r272711 r274099  
    276276/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/item-with-table-with-infinite-max-intrinsic-width-expected.html
    277277/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/item-with-table-with-infinite-max-intrinsic-width.html
     278/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced-expected.html
     279/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html
    278280/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-replaced-subitems-001-expected.html
    279281/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-replaced-subitems-001.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/w3c-import.log

    r271745 r274099  
    3232/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-non-auto-height-stretch-004-expected.html
    3333/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-non-auto-height-stretch-004.html
     34/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html
     35/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html
     36/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html
     37LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html
    3438/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-layout-properties.html
    3539/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-tracks-stretched-with-different-flex-factors-sum.html
  • trunk/Source/WebCore/ChangeLog

    r274098 r274099  
     12021-03-08  Ziran Sun  <zsun@igalia.com>
     2
     3        Fix replaced element definiteness as a grid-item
     4        https://bugs.webkit.org/show_bug.cgi?id=221337
     5
     6        Reviewed by Javier Fernandez.
     7
     8        When resolving indefinite percentage sizes against an intrinsic size for replaced grid item, if 'height'
     9        has a computed value of 'auto', and the element has an intrinsic ratio then the used value of 'height'is:
     10        (used width) / (intrinsic ratio) according to http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height
     11        (10.6.2 Inline, replaced elements).
     12
     13        This changes makes RenderReplaced::hasReplacedLogicalHeight to return false when a replaced grid-item
     14        has an indefinite containing-block override logical-height. This is to make sure
     15        RenderReplaced::computeReplacedLogicalHeight() handles cases described correctly.
     16
     17        It is an import of chromium CL at https://chromium-review.googlesource.com/c/chromium/src/+/2562558
     18        This change only picks parts that is applicable for WebKit from the chromium CL. It also fix test
     19        css/css-grid/grid-item-percentage-quirk-001.html in WPT.
     20
     21        Test: imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html
     22        Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html
     23        Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html
     24
     25        * rendering/RenderBoxModelObject.cpp:
     26        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):
     27
    1282021-03-08  Ryan Haddad  <ryanhaddad@apple.com>
    229
  • trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp

    r272475 r274099  
    283283   
    284284    if (thisBox && thisBox->isGridItem() && thisBox->hasOverridingContainingBlockContentLogicalHeight())
    285         return false;
     285        return thisBox->overridingContainingBlockContentLogicalHeight() == WTF::nullopt;
    286286   
    287287    if (logicalHeightLength.isAuto() && !isOutOfFlowPositionedWithImplicitHeight(*this))
Note: See TracChangeset for help on using the changeset viewer.