Changeset 282396 in webkit


Ignore:
Timestamp:
Sep 14, 2021 10:08:05 AM (10 months ago)
Author:
Sam Sneddon
Message:

Support the x resolution unit
https://bugs.webkit.org/show_bug.cgi?id=229777

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Rebaseline for more passing tests.

  • web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:

Source/WebCore:

Covered by existing (progressing) tests.

  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):

  • css/CSSPrimitiveValue.h:
  • css/CSSUnits.cpp:

(WebCore::unitCategory):
(WebCore::operator<<):

  • css/CSSUnits.h:
  • css/DeprecatedCSSOMPrimitiveValue.cpp:

(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const):

  • css/calc/CSSCalcCategoryMapping.cpp:

(WebCore::hasDoubleValue):

  • css/parser/CSSParserToken.cpp:

(WebCore::cssPrimitiveValueUnitFromTrie):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension):
(WebCore::CSSPropertyParserHelpers::consumeResolution):
(WebCore::CSSPropertyParserHelpers::consumeImageSet):

  • css/parser/CSSPropertyParserHelpers.h:

(WebCore::CSSPropertyParserHelpers::consumeResolution):
Remove the optional allowX argument now it's part of the normal syntax.

LayoutTests:

Update tests so that they expect the x unit to serialize as the x unit
(and not magically change to the dppx unit).

  • fast/css/cursor-parsing-image-set-expected.txt:
  • fast/css/cursor-parsing-image-set.html:
  • fast/css/image-set-parsing-expected.txt:
  • fast/css/image-set-parsing-generated-expected.txt:
  • fast/css/image-set-parsing-generated.html:
  • fast/css/image-set-parsing.html:
  • fast/css/image-set-setting-expected.txt:
  • fast/css/image-set-setting.html:
  • fast/css/image-set-unprefixed.html:
Location:
trunk
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r282394 r282396  
     12021-09-14  Sam Sneddon  <gsnedders@apple.com>
     2
     3        Support the `x` resolution unit
     4        https://bugs.webkit.org/show_bug.cgi?id=229777
     5
     6        Reviewed by Simon Fraser.
     7
     8        Update tests so that they expect the x unit to serialize as the x unit
     9        (and not magically change to the dppx unit).
     10
     11        * fast/css/cursor-parsing-image-set-expected.txt:
     12        * fast/css/cursor-parsing-image-set.html:
     13        * fast/css/image-set-parsing-expected.txt:
     14        * fast/css/image-set-parsing-generated-expected.txt:
     15        * fast/css/image-set-parsing-generated.html:
     16        * fast/css/image-set-parsing.html:
     17        * fast/css/image-set-setting-expected.txt:
     18        * fast/css/image-set-setting.html:
     19        * fast/css/image-set-unprefixed.html:
     20
    1212021-09-14  Ayumi Kojima  <ayumi_kojima@apple.com>
    222
  • trunk/LayoutTests/fast/css/cursor-parsing-image-set-expected.txt

    r255228 r282396  
    77
    88Test a bunch of cursor rules which should round-trip exactly.
    9 PASS style.cssText is "cursor: image-set(url(\"file:///foo.png\") 1dppx), auto;"
    10 PASS style.cssText is "cursor: image-set(url(\"file:///foo.png\") 1dppx, url(\"file:///foo2x.png\") 2dppx), auto;"
    11 PASS style.cssText is "cursor: image-set(url(\"file:///foo.png\") 1dppx, url(\"file:///foo2x.png\") 2dppx) 2 3, auto;"
    12 PASS style.cssText is "cursor: image-set(url(\"file:///foo03.png\") 0.3dppx, url(\"file:///foo5x.png\") 5dppx) 6 5, url(\"file:///foo.png\") 12 3, pointer;"
     9PASS style.cssText is "cursor: image-set(url(\"file:///foo.png\") 1x), auto;"
     10PASS style.cssText is "cursor: image-set(url(\"file:///foo.png\") 1x, url(\"file:///foo2x.png\") 2x), auto;"
     11PASS style.cssText is "cursor: image-set(url(\"file:///foo.png\") 1x, url(\"file:///foo2x.png\") 2x) 2 3, auto;"
     12PASS style.cssText is "cursor: image-set(url(\"file:///foo03.png\") 0.3x, url(\"file:///foo5x.png\") 5x) 6 5, url(\"file:///foo.png\") 12 3, pointer;"
    1313PASS successfullyParsed is true
    1414
  • trunk/LayoutTests/fast/css/cursor-parsing-image-set.html

    r255228 r282396  
    2222    var cssText = makeCursorRule(rule);
    2323    style = roundtripCssRule(cssText);
    24     shouldBeEqualToString('style.cssText', cssText.replace(/x(?=[,)])/g, 'dppx'));
     24    shouldBeEqualToString('style.cssText', cssText);
    2525}
    2626
  • trunk/LayoutTests/fast/css/image-set-parsing-expected.txt

    r260992 r282396  
    1111PASS imageSetRule.length is 2
    1212PASS subRule is 'a'
    13 PASS subRule.cssText is '1dppx'
     13PASS subRule.cssText is '1x'
    1414
    1515Multiple values for background-image : url('#a') 1x, url('#b') 2x
     
    1919PASS imageSetRule.length is 4
    2020PASS subRule is 'a'
    21 PASS subRule.cssText is '1dppx'
     21PASS subRule.cssText is '1x'
    2222PASS subRule is 'b'
    23 PASS subRule.cssText is '2dppx'
     23PASS subRule.cssText is '2x'
    2424
    2525Single value for background-image without url() function : '#a' 1x
     
    2929PASS imageSetRule.length is 2
    3030PASS subRule is 'a'
    31 PASS subRule.cssText is '1dppx'
     31PASS subRule.cssText is '1x'
    3232
    3333Multiple values for background-image without url() function : '#a' 1x, '#b' 2x
     
    3737PASS imageSetRule.length is 4
    3838PASS subRule is 'a'
    39 PASS subRule.cssText is '1dppx'
     39PASS subRule.cssText is '1x'
    4040PASS subRule is 'b'
    41 PASS subRule.cssText is '2dppx'
     41PASS subRule.cssText is '2x'
    4242
    4343Mix values with and without url() function : '#a' 1x, url('#b') 2x
     
    4747PASS imageSetRule.length is 4
    4848PASS subRule is 'a'
    49 PASS subRule.cssText is '1dppx'
     49PASS subRule.cssText is '1x'
    5050PASS subRule is 'b'
    51 PASS subRule.cssText is '2dppx'
     51PASS subRule.cssText is '2x'
    5252
    5353Multiple values for background-image, out of order : url('#c') 3x, url('#b') 2x, url('#a') 1x
     
    5757PASS imageSetRule.length is 6
    5858PASS subRule is 'c'
    59 PASS subRule.cssText is '3dppx'
     59PASS subRule.cssText is '3x'
    6060PASS subRule is 'b'
    61 PASS subRule.cssText is '2dppx'
     61PASS subRule.cssText is '2x'
    6262PASS subRule is 'a'
    63 PASS subRule.cssText is '1dppx'
     63PASS subRule.cssText is '1x'
    6464
    6565Single value for content : url('#a') 1x
     
    6969PASS imageSetRule.length is 2
    7070PASS subRule is 'a'
    71 PASS subRule.cssText is '1dppx'
     71PASS subRule.cssText is '1x'
    7272
    7373Multiple values for content : url('#a') 1x, url('#b') 2x
     
    7777PASS imageSetRule.length is 4
    7878PASS subRule is 'a'
    79 PASS subRule.cssText is '1dppx'
     79PASS subRule.cssText is '1x'
    8080PASS subRule is 'b'
    81 PASS subRule.cssText is '2dppx'
     81PASS subRule.cssText is '2x'
    8282
    8383Single value for border-image : url('#a') 1x
     
    8787PASS imageSetRule.length is 2
    8888PASS subRule is 'a'
    89 PASS subRule.cssText is '1dppx'
     89PASS subRule.cssText is '1x'
    9090
    9191Multiple values for border-image : url('#a') 1x, url('#b') 2x
     
    9595PASS imageSetRule.length is 4
    9696PASS subRule is 'a'
    97 PASS subRule.cssText is '1dppx'
     97PASS subRule.cssText is '1x'
    9898PASS subRule is 'b'
    99 PASS subRule.cssText is '2dppx'
     99PASS subRule.cssText is '2x'
    100100
    101101Single value for -webkit-mask-box-image : url('#a') 1x
     
    105105PASS imageSetRule.length is 2
    106106PASS subRule is 'a'
    107 PASS subRule.cssText is '1dppx'
     107PASS subRule.cssText is '1x'
    108108
    109109Multiple values for -webkit-mask-box-image : url('#a') 1x, url('#b') 2x
     
    113113PASS imageSetRule.length is 4
    114114PASS subRule is 'a'
    115 PASS subRule.cssText is '1dppx'
     115PASS subRule.cssText is '1x'
    116116PASS subRule is 'b'
    117 PASS subRule.cssText is '2dppx'
     117PASS subRule.cssText is '2x'
    118118
    119119Single value with dppx : url('#a') 1dppx
     
    147147PASS imageSetRule.length is 6
    148148PASS subRule is 'a'
    149 PASS subRule.cssText is '1dppx'
     149PASS subRule.cssText is '1x'
    150150PASS subRule is 'b'
    151151PASS subRule.cssText is '2dppx'
  • trunk/LayoutTests/fast/css/image-set-parsing-generated-expected.txt

    r260992 r282396  
    1111PASS imageSetRule.length is 2
    1212PASS subRule.cssText is 'linear-gradient(green, white)'
    13 PASS subRule.cssText is '1dppx'
     13PASS subRule.cssText is '1x'
    1414
    1515Single value for content with gradient : linear-gradient(green, white) 1x
     
    1919PASS imageSetRule.length is 2
    2020PASS subRule.cssText is 'linear-gradient(green, white)'
    21 PASS subRule.cssText is '1dppx'
     21PASS subRule.cssText is '1x'
    2222
    2323Single value for background-image with gradients : linear-gradient(green, white) 1x, radial-gradient(blue, white) 2x
     
    2727PASS imageSetRule.length is 4
    2828PASS subRule.cssText is 'linear-gradient(green, white)'
    29 PASS subRule.cssText is '1dppx'
     29PASS subRule.cssText is '1x'
    3030PASS subRule.cssText is 'radial-gradient(blue, white)'
    31 PASS subRule.cssText is '2dppx'
     31PASS subRule.cssText is '2x'
    3232
    3333Combined gradient and URL : url('#a') 1x, linear-gradient(green, white) 2x
     
    3737PASS imageSetRule.length is 4
    3838PASS subRule is 'a'
    39 PASS subRule.cssText is '1dppx'
     39PASS subRule.cssText is '1x'
    4040PASS subRule.cssText is 'linear-gradient(green, white)'
    41 PASS subRule.cssText is '2dppx'
     41PASS subRule.cssText is '2x'
    4242
    4343Combined gradient and URL in content : url('#a') 1x, linear-gradient(green, white) 2x
     
    4747PASS imageSetRule.length is 4
    4848PASS subRule is 'a'
    49 PASS subRule.cssText is '1dppx'
     49PASS subRule.cssText is '1x'
    5050PASS subRule.cssText is 'linear-gradient(green, white)'
    51 PASS subRule.cssText is '2dppx'
     51PASS subRule.cssText is '2x'
    5252
    5353Combined gradient and cross-fade : -webkit-cross-fade(url('#a'), url('#b'), 70%) 1x, linear-gradient(green, white) 2x
     
    5757PASS imageSetRule.length is 4
    5858PASS subRule is 'a'
    59 PASS subRule.cssText is '1dppx'
     59PASS subRule.cssText is '1x'
    6060PASS subRule.cssText is 'linear-gradient(green, white)'
    61 PASS subRule.cssText is '2dppx'
     61PASS subRule.cssText is '2x'
    6262
    6363Single value for background-image with gradient and dpi : linear-gradient(green, white) 192dpi
  • trunk/LayoutTests/fast/css/image-set-parsing-generated.html

    r260992 r282396  
    7171                "background-image",
    7272                "linear-gradient(green, white) 1x", 2,
    73                 ["linear-gradient(green, white)", "1dppx"]);
     73                ["linear-gradient(green, white)", "1x"]);
    7474testImageSetRule("Single value for content with gradient",
    7575                "background-image",
    7676                "linear-gradient(green, white) 1x", 2,
    77                 ["linear-gradient(green, white)", "1dppx"]);
     77                ["linear-gradient(green, white)", "1x"]);
    7878
    7979testImageSetRule("Single value for background-image with gradients",
    8080                "background-image",
    8181                "linear-gradient(green, white) 1x, radial-gradient(blue, white) 2x", 4,
    82                 ["linear-gradient(green, white)", "1dppx", "radial-gradient(blue, white)", "2dppx"]);
     82                ["linear-gradient(green, white)", "1x", "radial-gradient(blue, white)", "2x"]);
    8383
    8484testImageSetRule("Combined gradient and URL",
    8585                "background-image",
    8686                "url('#a') 1x, linear-gradient(green, white) 2x", 4,
    87                 ["a", "1dppx", "linear-gradient(green, white)", "2dppx"]);
     87                ["a", "1x", "linear-gradient(green, white)", "2x"]);
    8888
    8989testImageSetRule("Combined gradient and URL in content",
    9090                "content",
    9191                "url('#a') 1x, linear-gradient(green, white) 2x", 4,
    92                 ["a", "1dppx", "linear-gradient(green, white)", "2dppx"]);
     92                ["a", "1x", "linear-gradient(green, white)", "2x"]);
    9393
    9494testImageSetRule("Combined gradient and cross-fade",
    9595                "background-image",
    9696                "-webkit-cross-fade(url('#a'), url('#b'), 70%) 1x, linear-gradient(green, white) 2x", 4,
    97                 ["a", "1dppx", "linear-gradient(green, white)", "2dppx"]);
     97                ["a", "1x", "linear-gradient(green, white)", "2x"]);
    9898
    9999testImageSetRule("Single value for background-image with gradient and dpi",
  • trunk/LayoutTests/fast/css/image-set-parsing.html

    r260992 r282396  
    7171                "background-image",
    7272                "url('#a') 1x", 2,
    73                 ["a", "1dppx"]);
     73                ["a", "1x"]);
    7474
    7575testImageSetRule("Multiple values for background-image",
    7676                "background-image",
    7777                "url('#a') 1x, url('#b') 2x", 4,
    78                 ["a", "1dppx", "b", "2dppx"]);
     78                ["a", "1x", "b", "2x"]);
    7979
    8080testImageSetRule("Single value for background-image without url() function",
    8181                "background-image",
    8282                "'#a' 1x", 2,
    83                 ["a", "1dppx"], "image-set");
     83                ["a", "1x"], "image-set");
    8484
    8585testImageSetRule("Multiple values for background-image without url() function",
    8686                "background-image",
    8787                "'#a' 1x, '#b' 2x", 4,
    88                 ["a", "1dppx", "b", "2dppx"], "image-set");
     88                ["a", "1x", "b", "2x"], "image-set");
    8989
    9090testImageSetRule("Mix values with and without url() function",
    9191                "background-image",
    9292                "'#a' 1x, url('#b') 2x", 4,
    93                 ["a", "1dppx", "b", "2dppx"], "image-set");
     93                ["a", "1x", "b", "2x"], "image-set");
    9494
    9595testImageSetRule("Multiple values for background-image, out of order",
    9696                "background-image",
    9797                "url('#c') 3x, url('#b') 2x, url('#a') 1x", 6,
    98                 ["c", "3dppx", "b", "2dppx", "a", "1dppx"]);
     98                ["c", "3x", "b", "2x", "a", "1x"]);
    9999
    100100testImageSetRule("Single value for content",
    101101                "content",
    102102                "url('#a') 1x", 2,
    103                 ["a", "1dppx"]);
     103                ["a", "1x"]);
    104104
    105105testImageSetRule("Multiple values for content",
    106106                "content",
    107107                "url('#a') 1x, url('#b') 2x", 4,
    108                 ["a", "1dppx", "b", "2dppx"]);
     108                ["a", "1x", "b", "2x"]);
    109109
    110110testImageSetRule("Single value for border-image",
    111111                "-webkit-border-image",
    112112                "url('#a') 1x", 2,
    113                 ["a", "1dppx"]);
     113                ["a", "1x"]);
    114114
    115115testImageSetRule("Multiple values for border-image",
    116116                "-webkit-border-image",
    117117                "url('#a') 1x, url('#b') 2x", 4,
    118                 ["a", "1dppx", "b", "2dppx"]);
     118                ["a", "1x", "b", "2x"]);
    119119
    120120testImageSetRule("Single value for -webkit-mask-box-image",
    121121                "-webkit-mask-box-image",
    122122                "url('#a') 1x", 2,
    123                 ["a", "1dppx"]);
     123                ["a", "1x"]);
    124124
    125125testImageSetRule("Multiple values for -webkit-mask-box-image",
    126126                "-webkit-mask-box-image",
    127127                "url('#a') 1x, url('#b') 2x", 4,
    128                 ["a", "1dppx", "b", "2dppx"]);
     128                ["a", "1x", "b", "2x"]);
    129129
    130130testImageSetRule("Single value with dppx",
     
    146146                "background-image",
    147147                "url('#a') 1x, url('#b') 2dppx, url('#c') 250dpi", 6,
    148                 ["a", "1dppx", "b", "2dppx", "c", "250dpi"]);
     148                ["a", "1x", "b", "2dppx", "c", "250dpi"]);
    149149
    150150successfullyParsed = true;
  • trunk/LayoutTests/fast/css/image-set-setting-expected.txt

    r255228 r282396  
    66
    77Single value for background-image : url("http://www.webkit.org/a") 1x
    8 PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/a\") 1dppx)"
     8PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/a\") 1x)"
    99
    1010Multiple values for background-image : url("http://www.webkit.org/a") 1x, url("http://www.webkit.org/b") 2x
    11 PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/a\") 1dppx, url(\"http://www.webkit.org/b\") 2dppx)"
     11PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/a\") 1x, url(\"http://www.webkit.org/b\") 2x)"
    1212
    1313Multiple values for background-image, out of order : url("http://www.webkit.org/c") 3x, url("http://www.webkit.org/b") 2x, url("http://www.webkit.org/a") 1x
    14 PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/c\") 3dppx, url(\"http://www.webkit.org/b\") 2dppx, url(\"http://www.webkit.org/a\") 1dppx)"
     14PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/c\") 3x, url(\"http://www.webkit.org/b\") 2x, url(\"http://www.webkit.org/a\") 1x)"
    1515
    1616Duplicate values for background-image : url("http://www.webkit.org/c") 1x, url("http://www.webkit.org/b") 2x, url("http://www.webkit.org/a") 1x
    17 PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/c\") 1dppx, url(\"http://www.webkit.org/b\") 2dppx, url(\"http://www.webkit.org/a\") 1dppx)"
     17PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/c\") 1x, url(\"http://www.webkit.org/b\") 2x, url(\"http://www.webkit.org/a\") 1x)"
    1818
    1919Fractional values for background-image : url("http://www.webkit.org/c") 0.2x, url("http://www.webkit.org/b") 2.3x, url("http://www.webkit.org/a") 12.3456x
    20 PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/c\") 0.2dppx, url(\"http://www.webkit.org/b\") 2.3dppx, url(\"http://www.webkit.org/a\") 12.3456dppx)"
     20PASS style.backgroundImage is "image-set(url(\"http://www.webkit.org/c\") 0.2x, url(\"http://www.webkit.org/b\") 2.3x, url(\"http://www.webkit.org/a\") 12.3456x)"
    2121PASS successfullyParsed is true
    2222
  • trunk/LayoutTests/fast/css/image-set-setting.html

    r255228 r282396  
    2929    var fullRule = "image-set(" + rule + ")";
    3030    style = testComputedStyle(property, fullRule);
    31     shouldBeEqualToString('style.backgroundImage', fullRule.replace(/x(?=[,)])/g, 'dppx'));
     31    shouldBeEqualToString('style.backgroundImage', fullRule);
    3232}
    3333
  • trunk/LayoutTests/fast/css/image-set-unprefixed.html

    r255228 r282396  
    2626        rule += ', default';
    2727
    28     if (testComputedStyle(property, rule) == rule.replace(/x(?=[,)])/g, 'dppx'))
     28    if (testComputedStyle(property, rule) == rule)
    2929        debug("Unprefixed: PASS");
    3030    else
    3131        debug("Unprefixed: FAIL");
    3232
    33     if (testComputedStyle(property, "-webkit-" + rule) == rule.replace(/x(?=[,)])/g, 'dppx'))
     33    if (testComputedStyle(property, "-webkit-" + rule) == rule)
    3434        debug("Prefixed: PASS");
    3535    else
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r282381 r282396  
     12021-09-14  Sam Sneddon  <gsnedders@apple.com>
     2
     3        Support the `x` resolution unit
     4        https://bugs.webkit.org/show_bug.cgi?id=229777
     5
     6        Reviewed by Simon Fraser.
     7
     8        Rebaseline for more passing tests.
     9
     10        * web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
     11
    1122021-09-14  Youenn Fablet  <youenn@apple.com>
    213
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt

    r282357 r282396  
    791791PASS subtest_662
    792792PASS subtest_663
    793 FAIL subtest_664 assert_true: expected true got false
     793PASS subtest_664
    794794PASS subtest_665
    795 FAIL subtest_666 assert_true: expected true got false
     795PASS subtest_666
    796796PASS subtest_667
    797797PASS subtest_668
     
    805805PASS subtest_676
    806806PASS subtest_677
    807 FAIL subtest_678 assert_true: expected true got false
     807PASS subtest_678
    808808PASS subtest_679
    809 FAIL subtest_680 assert_true: expected true got false
     809PASS subtest_680
    810810PASS subtest_681
    811811PASS subtest_682
     
    819819PASS subtest_690
    820820PASS subtest_691
    821 FAIL subtest_692 assert_true: expected true got false
     821PASS subtest_692
    822822PASS subtest_693
    823 FAIL subtest_694 assert_true: expected true got false
     823PASS subtest_694
    824824PASS subtest_695
    825825PASS subtest_696
     
    830830PASS subtest_700
    831831PASS subtest_701
    832 FAIL subtest_702 assert_true: (resolution: 1x) should apply expected true got false
     832PASS subtest_702
    833833PASS subtest_703
    834834PASS subtest_704
  • trunk/Source/WebCore/ChangeLog

    r282395 r282396  
     12021-09-14  Sam Sneddon  <gsnedders@apple.com>
     2
     3        Support the `x` resolution unit
     4        https://bugs.webkit.org/show_bug.cgi?id=229777
     5
     6        Reviewed by Simon Fraser.
     7
     8        Covered by existing (progressing) tests.
     9
     10        * css/CSSPrimitiveValue.cpp:
     11        (WebCore::isValidCSSUnitTypeForDoubleConversion):
     12        (WebCore::isStringType):
     13        (WebCore::CSSPrimitiveValue::cleanup):
     14        (WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor):
     15        (WebCore::CSSPrimitiveValue::unitTypeString):
     16        (WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
     17        (WebCore::CSSPrimitiveValue::equals const):
     18        * css/CSSPrimitiveValue.h:
     19        * css/CSSUnits.cpp:
     20        (WebCore::unitCategory):
     21        (WebCore::operator<<):
     22        * css/CSSUnits.h:
     23        * css/DeprecatedCSSOMPrimitiveValue.cpp:
     24        (WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
     25        (WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const):
     26        * css/calc/CSSCalcCategoryMapping.cpp:
     27        (WebCore::hasDoubleValue):
     28        * css/parser/CSSParserToken.cpp:
     29        (WebCore::cssPrimitiveValueUnitFromTrie):
     30        * css/parser/CSSPropertyParserHelpers.cpp:
     31        (WebCore::CSSPropertyParserHelpers::consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension):
     32        (WebCore::CSSPropertyParserHelpers::consumeResolution):
     33        (WebCore::CSSPropertyParserHelpers::consumeImageSet):
     34        * css/parser/CSSPropertyParserHelpers.h:
     35        (WebCore::CSSPropertyParserHelpers::consumeResolution):
     36        Remove the optional allowX argument now it's part of the normal syntax.
     37
    1382021-09-14  Youenn Fablet  <youenn@apple.com>
    239
  • trunk/Source/WebCore/css/CSSPrimitiveValue.cpp

    r282144 r282396  
    8989    case CSSUnitType::CSS_DPI:
    9090    case CSSUnitType::CSS_DPPX:
     91    case CSSUnitType::CSS_X:
    9192        return true;
    9293    case CSSUnitType::CSS_ATTR:
     
    137138    case CSSUnitType::CSS_DPI:
    138139    case CSSUnitType::CSS_DPPX:
     140    case CSSUnitType::CSS_X:
    139141    case CSSUnitType::CSS_EMS:
    140142    case CSSUnitType::CSS_EXS:
     
    511513    case CSSUnitType::CSS_VMAX:
    512514    case CSSUnitType::CSS_DPPX:
     515    case CSSUnitType::CSS_X:
    513516    case CSSUnitType::CSS_DPI:
    514517    case CSSUnitType::CSS_DPCM:
     
    769772    case CSSUnitType::CSS_DPPX:
    770773        break;
     774    case CSSUnitType::CSS_X:
     775        // This is semantically identical to (canonical) dppx
     776        break;
    771777    case CSSUnitType::CSS_CM:
    772778        factor = cssPixelsPerInch / cmPerInch;
     
    967973        case CSSUnitType::CSS_VMAX: return "vmax";
    968974        case CSSUnitType::CSS_DPPX: return "dppx";
     975        case CSSUnitType::CSS_X: return "x";
    969976        case CSSUnitType::CSS_DPI: return "dpi";
    970977        case CSSUnitType::CSS_DPCM: return "dpcm";
     
    10301037    case CSSUnitType::CSS_DPPX:
    10311038        return formatNumberValue("dppx");
     1039    case CSSUnitType::CSS_X:
     1040        return formatNumberValue("x");
    10321041    case CSSUnitType::CSS_DPI:
    10331042        return formatNumberValue("dpi");
     
    11691178    case CSSUnitType::CSS_CM:
    11701179    case CSSUnitType::CSS_DPPX:
     1180    case CSSUnitType::CSS_X:
    11711181    case CSSUnitType::CSS_DPI:
    11721182    case CSSUnitType::CSS_DPCM:
  • trunk/Source/WebCore/css/CSSPrimitiveValue.h

    r282144 r282396  
    109109    bool isDotsPerPixel() const { return primitiveType() == CSSUnitType::CSS_DPPX; }
    110110    bool isDotsPerCentimeter() const { return primitiveType() == CSSUnitType::CSS_DPCM; }
     111    bool isX() const { return primitiveType() == CSSUnitType::CSS_X; }
    111112    bool isResolution() const { return unitCategory(primitiveType()) == CSSUnitCategory::Resolution; }
    112113    bool isViewportPercentageLength() const { return isViewportPercentageLength(primitiveUnitType()); }
  • trunk/Source/WebCore/css/CSSUnits.cpp

    r282357 r282396  
    5353        return CSSUnitCategory::Frequency;
    5454    case CSSUnitType::CSS_DPPX:
     55    case CSSUnitType::CSS_X:
    5556    case CSSUnitType::CSS_DPI:
    5657    case CSSUnitType::CSS_DPCM:
     
    138139    case CSSUnitType::CSS_VMAX: ts << "vmax"; break;
    139140    case CSSUnitType::CSS_DPPX: ts << "dppx"; break;
     141    case CSSUnitType::CSS_X: ts << "x"; break;
    140142    case CSSUnitType::CSS_DPI: ts << "dpi"; break;
    141143    case CSSUnitType::CSS_DPCM: ts << "dpcm"; break;
  • trunk/Source/WebCore/css/CSSUnits.h

    r281785 r282396  
    6161    CSS_VMAX,
    6262    CSS_DPPX,
     63    CSS_X,
    6364    CSS_DPI,
    6465    CSS_DPCM,
  • trunk/Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.cpp

    r278540 r282396  
    9292    case CSSUnitType::CSS_VMIN:                         return CSS_VMIN;
    9393    case CSSUnitType::CSS_VW:                           return CSS_VW;
     94    case CSSUnitType::CSS_X:                            return 37;
    9495    }
    9596
     
    133134    case 35:                return m_value->getFloatValue(CSSUnitType::CSS_LHS);
    134135    case 36:                return m_value->getFloatValue(CSSUnitType::CSS_RLHS);
     136    case 37:                return m_value->getFloatValue(CSSUnitType::CSS_X);
    135137    case 107:               return m_value->getFloatValue(CSSUnitType::CSS_TURN);
    136138    case 108:               return m_value->getFloatValue(CSSUnitType::CSS_REMS);
  • trunk/Source/WebCore/css/calc/CSSCalcCategoryMapping.cpp

    r278540 r282396  
    161161    case CSSUnitType::CSS_VMAX:
    162162    case CSSUnitType::CSS_DPPX:
     163    case CSSUnitType::CSS_X:
    163164    case CSSUnitType::CSS_DPI:
    164165    case CSSUnitType::CSS_DPCM:
  • trunk/Source/WebCore/css/parser/CSSParserToken.cpp

    r279498 r282396  
    5353        case 's':
    5454            return CSSUnitType::CSS_S;
     55        case 'x':
     56            return CSSUnitType::CSS_X;
    5557        }
    5658        break;
  • trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp

    r282234 r282396  
    630630// MARK: Resolution (CSSPrimitiveValue - no calc)
    631631
    632 static RefPtr<CSSPrimitiveValue> consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension(CSSParserTokenRange& range, AllowXResolutionUnit allowX, CSSValuePool& pool)
     632static RefPtr<CSSPrimitiveValue> consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension(CSSParserTokenRange& range, CSSValuePool& pool)
    633633{
    634634    ASSERT(range.peek().type() == DimensionToken);
    635635
    636     if (auto unit = range.peek().unitType(); unit == CSSUnitType::CSS_DPPX || unit == CSSUnitType::CSS_DPI || unit == CSSUnitType::CSS_DPCM)
     636    if (auto unit = range.peek().unitType(); unit == CSSUnitType::CSS_DPPX || unit == CSSUnitType::CSS_X || unit == CSSUnitType::CSS_DPI || unit == CSSUnitType::CSS_DPCM)
    637637        return pool.createValue(range.consumeIncludingWhitespace().numericValue(), unit);
    638     if (allowX == AllowXResolutionUnit::Allow && range.peek().unitString() == "x")
    639         return pool.createValue(range.consumeIncludingWhitespace().numericValue(), CSSUnitType::CSS_DPPX);
    640638
    641639    return nullptr;
     
    889887}
    890888
    891 RefPtr<CSSPrimitiveValue> consumeResolution(CSSParserTokenRange& range, AllowXResolutionUnit allowX)
     889RefPtr<CSSPrimitiveValue> consumeResolution(CSSParserTokenRange& range)
    892890{
    893891    // NOTE: Unlike the other types, calc() does not work with <resolution>.
     
    897895    switch (token.type()) {
    898896    case DimensionToken:
    899         return consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension(range, allowX, CSSValuePool::singleton());
     897        return consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension(range, CSSValuePool::singleton());
    900898   
    901899    default:
     
    33313329        imageSet->append(image.releaseNonNull());
    33323330
    3333         auto resolution = consumeResolution(args, AllowXResolutionUnit::Allow);
     3331        auto resolution = consumeResolution(args);
    33343332        if (!resolution || resolution->floatValue() <= 0)
    33353333            return nullptr;
  • trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.h

    r282234 r282396  
    6363enum class UnitlessQuirk { Allow, Forbid };
    6464enum class UnitlessZeroQuirk { Allow, Forbid };
    65 enum class AllowXResolutionUnit { Allow, Forbid };
    6665
    6766struct AngleRaw {
     
    9897RefPtr<CSSPrimitiveValue> consumeAngleWorkerSafe(CSSParserTokenRange&, CSSParserMode, CSSValuePool&, UnitlessQuirk = UnitlessQuirk::Forbid, UnitlessZeroQuirk = UnitlessZeroQuirk::Forbid);
    9998RefPtr<CSSPrimitiveValue> consumeTime(CSSParserTokenRange&, CSSParserMode, ValueRange, UnitlessQuirk = UnitlessQuirk::Forbid);
    100 RefPtr<CSSPrimitiveValue> consumeResolution(CSSParserTokenRange&, AllowXResolutionUnit = AllowXResolutionUnit::Forbid);
     99RefPtr<CSSPrimitiveValue> consumeResolution(CSSParserTokenRange&);
    101100
    102101std::optional<CSSValueID> consumeIdentRaw(CSSParserTokenRange&);
Note: See TracChangeset for help on using the changeset viewer.