Changeset 283221 in webkit


Ignore:
Timestamp:
Sep 29, 2021 8:40:56 AM (10 months ago)
Author:
mmaxfield@apple.com
Message:

Font palette names have to start with two hyphens
https://bugs.webkit.org/show_bug.cgi?id=230790
<rdar://problem/83530013>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Tests are being upstreamed at https://github.com/web-platform-tests/wpt/pull/30963.

  • web-platform-tests/css/css-fonts/font-palette-add-2-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-add-2.html:
  • web-platform-tests/css/css-fonts/font-palette-add-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-add.html:
  • web-platform-tests/css/css-fonts/font-palette-empty-font-family-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-empty-font-family.html:
  • web-platform-tests/css/css-fonts/font-palette-modify-2-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-modify-2.html:
  • web-platform-tests/css/css-fonts/font-palette-modify-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-modify.html:
  • web-platform-tests/css/css-fonts/font-palette-remove-2-expected.html:
  • web-platform-tests/css/css-fonts/font-palette-remove-2.html:
  • web-platform-tests/css/css-fonts/font-palette-remove-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/font-palette-remove.html:
  • web-platform-tests/css/css-fonts/font-palette.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add-2-expected.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add-2.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-add.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete-2-expected.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete-2.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete-expected-mismatch.html:
  • web-platform-tests/css/css-fonts/palette-values-rule-delete.html:
  • web-platform-tests/css/css-fonts/parsing/font-palette-computed-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-palette-computed.html:
  • web-platform-tests/css/css-fonts/parsing/font-palette-invalid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html:
  • web-platform-tests/css/css-fonts/parsing/font-palette-valid-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-palette-valid.html:
  • web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
  • web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:

Source/WebCore:

The spec changed in
https://github.com/w3c/csswg-drafts/commit/9ddf9388a2fe0ac300c41b7244e10c0a40fe0cae.

Font palettes now have to be named with a <dashed-ident>.

Updated existing tests.

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontPalette):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeDashedCustomIdent):

  • css/parser/CSSPropertyParserHelpers.h:
Location:
trunk
Files:
43 edited

Legend:

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

    r283219 r283221  
     12021-09-29  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        Font palette names have to start with two hyphens
     4        https://bugs.webkit.org/show_bug.cgi?id=230790
     5        <rdar://problem/83530013>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Tests are being upstreamed at https://github.com/web-platform-tests/wpt/pull/30963.
     10
     11        * web-platform-tests/css/css-fonts/font-palette-add-2-expected.html:
     12        * web-platform-tests/css/css-fonts/font-palette-add-2.html:
     13        * web-platform-tests/css/css-fonts/font-palette-add-expected-mismatch.html:
     14        * web-platform-tests/css/css-fonts/font-palette-add.html:
     15        * web-platform-tests/css/css-fonts/font-palette-empty-font-family-expected-mismatch.html:
     16        * web-platform-tests/css/css-fonts/font-palette-empty-font-family.html:
     17        * web-platform-tests/css/css-fonts/font-palette-modify-2-expected.html:
     18        * web-platform-tests/css/css-fonts/font-palette-modify-2.html:
     19        * web-platform-tests/css/css-fonts/font-palette-modify-expected-mismatch.html:
     20        * web-platform-tests/css/css-fonts/font-palette-modify.html:
     21        * web-platform-tests/css/css-fonts/font-palette-remove-2-expected.html:
     22        * web-platform-tests/css/css-fonts/font-palette-remove-2.html:
     23        * web-platform-tests/css/css-fonts/font-palette-remove-expected-mismatch.html:
     24        * web-platform-tests/css/css-fonts/font-palette-remove.html:
     25        * web-platform-tests/css/css-fonts/font-palette.html:
     26        * web-platform-tests/css/css-fonts/palette-values-rule-add-2-expected.html:
     27        * web-platform-tests/css/css-fonts/palette-values-rule-add-2.html:
     28        * web-platform-tests/css/css-fonts/palette-values-rule-add-expected-mismatch.html:
     29        * web-platform-tests/css/css-fonts/palette-values-rule-add.html:
     30        * web-platform-tests/css/css-fonts/palette-values-rule-delete-2-expected.html:
     31        * web-platform-tests/css/css-fonts/palette-values-rule-delete-2.html:
     32        * web-platform-tests/css/css-fonts/palette-values-rule-delete-expected-mismatch.html:
     33        * web-platform-tests/css/css-fonts/palette-values-rule-delete.html:
     34        * web-platform-tests/css/css-fonts/parsing/font-palette-computed-expected.txt:
     35        * web-platform-tests/css/css-fonts/parsing/font-palette-computed.html:
     36        * web-platform-tests/css/css-fonts/parsing/font-palette-invalid-expected.txt:
     37        * web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html:
     38        * web-platform-tests/css/css-fonts/parsing/font-palette-valid-expected.txt:
     39        * web-platform-tests/css/css-fonts/parsing/font-palette-valid.html:
     40        * web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
     41        * web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
     42
    1432021-09-29  Myles C. Maxfield  <mmaxfield@apple.com>
    244
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-palette-animation-2-expected.html

    r283086 r283221  
    1212}
    1313
    14 @font-palette-values Palette0 {
     14@font-palette-values --Palette0 {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 0;
    1717}
    1818
    19 @font-palette-values Palette1 {
     19@font-palette-values --Palette1 {
    2020    font-family: "Ahem-COLR";
    2121    base-palette: 1;
     
    2323
    2424#target {
    25     font-palette: Palette1;
     25    font-palette: --Palette1;
    2626}
    2727</style>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-palette-animation-2.html

    r283086 r283221  
    1313}
    1414
    15 @font-palette-values Palette0 {
     15@font-palette-values --Palette0 {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 0;
    1818}
    1919
    20 @font-palette-values Palette1 {
     20@font-palette-values --Palette1 {
    2121    font-family: "Ahem-COLR";
    2222    base-palette: 1;
     
    2525@keyframes TheAnimation {
    2626    from {
    27         font-palette: Palette0;
     27        font-palette: --Palette0;
    2828    }
    2929    to {
    30         font-palette: Palette1;
     30        font-palette: --Palette1;
    3131    }
    3232}
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-palette-animation-3-expected-mismatch.html

    r283086 r283221  
    1212}
    1313
    14 @font-palette-values Palette0 {
     14@font-palette-values --Palette0 {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 0;
    1717}
    1818
    19 @font-palette-values Palette1 {
     19@font-palette-values --Palette1 {
    2020    font-family: "Ahem-COLR";
    2121    base-palette: 1;
     
    2424@keyframes TheAnimation {
    2525    from {
    26         font-palette: Palette0;
     26        font-palette: --Palette0;
    2727    }
    2828    to {
    29         font-palette: Palette1;
     29        font-palette: --Palette1;
    3030    }
    3131}
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-palette-animation-3.html

    r283086 r283221  
    1313}
    1414
    15 @font-palette-values Palette0 {
     15@font-palette-values --Palette0 {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 0;
    1818}
    1919
    20 @font-palette-values Palette1 {
     20@font-palette-values --Palette1 {
    2121    font-family: "Ahem-COLR";
    2222    base-palette: 1;
     
    2525@keyframes TheAnimation {
    2626    from {
    27         font-palette: Palette0;
     27        font-palette: --Palette0;
    2828    }
    2929    to {
    30         font-palette: Palette1;
     30        font-palette: --Palette1;
    3131    }
    3232}
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-palette-animation-expected.html

    r283086 r283221  
    1212}
    1313
    14 @font-palette-values Palette0 {
     14@font-palette-values --Palette0 {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 0;
    1717}
    1818
    19 @font-palette-values Palette1 {
     19@font-palette-values --Palette1 {
    2020    font-family: "Ahem-COLR";
    2121    base-palette: 1;
     
    2323
    2424#target {
    25     font-palette: Palette0;
     25    font-palette: --Palette0;
    2626}
    2727</style>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-palette-animation.html

    r283086 r283221  
    1313}
    1414
    15 @font-palette-values Palette0 {
     15@font-palette-values --Palette0 {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 0;
    1818}
    1919
    20 @font-palette-values Palette1 {
     20@font-palette-values --Palette1 {
    2121    font-family: "Ahem-COLR";
    2222    base-palette: 1;
     
    2525@keyframes TheAnimation {
    2626    from {
    27         font-palette: Palette0;
     27        font-palette: --Palette0;
    2828    }
    2929    to {
    30         font-palette: Palette1;
     30        font-palette: --Palette1;
    3131    }
    3232}
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-add-2-expected.html

    r283077 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
     
    1919</head>
    2020<body>
    21 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     21<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2222</body>
    2323</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-add-2.html

    r283077 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
     
    2525function tick() {
    2626    if (count > 3) {
    27         document.getElementById("target").style.setProperty("font-palette", "MyPalette");
     27        document.getElementById("target").style.setProperty("font-palette", "--MyPalette");
    2828        document.documentElement.classList.remove("reftest-wait");
    2929    } else {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-add-expected-mismatch.html

    r283077 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-add.html

    r283077 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
     
    2525function tick() {
    2626    if (count > 3) {
    27         document.getElementById("target").style.setProperty("font-palette", "MyPalette");
     27        document.getElementById("target").style.setProperty("font-palette", "--MyPalette");
    2828        document.documentElement.classList.remove("reftest-wait");
    2929    } else {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-empty-font-family-expected-mismatch.html

    r283077 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
     
    1919</head>
    2020<body>
    21 <div style="font: 48px 'Ahem-COLR'; color-palette: MyPalette;">A</div>
     21<div style="font: 48px 'Ahem-COLR'; color-palette: --MyPalette;">A</div>
    2222</body>
    2323</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-empty-font-family.html

    r283077 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "";
    1717    base-palette: 1;
     
    2020</head>
    2121<body>
    22 <div style="font: 48px ''; color-palette: MyPalette;">A</div>
     22<div style="font: 48px ''; color-palette: --MyPalette;">A</div>
    2323</body>
    2424</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-modify-2-expected.html

    r283159 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
    1717}
    1818
    19 @font-palette-values MyPalette2 {
     19@font-palette-values --MyPalette2 {
    2020    font-family: "Ahem-COLR";
    2121    base-palette: 0;
     
    2525</head>
    2626<body>
    27 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette2;">A</div>
     27<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette2;">A</div>
    2828</body>
    2929</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-modify-2.html

    r283159 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
    1818}
    1919
    20 @font-palette-values MyPalette2 {
     20@font-palette-values --MyPalette2 {
    2121    font-family: "Ahem-COLR";
    2222    base-palette: 0;
     
    2626</head>
    2727<body>
    28 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     28<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2929<script>
    3030let count = 0;
    3131function tick() {
    3232    if (count > 3) {
    33         document.getElementById("target").style.setProperty("font-palette", "MyPalette2");
     33        document.getElementById("target").style.setProperty("font-palette", "--MyPalette2");
    3434        document.documentElement.classList.remove("reftest-wait");
    3535    } else {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-modify-expected-mismatch.html

    r283159 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
    1717}
    1818
    19 @font-palette-values MyPalette2 {
     19@font-palette-values --MyPalette2 {
    2020    font-family: "Ahem-COLR";
    2121    base-palette: 0;
     
    2525</head>
    2626<body>
    27 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     27<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2828</body>
    2929</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-modify.html

    r283159 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
    1818}
    1919
    20 @font-palette-values MyPalette2 {
     20@font-palette-values --MyPalette2 {
    2121    font-family: "Ahem-COLR";
    2222    base-palette: 0;
     
    2626</head>
    2727<body>
    28 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     28<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2929<script>
    3030let count = 0;
    3131function tick() {
    3232    if (count > 3) {
    33         document.getElementById("target").style.setProperty("font-palette", "MyPalette2");
     33        document.getElementById("target").style.setProperty("font-palette", "--MyPalette2");
    3434        document.documentElement.classList.remove("reftest-wait");
    3535    } else {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-remove-2-expected.html

    r283077 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-remove-2.html

    r283077 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
     
    2020</head>
    2121<body>
    22 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     22<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2323<script>
    2424let count = 0;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-remove-expected-mismatch.html

    r283077 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
     
    1919</head>
    2020<body>
    21 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     21<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2222</body>
    2323</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette-remove.html

    r283077 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
     
    2020</head>
    2121<body>
    22 <div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     22<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2323<script>
    2424let count = 0;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-palette.html

    r283159 r283221  
    1414}
    1515
    16 @font-palette-values Palette1 {
     16@font-palette-values --Palette1 {
    1717    font-family: "WebFont";
    1818    base-palette: 0;
    1919}
    2020
    21 @font-palette-values Palette2 {
     21@font-palette-values --Palette2 {
    2222    font-family: "WebFont";
    2323    base-palette: 1;
    2424}
    2525
    26 @font-palette-values Palette3 {
     26@font-palette-values --Palette3 {
    2727    font-family: "WebFont";
    2828    base-palette: 1;
     
    3030}
    3131
    32 @font-palette-values Palette4 {
     32@font-palette-values --Palette4 {
    3333    font-family: "WebFont";
    3434    base-palette: 1;
     
    3636}
    3737
    38 @font-palette-values Palette5 {
     38@font-palette-values --Palette5 {
    3939    font-family: "WebFont";
    4040    base-palette: 1;
     
    4545<body>
    4646<p>Test passes if you see particular rectangles of particular colors.</p>
    47 <div style="display: inline-block; font: 100px 'WebFont'; font-palette: Palette1;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: Palette2;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: Palette3;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: Palette4;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: Palette5;">A</div>
     47<div style="display: inline-block; font: 100px 'WebFont'; font-palette: --Palette1;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: --Palette2;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: --Palette3;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: --Palette4;">A</div><div style="display: inline-block; font: 100px 'WebFont'; font-palette: --Palette5;">A</div>
    4848</body>
    4949</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-add-2-expected.html

    r283077 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
     
    1919</head>
    2020<body>
    21 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     21<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2222</body>
    2323</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-add-2.html

    r283077 r283221  
    1515</head>
    1616<body>
    17 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     17<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    1818<script>
    1919let count = 0;
     
    2323        document.head.appendChild(style);
    2424        style.sheet.insertRule(`
    25             @font-palette-values MyPalette {
     25            @font-palette-values --MyPalette {
    2626                font-family: "Ahem-COLR";
    2727                base-palette: 1;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-add-expected-mismatch.html

    r283077 r283221  
    1414</head>
    1515<body>
    16 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     16<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    1717</body>
    1818</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-add.html

    r283077 r283221  
    1515</head>
    1616<body>
    17 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     17<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    1818<script>
    1919let count = 0;
     
    2323        document.head.appendChild(style);
    2424        style.sheet.insertRule(`
    25             @font-palette-values MyPalette {
     25            @font-palette-values --MyPalette {
    2626                font-family: "Ahem-COLR";
    2727                base-palette: 1;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-delete-2-expected.html

    r283077 r283221  
    1414</head>
    1515<body>
    16 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     16<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    1717</body>
    1818</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-delete-2.html

    r283077 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
     
    2020</head>
    2121<body>
    22 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     22<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2323<script>
    2424let count = 0;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-delete-expected-mismatch.html

    r283077 r283221  
    1212}
    1313
    14 @font-palette-values MyPalette {
     14@font-palette-values --MyPalette {
    1515    font-family: "Ahem-COLR";
    1616    base-palette: 1;
     
    1919</head>
    2020<body>
    21 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     21<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2222</body>
    2323</html>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/palette-values-rule-delete.html

    r283077 r283221  
    1313}
    1414
    15 @font-palette-values MyPalette {
     15@font-palette-values --MyPalette {
    1616    font-family: "Ahem-COLR";
    1717    base-palette: 1;
     
    2020</head>
    2121<body>
    22 <div style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
     22<div style="font: 48px 'Ahem-COLR'; font-palette: --MyPalette;">A</div>
    2323<script>
    2424let count = 0;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-computed-expected.txt

    r282851 r283221  
    44PASS Property font-palette value 'light'
    55PASS Property font-palette value 'dark'
    6 PASS Property font-palette value 'pitchfork'
     6PASS Property font-palette value '--pitchfork'
    77
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-computed.html

    r282851 r283221  
    1717test_computed_value('font-palette', 'light');
    1818test_computed_value('font-palette', 'dark');
    19 test_computed_value('font-palette', 'pitchfork');
     19test_computed_value('font-palette', '--pitchfork');
    2020</script>
    2121</body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-invalid-expected.txt

    r282851 r283221  
    22PASS e.style['font-palette'] = "normal none" should not set the property value
    33PASS e.style['font-palette'] = "none, light" should not set the property value
     4PASS e.style['font-palette'] = "A" should not set the property value
    45
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html

    r282851 r283221  
    1414test_invalid_value('font-palette', 'normal none');
    1515test_invalid_value('font-palette', 'none, light');
     16test_invalid_value('font-palette', 'A');
    1617</script>
    1718</body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-valid-expected.txt

    r282851 r283221  
    44PASS e.style['font-palette'] = "light" should set the property value
    55PASS e.style['font-palette'] = "dark" should set the property value
    6 PASS e.style['font-palette'] = "pitchfork" should set the property value
     6PASS e.style['font-palette'] = "--pitchfork" should set the property value
    77
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-valid.html

    r282851 r283221  
    1616test_valid_value('font-palette', 'light');
    1717test_valid_value('font-palette', 'dark');
    18 test_valid_value('font-palette', 'pitchfork');
     18test_valid_value('font-palette', '--pitchfork');
    1919</script>
    2020</body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html

    r283219 r283221  
    1212}
    1313
    14 @font-palette-values A B {
     14@font-palette-values A {
     15}
     16
     17@font-palette-values --A --B {
    1518}
    1619
    1720/* 0 */
    18 @font-palette-values A {
     21@font-palette-values --A {
    1922    font-family: a, b;
    2023}
    2124
    2225/* 1 */
    23 @font-palette-values A {
     26@font-palette-values --A {
    2427    font-family: 1;
    2528}
    2629
    2730/* 2 */
    28 @font-palette-values A {
     31@font-palette-values --A {
    2932    font: 12px a;
    3033}
    3134
    3235/* 3 */
    33 @font-palette-values A {
     36@font-palette-values --A {
    3437    base-palette: 1 2;
    3538}
    3639
    3740/* 4 */
    38 @font-palette-values A {
     41@font-palette-values --A {
    3942    base-palette: ident;
    4043}
    4144
    4245/* 5 */
    43 @font-palette-values A {
     46@font-palette-values --A {
    4447    base-palette: "a" "b";
    4548}
    4649
    4750/* 6 */
    48 @font-palette-values A {
     51@font-palette-values --A {
    4952    base-palette: ;
    5053}
    5154
    5255/* 7 */
    53 @font-palette-values A {
     56@font-palette-values --A {
    5457    override-colors: ident #123;
    5558}
    5659
    5760/* 8 */
    58 @font-palette-values A {
     61@font-palette-values --A {
    5962    override-colors: 0 "red";
    6063}
    6164
    6265/* 9 */
    63 @font-palette-values A {
     66@font-palette-values --A {
    6467    override-colors: 0 #123, 1;
    6568}
    6669
    6770/* 10 */
    68 @font-palette-values A {
     71@font-palette-values --A {
    6972    override-colors: ;
    7073}
    7174
    7275/* 11 */
    73 @font-palette-values A {
     76@font-palette-values --A {
    7477    override-colors: 0 #123 1;
    7578}
    7679
    7780/* 12 */
    78 @font-palette-values A {
     81@font-palette-values --A {
    7982    override-colors: 0;
    8083}
    8184
    8285/* 13 */
    83 @font-palette-values A {
     86@font-palette-values --A {
    8487    font-family: "";
    8588}
    8689
    8790/* 14 */
    88 @font-palette-values A {
     91@font-palette-values --A {
    8992    base-palette: initial;
    9093    override-colors: initial;
     
    9295
    9396/* 15 */
    94 @font-palette-values A {
     97@font-palette-values --A {
    9598    base-palette: inherit;
    9699    override-colors: inherit;
     
    98101
    99102/* 16 */
    100 @font-palette-values A {
     103@font-palette-values --A {
    101104    base-palette: unset;
    102105    override-colors: unset;
     
    104107
    105108/* 17 */
    106 @font-palette-values A {
     109@font-palette-values --A {
    107110    base-palette: -1;
    108111    override-color: -1 #123;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html

    r283219 r283221  
    1010<style id="style">
    1111/* 0 */
    12 @font-palette-values A {
     12@font-palette-values --A {
    1313}
    1414
    1515/* 1 */
    16 @font-palette-values B {
     16@font-palette-values --B {
    1717    font-weight: 400;
    1818}
    1919
    2020/* 2 */
    21 @font-palette-values C {
     21@font-palette-values --C {
    2222    font-family: foo;
    2323    font-family: bar;
     
    3131
    3232/* 3 */
    33 @font-palette-values D {
     33@font-palette-values --D {
    3434    base-palette: "foo";
    3535    base-palette: 1;
     
    4141
    4242/* 4 */
    43 @font-palette-values E {
     43@font-palette-values --E {
    4444    override-colors: 3 rgb(17, 34, 51);
    4545    override-colors: 3 rgb(68, 85, 102);
     
    4747
    4848/* 5 */
    49 @font-palette-values F {
     49@font-palette-values --F {
    5050    font-family: "foo";
    5151}
    5252
    5353/* 6 */
    54 @font-palette-values G {
     54@font-palette-values --G {
    5555    override-colors: 3 rgb(17, 34, 51), 4 rgb(68, 85, 102);
    5656}
    5757
    5858/* 7 */
    59 @font-palette-values H {
     59@font-palette-values --H {
    6060    override-colors: 3 rgb(17, 34, 51), 3 rgb(68, 85, 102);
    6161}
    6262
    6363/* 8 */
    64 @font-palette-values I {
     64@font-palette-values --I {
    6565    override-colors: 0 #0000FF;
    6666}
    6767
    6868/* 9 */
    69 @font-palette-values J {
     69@font-palette-values --J {
    7070    override-colors: 0 green;
    7171}
    7272
    7373/* 10 */
    74 @font-palette-values K {
     74@font-palette-values --K {
    7575    override-colors: 0 transparent;
    7676}
    7777
    7878/* 11 */
    79 @font-palette-values L {
     79@font-palette-values --L {
    8080    override-colors: 0 rgba(1 2 3 / 4);
    8181}
    8282
    8383/* 12 */
    84 @font-palette-values M {
     84@font-palette-values --M {
    8585    override-colors: 0 lab(29.2345% 39.3825 20.0664);
    8686}
    8787
    8888/* 13 */
    89 @font-palette-values N {
     89@font-palette-values --N {
    9090    override-colors: 0 color(display-p3 100% 100% 100%);
    9191}
     
    9898    let text = rules[0].cssText;
    9999    assert_not_equals(text.indexOf("@font-palette-values "), -1);
    100     assert_not_equals(text.indexOf(" A "), -1);
     100    assert_not_equals(text.indexOf(" --A "), -1);
    101101    assert_not_equals(text.indexOf("{"), -1);
    102102    assert_not_equals(text.indexOf("}"), -1);
     
    109109    let rule = rules[0];
    110110    assert_equals(rule.constructor.name, "CSSFontPaletteValuesRule");
    111     assert_equals(rule.name, "A");
     111    assert_equals(rule.name, "--A");
    112112    assert_equals(rule.fontFamily, "");
    113113    assert_equals(rule.basePalette, "");
     
    122122test(function() {
    123123    let rule = rules[1];
    124     assert_equals(rule.name, "B");
     124    assert_equals(rule.name, "--B");
    125125    assert_equals(rule.fontFamily, "");
    126126    assert_equals(rule.basePalette, "");
     
    142142test(function() {
    143143    let rule = rules[2];
    144     assert_equals(rule.name, "C");
     144    assert_equals(rule.name, "--C");
    145145    assert_equals(rule.fontFamily, "bar");
    146146    assert_equals(rule.basePalette, "2");
     
    160160test(function() {
    161161    let rule = rules[3];
    162     assert_equals(rule.name, "D");
     162    assert_equals(rule.name, "--D");
    163163    assert_equals(rule.fontFamily, "");
    164164    assert_equals(rule.basePalette, "bar");
     
    176176test(function() {
    177177    let rule = rules[4];
    178     assert_equals(rule.name, "E");
     178    assert_equals(rule.name, "--E");
    179179    assert_equals(rule.fontFamily, "");
    180180    assert_equals(rule.basePalette, "");
     
    191191test(function() {
    192192    let rule = rules[5];
    193     assert_equals(rule.name, "F");
     193    assert_equals(rule.name, "--F");
    194194    assert_equals(rule.fontFamily, "foo");
    195195    assert_equals(rule.basePalette, "");
     
    205205test(function() {
    206206    let rule = rules[6];
    207     assert_equals(rule.name, "G");
     207    assert_equals(rule.name, "--G");
    208208    assert_equals(rule.fontFamily, "");
    209209    assert_equals(rule.basePalette, "");
     
    223223test(function() {
    224224    let rule = rules[7];
    225     assert_equals(rule.name, "H");
     225    assert_equals(rule.name, "--H");
    226226    assert_equals(rule.fontFamily, "");
    227227    assert_equals(rule.basePalette, "");
     
    241241test(function() {
    242242    let rule = rules[8];
    243     assert_equals(rule.name, "I");
     243    assert_equals(rule.name, "--I");
    244244    assert_equals(rule.fontFamily, "");
    245245    assert_equals(rule.basePalette, "");
     
    256256test(function() {
    257257    let rule = rules[9];
    258     assert_equals(rule.name, "J");
     258    assert_equals(rule.name, "--J");
    259259    assert_equals(rule.fontFamily, "");
    260260    assert_equals(rule.basePalette, "");
     
    271271test(function() {
    272272    let rule = rules[10];
    273     assert_equals(rule.name, "K");
     273    assert_equals(rule.name, "--K");
    274274    assert_equals(rule.fontFamily, "");
    275275    assert_equals(rule.basePalette, "");
     
    286286test(function() {
    287287    let rule = rules[11];
    288     assert_equals(rule.name, "L");
     288    assert_equals(rule.name, "--L");
    289289    assert_equals(rule.fontFamily, "");
    290290    assert_equals(rule.basePalette, "");
     
    301301test(function() {
    302302    let rule = rules[12];
    303     assert_equals(rule.name, "M");
     303    assert_equals(rule.name, "--M");
    304304    assert_equals(rule.fontFamily, "");
    305305    assert_equals(rule.basePalette, "");
     
    316316test(function() {
    317317    let rule = rules[13];
    318     assert_equals(rule.name, "N");
     318    assert_equals(rule.name, "--N");
    319319    assert_equals(rule.fontFamily, "");
    320320    assert_equals(rule.basePalette, "");
  • trunk/Source/WebCore/ChangeLog

    r283219 r283221  
     12021-09-29  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        Font palette names have to start with two hyphens
     4        https://bugs.webkit.org/show_bug.cgi?id=230790
     5        <rdar://problem/83530013>
     6
     7        Reviewed by Dean Jackson.
     8
     9        The spec changed in
     10        https://github.com/w3c/csswg-drafts/commit/9ddf9388a2fe0ac300c41b7244e10c0a40fe0cae.
     11
     12        Font palettes now have to be named with a <dashed-ident>.
     13
     14        Updated existing tests.
     15
     16        * css/parser/CSSParserImpl.cpp:
     17        (WebCore::CSSParserImpl::consumeFontPaletteValuesRule):
     18        * css/parser/CSSPropertyParser.cpp:
     19        (WebCore::consumeFontPalette):
     20        * css/parser/CSSPropertyParserHelpers.cpp:
     21        (WebCore::CSSPropertyParserHelpers::consumeDashedCustomIdent):
     22        * css/parser/CSSPropertyParserHelpers.h:
     23
    1242021-09-29  Myles C. Maxfield  <mmaxfield@apple.com>
    225
  • trunk/Source/WebCore/css/parser/CSSParserImpl.cpp

    r283188 r283221  
    662662RefPtr<StyleRuleFontPaletteValues> CSSParserImpl::consumeFontPaletteValuesRule(CSSParserTokenRange prelude, CSSParserTokenRange block)
    663663{
    664     auto name = CSSPropertyParserHelpers::consumeCustomIdent(prelude);
     664    auto name = CSSPropertyParserHelpers::consumeDashedIdent(prelude);
    665665    if (!name || !prelude.atEnd())
    666666        return nullptr; // Parse error; expected custom ident in @font-palette-values header
  • trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp

    r283188 r283221  
    932932    if (auto result = consumeIdent<CSSValueNone, CSSValueNormal, CSSValueLight, CSSValueDark>(range))
    933933        return result;
    934     return consumeCustomIdent(range);
     934    return consumeDashedIdent(range);
    935935}
    936936
  • trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp

    r282809 r283221  
    13551355    auto identifier = range.consumeIncludingWhitespace().value();
    13561356    return CSSValuePool::singleton().createCustomIdent(shouldLowercase ? identifier.convertToASCIILowercase() : identifier.toString());
     1357}
     1358
     1359RefPtr<CSSPrimitiveValue> consumeDashedIdent(CSSParserTokenRange& range, bool shouldLowercase)
     1360{
     1361    auto result = consumeCustomIdent(range, shouldLowercase);
     1362    if (result && result->stringValue().startsWith("--"))
     1363        return result;
     1364    return nullptr;
    13571365}
    13581366
  • trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.h

    r282396 r283221  
    110110
    111111RefPtr<CSSPrimitiveValue> consumeCustomIdent(CSSParserTokenRange&, bool shouldLowercase = false);
     112RefPtr<CSSPrimitiveValue> consumeDashedIdent(CSSParserTokenRange&, bool shouldLowercase = false);
    112113RefPtr<CSSPrimitiveValue> consumeString(CSSParserTokenRange&);
    113114StringView consumeUrlAsStringView(CSSParserTokenRange&);
Note: See TracChangeset for help on using the changeset viewer.