Title: [283219] trunk
Revision
283219
Author
[email protected]
Date
2021-09-29 08:38:11 -0700 (Wed, 29 Sep 2021)

Log 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:

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (283218 => 283219)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-29 15:36:28 UTC (rev 283218)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-29 15:38:11 UTC (rev 283219)
@@ -1,3 +1,16 @@
+2021-09-29  Myles C. Maxfield  <[email protected]>
+
+        CSSFontPaletteValuesRule should not be maplike
+        https://bugs.webkit.org/show_bug.cgi?id=230793
+        <rdar://problem/83530242>
+
+        Reviewed by Wenson Hsieh.
+
+        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:
+
 2021-09-29  Antti Koivisto  <[email protected]>
 
         [CSS Cascade Layers] Add fonts and keyframes in cascade layer order

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html (283218 => 283219)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html	2021-09-29 15:36:28 UTC (rev 283218)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html	2021-09-29 15:38:11 UTC (rev 283219)
@@ -183,7 +183,7 @@
     let text = rules[7].cssText;
     let rule = rules[7];
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -190,7 +190,7 @@
     let text = rules[8].cssText;
     let rule = rules[8];
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -197,7 +197,7 @@
     let text = rules[9].cssText;
     let rule = rules[9];
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -204,7 +204,7 @@
     let text = rules[10].cssText;
     let rule = rules[10];
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -211,7 +211,7 @@
     let text = rules[11].cssText;
     let rule = rules[11];
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -218,7 +218,7 @@
     let text = rules[12].cssText;
     let rule = rules[12];
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -233,8 +233,8 @@
     let rule = rules[14];
     assert_equals(text.indexOf("base-palette"), -1);
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
     assert_equals(rule.basePalette, "");
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -242,8 +242,8 @@
     let rule = rules[15];
     assert_equals(text.indexOf("base-palette"), -1);
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
     assert_equals(rule.basePalette, "");
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -251,8 +251,8 @@
     let rule = rules[16];
     assert_equals(text.indexOf("base-palette"), -1);
     assert_equals(text.indexOf("override-colors"), -1);
-    assert_equals(rule.size, 0);
     assert_equals(rule.basePalette, "");
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -264,8 +264,8 @@
     let rule = rules[17];
     assert_equals(text.indexOf("base-palette"), -1);
     assert_equals(text.indexOf("override-color"), -1);
-    assert_equals(rule.size, 0);
     assert_equals(rule.basePalette, "");
+    assert_equals(rule.overrideColors, "");
 });
 </script>
 </body>

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html (283218 => 283219)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html	2021-09-29 15:36:28 UTC (rev 283218)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html	2021-09-29 15:38:11 UTC (rev 283219)
@@ -111,7 +111,7 @@
     assert_equals(rule.name, "A");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -124,7 +124,7 @@
     assert_equals(rule.name, "B");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -144,7 +144,7 @@
     assert_equals(rule.name, "C");
     assert_equals(rule.fontFamily, "bar");
     assert_equals(rule.basePalette, "2");
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "\"b\" rgb(17, 34, 51)");
 });
 
 test(function() {
@@ -162,9 +162,9 @@
     assert_equals(rule.name, "D");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "bar");
-    assert_equals(rule.size, 1);
-    assert_equals(rule.get(7), undefined);
-    assert_not_equals(rule.get(4).indexOf("rgb"), -1);
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_equals(rule.overrideColors.indexOf("4 "), 0);
+    assert_not_equals(rule.overrideColors.indexOf("rgb"), -1);
 });
 
 test(function() {
@@ -178,9 +178,9 @@
     assert_equals(rule.name, "E");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_equals(rule.get(7), undefined);
-    assert_not_equals(rule.get(3).indexOf("102"), -1);
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_equals(rule.overrideColors.indexOf("3 "), 0);
+    assert_not_equals(rule.overrideColors.indexOf("102"), -1);
 });
 
 test(function() {
@@ -193,7 +193,7 @@
     assert_equals(rule.name, "F");
     assert_equals(rule.fontFamily, "foo");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 0);
+    assert_equals(rule.overrideColors, "");
 });
 
 test(function() {
@@ -207,10 +207,11 @@
     assert_equals(rule.name, "G");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 2);
-    assert_equals(rule.get(7), undefined);
-    assert_not_equals(rule.get(3).indexOf("51"), -1);
-    assert_not_equals(rule.get(4).indexOf("102"), -1);
+    assert_equals(rule.overrideColors.split("),").length, 2);
+    assert_equals(rule.overrideColors.indexOf("3 "), 0);
+    assert_not_equals(rule.overrideColors.indexOf("), 4 "), -1);
+    assert_not_equals(rule.overrideColors.indexOf("51"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("102"), -1);
 });
 
 test(function() {
@@ -224,10 +225,11 @@
     assert_equals(rule.name, "H");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_equals(rule.get(7), undefined);
-    assert_not_equals(rule.get(3).indexOf("102"), -1);
-    assert_equals(rule.get(4), undefined);
+    assert_not_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_equals(rule.overrideColors.indexOf("3 "), 0);
+    assert_not_equals(rule.overrideColors.indexOf("), 3 "), -1);
+    assert_not_equals(rule.overrideColors.indexOf("51"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("102"), -1);
 });
 
 test(function() {
@@ -241,8 +243,8 @@
     assert_equals(rule.name, "I");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_equals(rule.get(0), "rgb(0, 0, 255)");
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("rgb(0, 0, 255)"), -1);
 });
 
 test(function() {
@@ -256,8 +258,8 @@
     assert_equals(rule.name, "J");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_equals(rule.get(0), "rgb(0, 128, 0)");
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("rgb(0, 128, 0)"), -1);
 });
 
 test(function() {
@@ -271,8 +273,8 @@
     assert_equals(rule.name, "K");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_equals(rule.get(0), "rgba(0, 0, 0, 0)");
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("rgba(0, 0, 0, 0)"), -1);
 });
 
 test(function() {
@@ -286,8 +288,8 @@
     assert_equals(rule.name, "L");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_not_equals(rule.get(0).indexOf("2"), -1);
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("2"), -1);
 });
 
 test(function() {
@@ -301,8 +303,8 @@
     assert_equals(rule.name, "M");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_not_equals(rule.get(0).indexOf("lab"), -1);
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("lab"), -1);
 });
 
 test(function() {
@@ -316,8 +318,8 @@
     assert_equals(rule.name, "N");
     assert_equals(rule.fontFamily, "");
     assert_equals(rule.basePalette, "");
-    assert_equals(rule.size, 1);
-    assert_not_equals(rule.get(0).indexOf("display-p3"), -1);
+    assert_equals(rule.overrideColors.indexOf("),"), -1);
+    assert_not_equals(rule.overrideColors.indexOf("display-p3"), -1);
 });
 </script>
 </body>

Modified: trunk/Source/WebCore/ChangeLog (283218 => 283219)


--- trunk/Source/WebCore/ChangeLog	2021-09-29 15:36:28 UTC (rev 283218)
+++ trunk/Source/WebCore/ChangeLog	2021-09-29 15:38:11 UTC (rev 283219)
@@ -1,3 +1,26 @@
+2021-09-29  Myles C. Maxfield  <[email protected]>
+
+        CSSFontPaletteValuesRule should not be maplike
+        https://bugs.webkit.org/show_bug.cgi?id=230793
+        <rdar://problem/83530242>
+
+        Reviewed by Wenson Hsieh.
+
+        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:
+
 2021-09-29  Eric Carlson  <[email protected]>
 
         [Cocoa] Support in-band chapter tracks

Modified: trunk/Source/WebCore/css/CSSFontPaletteValuesRule.cpp (283218 => 283219)


--- trunk/Source/WebCore/css/CSSFontPaletteValuesRule.cpp	2021-09-29 15:36:28 UTC (rev 283218)
+++ trunk/Source/WebCore/css/CSSFontPaletteValuesRule.cpp	2021-09-29 15:38:11 UTC (rev 283219)
@@ -58,9 +58,9 @@
 
 String CSSFontPaletteValuesRule::basePalette() const
 {
-    return WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&](unsigned index) {
+    return WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) {
         return makeString(index);
-    }, [&](const AtomString& basePalette) -> String {
+    }, [&] (const AtomString& basePalette) -> String {
         if (!basePalette.isNull())
             return basePalette.string();
         return StringImpl::empty();
@@ -67,13 +67,21 @@
     });
 }
 
-void CSSFontPaletteValuesRule::initializeMapLike(DOMMapAdapter& map)
-{
-    for (auto& pair : m_fontPaletteValuesRule->overrideColors()) {
-        if (!WTF::holds_alternative<unsigned>(pair.first))
-            continue;
-        map.set<IDLUnsignedLong, IDLUSVString>(WTF::get<unsigned>(pair.first), serializationForCSS(pair.second));
+String CSSFontPaletteValuesRule::overrideColors() const
+{     
+    StringBuilder result;
+    for (size_t i = 0; i < m_fontPaletteValuesRule->overrideColors().size(); ++i) {
+        if (i)
+            result.append(", ");
+        const auto& item = m_fontPaletteValuesRule->overrideColors()[i];
+        WTF::switchOn(item.first, [&] (const AtomString& string) {
+            result.append(serializeString(string));
+        }, [&] (int64_t index) {
+            result.append(index);
+        });
+        result.append(' ', serializationForCSS(item.second));
     }
+    return result.toString();
 }
 
 String CSSFontPaletteValuesRule::cssText() const
@@ -82,9 +90,9 @@
     builder.append("@font-palette-values ", m_fontPaletteValuesRule->name(), " { ");
     if (!m_fontPaletteValuesRule->fontFamily().isNull())
         builder.append("font-family: ", m_fontPaletteValuesRule->fontFamily(), "; ");
-    WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&](unsigned index) {
+    WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) {
         builder.append("base-palette: ", index, "; ");
-    }, [&](const AtomString& basePalette) {
+    }, [&] (const AtomString& basePalette) {
         if (!basePalette.isNull())
             builder.append("base-palette: ", serializeString(basePalette.string()), "; ");
     });
@@ -94,9 +102,9 @@
             if (i)
                 builder.append(',');
             builder.append(' ');
-            WTF::switchOn(m_fontPaletteValuesRule->overrideColors()[i].first, [&](const AtomString& name) {
+            WTF::switchOn(m_fontPaletteValuesRule->overrideColors()[i].first, [&] (const AtomString& name) {
                 builder.append(serializeString(name.string()));
-            }, [&](unsigned index) {
+            }, [&] (unsigned index) {
                 builder.append(index);
             });
             builder.append(' ', serializationForCSS(m_fontPaletteValuesRule->overrideColors()[i].second));

Modified: trunk/Source/WebCore/css/CSSFontPaletteValuesRule.h (283218 => 283219)


--- trunk/Source/WebCore/css/CSSFontPaletteValuesRule.h	2021-09-29 15:36:28 UTC (rev 283218)
+++ trunk/Source/WebCore/css/CSSFontPaletteValuesRule.h	2021-09-29 15:38:11 UTC (rev 283219)
@@ -45,9 +45,8 @@
     String name() const;
     String fontFamily() const;
     String basePalette() const;
+    String overrideColors() const;
 
-    void initializeMapLike(DOMMapAdapter&);
-
 private:
     CSSFontPaletteValuesRule(StyleRuleFontPaletteValues&, CSSStyleSheet* parent);
 

Modified: trunk/Source/WebCore/css/CSSFontPaletteValuesRule.idl (283218 => 283219)


--- trunk/Source/WebCore/css/CSSFontPaletteValuesRule.idl	2021-09-29 15:36:28 UTC (rev 283218)
+++ trunk/Source/WebCore/css/CSSFontPaletteValuesRule.idl	2021-09-29 15:38:11 UTC (rev 283219)
@@ -22,9 +22,9 @@
 [
     Exposed=Window
 ] interface CSSFontPaletteValuesRule : CSSRule {
-    readonly maplike<unsigned long, CSSOMString>;
     readonly attribute CSSOMString name;
     readonly attribute CSSOMString fontFamily;
     readonly attribute CSSOMString basePalette;
+    readonly attribute CSSOMString overrideColors;
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to