Changeset 283219 in webkit


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

CSSFontPaletteValuesRule should not be maplike
https://bugs.webkit.org/show_bug.cgi?id=230793
<rdar://problem/83530242>

Reviewed by Wenson Hsieh.

LayoutTests/imported/w3c:

The tests are being upstreamed in https://github.com/web-platform-tests/wpt/pull/30966.

  • 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/c10855a2c65f51a09697613b977059fae78ff0bc
from "maplike<unsigned long, CSSOMString>" to "attribute CSSOMString overrideColor".

Tests: imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html

imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html

  • css/CSSFontPaletteValuesRule.cpp:

(WebCore::CSSFontPaletteValuesRule::basePalette const):
(WebCore::CSSFontPaletteValuesRule::overrideColor const):
(WebCore::CSSFontPaletteValuesRule::cssText const):
(WebCore::CSSFontPaletteValuesRule::initializeMapLike): Deleted.

  • css/CSSFontPaletteValuesRule.h:
  • css/CSSFontPaletteValuesRule.idl:
Location:
trunk
Files:
7 edited

Legend:

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

    r283216 r283219  
     12021-09-29  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        CSSFontPaletteValuesRule should not be maplike
     4        https://bugs.webkit.org/show_bug.cgi?id=230793
     5        <rdar://problem/83530242>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        The tests are being upstreamed in https://github.com/web-platform-tests/wpt/pull/30966.
     10
     11        * web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
     12        * web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
     13
    1142021-09-29  Antti Koivisto  <antti@apple.com>
    215
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html

    r283188 r283219  
    184184    let rule = rules[7];
    185185    assert_equals(text.indexOf("override-colors"), -1);
    186     assert_equals(rule.size, 0);
     186    assert_equals(rule.overrideColors, "");
    187187});
    188188
     
    191191    let rule = rules[8];
    192192    assert_equals(text.indexOf("override-colors"), -1);
    193     assert_equals(rule.size, 0);
     193    assert_equals(rule.overrideColors, "");
    194194});
    195195
     
    198198    let rule = rules[9];
    199199    assert_equals(text.indexOf("override-colors"), -1);
    200     assert_equals(rule.size, 0);
     200    assert_equals(rule.overrideColors, "");
    201201});
    202202
     
    205205    let rule = rules[10];
    206206    assert_equals(text.indexOf("override-colors"), -1);
    207     assert_equals(rule.size, 0);
     207    assert_equals(rule.overrideColors, "");
    208208});
    209209
     
    212212    let rule = rules[11];
    213213    assert_equals(text.indexOf("override-colors"), -1);
    214     assert_equals(rule.size, 0);
     214    assert_equals(rule.overrideColors, "");
    215215});
    216216
     
    219219    let rule = rules[12];
    220220    assert_equals(text.indexOf("override-colors"), -1);
    221     assert_equals(rule.size, 0);
     221    assert_equals(rule.overrideColors, "");
    222222});
    223223
     
    234234    assert_equals(text.indexOf("base-palette"), -1);
    235235    assert_equals(text.indexOf("override-colors"), -1);
    236     assert_equals(rule.size, 0);
    237     assert_equals(rule.basePalette, "");
     236    assert_equals(rule.basePalette, "");
     237    assert_equals(rule.overrideColors, "");
    238238});
    239239
     
    243243    assert_equals(text.indexOf("base-palette"), -1);
    244244    assert_equals(text.indexOf("override-colors"), -1);
    245     assert_equals(rule.size, 0);
    246     assert_equals(rule.basePalette, "");
     245    assert_equals(rule.basePalette, "");
     246    assert_equals(rule.overrideColors, "");
    247247});
    248248
     
    252252    assert_equals(text.indexOf("base-palette"), -1);
    253253    assert_equals(text.indexOf("override-colors"), -1);
    254     assert_equals(rule.size, 0);
    255     assert_equals(rule.basePalette, "");
     254    assert_equals(rule.basePalette, "");
     255    assert_equals(rule.overrideColors, "");
    256256});
    257257
     
    265265    assert_equals(text.indexOf("base-palette"), -1);
    266266    assert_equals(text.indexOf("override-color"), -1);
    267     assert_equals(rule.size, 0);
    268     assert_equals(rule.basePalette, "");
     267    assert_equals(rule.basePalette, "");
     268    assert_equals(rule.overrideColors, "");
    269269});
    270270</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html

    r283188 r283219  
    112112    assert_equals(rule.fontFamily, "");
    113113    assert_equals(rule.basePalette, "");
    114     assert_equals(rule.size, 0);
     114    assert_equals(rule.overrideColors, "");
    115115});
    116116
     
    125125    assert_equals(rule.fontFamily, "");
    126126    assert_equals(rule.basePalette, "");
    127     assert_equals(rule.size, 0);
     127    assert_equals(rule.overrideColors, "");
    128128});
    129129
     
    145145    assert_equals(rule.fontFamily, "bar");
    146146    assert_equals(rule.basePalette, "2");
    147     assert_equals(rule.size, 0);
     147    assert_equals(rule.overrideColors, "\"b\" rgb(17, 34, 51)");
    148148});
    149149
     
    163163    assert_equals(rule.fontFamily, "");
    164164    assert_equals(rule.basePalette, "bar");
    165     assert_equals(rule.size, 1);
    166     assert_equals(rule.get(7), undefined);
    167     assert_not_equals(rule.get(4).indexOf("rgb"), -1);
     165    assert_equals(rule.overrideColors.indexOf("),"), -1);
     166    assert_equals(rule.overrideColors.indexOf("4 "), 0);
     167    assert_not_equals(rule.overrideColors.indexOf("rgb"), -1);
    168168});
    169169
     
    179179    assert_equals(rule.fontFamily, "");
    180180    assert_equals(rule.basePalette, "");
    181     assert_equals(rule.size, 1);
    182     assert_equals(rule.get(7), undefined);
    183     assert_not_equals(rule.get(3).indexOf("102"), -1);
     181    assert_equals(rule.overrideColors.indexOf("),"), -1);
     182    assert_equals(rule.overrideColors.indexOf("3 "), 0);
     183    assert_not_equals(rule.overrideColors.indexOf("102"), -1);
    184184});
    185185
     
    194194    assert_equals(rule.fontFamily, "foo");
    195195    assert_equals(rule.basePalette, "");
    196     assert_equals(rule.size, 0);
     196    assert_equals(rule.overrideColors, "");
    197197});
    198198
     
    208208    assert_equals(rule.fontFamily, "");
    209209    assert_equals(rule.basePalette, "");
    210     assert_equals(rule.size, 2);
    211     assert_equals(rule.get(7), undefined);
    212     assert_not_equals(rule.get(3).indexOf("51"), -1);
    213     assert_not_equals(rule.get(4).indexOf("102"), -1);
     210    assert_equals(rule.overrideColors.split("),").length, 2);
     211    assert_equals(rule.overrideColors.indexOf("3 "), 0);
     212    assert_not_equals(rule.overrideColors.indexOf("), 4 "), -1);
     213    assert_not_equals(rule.overrideColors.indexOf("51"), -1);
     214    assert_not_equals(rule.overrideColors.indexOf("102"), -1);
    214215});
    215216
     
    225226    assert_equals(rule.fontFamily, "");
    226227    assert_equals(rule.basePalette, "");
    227     assert_equals(rule.size, 1);
    228     assert_equals(rule.get(7), undefined);
    229     assert_not_equals(rule.get(3).indexOf("102"), -1);
    230     assert_equals(rule.get(4), undefined);
     228    assert_not_equals(rule.overrideColors.indexOf("),"), -1);
     229    assert_equals(rule.overrideColors.indexOf("3 "), 0);
     230    assert_not_equals(rule.overrideColors.indexOf("), 3 "), -1);
     231    assert_not_equals(rule.overrideColors.indexOf("51"), -1);
     232    assert_not_equals(rule.overrideColors.indexOf("102"), -1);
    231233});
    232234
     
    242244    assert_equals(rule.fontFamily, "");
    243245    assert_equals(rule.basePalette, "");
    244     assert_equals(rule.size, 1);
    245     assert_equals(rule.get(0), "rgb(0, 0, 255)");
     246    assert_equals(rule.overrideColors.indexOf("),"), -1);
     247    assert_not_equals(rule.overrideColors.indexOf("rgb(0, 0, 255)"), -1);
    246248});
    247249
     
    257259    assert_equals(rule.fontFamily, "");
    258260    assert_equals(rule.basePalette, "");
    259     assert_equals(rule.size, 1);
    260     assert_equals(rule.get(0), "rgb(0, 128, 0)");
     261    assert_equals(rule.overrideColors.indexOf("),"), -1);
     262    assert_not_equals(rule.overrideColors.indexOf("rgb(0, 128, 0)"), -1);
    261263});
    262264
     
    272274    assert_equals(rule.fontFamily, "");
    273275    assert_equals(rule.basePalette, "");
    274     assert_equals(rule.size, 1);
    275     assert_equals(rule.get(0), "rgba(0, 0, 0, 0)");
     276    assert_equals(rule.overrideColors.indexOf("),"), -1);
     277    assert_not_equals(rule.overrideColors.indexOf("rgba(0, 0, 0, 0)"), -1);
    276278});
    277279
     
    287289    assert_equals(rule.fontFamily, "");
    288290    assert_equals(rule.basePalette, "");
    289     assert_equals(rule.size, 1);
    290     assert_not_equals(rule.get(0).indexOf("2"), -1);
     291    assert_equals(rule.overrideColors.indexOf("),"), -1);
     292    assert_not_equals(rule.overrideColors.indexOf("2"), -1);
    291293});
    292294
     
    302304    assert_equals(rule.fontFamily, "");
    303305    assert_equals(rule.basePalette, "");
    304     assert_equals(rule.size, 1);
    305     assert_not_equals(rule.get(0).indexOf("lab"), -1);
     306    assert_equals(rule.overrideColors.indexOf("),"), -1);
     307    assert_not_equals(rule.overrideColors.indexOf("lab"), -1);
    306308});
    307309
     
    317319    assert_equals(rule.fontFamily, "");
    318320    assert_equals(rule.basePalette, "");
    319     assert_equals(rule.size, 1);
    320     assert_not_equals(rule.get(0).indexOf("display-p3"), -1);
     321    assert_equals(rule.overrideColors.indexOf("),"), -1);
     322    assert_not_equals(rule.overrideColors.indexOf("display-p3"), -1);
    321323});
    322324</script>
  • trunk/Source/WebCore/ChangeLog

    r283217 r283219  
     12021-09-29  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        CSSFontPaletteValuesRule should not be maplike
     4        https://bugs.webkit.org/show_bug.cgi?id=230793
     5        <rdar://problem/83530242>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        The spec changed in
     10        https://github.com/w3c/csswg-drafts/commit/c10855a2c65f51a09697613b977059fae78ff0bc
     11        from "maplike<unsigned long, CSSOMString>" to "attribute CSSOMString overrideColor".
     12
     13        Tests: imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html
     14               imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html
     15
     16        * css/CSSFontPaletteValuesRule.cpp:
     17        (WebCore::CSSFontPaletteValuesRule::basePalette const):
     18        (WebCore::CSSFontPaletteValuesRule::overrideColor const):
     19        (WebCore::CSSFontPaletteValuesRule::cssText const):
     20        (WebCore::CSSFontPaletteValuesRule::initializeMapLike): Deleted.
     21        * css/CSSFontPaletteValuesRule.h:
     22        * css/CSSFontPaletteValuesRule.idl:
     23
    1242021-09-29  Eric Carlson  <eric.carlson@apple.com>
    225
  • trunk/Source/WebCore/css/CSSFontPaletteValuesRule.cpp

    r283188 r283219  
    5959String CSSFontPaletteValuesRule::basePalette() const
    6060{
    61     return WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&](unsigned index) {
     61    return WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) {
    6262        return makeString(index);
    63     }, [&](const AtomString& basePalette) -> String {
     63    }, [&] (const AtomString& basePalette) -> String {
    6464        if (!basePalette.isNull())
    6565            return basePalette.string();
     
    6868}
    6969
    70 void CSSFontPaletteValuesRule::initializeMapLike(DOMMapAdapter& map)
    71 {
    72     for (auto& pair : m_fontPaletteValuesRule->overrideColors()) {
    73         if (!WTF::holds_alternative<unsigned>(pair.first))
    74             continue;
    75         map.set<IDLUnsignedLong, IDLUSVString>(WTF::get<unsigned>(pair.first), serializationForCSS(pair.second));
     70String CSSFontPaletteValuesRule::overrideColors() const
     71{     
     72    StringBuilder result;
     73    for (size_t i = 0; i < m_fontPaletteValuesRule->overrideColors().size(); ++i) {
     74        if (i)
     75            result.append(", ");
     76        const auto& item = m_fontPaletteValuesRule->overrideColors()[i];
     77        WTF::switchOn(item.first, [&] (const AtomString& string) {
     78            result.append(serializeString(string));
     79        }, [&] (int64_t index) {
     80            result.append(index);
     81        });
     82        result.append(' ', serializationForCSS(item.second));
    7683    }
     84    return result.toString();
    7785}
    7886
     
    8391    if (!m_fontPaletteValuesRule->fontFamily().isNull())
    8492        builder.append("font-family: ", m_fontPaletteValuesRule->fontFamily(), "; ");
    85     WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&](unsigned index) {
     93    WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) {
    8694        builder.append("base-palette: ", index, "; ");
    87     }, [&](const AtomString& basePalette) {
     95    }, [&] (const AtomString& basePalette) {
    8896        if (!basePalette.isNull())
    8997            builder.append("base-palette: ", serializeString(basePalette.string()), "; ");
     
    95103                builder.append(',');
    96104            builder.append(' ');
    97             WTF::switchOn(m_fontPaletteValuesRule->overrideColors()[i].first, [&](const AtomString& name) {
     105            WTF::switchOn(m_fontPaletteValuesRule->overrideColors()[i].first, [&] (const AtomString& name) {
    98106                builder.append(serializeString(name.string()));
    99             }, [&](unsigned index) {
     107            }, [&] (unsigned index) {
    100108                builder.append(index);
    101109            });
  • trunk/Source/WebCore/css/CSSFontPaletteValuesRule.h

    r283140 r283219  
    4646    String fontFamily() const;
    4747    String basePalette() const;
    48 
    49     void initializeMapLike(DOMMapAdapter&);
     48    String overrideColors() const;
    5049
    5150private:
  • trunk/Source/WebCore/css/CSSFontPaletteValuesRule.idl

    r283140 r283219  
    2323    Exposed=Window
    2424] interface CSSFontPaletteValuesRule : CSSRule {
    25     readonly maplike<unsigned long, CSSOMString>;
    2625    readonly attribute CSSOMString name;
    2726    readonly attribute CSSOMString fontFamily;
    2827    readonly attribute CSSOMString basePalette;
     28    readonly attribute CSSOMString overrideColors;
    2929};
    3030
Note: See TracChangeset for help on using the changeset viewer.