Changeset 244906 in webkit


Ignore:
Timestamp:
May 3, 2019 6:19:57 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Resolve the percentage values of inset properties against proper box.
https://bugs.webkit.org/show_bug.cgi?id=189549

Patch by Joonghun Park <jh718.park@samsung.com> on 2019-05-03
Reviewed by Antti Koivisto.

Before this CL, sticky element's layout was executed relative to
a box's overflow container,
but the value returned by getComputedStyle was resolved against
its containing block.

So, the computed value and the actual value used in layout
was different before this change.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky-expected.txt.
  • web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html.
  • web-platform-tests/css/cssom/getComputedStyle-insets-sticky-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html:
  • web-platform-tests/css/cssom/getComputedStyle-sticky-pos-percent-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-sticky-pos-percent.html: Added.
  • web-platform-tests/css/cssom/support/getComputedStyle-insets.js:

(runTestsWithWM):

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos.html

imported/w3c/web-platform-tests/css/cssom/getComputedStyle-sticky-pos-percent.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::enclosingScrollportBox const):

  • rendering/RenderBox.h:
Location:
trunk
Files:
2 added
8 edited
2 copied

Legend:

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

    r244869 r244906  
     12019-05-03  Joonghun Park  <jh718.park@samsung.com>
     2
     3        Resolve the percentage values of inset properties against proper box.
     4        https://bugs.webkit.org/show_bug.cgi?id=189549
     5
     6        Reviewed by Antti Koivisto.
     7
     8        Before this CL, sticky element's layout was executed relative to
     9        a box's overflow container,
     10        but the value returned by getComputedStyle was resolved against
     11        its containing block.
     12
     13        So, the computed value and the actual value used in layout
     14        was different before this change.
     15
     16        * web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky-expected.txt.
     17        * web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html.
     18        * web-platform-tests/css/cssom/getComputedStyle-insets-sticky-expected.txt:
     19        * web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html:
     20        * web-platform-tests/css/cssom/getComputedStyle-sticky-pos-percent-expected.txt: Added.
     21        * web-platform-tests/css/cssom/getComputedStyle-sticky-pos-percent.html: Added.
     22        * web-platform-tests/css/cssom/support/getComputedStyle-insets.js:
     23        (runTestsWithWM):
     24
    1252019-05-02  Frederic Wang  <fwang@igalia.com>
    226
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos-expected.txt

    r244905 r244906  
    22PASS horizontal-tb ltr inside horizontal-tb ltr - Pixels resolve as-is
    33PASS horizontal-tb ltr inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    4 FAIL horizontal-tb ltr inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    5 FAIL horizontal-tb ltr inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     4PASS horizontal-tb ltr inside horizontal-tb ltr - Percentages are absolutized into pixels
     5PASS horizontal-tb ltr inside horizontal-tb ltr - calc() is absolutized into pixels
    66PASS horizontal-tb ltr inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    77PASS horizontal-tb ltr inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    99PASS horizontal-tb ltr inside horizontal-tb rtl - Pixels resolve as-is
    1010PASS horizontal-tb ltr inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    11 FAIL horizontal-tb ltr inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    12 FAIL horizontal-tb ltr inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     11PASS horizontal-tb ltr inside horizontal-tb rtl - Percentages are absolutized into pixels
     12PASS horizontal-tb ltr inside horizontal-tb rtl - calc() is absolutized into pixels
    1313PASS horizontal-tb ltr inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    1414PASS horizontal-tb ltr inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    1616PASS horizontal-tb ltr inside vertical-lr ltr - Pixels resolve as-is
    1717PASS horizontal-tb ltr inside vertical-lr ltr - Relative lengths are absolutized into pixels
    18 FAIL horizontal-tb ltr inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    19 FAIL horizontal-tb ltr inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     18PASS horizontal-tb ltr inside vertical-lr ltr - Percentages are absolutized into pixels
     19PASS horizontal-tb ltr inside vertical-lr ltr - calc() is absolutized into pixels
    2020PASS horizontal-tb ltr inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    2121PASS horizontal-tb ltr inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    2323PASS horizontal-tb ltr inside vertical-lr rtl - Pixels resolve as-is
    2424PASS horizontal-tb ltr inside vertical-lr rtl - Relative lengths are absolutized into pixels
    25 FAIL horizontal-tb ltr inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    26 FAIL horizontal-tb ltr inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     25PASS horizontal-tb ltr inside vertical-lr rtl - Percentages are absolutized into pixels
     26PASS horizontal-tb ltr inside vertical-lr rtl - calc() is absolutized into pixels
    2727PASS horizontal-tb ltr inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    2828PASS horizontal-tb ltr inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    3030PASS horizontal-tb ltr inside vertical-rl ltr - Pixels resolve as-is
    3131PASS horizontal-tb ltr inside vertical-rl ltr - Relative lengths are absolutized into pixels
    32 FAIL horizontal-tb ltr inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    33 FAIL horizontal-tb ltr inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     32PASS horizontal-tb ltr inside vertical-rl ltr - Percentages are absolutized into pixels
     33PASS horizontal-tb ltr inside vertical-rl ltr - calc() is absolutized into pixels
    3434PASS horizontal-tb ltr inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    3535PASS horizontal-tb ltr inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    3737PASS horizontal-tb ltr inside vertical-rl rtl - Pixels resolve as-is
    3838PASS horizontal-tb ltr inside vertical-rl rtl - Relative lengths are absolutized into pixels
    39 FAIL horizontal-tb ltr inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    40 FAIL horizontal-tb ltr inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     39PASS horizontal-tb ltr inside vertical-rl rtl - Percentages are absolutized into pixels
     40PASS horizontal-tb ltr inside vertical-rl rtl - calc() is absolutized into pixels
    4141PASS horizontal-tb ltr inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    4242PASS horizontal-tb ltr inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    4444PASS horizontal-tb rtl inside horizontal-tb ltr - Pixels resolve as-is
    4545PASS horizontal-tb rtl inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    46 FAIL horizontal-tb rtl inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    47 FAIL horizontal-tb rtl inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     46PASS horizontal-tb rtl inside horizontal-tb ltr - Percentages are absolutized into pixels
     47PASS horizontal-tb rtl inside horizontal-tb ltr - calc() is absolutized into pixels
    4848PASS horizontal-tb rtl inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    4949PASS horizontal-tb rtl inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    5151PASS horizontal-tb rtl inside horizontal-tb rtl - Pixels resolve as-is
    5252PASS horizontal-tb rtl inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    53 FAIL horizontal-tb rtl inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    54 FAIL horizontal-tb rtl inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     53PASS horizontal-tb rtl inside horizontal-tb rtl - Percentages are absolutized into pixels
     54PASS horizontal-tb rtl inside horizontal-tb rtl - calc() is absolutized into pixels
    5555PASS horizontal-tb rtl inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    5656PASS horizontal-tb rtl inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    5858PASS horizontal-tb rtl inside vertical-lr ltr - Pixels resolve as-is
    5959PASS horizontal-tb rtl inside vertical-lr ltr - Relative lengths are absolutized into pixels
    60 FAIL horizontal-tb rtl inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    61 FAIL horizontal-tb rtl inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     60PASS horizontal-tb rtl inside vertical-lr ltr - Percentages are absolutized into pixels
     61PASS horizontal-tb rtl inside vertical-lr ltr - calc() is absolutized into pixels
    6262PASS horizontal-tb rtl inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    6363PASS horizontal-tb rtl inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    6565PASS horizontal-tb rtl inside vertical-lr rtl - Pixels resolve as-is
    6666PASS horizontal-tb rtl inside vertical-lr rtl - Relative lengths are absolutized into pixels
    67 FAIL horizontal-tb rtl inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    68 FAIL horizontal-tb rtl inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     67PASS horizontal-tb rtl inside vertical-lr rtl - Percentages are absolutized into pixels
     68PASS horizontal-tb rtl inside vertical-lr rtl - calc() is absolutized into pixels
    6969PASS horizontal-tb rtl inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    7070PASS horizontal-tb rtl inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    7272PASS horizontal-tb rtl inside vertical-rl ltr - Pixels resolve as-is
    7373PASS horizontal-tb rtl inside vertical-rl ltr - Relative lengths are absolutized into pixels
    74 FAIL horizontal-tb rtl inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    75 FAIL horizontal-tb rtl inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     74PASS horizontal-tb rtl inside vertical-rl ltr - Percentages are absolutized into pixels
     75PASS horizontal-tb rtl inside vertical-rl ltr - calc() is absolutized into pixels
    7676PASS horizontal-tb rtl inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    7777PASS horizontal-tb rtl inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    7979PASS horizontal-tb rtl inside vertical-rl rtl - Pixels resolve as-is
    8080PASS horizontal-tb rtl inside vertical-rl rtl - Relative lengths are absolutized into pixels
    81 FAIL horizontal-tb rtl inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    82 FAIL horizontal-tb rtl inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     81PASS horizontal-tb rtl inside vertical-rl rtl - Percentages are absolutized into pixels
     82PASS horizontal-tb rtl inside vertical-rl rtl - calc() is absolutized into pixels
    8383PASS horizontal-tb rtl inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    8484PASS horizontal-tb rtl inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    8686PASS vertical-lr ltr inside horizontal-tb ltr - Pixels resolve as-is
    8787PASS vertical-lr ltr inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    88 FAIL vertical-lr ltr inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    89 FAIL vertical-lr ltr inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     88PASS vertical-lr ltr inside horizontal-tb ltr - Percentages are absolutized into pixels
     89PASS vertical-lr ltr inside horizontal-tb ltr - calc() is absolutized into pixels
    9090PASS vertical-lr ltr inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    9191PASS vertical-lr ltr inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    9393PASS vertical-lr ltr inside horizontal-tb rtl - Pixels resolve as-is
    9494PASS vertical-lr ltr inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    95 FAIL vertical-lr ltr inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    96 FAIL vertical-lr ltr inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     95PASS vertical-lr ltr inside horizontal-tb rtl - Percentages are absolutized into pixels
     96PASS vertical-lr ltr inside horizontal-tb rtl - calc() is absolutized into pixels
    9797PASS vertical-lr ltr inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    9898PASS vertical-lr ltr inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    100100PASS vertical-lr ltr inside vertical-lr ltr - Pixels resolve as-is
    101101PASS vertical-lr ltr inside vertical-lr ltr - Relative lengths are absolutized into pixels
    102 FAIL vertical-lr ltr inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    103 FAIL vertical-lr ltr inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     102PASS vertical-lr ltr inside vertical-lr ltr - Percentages are absolutized into pixels
     103PASS vertical-lr ltr inside vertical-lr ltr - calc() is absolutized into pixels
    104104PASS vertical-lr ltr inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    105105PASS vertical-lr ltr inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    107107PASS vertical-lr ltr inside vertical-lr rtl - Pixels resolve as-is
    108108PASS vertical-lr ltr inside vertical-lr rtl - Relative lengths are absolutized into pixels
    109 FAIL vertical-lr ltr inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    110 FAIL vertical-lr ltr inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     109PASS vertical-lr ltr inside vertical-lr rtl - Percentages are absolutized into pixels
     110PASS vertical-lr ltr inside vertical-lr rtl - calc() is absolutized into pixels
    111111PASS vertical-lr ltr inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    112112PASS vertical-lr ltr inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    114114PASS vertical-lr ltr inside vertical-rl ltr - Pixels resolve as-is
    115115PASS vertical-lr ltr inside vertical-rl ltr - Relative lengths are absolutized into pixels
    116 FAIL vertical-lr ltr inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    117 FAIL vertical-lr ltr inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     116PASS vertical-lr ltr inside vertical-rl ltr - Percentages are absolutized into pixels
     117PASS vertical-lr ltr inside vertical-rl ltr - calc() is absolutized into pixels
    118118PASS vertical-lr ltr inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    119119PASS vertical-lr ltr inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    121121PASS vertical-lr ltr inside vertical-rl rtl - Pixels resolve as-is
    122122PASS vertical-lr ltr inside vertical-rl rtl - Relative lengths are absolutized into pixels
    123 FAIL vertical-lr ltr inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    124 FAIL vertical-lr ltr inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     123PASS vertical-lr ltr inside vertical-rl rtl - Percentages are absolutized into pixels
     124PASS vertical-lr ltr inside vertical-rl rtl - calc() is absolutized into pixels
    125125PASS vertical-lr ltr inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    126126PASS vertical-lr ltr inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    128128PASS vertical-lr rtl inside horizontal-tb ltr - Pixels resolve as-is
    129129PASS vertical-lr rtl inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    130 FAIL vertical-lr rtl inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    131 FAIL vertical-lr rtl inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     130PASS vertical-lr rtl inside horizontal-tb ltr - Percentages are absolutized into pixels
     131PASS vertical-lr rtl inside horizontal-tb ltr - calc() is absolutized into pixels
    132132PASS vertical-lr rtl inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    133133PASS vertical-lr rtl inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    135135PASS vertical-lr rtl inside horizontal-tb rtl - Pixels resolve as-is
    136136PASS vertical-lr rtl inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    137 FAIL vertical-lr rtl inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    138 FAIL vertical-lr rtl inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     137PASS vertical-lr rtl inside horizontal-tb rtl - Percentages are absolutized into pixels
     138PASS vertical-lr rtl inside horizontal-tb rtl - calc() is absolutized into pixels
    139139PASS vertical-lr rtl inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    140140PASS vertical-lr rtl inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    142142PASS vertical-lr rtl inside vertical-lr ltr - Pixels resolve as-is
    143143PASS vertical-lr rtl inside vertical-lr ltr - Relative lengths are absolutized into pixels
    144 FAIL vertical-lr rtl inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    145 FAIL vertical-lr rtl inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     144PASS vertical-lr rtl inside vertical-lr ltr - Percentages are absolutized into pixels
     145PASS vertical-lr rtl inside vertical-lr ltr - calc() is absolutized into pixels
    146146PASS vertical-lr rtl inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    147147PASS vertical-lr rtl inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    149149PASS vertical-lr rtl inside vertical-lr rtl - Pixels resolve as-is
    150150PASS vertical-lr rtl inside vertical-lr rtl - Relative lengths are absolutized into pixels
    151 FAIL vertical-lr rtl inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    152 FAIL vertical-lr rtl inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     151PASS vertical-lr rtl inside vertical-lr rtl - Percentages are absolutized into pixels
     152PASS vertical-lr rtl inside vertical-lr rtl - calc() is absolutized into pixels
    153153PASS vertical-lr rtl inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    154154PASS vertical-lr rtl inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    156156PASS vertical-lr rtl inside vertical-rl ltr - Pixels resolve as-is
    157157PASS vertical-lr rtl inside vertical-rl ltr - Relative lengths are absolutized into pixels
    158 FAIL vertical-lr rtl inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    159 FAIL vertical-lr rtl inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     158PASS vertical-lr rtl inside vertical-rl ltr - Percentages are absolutized into pixels
     159PASS vertical-lr rtl inside vertical-rl ltr - calc() is absolutized into pixels
    160160PASS vertical-lr rtl inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    161161PASS vertical-lr rtl inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    163163PASS vertical-lr rtl inside vertical-rl rtl - Pixels resolve as-is
    164164PASS vertical-lr rtl inside vertical-rl rtl - Relative lengths are absolutized into pixels
    165 FAIL vertical-lr rtl inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    166 FAIL vertical-lr rtl inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     165PASS vertical-lr rtl inside vertical-rl rtl - Percentages are absolutized into pixels
     166PASS vertical-lr rtl inside vertical-rl rtl - calc() is absolutized into pixels
    167167PASS vertical-lr rtl inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    168168PASS vertical-lr rtl inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    170170PASS vertical-rl ltr inside horizontal-tb ltr - Pixels resolve as-is
    171171PASS vertical-rl ltr inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    172 FAIL vertical-rl ltr inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    173 FAIL vertical-rl ltr inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     172PASS vertical-rl ltr inside horizontal-tb ltr - Percentages are absolutized into pixels
     173PASS vertical-rl ltr inside horizontal-tb ltr - calc() is absolutized into pixels
    174174PASS vertical-rl ltr inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    175175PASS vertical-rl ltr inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    177177PASS vertical-rl ltr inside horizontal-tb rtl - Pixels resolve as-is
    178178PASS vertical-rl ltr inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    179 FAIL vertical-rl ltr inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    180 FAIL vertical-rl ltr inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     179PASS vertical-rl ltr inside horizontal-tb rtl - Percentages are absolutized into pixels
     180PASS vertical-rl ltr inside horizontal-tb rtl - calc() is absolutized into pixels
    181181PASS vertical-rl ltr inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    182182PASS vertical-rl ltr inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    184184PASS vertical-rl ltr inside vertical-lr ltr - Pixels resolve as-is
    185185PASS vertical-rl ltr inside vertical-lr ltr - Relative lengths are absolutized into pixels
    186 FAIL vertical-rl ltr inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    187 FAIL vertical-rl ltr inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     186PASS vertical-rl ltr inside vertical-lr ltr - Percentages are absolutized into pixels
     187PASS vertical-rl ltr inside vertical-lr ltr - calc() is absolutized into pixels
    188188PASS vertical-rl ltr inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    189189PASS vertical-rl ltr inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    191191PASS vertical-rl ltr inside vertical-lr rtl - Pixels resolve as-is
    192192PASS vertical-rl ltr inside vertical-lr rtl - Relative lengths are absolutized into pixels
    193 FAIL vertical-rl ltr inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    194 FAIL vertical-rl ltr inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     193PASS vertical-rl ltr inside vertical-lr rtl - Percentages are absolutized into pixels
     194PASS vertical-rl ltr inside vertical-lr rtl - calc() is absolutized into pixels
    195195PASS vertical-rl ltr inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    196196PASS vertical-rl ltr inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    198198PASS vertical-rl ltr inside vertical-rl ltr - Pixels resolve as-is
    199199PASS vertical-rl ltr inside vertical-rl ltr - Relative lengths are absolutized into pixels
    200 FAIL vertical-rl ltr inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    201 FAIL vertical-rl ltr inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     200PASS vertical-rl ltr inside vertical-rl ltr - Percentages are absolutized into pixels
     201PASS vertical-rl ltr inside vertical-rl ltr - calc() is absolutized into pixels
    202202PASS vertical-rl ltr inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    203203PASS vertical-rl ltr inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    205205PASS vertical-rl ltr inside vertical-rl rtl - Pixels resolve as-is
    206206PASS vertical-rl ltr inside vertical-rl rtl - Relative lengths are absolutized into pixels
    207 FAIL vertical-rl ltr inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    208 FAIL vertical-rl ltr inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     207PASS vertical-rl ltr inside vertical-rl rtl - Percentages are absolutized into pixels
     208PASS vertical-rl ltr inside vertical-rl rtl - calc() is absolutized into pixels
    209209PASS vertical-rl ltr inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    210210PASS vertical-rl ltr inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    212212PASS vertical-rl rtl inside horizontal-tb ltr - Pixels resolve as-is
    213213PASS vertical-rl rtl inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    214 FAIL vertical-rl rtl inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    215 FAIL vertical-rl rtl inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     214PASS vertical-rl rtl inside horizontal-tb ltr - Percentages are absolutized into pixels
     215PASS vertical-rl rtl inside horizontal-tb ltr - calc() is absolutized into pixels
    216216PASS vertical-rl rtl inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    217217PASS vertical-rl rtl inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    219219PASS vertical-rl rtl inside horizontal-tb rtl - Pixels resolve as-is
    220220PASS vertical-rl rtl inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    221 FAIL vertical-rl rtl inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    222 FAIL vertical-rl rtl inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     221PASS vertical-rl rtl inside horizontal-tb rtl - Percentages are absolutized into pixels
     222PASS vertical-rl rtl inside horizontal-tb rtl - calc() is absolutized into pixels
    223223PASS vertical-rl rtl inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    224224PASS vertical-rl rtl inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    226226PASS vertical-rl rtl inside vertical-lr ltr - Pixels resolve as-is
    227227PASS vertical-rl rtl inside vertical-lr ltr - Relative lengths are absolutized into pixels
    228 FAIL vertical-rl rtl inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    229 FAIL vertical-rl rtl inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     228PASS vertical-rl rtl inside vertical-lr ltr - Percentages are absolutized into pixels
     229PASS vertical-rl rtl inside vertical-lr ltr - calc() is absolutized into pixels
    230230PASS vertical-rl rtl inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    231231PASS vertical-rl rtl inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    233233PASS vertical-rl rtl inside vertical-lr rtl - Pixels resolve as-is
    234234PASS vertical-rl rtl inside vertical-lr rtl - Relative lengths are absolutized into pixels
    235 FAIL vertical-rl rtl inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    236 FAIL vertical-rl rtl inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     235PASS vertical-rl rtl inside vertical-lr rtl - Percentages are absolutized into pixels
     236PASS vertical-rl rtl inside vertical-lr rtl - calc() is absolutized into pixels
    237237PASS vertical-rl rtl inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    238238PASS vertical-rl rtl inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    240240PASS vertical-rl rtl inside vertical-rl ltr - Pixels resolve as-is
    241241PASS vertical-rl rtl inside vertical-rl ltr - Relative lengths are absolutized into pixels
    242 FAIL vertical-rl rtl inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    243 FAIL vertical-rl rtl inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     242PASS vertical-rl rtl inside vertical-rl ltr - Percentages are absolutized into pixels
     243PASS vertical-rl rtl inside vertical-rl ltr - calc() is absolutized into pixels
    244244PASS vertical-rl rtl inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    245245PASS vertical-rl rtl inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    247247PASS vertical-rl rtl inside vertical-rl rtl - Pixels resolve as-is
    248248PASS vertical-rl rtl inside vertical-rl rtl - Relative lengths are absolutized into pixels
    249 FAIL vertical-rl rtl inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    250 FAIL vertical-rl rtl inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     249PASS vertical-rl rtl inside vertical-rl rtl - Percentages are absolutized into pixels
     250PASS vertical-rl rtl inside vertical-rl rtl - calc() is absolutized into pixels
    251251PASS vertical-rl rtl inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    252252PASS vertical-rl rtl inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos.html

    • Property svn:executable deleted
    r244905 r244906  
    33<title>CSSOM: resolved values of the inset properties for sticky positioning</title>
    44<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-value">
    5 <link rel="help" href="https://drafts.csswg.org/css-position/#pos-sch">
    6 <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
     5<link rel="help" href="https://drafts.csswg.org/css-position/#sticky-pos">
     6<link rel="author" title="Joonghun Park" href="mailto:pjh0718@gmail.com">
     7<style>
     8    #container-for-abspos {
     9        height: 200px;
     10        width: 400px;
     11        overflow: hidden;
     12    }
     13</style>
    714<script src=/resources/testharness.js></script>
    815<script src=/resources/testharnessreport.js></script>
    916<script type="module">
    10 import {runTests, containerForInflow} from "./support/getComputedStyle-insets.js";
     17import {runTests, containerForAbspos} from "./support/getComputedStyle-insets.js";
    1118runTests({
    12   style: "position: sticky; position: -webkit-sticky",
    13   containingBlockElement: containerForInflow,
     19  style: "position: sticky;",
     20  containingBlockElement: containerForAbspos,
    1421  containingBlockArea: "content",
    1522  preservesPercentages: false,
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky-expected.txt

    r236979 r244906  
    22PASS horizontal-tb ltr inside horizontal-tb ltr - Pixels resolve as-is
    33PASS horizontal-tb ltr inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    4 FAIL horizontal-tb ltr inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    5 FAIL horizontal-tb ltr inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     4PASS horizontal-tb ltr inside horizontal-tb ltr - Percentages are absolutized into pixels
     5PASS horizontal-tb ltr inside horizontal-tb ltr - calc() is absolutized into pixels
    66PASS horizontal-tb ltr inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    77PASS horizontal-tb ltr inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    99PASS horizontal-tb ltr inside horizontal-tb rtl - Pixels resolve as-is
    1010PASS horizontal-tb ltr inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    11 FAIL horizontal-tb ltr inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    12 FAIL horizontal-tb ltr inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     11PASS horizontal-tb ltr inside horizontal-tb rtl - Percentages are absolutized into pixels
     12PASS horizontal-tb ltr inside horizontal-tb rtl - calc() is absolutized into pixels
    1313PASS horizontal-tb ltr inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    1414PASS horizontal-tb ltr inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    1616PASS horizontal-tb ltr inside vertical-lr ltr - Pixels resolve as-is
    1717PASS horizontal-tb ltr inside vertical-lr ltr - Relative lengths are absolutized into pixels
    18 FAIL horizontal-tb ltr inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    19 FAIL horizontal-tb ltr inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     18PASS horizontal-tb ltr inside vertical-lr ltr - Percentages are absolutized into pixels
     19PASS horizontal-tb ltr inside vertical-lr ltr - calc() is absolutized into pixels
    2020PASS horizontal-tb ltr inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    2121PASS horizontal-tb ltr inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    2323PASS horizontal-tb ltr inside vertical-lr rtl - Pixels resolve as-is
    2424PASS horizontal-tb ltr inside vertical-lr rtl - Relative lengths are absolutized into pixels
    25 FAIL horizontal-tb ltr inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    26 FAIL horizontal-tb ltr inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     25PASS horizontal-tb ltr inside vertical-lr rtl - Percentages are absolutized into pixels
     26PASS horizontal-tb ltr inside vertical-lr rtl - calc() is absolutized into pixels
    2727PASS horizontal-tb ltr inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    2828PASS horizontal-tb ltr inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    3030PASS horizontal-tb ltr inside vertical-rl ltr - Pixels resolve as-is
    3131PASS horizontal-tb ltr inside vertical-rl ltr - Relative lengths are absolutized into pixels
    32 FAIL horizontal-tb ltr inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    33 FAIL horizontal-tb ltr inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     32PASS horizontal-tb ltr inside vertical-rl ltr - Percentages are absolutized into pixels
     33PASS horizontal-tb ltr inside vertical-rl ltr - calc() is absolutized into pixels
    3434PASS horizontal-tb ltr inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    3535PASS horizontal-tb ltr inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    3737PASS horizontal-tb ltr inside vertical-rl rtl - Pixels resolve as-is
    3838PASS horizontal-tb ltr inside vertical-rl rtl - Relative lengths are absolutized into pixels
    39 FAIL horizontal-tb ltr inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    40 FAIL horizontal-tb ltr inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     39PASS horizontal-tb ltr inside vertical-rl rtl - Percentages are absolutized into pixels
     40PASS horizontal-tb ltr inside vertical-rl rtl - calc() is absolutized into pixels
    4141PASS horizontal-tb ltr inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    4242PASS horizontal-tb ltr inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    4444PASS horizontal-tb rtl inside horizontal-tb ltr - Pixels resolve as-is
    4545PASS horizontal-tb rtl inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    46 FAIL horizontal-tb rtl inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    47 FAIL horizontal-tb rtl inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     46PASS horizontal-tb rtl inside horizontal-tb ltr - Percentages are absolutized into pixels
     47PASS horizontal-tb rtl inside horizontal-tb ltr - calc() is absolutized into pixels
    4848PASS horizontal-tb rtl inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    4949PASS horizontal-tb rtl inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    5151PASS horizontal-tb rtl inside horizontal-tb rtl - Pixels resolve as-is
    5252PASS horizontal-tb rtl inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    53 FAIL horizontal-tb rtl inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    54 FAIL horizontal-tb rtl inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     53PASS horizontal-tb rtl inside horizontal-tb rtl - Percentages are absolutized into pixels
     54PASS horizontal-tb rtl inside horizontal-tb rtl - calc() is absolutized into pixels
    5555PASS horizontal-tb rtl inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    5656PASS horizontal-tb rtl inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    5858PASS horizontal-tb rtl inside vertical-lr ltr - Pixels resolve as-is
    5959PASS horizontal-tb rtl inside vertical-lr ltr - Relative lengths are absolutized into pixels
    60 FAIL horizontal-tb rtl inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    61 FAIL horizontal-tb rtl inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     60PASS horizontal-tb rtl inside vertical-lr ltr - Percentages are absolutized into pixels
     61PASS horizontal-tb rtl inside vertical-lr ltr - calc() is absolutized into pixels
    6262PASS horizontal-tb rtl inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    6363PASS horizontal-tb rtl inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    6565PASS horizontal-tb rtl inside vertical-lr rtl - Pixels resolve as-is
    6666PASS horizontal-tb rtl inside vertical-lr rtl - Relative lengths are absolutized into pixels
    67 FAIL horizontal-tb rtl inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    68 FAIL horizontal-tb rtl inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     67PASS horizontal-tb rtl inside vertical-lr rtl - Percentages are absolutized into pixels
     68PASS horizontal-tb rtl inside vertical-lr rtl - calc() is absolutized into pixels
    6969PASS horizontal-tb rtl inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    7070PASS horizontal-tb rtl inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    7272PASS horizontal-tb rtl inside vertical-rl ltr - Pixels resolve as-is
    7373PASS horizontal-tb rtl inside vertical-rl ltr - Relative lengths are absolutized into pixels
    74 FAIL horizontal-tb rtl inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    75 FAIL horizontal-tb rtl inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     74PASS horizontal-tb rtl inside vertical-rl ltr - Percentages are absolutized into pixels
     75PASS horizontal-tb rtl inside vertical-rl ltr - calc() is absolutized into pixels
    7676PASS horizontal-tb rtl inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    7777PASS horizontal-tb rtl inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    7979PASS horizontal-tb rtl inside vertical-rl rtl - Pixels resolve as-is
    8080PASS horizontal-tb rtl inside vertical-rl rtl - Relative lengths are absolutized into pixels
    81 FAIL horizontal-tb rtl inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    82 FAIL horizontal-tb rtl inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     81PASS horizontal-tb rtl inside vertical-rl rtl - Percentages are absolutized into pixels
     82PASS horizontal-tb rtl inside vertical-rl rtl - calc() is absolutized into pixels
    8383PASS horizontal-tb rtl inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    8484PASS horizontal-tb rtl inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    8686PASS vertical-lr ltr inside horizontal-tb ltr - Pixels resolve as-is
    8787PASS vertical-lr ltr inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    88 FAIL vertical-lr ltr inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    89 FAIL vertical-lr ltr inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     88PASS vertical-lr ltr inside horizontal-tb ltr - Percentages are absolutized into pixels
     89PASS vertical-lr ltr inside horizontal-tb ltr - calc() is absolutized into pixels
    9090PASS vertical-lr ltr inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    9191PASS vertical-lr ltr inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    9393PASS vertical-lr ltr inside horizontal-tb rtl - Pixels resolve as-is
    9494PASS vertical-lr ltr inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    95 FAIL vertical-lr ltr inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    96 FAIL vertical-lr ltr inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     95PASS vertical-lr ltr inside horizontal-tb rtl - Percentages are absolutized into pixels
     96PASS vertical-lr ltr inside horizontal-tb rtl - calc() is absolutized into pixels
    9797PASS vertical-lr ltr inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    9898PASS vertical-lr ltr inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    100100PASS vertical-lr ltr inside vertical-lr ltr - Pixels resolve as-is
    101101PASS vertical-lr ltr inside vertical-lr ltr - Relative lengths are absolutized into pixels
    102 FAIL vertical-lr ltr inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    103 FAIL vertical-lr ltr inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     102PASS vertical-lr ltr inside vertical-lr ltr - Percentages are absolutized into pixels
     103PASS vertical-lr ltr inside vertical-lr ltr - calc() is absolutized into pixels
    104104PASS vertical-lr ltr inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    105105PASS vertical-lr ltr inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    107107PASS vertical-lr ltr inside vertical-lr rtl - Pixels resolve as-is
    108108PASS vertical-lr ltr inside vertical-lr rtl - Relative lengths are absolutized into pixels
    109 FAIL vertical-lr ltr inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    110 FAIL vertical-lr ltr inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     109PASS vertical-lr ltr inside vertical-lr rtl - Percentages are absolutized into pixels
     110PASS vertical-lr ltr inside vertical-lr rtl - calc() is absolutized into pixels
    111111PASS vertical-lr ltr inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    112112PASS vertical-lr ltr inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    114114PASS vertical-lr ltr inside vertical-rl ltr - Pixels resolve as-is
    115115PASS vertical-lr ltr inside vertical-rl ltr - Relative lengths are absolutized into pixels
    116 FAIL vertical-lr ltr inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    117 FAIL vertical-lr ltr inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     116PASS vertical-lr ltr inside vertical-rl ltr - Percentages are absolutized into pixels
     117PASS vertical-lr ltr inside vertical-rl ltr - calc() is absolutized into pixels
    118118PASS vertical-lr ltr inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    119119PASS vertical-lr ltr inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    121121PASS vertical-lr ltr inside vertical-rl rtl - Pixels resolve as-is
    122122PASS vertical-lr ltr inside vertical-rl rtl - Relative lengths are absolutized into pixels
    123 FAIL vertical-lr ltr inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    124 FAIL vertical-lr ltr inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     123PASS vertical-lr ltr inside vertical-rl rtl - Percentages are absolutized into pixels
     124PASS vertical-lr ltr inside vertical-rl rtl - calc() is absolutized into pixels
    125125PASS vertical-lr ltr inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    126126PASS vertical-lr ltr inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    128128PASS vertical-lr rtl inside horizontal-tb ltr - Pixels resolve as-is
    129129PASS vertical-lr rtl inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    130 FAIL vertical-lr rtl inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    131 FAIL vertical-lr rtl inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     130PASS vertical-lr rtl inside horizontal-tb ltr - Percentages are absolutized into pixels
     131PASS vertical-lr rtl inside horizontal-tb ltr - calc() is absolutized into pixels
    132132PASS vertical-lr rtl inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    133133PASS vertical-lr rtl inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    135135PASS vertical-lr rtl inside horizontal-tb rtl - Pixels resolve as-is
    136136PASS vertical-lr rtl inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    137 FAIL vertical-lr rtl inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    138 FAIL vertical-lr rtl inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     137PASS vertical-lr rtl inside horizontal-tb rtl - Percentages are absolutized into pixels
     138PASS vertical-lr rtl inside horizontal-tb rtl - calc() is absolutized into pixels
    139139PASS vertical-lr rtl inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    140140PASS vertical-lr rtl inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    142142PASS vertical-lr rtl inside vertical-lr ltr - Pixels resolve as-is
    143143PASS vertical-lr rtl inside vertical-lr ltr - Relative lengths are absolutized into pixels
    144 FAIL vertical-lr rtl inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    145 FAIL vertical-lr rtl inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     144PASS vertical-lr rtl inside vertical-lr ltr - Percentages are absolutized into pixels
     145PASS vertical-lr rtl inside vertical-lr ltr - calc() is absolutized into pixels
    146146PASS vertical-lr rtl inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    147147PASS vertical-lr rtl inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    149149PASS vertical-lr rtl inside vertical-lr rtl - Pixels resolve as-is
    150150PASS vertical-lr rtl inside vertical-lr rtl - Relative lengths are absolutized into pixels
    151 FAIL vertical-lr rtl inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    152 FAIL vertical-lr rtl inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     151PASS vertical-lr rtl inside vertical-lr rtl - Percentages are absolutized into pixels
     152PASS vertical-lr rtl inside vertical-lr rtl - calc() is absolutized into pixels
    153153PASS vertical-lr rtl inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    154154PASS vertical-lr rtl inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    156156PASS vertical-lr rtl inside vertical-rl ltr - Pixels resolve as-is
    157157PASS vertical-lr rtl inside vertical-rl ltr - Relative lengths are absolutized into pixels
    158 FAIL vertical-lr rtl inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    159 FAIL vertical-lr rtl inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     158PASS vertical-lr rtl inside vertical-rl ltr - Percentages are absolutized into pixels
     159PASS vertical-lr rtl inside vertical-rl ltr - calc() is absolutized into pixels
    160160PASS vertical-lr rtl inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    161161PASS vertical-lr rtl inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    163163PASS vertical-lr rtl inside vertical-rl rtl - Pixels resolve as-is
    164164PASS vertical-lr rtl inside vertical-rl rtl - Relative lengths are absolutized into pixels
    165 FAIL vertical-lr rtl inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    166 FAIL vertical-lr rtl inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     165PASS vertical-lr rtl inside vertical-rl rtl - Percentages are absolutized into pixels
     166PASS vertical-lr rtl inside vertical-rl rtl - calc() is absolutized into pixels
    167167PASS vertical-lr rtl inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    168168PASS vertical-lr rtl inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    170170PASS vertical-rl ltr inside horizontal-tb ltr - Pixels resolve as-is
    171171PASS vertical-rl ltr inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    172 FAIL vertical-rl ltr inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    173 FAIL vertical-rl ltr inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     172PASS vertical-rl ltr inside horizontal-tb ltr - Percentages are absolutized into pixels
     173PASS vertical-rl ltr inside horizontal-tb ltr - calc() is absolutized into pixels
    174174PASS vertical-rl ltr inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    175175PASS vertical-rl ltr inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    177177PASS vertical-rl ltr inside horizontal-tb rtl - Pixels resolve as-is
    178178PASS vertical-rl ltr inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    179 FAIL vertical-rl ltr inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    180 FAIL vertical-rl ltr inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     179PASS vertical-rl ltr inside horizontal-tb rtl - Percentages are absolutized into pixels
     180PASS vertical-rl ltr inside horizontal-tb rtl - calc() is absolutized into pixels
    181181PASS vertical-rl ltr inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    182182PASS vertical-rl ltr inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    184184PASS vertical-rl ltr inside vertical-lr ltr - Pixels resolve as-is
    185185PASS vertical-rl ltr inside vertical-lr ltr - Relative lengths are absolutized into pixels
    186 FAIL vertical-rl ltr inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    187 FAIL vertical-rl ltr inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     186PASS vertical-rl ltr inside vertical-lr ltr - Percentages are absolutized into pixels
     187PASS vertical-rl ltr inside vertical-lr ltr - calc() is absolutized into pixels
    188188PASS vertical-rl ltr inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    189189PASS vertical-rl ltr inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    191191PASS vertical-rl ltr inside vertical-lr rtl - Pixels resolve as-is
    192192PASS vertical-rl ltr inside vertical-lr rtl - Relative lengths are absolutized into pixels
    193 FAIL vertical-rl ltr inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    194 FAIL vertical-rl ltr inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     193PASS vertical-rl ltr inside vertical-lr rtl - Percentages are absolutized into pixels
     194PASS vertical-rl ltr inside vertical-lr rtl - calc() is absolutized into pixels
    195195PASS vertical-rl ltr inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    196196PASS vertical-rl ltr inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    198198PASS vertical-rl ltr inside vertical-rl ltr - Pixels resolve as-is
    199199PASS vertical-rl ltr inside vertical-rl ltr - Relative lengths are absolutized into pixels
    200 FAIL vertical-rl ltr inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    201 FAIL vertical-rl ltr inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     200PASS vertical-rl ltr inside vertical-rl ltr - Percentages are absolutized into pixels
     201PASS vertical-rl ltr inside vertical-rl ltr - calc() is absolutized into pixels
    202202PASS vertical-rl ltr inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    203203PASS vertical-rl ltr inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    205205PASS vertical-rl ltr inside vertical-rl rtl - Pixels resolve as-is
    206206PASS vertical-rl ltr inside vertical-rl rtl - Relative lengths are absolutized into pixels
    207 FAIL vertical-rl ltr inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    208 FAIL vertical-rl ltr inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     207PASS vertical-rl ltr inside vertical-rl rtl - Percentages are absolutized into pixels
     208PASS vertical-rl ltr inside vertical-rl rtl - calc() is absolutized into pixels
    209209PASS vertical-rl ltr inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    210210PASS vertical-rl ltr inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    212212PASS vertical-rl rtl inside horizontal-tb ltr - Pixels resolve as-is
    213213PASS vertical-rl rtl inside horizontal-tb ltr - Relative lengths are absolutized into pixels
    214 FAIL vertical-rl rtl inside horizontal-tb ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    215 FAIL vertical-rl rtl inside horizontal-tb ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     214PASS vertical-rl rtl inside horizontal-tb ltr - Percentages are absolutized into pixels
     215PASS vertical-rl rtl inside horizontal-tb ltr - calc() is absolutized into pixels
    216216PASS vertical-rl rtl inside horizontal-tb ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    217217PASS vertical-rl rtl inside horizontal-tb ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    219219PASS vertical-rl rtl inside horizontal-tb rtl - Pixels resolve as-is
    220220PASS vertical-rl rtl inside horizontal-tb rtl - Relative lengths are absolutized into pixels
    221 FAIL vertical-rl rtl inside horizontal-tb rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    222 FAIL vertical-rl rtl inside horizontal-tb rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     221PASS vertical-rl rtl inside horizontal-tb rtl - Percentages are absolutized into pixels
     222PASS vertical-rl rtl inside horizontal-tb rtl - calc() is absolutized into pixels
    223223PASS vertical-rl rtl inside horizontal-tb rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    224224PASS vertical-rl rtl inside horizontal-tb rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    226226PASS vertical-rl rtl inside vertical-lr ltr - Pixels resolve as-is
    227227PASS vertical-rl rtl inside vertical-lr ltr - Relative lengths are absolutized into pixels
    228 FAIL vertical-rl rtl inside vertical-lr ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    229 FAIL vertical-rl rtl inside vertical-lr ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     228PASS vertical-rl rtl inside vertical-lr ltr - Percentages are absolutized into pixels
     229PASS vertical-rl rtl inside vertical-lr ltr - calc() is absolutized into pixels
    230230PASS vertical-rl rtl inside vertical-lr ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    231231PASS vertical-rl rtl inside vertical-lr ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    233233PASS vertical-rl rtl inside vertical-lr rtl - Pixels resolve as-is
    234234PASS vertical-rl rtl inside vertical-lr rtl - Relative lengths are absolutized into pixels
    235 FAIL vertical-rl rtl inside vertical-lr rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    236 FAIL vertical-rl rtl inside vertical-lr rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     235PASS vertical-rl rtl inside vertical-lr rtl - Percentages are absolutized into pixels
     236PASS vertical-rl rtl inside vertical-lr rtl - calc() is absolutized into pixels
    237237PASS vertical-rl rtl inside vertical-lr rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    238238PASS vertical-rl rtl inside vertical-lr rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    240240PASS vertical-rl rtl inside vertical-rl ltr - Pixels resolve as-is
    241241PASS vertical-rl rtl inside vertical-rl ltr - Relative lengths are absolutized into pixels
    242 FAIL vertical-rl rtl inside vertical-rl ltr - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    243 FAIL vertical-rl rtl inside vertical-rl ltr - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     242PASS vertical-rl rtl inside vertical-rl ltr - Percentages are absolutized into pixels
     243PASS vertical-rl rtl inside vertical-rl ltr - calc() is absolutized into pixels
    244244PASS vertical-rl rtl inside vertical-rl ltr - If start side is 'auto' and end side is not, 'auto' resolves as-is
    245245PASS vertical-rl rtl inside vertical-rl ltr - If end side is 'auto' and start side is not, 'auto' resolves as-is
     
    247247PASS vertical-rl rtl inside vertical-rl rtl - Pixels resolve as-is
    248248PASS vertical-rl rtl inside vertical-rl rtl - Relative lengths are absolutized into pixels
    249 FAIL vertical-rl rtl inside vertical-rl rtl - Percentages are absolutized into pixels assert_equals: 'top' expected "10px" but got "10%"
    250 FAIL vertical-rl rtl inside vertical-rl rtl - calc() is absolutized into pixels assert_equals: 'top' expected "9px" but got "calc(10% - 1px)"
     249PASS vertical-rl rtl inside vertical-rl rtl - Percentages are absolutized into pixels
     250PASS vertical-rl rtl inside vertical-rl rtl - calc() is absolutized into pixels
    251251PASS vertical-rl rtl inside vertical-rl rtl - If start side is 'auto' and end side is not, 'auto' resolves as-is
    252252PASS vertical-rl rtl inside vertical-rl rtl - If end side is 'auto' and start side is not, 'auto' resolves as-is
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html

    r236979 r244906  
    55<link rel="help" href="https://drafts.csswg.org/css-position/#pos-sch">
    66<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
     7<style>
     8    #container-for-inflow { overflow: hidden; }
     9</style>
    710<script src=/resources/testharness.js></script>
    811<script src=/resources/testharnessreport.js></script>
     
    1013import {runTests, containerForInflow} from "./support/getComputedStyle-insets.js";
    1114runTests({
    12   style: "position: sticky; position: -webkit-sticky",
     15  style: "position: sticky;",
    1316  containingBlockElement: containerForInflow,
    1417  containingBlockArea: "content",
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/getComputedStyle-insets.js

    r236979 r244906  
    2323    border-width: 2px 4px;
    2424    margin: 4px 8px;
    25     overflow: hidden;
    2625  }
    2726  #container-for-abspos {
     
    4948  }
    5049`;
    51 document.head.appendChild(stylesheet);
     50document.head.prepend(stylesheet);
    5251
    5352function runTestsWithWM(data, testWM, cbWM) {
     
    150149      right: "75%",
    151150    }, {
    152       top: .1 * cbHeight + "px",
    153       left: .25 * cbWidth + "px",
    154       bottom: .5 * cbHeight + "px",
    155       right: .75 * cbWidth + "px",
     151      top: cbHeight * 10 / 100 + "px",
     152      left: cbWidth * 25 / 100 + "px",
     153      bottom: cbHeight * 50 / 100 + "px",
     154      right: cbWidth * 75 / 100 + "px",
    156155    }, "Percentages are absolutized into pixels");
    157156
     
    162161      right: "calc(75% - 4px)",
    163162    }, {
    164       top: .1 * cbHeight - 1 + "px",
    165       left: .25 * cbWidth - 2 + "px",
    166       bottom: .5 * cbHeight - 3 + "px",
    167       right: .75 * cbWidth - 4 + "px",
     163      top: cbHeight * 10 / 100 - 1 + "px",
     164      left: cbWidth * 25 / 100 - 2 + "px",
     165      bottom: cbHeight * 50 / 100 - 3 + "px",
     166      right: cbWidth * 75 / 100 - 4 + "px",
    168167    }, "calc() is absolutized into pixels");
    169168  }
  • trunk/Source/WebCore/ChangeLog

    r244904 r244906  
     12019-05-03  Joonghun Park  <jh718.park@samsung.com>
     2
     3        Resolve the percentage values of inset properties against proper box.
     4        https://bugs.webkit.org/show_bug.cgi?id=189549
     5
     6        Reviewed by Antti Koivisto.
     7
     8        Before this CL, sticky element's layout was executed relative to
     9        a box's overflow container,
     10        but the value returned by getComputedStyle was resolved against
     11        its containing block.
     12
     13        So, the computed value and the actual value used in layout
     14        was different before this change.
     15
     16        Tests: imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky-container-for-abspos.html
     17               imported/w3c/web-platform-tests/css/cssom/getComputedStyle-sticky-pos-percent.html
     18
     19        * css/CSSComputedStyleDeclaration.cpp:
     20        (WebCore::positionOffsetValue):
     21        * rendering/RenderBox.cpp:
     22        (WebCore::RenderBox::enclosingScrollportBox const):
     23        * rendering/RenderBox.h:
     24
    1252019-05-02  Antti Koivisto  <antti@apple.com>
    226
  • trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp

    r244408 r244906  
    781781
    782782    // Resolve a "computed value" percentage if the element is positioned.
    783     // TODO: percentages for sticky positioning should be handled here (bug 189549).
    784     if (containingBlock && offset.isPercentOrCalculated() && box.isPositioned() && !box.isStickilyPositioned()) {
     783    if (containingBlock && offset.isPercentOrCalculated() && box.isPositioned()) {
    785784        bool isVerticalProperty;
    786785        if (propertyID == CSSPropertyTop || propertyID == CSSPropertyBottom)
     
    791790        }
    792791        LayoutUnit containingBlockSize;
    793         if (isVerticalProperty == containingBlock->isHorizontalWritingMode()) {
    794             containingBlockSize = box.isOutOfFlowPositioned()
    795                 ? box.containingBlockLogicalHeightForPositioned(*containingBlock, false)
    796                 : box.containingBlockLogicalHeightForContent(ExcludeMarginBorderPadding);
     792        if (box.isStickilyPositioned()) {
     793            const RenderBox& enclosingScrollportBox =
     794                box.enclosingScrollportBox();
     795            if (isVerticalProperty == enclosingScrollportBox.isHorizontalWritingMode())
     796                containingBlockSize = enclosingScrollportBox.contentLogicalHeight();
     797            else
     798                containingBlockSize = enclosingScrollportBox.contentLogicalWidth();
    797799        } else {
    798             containingBlockSize = box.isOutOfFlowPositioned()
    799                 ? box.containingBlockLogicalWidthForPositioned(*containingBlock, nullptr, false)
    800                 : box.containingBlockLogicalWidthForContent();
     800            if (isVerticalProperty == containingBlock->isHorizontalWritingMode()) {
     801                containingBlockSize = box.isOutOfFlowPositioned()
     802                    ? box.containingBlockLogicalHeightForPositioned(*containingBlock, false)
     803                    : box.containingBlockLogicalHeightForContent(ExcludeMarginBorderPadding);
     804            } else {
     805                containingBlockSize = box.isOutOfFlowPositioned()
     806                    ? box.containingBlockLogicalWidthForPositioned(*containingBlock, nullptr, false)
     807                    : box.containingBlockLogicalWidthForContent();
     808            }
    801809        }
    802810        return zoomAdjustedPixelValue(floatValueForLength(offset, containingBlockSize), style);
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r243701 r244906  
    47234723}
    47244724
     4725const RenderBlock& RenderBox::enclosingScrollportBox() const
     4726{
     4727    const RenderBlock* ancestor = containingBlock();
     4728    for (; ancestor; ancestor = ancestor->containingBlock()) {
     4729        if (ancestor->hasOverflowClip())
     4730            return *ancestor;
     4731    }
     4732    ASSERT_NOT_REACHED();
     4733    return *ancestor;
     4734}
     4735
    47254736LayoutRect RenderBox::logicalVisualOverflowRectForPropagation(const RenderStyle* parentStyle) const
    47264737{
  • trunk/Source/WebCore/rendering/RenderBox.h

    r243701 r244906  
    527527   
    528528    RenderLayer* enclosingFloatPaintingLayer() const;
     529
     530    const RenderBlock& enclosingScrollportBox() const;
    529531   
    530532    virtual Optional<int> firstLineBaseline() const { return Optional<int>(); }
Note: See TracChangeset for help on using the changeset viewer.