Changeset 283219 in webkit
- Timestamp:
- Sep 29, 2021 8:38:11 AM (10 months ago)
- Location:
- trunk
- Files:
-
- 7 edited
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html (modified) (10 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html (modified) (14 diffs)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/css/CSSFontPaletteValuesRule.cpp (modified) (4 diffs)
-
Source/WebCore/css/CSSFontPaletteValuesRule.h (modified) (1 diff)
-
Source/WebCore/css/CSSFontPaletteValuesRule.idl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r283216 r283219 1 2021-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 1 14 2021-09-29 Antti Koivisto <antti@apple.com> 2 15 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html
r283188 r283219 184 184 let rule = rules[7]; 185 185 assert_equals(text.indexOf("override-colors"), -1); 186 assert_equals(rule. size, 0);186 assert_equals(rule.overrideColors, ""); 187 187 }); 188 188 … … 191 191 let rule = rules[8]; 192 192 assert_equals(text.indexOf("override-colors"), -1); 193 assert_equals(rule. size, 0);193 assert_equals(rule.overrideColors, ""); 194 194 }); 195 195 … … 198 198 let rule = rules[9]; 199 199 assert_equals(text.indexOf("override-colors"), -1); 200 assert_equals(rule. size, 0);200 assert_equals(rule.overrideColors, ""); 201 201 }); 202 202 … … 205 205 let rule = rules[10]; 206 206 assert_equals(text.indexOf("override-colors"), -1); 207 assert_equals(rule. size, 0);207 assert_equals(rule.overrideColors, ""); 208 208 }); 209 209 … … 212 212 let rule = rules[11]; 213 213 assert_equals(text.indexOf("override-colors"), -1); 214 assert_equals(rule. size, 0);214 assert_equals(rule.overrideColors, ""); 215 215 }); 216 216 … … 219 219 let rule = rules[12]; 220 220 assert_equals(text.indexOf("override-colors"), -1); 221 assert_equals(rule. size, 0);221 assert_equals(rule.overrideColors, ""); 222 222 }); 223 223 … … 234 234 assert_equals(text.indexOf("base-palette"), -1); 235 235 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, ""); 238 238 }); 239 239 … … 243 243 assert_equals(text.indexOf("base-palette"), -1); 244 244 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, ""); 247 247 }); 248 248 … … 252 252 assert_equals(text.indexOf("base-palette"), -1); 253 253 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, ""); 256 256 }); 257 257 … … 265 265 assert_equals(text.indexOf("base-palette"), -1); 266 266 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, ""); 269 269 }); 270 270 </script> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html
r283188 r283219 112 112 assert_equals(rule.fontFamily, ""); 113 113 assert_equals(rule.basePalette, ""); 114 assert_equals(rule. size, 0);114 assert_equals(rule.overrideColors, ""); 115 115 }); 116 116 … … 125 125 assert_equals(rule.fontFamily, ""); 126 126 assert_equals(rule.basePalette, ""); 127 assert_equals(rule. size, 0);127 assert_equals(rule.overrideColors, ""); 128 128 }); 129 129 … … 145 145 assert_equals(rule.fontFamily, "bar"); 146 146 assert_equals(rule.basePalette, "2"); 147 assert_equals(rule. size, 0);147 assert_equals(rule.overrideColors, "\"b\" rgb(17, 34, 51)"); 148 148 }); 149 149 … … 163 163 assert_equals(rule.fontFamily, ""); 164 164 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); 168 168 }); 169 169 … … 179 179 assert_equals(rule.fontFamily, ""); 180 180 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); 184 184 }); 185 185 … … 194 194 assert_equals(rule.fontFamily, "foo"); 195 195 assert_equals(rule.basePalette, ""); 196 assert_equals(rule. size, 0);196 assert_equals(rule.overrideColors, ""); 197 197 }); 198 198 … … 208 208 assert_equals(rule.fontFamily, ""); 209 209 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); 214 215 }); 215 216 … … 225 226 assert_equals(rule.fontFamily, ""); 226 227 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); 231 233 }); 232 234 … … 242 244 assert_equals(rule.fontFamily, ""); 243 245 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); 246 248 }); 247 249 … … 257 259 assert_equals(rule.fontFamily, ""); 258 260 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); 261 263 }); 262 264 … … 272 274 assert_equals(rule.fontFamily, ""); 273 275 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); 276 278 }); 277 279 … … 287 289 assert_equals(rule.fontFamily, ""); 288 290 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); 291 293 }); 292 294 … … 302 304 assert_equals(rule.fontFamily, ""); 303 305 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); 306 308 }); 307 309 … … 317 319 assert_equals(rule.fontFamily, ""); 318 320 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); 321 323 }); 322 324 </script> -
trunk/Source/WebCore/ChangeLog
r283217 r283219 1 2021-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 1 24 2021-09-29 Eric Carlson <eric.carlson@apple.com> 2 25 -
trunk/Source/WebCore/css/CSSFontPaletteValuesRule.cpp
r283188 r283219 59 59 String CSSFontPaletteValuesRule::basePalette() const 60 60 { 61 return WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) {61 return WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) { 62 62 return makeString(index); 63 }, [&] (const AtomString& basePalette) -> String {63 }, [&] (const AtomString& basePalette) -> String { 64 64 if (!basePalette.isNull()) 65 65 return basePalette.string(); … … 68 68 } 69 69 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)); 70 String 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)); 76 83 } 84 return result.toString(); 77 85 } 78 86 … … 83 91 if (!m_fontPaletteValuesRule->fontFamily().isNull()) 84 92 builder.append("font-family: ", m_fontPaletteValuesRule->fontFamily(), "; "); 85 WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) {93 WTF::switchOn(m_fontPaletteValuesRule->basePalette(), [&] (unsigned index) { 86 94 builder.append("base-palette: ", index, "; "); 87 }, [&] (const AtomString& basePalette) {95 }, [&] (const AtomString& basePalette) { 88 96 if (!basePalette.isNull()) 89 97 builder.append("base-palette: ", serializeString(basePalette.string()), "; "); … … 95 103 builder.append(','); 96 104 builder.append(' '); 97 WTF::switchOn(m_fontPaletteValuesRule->overrideColors()[i].first, [&] (const AtomString& name) {105 WTF::switchOn(m_fontPaletteValuesRule->overrideColors()[i].first, [&] (const AtomString& name) { 98 106 builder.append(serializeString(name.string())); 99 }, [&] (unsigned index) {107 }, [&] (unsigned index) { 100 108 builder.append(index); 101 109 }); -
trunk/Source/WebCore/css/CSSFontPaletteValuesRule.h
r283140 r283219 46 46 String fontFamily() const; 47 47 String basePalette() const; 48 49 void initializeMapLike(DOMMapAdapter&); 48 String overrideColors() const; 50 49 51 50 private: -
trunk/Source/WebCore/css/CSSFontPaletteValuesRule.idl
r283140 r283219 23 23 Exposed=Window 24 24 ] interface CSSFontPaletteValuesRule : CSSRule { 25 readonly maplike<unsigned long, CSSOMString>;26 25 readonly attribute CSSOMString name; 27 26 readonly attribute CSSOMString fontFamily; 28 27 readonly attribute CSSOMString basePalette; 28 readonly attribute CSSOMString overrideColors; 29 29 }; 30 30
Note: See TracChangeset
for help on using the changeset viewer.