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/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));