Changeset 230838 in webkit
- Timestamp:
- Apr 20, 2018 5:08:45 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r230829 r230838 1 2018-04-20 Chris Nardi <cnardi@chromium.org> 2 3 Omit default value when serializing font-feature-settings 4 https://bugs.webkit.org/show_bug.cgi?id=182382 5 6 Reviewed by Myles C. Maxfield. 7 8 Update tests to omit default value when serializing. 9 10 * css3/font-feature-settings-parsing-expected.txt: 11 * css3/font-feature-settings-parsing.html: 12 * fast/css/inherited-properties-rare-text-expected.txt: 13 * fast/text/font-face-javascript-expected.txt: 14 * fast/text/font-face-javascript.html: 15 1 16 2018-04-19 Dirk Schulze <krit@webkit.org> 2 17 -
trunk/LayoutTests/css3/font-feature-settings-parsing-expected.txt
r227862 r230838 6 6 - Tests valid inputs. 7 7 PASS canonicalize(parseResultOf("valid_normal")) is "normal" 8 PASS canonicalize(parseResultOf("valid_value_1")) is "\"dlig\" 1"8 PASS canonicalize(parseResultOf("valid_value_1")) is "\"dlig\"" 9 9 PASS canonicalize(parseResultOf("valid_value_2")) is "\"swsh\" 2" 10 PASS canonicalize(parseResultOf("valid_value_on")) is "\"smcp\" 1"10 PASS canonicalize(parseResultOf("valid_value_on")) is "\"smcp\"" 11 11 PASS canonicalize(parseResultOf("valid_value_off")) is "\"liga\" 0" 12 PASS canonicalize(parseResultOf("valid_value_omit")) is "\"c2sc\" 1"13 PASS canonicalize(parseResultOf("valid_valuelist")) is "\"hist\" 1, \"tnum\" 1"14 PASS canonicalize(parseResultOf("valid_singlequote")) is "\"pkrn\" 1"15 PASS canonicalize(parseResultOf("valid_unusual_tag")) is "\"!@#$\" 1"16 PASS canonicalize(parseResultOf("valid_tag_space")) is "\"a bc\" 1"17 PASS canonicalize(parseResultOf("valid_composite")) is "\"dlig\" 1, \"lig \" 0, \"smcp\" 1"12 PASS canonicalize(parseResultOf("valid_value_omit")) is "\"c2sc\"" 13 PASS canonicalize(parseResultOf("valid_valuelist")) is "\"hist\", \"tnum\"" 14 PASS canonicalize(parseResultOf("valid_singlequote")) is "\"pkrn\"" 15 PASS canonicalize(parseResultOf("valid_unusual_tag")) is "\"!@#$\"" 16 PASS canonicalize(parseResultOf("valid_tag_space")) is "\"a bc\"" 17 PASS canonicalize(parseResultOf("valid_composite")) is "\"dlig\", \"lig \" 0, \"smcp\"" 18 18 - Tests invalid inputs. Results should be "normal". 19 19 PASS parseResultOf("invalid_ident") is "normal" … … 35 35 PASS parseResultOf("invalid_0") is "normal" 36 36 - Tests inherit. 37 PASS canonicalize(parseResultOf("outer")) is "\"dlig\" 1"38 PASS canonicalize(parseResultOf("inner")) is "\"dlig\" 1"37 PASS canonicalize(parseResultOf("outer")) is "\"dlig\"" 38 PASS canonicalize(parseResultOf("inner")) is "\"dlig\"" 39 39 - Tests @font-face. 40 PASS canonicalize(fontFaceRuleValid) is "\"liga\" 1"40 PASS canonicalize(fontFaceRuleValid) is "\"liga\"" 41 41 PASS fontFaceRuleInvalid is "" 42 42 PASS successfullyParsed is true -
trunk/LayoutTests/css3/font-feature-settings-parsing.html
r227862 r230838 185 185 debug('- Tests valid inputs.'); 186 186 shouldBeEqualToString('canonicalize(parseResultOf("valid_normal"))', canonicalize("normal")); 187 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_1"))', canonicalize("\"dlig\" 1"));187 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_1"))', canonicalize("\"dlig\"")); 188 188 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_2"))', canonicalize("\"swsh\" 2")); 189 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_on"))', canonicalize("\"smcp\" 1"));189 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_on"))', canonicalize("\"smcp\"")); 190 190 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_off"))', canonicalize("\"liga\" 0")); 191 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_omit"))', canonicalize("\"c2sc\" 1"));192 shouldBeEqualToString('canonicalize(parseResultOf("valid_valuelist"))', canonicalize("\"tnum\" 1, \"hist\" 1"));193 shouldBeEqualToString('canonicalize(parseResultOf("valid_singlequote"))', canonicalize("\"PKRN\" 1"));194 shouldBeEqualToString('canonicalize(parseResultOf("valid_unusual_tag"))', canonicalize("\"!@#$\" 1"));195 shouldBeEqualToString('canonicalize(parseResultOf("valid_tag_space"))', canonicalize("\"a bc\" 1"));196 shouldBeEqualToString('canonicalize(parseResultOf("valid_composite"))', canonicalize("\"dlig\" 1, \"smcp\" 1, \"lig \" 0"));191 shouldBeEqualToString('canonicalize(parseResultOf("valid_value_omit"))', canonicalize("\"c2sc\"")); 192 shouldBeEqualToString('canonicalize(parseResultOf("valid_valuelist"))', canonicalize("\"tnum\", \"hist\"")); 193 shouldBeEqualToString('canonicalize(parseResultOf("valid_singlequote"))', canonicalize("\"PKRN\"")); 194 shouldBeEqualToString('canonicalize(parseResultOf("valid_unusual_tag"))', canonicalize("\"!@#$\"")); 195 shouldBeEqualToString('canonicalize(parseResultOf("valid_tag_space"))', canonicalize("\"a bc\"")); 196 shouldBeEqualToString('canonicalize(parseResultOf("valid_composite"))', canonicalize("\"dlig\", \"smcp\", \"lig \" 0")); 197 197 198 198 debug('- Tests invalid inputs. Results should be "normal".'); … … 216 216 217 217 debug('- Tests inherit.'); 218 shouldBeEqualToString('canonicalize(parseResultOf("outer"))', canonicalize("\"dlig\" 1"));219 shouldBeEqualToString('canonicalize(parseResultOf("inner"))', canonicalize("\"dlig\" 1"));218 shouldBeEqualToString('canonicalize(parseResultOf("outer"))', canonicalize("\"dlig\"")); 219 shouldBeEqualToString('canonicalize(parseResultOf("inner"))', canonicalize("\"dlig\"")); 220 220 221 221 debug('- Tests @font-face.'); 222 222 var fontFaceRuleValid = document.styleSheets[1].cssRules[0].style['font-feature-settings']; 223 223 var fontFaceRuleInvalid = document.styleSheets[1].cssRules[1].style['font-feature-settings']; 224 shouldBeEqualToString('canonicalize(fontFaceRuleValid)', canonicalize("\"liga\" 1"));224 shouldBeEqualToString('canonicalize(fontFaceRuleValid)', canonicalize("\"liga\"")); 225 225 shouldBeEqualToString('fontFaceRuleInvalid', ""); 226 226 -
trunk/LayoutTests/fast/css/inherited-properties-rare-text-expected.txt
r227862 r230838 1 test1 font-feature-settings: "dlig" 11 test1 font-feature-settings: "dlig" 2 2 test2 font-feature-settings: normal 3 3 test1 -webkit-font-smoothing: antialiased -
trunk/LayoutTests/fast/text/font-face-javascript-expected.txt
r227862 r230838 23 23 PASS new FontFace('family_name', 'url(\'asdf\')', {'variant': 'small-caps'}).variant is "small-caps" 24 24 PASS new FontFace('family_name', 'url(\'asdf\')', {'variant': 'small-caps common-ligatures'}).variant is "common-ligatures small-caps" 25 PASS new FontFace('family_name', 'url(\'asdf\')', {'featureSettings': '\'titl\''}).featureSettings is "\"titl\" 1"25 PASS new FontFace('family_name', 'url(\'asdf\')', {'featureSettings': '\'titl\''}).featureSettings is "\"titl\"" 26 26 PASS everything.style is "italic" 27 27 PASS everything.weight is "bold" … … 29 29 PASS everything.unicodeRange is "U+26-26" 30 30 PASS everything.variant is "small-caps" 31 PASS everything.featureSettings is "\"titl\" 1"31 PASS everything.featureSettings is "\"titl\"" 32 32 PASS everything.family is "other_family_name" 33 33 PASS everything.style is "normal" … … 36 36 PASS everything.unicodeRange is "U+0-7f" 37 37 PASS everything.variant is "stacked-fractions" 38 PASS everything.featureSettings is "\"smcp\" 1"38 PASS everything.featureSettings is "\"smcp\"" 39 39 PASS new FontFace('family_name', 'url(\'asdf\')', {}) did not throw exception. 40 40 PASS new FontFace('family_name', newArrayBuffer, {}) did not throw exception. -
trunk/LayoutTests/fast/text/font-face-javascript.html
r227862 r230838 31 31 shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'variant': 'small-caps'}).variant", "small-caps"); 32 32 shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'variant': 'small-caps common-ligatures'}).variant", "common-ligatures small-caps"); 33 shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'featureSettings': '\\'titl\\''}).featureSettings", "\"titl\" 1");33 shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'featureSettings': '\\'titl\\''}).featureSettings", "\"titl\""); 34 34 35 35 var everything = new FontFace('family_name', 'url(\'asdf\')', {'style': 'italic', 'weight': 'bold', 'stretch': 'extra-expanded', 'unicodeRange': 'U+26', 'variant': 'small-caps', 'featureSettings': '\'titl\''}); … … 39 39 shouldBeEqualToString("everything.unicodeRange", "U+26-26"); 40 40 shouldBeEqualToString("everything.variant", "small-caps"); 41 shouldBeEqualToString("everything.featureSettings", "\"titl\" 1");41 shouldBeEqualToString("everything.featureSettings", "\"titl\""); 42 42 43 43 everything.family = "other_family_name"; … … 54 54 shouldBeEqualToString("everything.variant", "stacked-fractions"); 55 55 everything.featureSettings = "'smcp'"; 56 shouldBeEqualToString("everything.featureSettings", "\"smcp\" 1");56 shouldBeEqualToString("everything.featureSettings", "\"smcp\""); 57 57 58 58 shouldNotThrow("new FontFace('family_name', 'url(\\'asdf\\')', {})"); -
trunk/Source/WebCore/ChangeLog
r230836 r230838 1 2018-04-20 Chris Nardi <cnardi@chromium.org> 2 3 Omit default value when serializing font-feature-settings 4 https://bugs.webkit.org/show_bug.cgi?id=182382 5 6 Reviewed by Myles C. Maxfield. 7 8 According to the shortest-serialization principle [1], values should be omitted if their omission 9 wouldn't change the value of reparsing. As "1"/"on" is the default value for font-feature-settings, 10 omit this when serializing, matching the behavior of Firefox and Chrome. 11 12 [1]: https://github.com/w3c/csswg-drafts/issues/1564 13 14 Updated css3/font-feature-settings-parsing.html, fast/css/inherited-properties-rare-text.html, 15 and fast/text/font-face-javascript.html. 16 17 * css/CSSFontFeatureValue.cpp: 18 (WebCore::CSSFontFeatureValue::customCSSText const): 19 1 20 2018-04-19 Alexey Proskuryakov <ap@apple.com> 2 21 -
trunk/Source/WebCore/css/CSSFontFeatureValue.cpp
r227862 r230838 45 45 for (char c : m_tag) 46 46 builder.append(c); 47 builder.appendLiteral("\" "); 48 builder.appendNumber(m_value); 47 builder.append('"'); 48 // Omit the value if it's 1 as 1 is implied by default. 49 if (m_value != 1) { 50 builder.append(' '); 51 builder.appendNumber(m_value); 52 } 49 53 return builder.toString(); 50 54 }
Note: See TracChangeset
for help on using the changeset viewer.