diff --git a/Libraries/LibWeb/CSS/CSSStyleProperties.cpp b/Libraries/LibWeb/CSS/CSSStyleProperties.cpp index 8006c40e511..0f440524bc7 100644 --- a/Libraries/LibWeb/CSS/CSSStyleProperties.cpp +++ b/Libraries/LibWeb/CSS/CSSStyleProperties.cpp @@ -1077,20 +1077,31 @@ WebIDL::ExceptionOr CSSStyleProperties::remove_property(StringView prope // 3. Let value be the return value of invoking getPropertyValue() with property as argument. auto value = get_property_value(property_name); - // 4. Let removed be false. - bool removed = false; + Function remove_declaration = [&](auto property_id) { + // 4. Let removed be false. + bool removed = false; - // FIXME: 5. If property is a shorthand property, for each longhand property longhand that property maps to: - // 1. If longhand is not a property name of a CSS declaration in the declarations, continue. - // 2. Remove that CSS declaration and let removed be true. + // 5. If property is a shorthand property, for each longhand property longhand that property maps to: + if (property_is_shorthand(property_id)) { + for (auto longhand_property_id : longhands_for_shorthand(property_id)) { + // 1. If longhand is not a property name of a CSS declaration in the declarations, continue. + // 2. Remove that CSS declaration and let removed be true. + removed |= remove_declaration(longhand_property_id); + } + } else { + // 6. Otherwise, if property is a case-sensitive match for a property name of a CSS declaration in the declarations, remove that CSS declaration and let removed be true. + if (property_id == PropertyID::Custom) { + auto custom_name = FlyString::from_utf8_without_validation(property_name.bytes()); + removed = m_custom_properties.remove(custom_name); + } else { + removed = m_properties.remove_first_matching([&](auto& entry) { return entry.property_id == property_id; }); + } + } - // 6. Otherwise, if property is a case-sensitive match for a property name of a CSS declaration in the declarations, remove that CSS declaration and let removed be true. - if (property_id == PropertyID::Custom) { - auto custom_name = FlyString::from_utf8_without_validation(property_name.bytes()); - removed = m_custom_properties.remove(custom_name); - } else { - removed = m_properties.remove_first_matching([&](auto& entry) { return entry.property_id == property_id; }); - } + return removed; + }; + + auto removed = remove_declaration(property_id.value()); // 7. If removed is true, Update style attribute for the CSS declaration block. if (removed) { diff --git a/Tests/LibWeb/Text/expected/css/remove-property-shortand.txt b/Tests/LibWeb/Text/expected/css/remove-property-shortand.txt new file mode 100644 index 00000000000..7ef22e9a431 --- /dev/null +++ b/Tests/LibWeb/Text/expected/css/remove-property-shortand.txt @@ -0,0 +1 @@ +PASS diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-computed.txt index 18db5864058..32592e070f8 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-computed.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-computed.txt @@ -2,8 +2,8 @@ Harness status: OK Found 315 tests -278 Pass -37 Fail +244 Pass +71 Fail Pass caption should be a supported system font. Pass icon should be a supported system font. Pass menu should be a supported system font. @@ -17,7 +17,7 @@ Pass Property font value 'normal normal normal larger/calc(120% + 1.2em) fantasy Pass Property font value 'normal normal normal normal smaller monospace' Pass Property font value 'normal normal normal italic 10px/normal Menu' Pass Property font value 'normal normal normal small-caps 20%/1.2 "Non-Generic Example Family Name"' -Pass Property font value 'normal normal normal bold calc(30% - 40px)/calc(120% + 1.2em) serif' +Fail Property font value 'normal normal normal bold calc(30% - 40px)/calc(120% + 1.2em) serif' Pass Property font value 'normal normal normal ultra-condensed xx-small sans-serif' Pass Property font value 'normal normal italic medium/normal cursive' Pass Property font value 'normal normal italic normal xx-large/1.2 fantasy' @@ -25,7 +25,7 @@ Pass Property font value 'normal normal italic small-caps larger/calc(120% + 1.2 Pass Property font value 'normal normal italic bolder smaller Menu' Pass Property font value 'normal normal italic extra-condensed 10px/normal "Non-Generic Example Family Name"' Pass Property font value 'normal normal small-caps 20%/1.2 serif' -Pass Property font value 'normal normal small-caps normal calc(30% - 40px)/calc(120% + 1.2em) sans-serif' +Fail Property font value 'normal normal small-caps normal calc(30% - 40px)/calc(120% + 1.2em) sans-serif' Pass Property font value 'normal normal small-caps italic xx-small cursive' Fail Property font value 'normal normal small-caps lighter medium/normal fantasy' Pass Property font value 'normal normal small-caps condensed xx-large/1.2 monospace' @@ -41,7 +41,7 @@ Pass Property font value 'normal normal ultra-expanded small-caps larger/calc(12 Pass Property font value 'normal normal ultra-condensed 100 smaller serif' Pass Property font value 'normal italic 10px/normal sans-serif' Pass Property font value 'normal italic normal 20%/1.2 cursive' -Pass Property font value 'normal italic normal normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' +Fail Property font value 'normal italic normal normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' Pass Property font value 'normal italic normal small-caps xx-small monospace' Pass Property font value 'normal italic normal 900 medium/normal Menu' Pass Property font value 'normal italic normal extra-condensed xx-large/1.2 "Non-Generic Example Family Name"' @@ -49,7 +49,7 @@ Pass Property font value 'normal italic small-caps larger/calc(120% + 1.2em) ser Pass Property font value 'normal italic small-caps normal smaller sans-serif' Pass Property font value 'normal italic small-caps bold 10px/normal cursive' Pass Property font value 'normal italic small-caps condensed 20%/1.2 fantasy' -Pass Property font value 'normal italic bolder calc(30% - 40px)/calc(120% + 1.2em) monospace' +Fail Property font value 'normal italic bolder calc(30% - 40px)/calc(120% + 1.2em) monospace' Fail Property font value 'normal italic lighter normal xx-small Menu' Pass Property font value 'normal italic 100 small-caps medium/normal "Non-Generic Example Family Name"' Pass Property font value 'normal italic 900 semi-condensed xx-large/1.2 serif' @@ -57,7 +57,7 @@ Pass Property font value 'normal italic semi-expanded larger/calc(120% + 1.2em) Pass Property font value 'normal italic expanded normal smaller cursive' Pass Property font value 'normal italic extra-expanded small-caps 10px/normal fantasy' Pass Property font value 'normal italic ultra-expanded bold 20%/1.2 monospace' -Pass Property font value 'normal small-caps calc(30% - 40px)/calc(120% + 1.2em) Menu' +Fail Property font value 'normal small-caps calc(30% - 40px)/calc(120% + 1.2em) Menu' Pass Property font value 'normal small-caps normal xx-small "Non-Generic Example Family Name"' Pass Property font value 'normal small-caps normal normal medium/normal serif' Pass Property font value 'normal small-caps normal italic xx-large/1.2 sans-serif' @@ -73,7 +73,7 @@ Pass Property font value 'normal small-caps bold italic larger/calc(120% + 1.2em Pass Property font value 'normal small-caps bolder condensed smaller monospace' Pass Property font value 'normal small-caps semi-condensed 10px/normal Menu' Pass Property font value 'normal small-caps semi-expanded normal 20%/1.2 "Non-Generic Example Family Name"' -Pass Property font value 'normal small-caps expanded italic calc(30% - 40px)/calc(120% + 1.2em) serif' +Fail Property font value 'normal small-caps expanded italic calc(30% - 40px)/calc(120% + 1.2em) serif' Fail Property font value 'normal small-caps extra-expanded lighter xx-small sans-serif' Pass Property font value 'normal 100 medium/normal cursive' Pass Property font value 'normal 900 normal xx-large/1.2 fantasy' @@ -81,7 +81,7 @@ Pass Property font value 'normal bold normal normal larger/calc(120% + 1.2em) mo Pass Property font value 'normal bolder normal italic smaller Menu' Fail Property font value 'normal lighter normal small-caps 10px/normal "Non-Generic Example Family Name"' Pass Property font value 'normal 100 normal ultra-expanded 20%/1.2 serif' -Pass Property font value 'normal 900 italic calc(30% - 40px)/calc(120% + 1.2em) sans-serif' +Fail Property font value 'normal 900 italic calc(30% - 40px)/calc(120% + 1.2em) sans-serif' Pass Property font value 'normal bold italic normal xx-small cursive' Pass Property font value 'normal bolder italic small-caps medium/normal fantasy' Fail Property font value 'normal lighter italic ultra-condensed xx-large/1.2 monospace' @@ -97,7 +97,7 @@ Pass Property font value 'normal extra-expanded larger/calc(120% + 1.2em) "Non-G Pass Property font value 'normal ultra-expanded normal smaller serif' Pass Property font value 'normal ultra-condensed normal normal 10px/normal sans-serif' Pass Property font value 'normal extra-condensed normal italic 20%/1.2 cursive' -Pass Property font value 'normal condensed normal small-caps calc(30% - 40px)/calc(120% + 1.2em) fantasy' +Fail Property font value 'normal condensed normal small-caps calc(30% - 40px)/calc(120% + 1.2em) fantasy' Pass Property font value 'normal semi-condensed normal bolder xx-small monospace' Pass Property font value 'normal semi-expanded italic medium/normal Menu' Pass Property font value 'normal expanded italic normal xx-large/1.2 "Non-Generic Example Family Name"' @@ -105,7 +105,7 @@ Pass Property font value 'normal extra-expanded italic small-caps larger/calc(12 Fail Property font value 'normal ultra-expanded italic lighter smaller sans-serif' Pass Property font value 'normal ultra-condensed small-caps 10px/normal cursive' Pass Property font value 'normal extra-condensed small-caps normal 20%/1.2 fantasy' -Pass Property font value 'normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace' +Fail Property font value 'normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace' Pass Property font value 'normal semi-condensed small-caps 100 xx-small Menu' Pass Property font value 'normal semi-expanded 900 medium/normal "Non-Generic Example Family Name"' Pass Property font value 'normal expanded bold normal xx-large/1.2 serif' @@ -113,7 +113,7 @@ Pass Property font value 'normal extra-expanded bolder italic larger/calc(120% + Fail Property font value 'normal ultra-expanded lighter small-caps smaller cursive' Pass Property font value 'italic 10px/normal fantasy' Pass Property font value 'italic normal 20%/1.2 monospace' -Pass Property font value 'italic normal normal calc(30% - 40px)/calc(120% + 1.2em) Menu' +Fail Property font value 'italic normal normal calc(30% - 40px)/calc(120% + 1.2em) Menu' Pass Property font value 'italic normal normal normal xx-small "Non-Generic Example Family Name"' Pass Property font value 'italic normal normal small-caps medium/normal serif' Pass Property font value 'italic normal normal 100 xx-large/1.2 sans-serif' @@ -121,7 +121,7 @@ Pass Property font value 'italic normal normal ultra-condensed larger/calc(120% Pass Property font value 'italic normal small-caps smaller fantasy' Pass Property font value 'italic normal small-caps normal 10px/normal monospace' Pass Property font value 'italic normal small-caps 900 20%/1.2 Menu' -Pass Property font value 'italic normal small-caps extra-condensed calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' +Fail Property font value 'italic normal small-caps extra-condensed calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' Pass Property font value 'italic normal bold xx-small serif' Pass Property font value 'italic normal bolder normal medium/normal sans-serif' Fail Property font value 'italic normal lighter small-caps xx-large/1.2 cursive' @@ -129,7 +129,7 @@ Pass Property font value 'italic normal 100 condensed larger/calc(120% + 1.2em) Pass Property font value 'italic normal semi-condensed smaller monospace' Pass Property font value 'italic normal semi-expanded normal 10px/normal Menu' Pass Property font value 'italic normal expanded small-caps 20%/1.2 "Non-Generic Example Family Name"' -Pass Property font value 'italic normal extra-expanded 900 calc(30% - 40px)/calc(120% + 1.2em) serif' +Fail Property font value 'italic normal extra-expanded 900 calc(30% - 40px)/calc(120% + 1.2em) serif' Pass Property font value 'italic small-caps xx-small sans-serif' Pass Property font value 'italic small-caps normal medium/normal cursive' Pass Property font value 'italic small-caps normal normal xx-large/1.2 fantasy' @@ -137,7 +137,7 @@ Pass Property font value 'italic small-caps normal bold larger/calc(120% + 1.2em Pass Property font value 'italic small-caps normal ultra-expanded smaller Menu' Pass Property font value 'italic small-caps bolder 10px/normal "Non-Generic Example Family Name"' Fail Property font value 'italic small-caps lighter normal 20%/1.2 serif' -Pass Property font value 'italic small-caps 100 ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) sans-serif' +Fail Property font value 'italic small-caps 100 ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) sans-serif' Pass Property font value 'italic small-caps extra-condensed xx-small cursive' Pass Property font value 'italic small-caps condensed normal medium/normal fantasy' Pass Property font value 'italic small-caps semi-condensed 900 xx-large/1.2 monospace' @@ -145,7 +145,7 @@ Pass Property font value 'italic bold larger/calc(120% + 1.2em) Menu' Pass Property font value 'italic bolder normal smaller "Non-Generic Example Family Name"' Fail Property font value 'italic lighter normal normal 10px/normal serif' Pass Property font value 'italic 100 normal small-caps 20%/1.2 sans-serif' -Pass Property font value 'italic 900 normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) cursive' +Fail Property font value 'italic 900 normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) cursive' Pass Property font value 'italic bold small-caps xx-small fantasy' Pass Property font value 'italic bolder small-caps normal medium/normal monospace' Fail Property font value 'italic lighter small-caps expanded xx-large/1.2 Menu' @@ -153,7 +153,7 @@ Pass Property font value 'italic 100 extra-expanded larger/calc(120% + 1.2em) "N Pass Property font value 'italic 900 ultra-expanded normal smaller serif' Pass Property font value 'italic bold ultra-condensed small-caps 10px/normal sans-serif' Pass Property font value 'italic extra-condensed 20%/1.2 cursive' -Pass Property font value 'italic condensed normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' +Fail Property font value 'italic condensed normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' Pass Property font value 'italic semi-condensed normal normal xx-small monospace' Pass Property font value 'italic semi-expanded normal small-caps medium/normal Menu' Pass Property font value 'italic expanded normal bolder xx-large/1.2 "Non-Generic Example Family Name"' @@ -161,7 +161,7 @@ Pass Property font value 'italic extra-expanded small-caps larger/calc(120% + 1. Pass Property font value 'italic ultra-expanded small-caps normal smaller sans-serif' Fail Property font value 'italic ultra-condensed small-caps lighter 10px/normal cursive' Pass Property font value 'italic extra-condensed 100 20%/1.2 fantasy' -Pass Property font value 'italic condensed 900 normal calc(30% - 40px)/calc(120% + 1.2em) monospace' +Fail Property font value 'italic condensed 900 normal calc(30% - 40px)/calc(120% + 1.2em) monospace' Pass Property font value 'italic semi-condensed bold small-caps xx-small Menu' Pass Property font value 'small-caps medium/normal "Non-Generic Example Family Name"' Pass Property font value 'small-caps normal xx-large/1.2 serif' @@ -169,7 +169,7 @@ Pass Property font value 'small-caps normal normal larger/calc(120% + 1.2em) san Pass Property font value 'small-caps normal normal normal smaller cursive' Pass Property font value 'small-caps normal normal italic 10px/normal fantasy' Pass Property font value 'small-caps normal normal bolder 20%/1.2 monospace' -Pass Property font value 'small-caps normal normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) Menu' +Fail Property font value 'small-caps normal normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) Menu' Pass Property font value 'small-caps normal italic xx-small "Non-Generic Example Family Name"' Pass Property font value 'small-caps normal italic normal medium/normal serif' Fail Property font value 'small-caps normal italic lighter xx-large/1.2 sans-serif' @@ -177,7 +177,7 @@ Pass Property font value 'small-caps normal italic expanded larger/calc(120% + 1 Pass Property font value 'small-caps normal 100 smaller fantasy' Pass Property font value 'small-caps normal 900 normal 10px/normal monospace' Pass Property font value 'small-caps normal bold italic 20%/1.2 Menu' -Pass Property font value 'small-caps normal bolder extra-expanded calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' +Fail Property font value 'small-caps normal bolder extra-expanded calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' Pass Property font value 'small-caps normal ultra-expanded xx-small serif' Pass Property font value 'small-caps normal ultra-condensed normal medium/normal sans-serif' Pass Property font value 'small-caps normal extra-condensed italic xx-large/1.2 cursive' @@ -185,7 +185,7 @@ Fail Property font value 'small-caps normal condensed lighter larger/calc(120% + Pass Property font value 'small-caps italic smaller monospace' Pass Property font value 'small-caps italic normal 10px/normal Menu' Pass Property font value 'small-caps italic normal normal 20%/1.2 "Non-Generic Example Family Name"' -Pass Property font value 'small-caps italic normal 100 calc(30% - 40px)/calc(120% + 1.2em) serif' +Fail Property font value 'small-caps italic normal 100 calc(30% - 40px)/calc(120% + 1.2em) serif' Pass Property font value 'small-caps italic normal semi-condensed xx-small sans-serif' Pass Property font value 'small-caps italic 900 medium/normal cursive' Pass Property font value 'small-caps italic bold normal xx-large/1.2 fantasy' @@ -193,7 +193,7 @@ Pass Property font value 'small-caps italic bolder semi-expanded larger/calc(120 Pass Property font value 'small-caps italic expanded smaller Menu' Pass Property font value 'small-caps italic extra-expanded normal 10px/normal "Non-Generic Example Family Name"' Fail Property font value 'small-caps italic ultra-expanded lighter 20%/1.2 serif' -Pass Property font value 'small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) sans-serif' +Fail Property font value 'small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) sans-serif' Pass Property font value 'small-caps 900 normal xx-small cursive' Pass Property font value 'small-caps bold normal normal medium/normal fantasy' Pass Property font value 'small-caps bolder normal italic xx-large/1.2 monospace' @@ -201,7 +201,7 @@ Fail Property font value 'small-caps lighter normal ultra-condensed larger/calc( Pass Property font value 'small-caps 100 italic smaller "Non-Generic Example Family Name"' Pass Property font value 'small-caps 900 italic normal 10px/normal serif' Pass Property font value 'small-caps bold italic extra-condensed 20%/1.2 sans-serif' -Pass Property font value 'small-caps bolder condensed calc(30% - 40px)/calc(120% + 1.2em) cursive' +Fail Property font value 'small-caps bolder condensed calc(30% - 40px)/calc(120% + 1.2em) cursive' Fail Property font value 'small-caps lighter semi-condensed normal xx-small fantasy' Pass Property font value 'small-caps 100 semi-expanded italic medium/normal monospace' Pass Property font value 'small-caps expanded xx-large/1.2 Menu' @@ -209,7 +209,7 @@ Pass Property font value 'small-caps extra-expanded normal larger/calc(120% + 1. Pass Property font value 'small-caps ultra-expanded normal normal smaller serif' Pass Property font value 'small-caps ultra-condensed normal italic 10px/normal sans-serif' Pass Property font value 'small-caps extra-condensed normal 900 20%/1.2 cursive' -Pass Property font value 'small-caps condensed italic calc(30% - 40px)/calc(120% + 1.2em) fantasy' +Fail Property font value 'small-caps condensed italic calc(30% - 40px)/calc(120% + 1.2em) fantasy' Pass Property font value 'small-caps semi-condensed italic normal xx-small monospace' Pass Property font value 'small-caps semi-expanded italic bold medium/normal Menu' Pass Property font value 'small-caps expanded bolder xx-large/1.2 "Non-Generic Example Family Name"' @@ -217,7 +217,7 @@ Fail Property font value 'small-caps extra-expanded lighter normal larger/calc(1 Pass Property font value 'small-caps ultra-expanded 100 italic smaller sans-serif' Pass Property font value '900 10px/normal cursive' Pass Property font value 'bold normal 20%/1.2 fantasy' -Pass Property font value 'bolder normal normal calc(30% - 40px)/calc(120% + 1.2em) monospace' +Fail Property font value 'bolder normal normal calc(30% - 40px)/calc(120% + 1.2em) monospace' Fail Property font value 'lighter normal normal normal xx-small Menu' Pass Property font value '100 normal normal italic medium/normal "Non-Generic Example Family Name"' Pass Property font value '900 normal normal small-caps xx-large/1.2 serif' @@ -225,7 +225,7 @@ Pass Property font value 'bold normal normal ultra-condensed larger/calc(120% + Pass Property font value 'bolder normal italic smaller cursive' Fail Property font value 'lighter normal italic normal 10px/normal fantasy' Pass Property font value '100 normal italic small-caps 20%/1.2 monospace' -Pass Property font value '900 normal italic extra-condensed calc(30% - 40px)/calc(120% + 1.2em) Menu' +Fail Property font value '900 normal italic extra-condensed calc(30% - 40px)/calc(120% + 1.2em) Menu' Pass Property font value 'bold normal small-caps xx-small "Non-Generic Example Family Name"' Pass Property font value 'bolder normal small-caps normal medium/normal serif' Fail Property font value 'lighter normal small-caps italic xx-large/1.2 sans-serif' @@ -241,7 +241,7 @@ Pass Property font value 'bolder italic normal small-caps larger/calc(120% + 1.2 Fail Property font value 'lighter italic normal ultra-expanded smaller monospace' Pass Property font value '100 italic small-caps 10px/normal Menu' Pass Property font value '900 italic small-caps normal 20%/1.2 "Non-Generic Example Family Name"' -Pass Property font value 'bold italic small-caps ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) serif' +Fail Property font value 'bold italic small-caps ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) serif' Pass Property font value 'bolder italic extra-condensed xx-small sans-serif' Fail Property font value 'lighter italic condensed normal medium/normal cursive' Pass Property font value '100 italic semi-condensed small-caps xx-large/1.2 fantasy' @@ -249,7 +249,7 @@ Pass Property font value '900 small-caps larger/calc(120% + 1.2em) monospace' Pass Property font value 'bold small-caps normal smaller Menu' Pass Property font value 'bolder small-caps normal normal 10px/normal "Non-Generic Example Family Name"' Fail Property font value 'lighter small-caps normal italic 20%/1.2 serif' -Pass Property font value '100 small-caps normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) sans-serif' +Fail Property font value '100 small-caps normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) sans-serif' Pass Property font value '900 small-caps italic xx-small cursive' Pass Property font value 'bold small-caps italic normal medium/normal fantasy' Pass Property font value 'bolder small-caps italic expanded xx-large/1.2 monospace' @@ -257,7 +257,7 @@ Fail Property font value 'lighter small-caps extra-expanded larger/calc(120% + 1 Pass Property font value '100 small-caps ultra-expanded normal smaller "Non-Generic Example Family Name"' Pass Property font value '900 small-caps ultra-condensed italic 10px/normal serif' Pass Property font value 'bold extra-condensed 20%/1.2 sans-serif' -Pass Property font value 'bolder condensed normal calc(30% - 40px)/calc(120% + 1.2em) cursive' +Fail Property font value 'bolder condensed normal calc(30% - 40px)/calc(120% + 1.2em) cursive' Fail Property font value 'lighter semi-condensed normal normal xx-small fantasy' Pass Property font value '100 semi-expanded normal italic medium/normal monospace' Pass Property font value '900 expanded normal small-caps xx-large/1.2 Menu' @@ -265,7 +265,7 @@ Pass Property font value 'bold extra-expanded italic larger/calc(120% + 1.2em) " Pass Property font value 'bolder ultra-expanded italic normal smaller serif' Fail Property font value 'lighter ultra-condensed italic small-caps 10px/normal sans-serif' Pass Property font value '100 extra-condensed small-caps 20%/1.2 cursive' -Pass Property font value '900 condensed small-caps normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' +Fail Property font value '900 condensed small-caps normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' Pass Property font value 'bold semi-condensed small-caps italic xx-small monospace' Pass Property font value 'semi-expanded medium/normal Menu' Pass Property font value 'expanded normal xx-large/1.2 "Non-Generic Example Family Name"' @@ -273,7 +273,7 @@ Pass Property font value 'extra-expanded normal normal larger/calc(120% + 1.2em) Pass Property font value 'ultra-expanded normal normal normal smaller sans-serif' Pass Property font value 'ultra-condensed normal normal italic 10px/normal cursive' Pass Property font value 'extra-condensed normal normal small-caps 20%/1.2 fantasy' -Pass Property font value 'condensed normal normal bolder calc(30% - 40px)/calc(120% + 1.2em) monospace' +Fail Property font value 'condensed normal normal bolder calc(30% - 40px)/calc(120% + 1.2em) monospace' Pass Property font value 'semi-condensed normal italic xx-small Menu' Pass Property font value 'semi-expanded normal italic normal medium/normal "Non-Generic Example Family Name"' Pass Property font value 'expanded normal italic small-caps xx-large/1.2 serif' @@ -281,7 +281,7 @@ Fail Property font value 'extra-expanded normal italic lighter larger/calc(120% Pass Property font value 'ultra-expanded normal small-caps smaller cursive' Pass Property font value 'ultra-condensed normal small-caps normal 10px/normal fantasy' Pass Property font value 'extra-condensed normal small-caps italic 20%/1.2 monospace' -Pass Property font value 'condensed normal small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) Menu' +Fail Property font value 'condensed normal small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) Menu' Pass Property font value 'semi-condensed normal 900 xx-small "Non-Generic Example Family Name"' Pass Property font value 'semi-expanded normal bold normal medium/normal serif' Pass Property font value 'expanded normal bolder italic xx-large/1.2 sans-serif' @@ -289,7 +289,7 @@ Fail Property font value 'extra-expanded normal lighter small-caps larger/calc(1 Pass Property font value 'ultra-expanded italic smaller fantasy' Pass Property font value 'ultra-condensed italic normal 10px/normal monospace' Pass Property font value 'extra-condensed italic normal normal 20%/1.2 Menu' -Pass Property font value 'condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' +Fail Property font value 'condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' Pass Property font value 'semi-condensed italic normal 100 xx-small serif' Pass Property font value 'semi-expanded italic small-caps medium/normal sans-serif' Pass Property font value 'expanded italic small-caps normal xx-large/1.2 cursive' @@ -297,7 +297,7 @@ Pass Property font value 'extra-expanded italic small-caps 900 larger/calc(120% Pass Property font value 'ultra-expanded italic bold smaller monospace' Pass Property font value 'ultra-condensed italic bolder normal 10px/normal Menu' Fail Property font value 'extra-condensed italic lighter small-caps 20%/1.2 "Non-Generic Example Family Name"' -Pass Property font value 'condensed small-caps calc(30% - 40px)/calc(120% + 1.2em) serif' +Fail Property font value 'condensed small-caps calc(30% - 40px)/calc(120% + 1.2em) serif' Pass Property font value 'semi-condensed small-caps normal xx-small sans-serif' Pass Property font value 'semi-expanded small-caps normal normal medium/normal cursive' Pass Property font value 'expanded small-caps normal italic xx-large/1.2 fantasy' @@ -305,7 +305,7 @@ Pass Property font value 'extra-expanded small-caps normal 100 larger/calc(120% Pass Property font value 'ultra-expanded small-caps italic smaller Menu' Pass Property font value 'ultra-condensed small-caps italic normal 10px/normal "Non-Generic Example Family Name"' Pass Property font value 'extra-condensed small-caps italic 900 20%/1.2 serif' -Pass Property font value 'condensed small-caps bold calc(30% - 40px)/calc(120% + 1.2em) sans-serif' +Fail Property font value 'condensed small-caps bold calc(30% - 40px)/calc(120% + 1.2em) sans-serif' Pass Property font value 'semi-condensed small-caps bolder normal xx-small cursive' Fail Property font value 'semi-expanded small-caps lighter italic medium/normal fantasy' Pass Property font value 'expanded 100 xx-large/1.2 monospace' @@ -313,7 +313,7 @@ Pass Property font value 'extra-expanded 900 normal larger/calc(120% + 1.2em) Me Pass Property font value 'ultra-expanded bold normal normal smaller "Non-Generic Example Family Name"' Pass Property font value 'ultra-condensed bolder normal italic 10px/normal serif' Fail Property font value 'extra-condensed lighter normal small-caps 20%/1.2 sans-serif' -Pass Property font value 'condensed 100 italic calc(30% - 40px)/calc(120% + 1.2em) cursive' +Fail Property font value 'condensed 100 italic calc(30% - 40px)/calc(120% + 1.2em) cursive' Pass Property font value 'semi-condensed 900 italic normal xx-small fantasy' Pass Property font value 'semi-expanded bold italic small-caps medium/normal monospace' Pass Property font value 'expanded bolder small-caps xx-large/1.2 Menu' diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-text/parsing/white-space-shorthand.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-text/parsing/white-space-shorthand.txt index 6dd57f8bdee..b1eb92604db 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-text/parsing/white-space-shorthand.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-text/parsing/white-space-shorthand.txt @@ -2,8 +2,7 @@ Harness status: OK Found 45 tests -40 Pass -5 Fail +45 Pass Pass e.style['white-space'] = "collapse" should set the property value Pass Property white-space value 'collapse' Pass e.style['white-space'] = "wrap" should set the property value @@ -44,8 +43,8 @@ Pass e.style['white-space'] = "preserve-breaks nowrap" should set the property v Pass Property white-space value 'preserve-breaks nowrap' Pass e.style['white-space'] = "nowrap preserve-breaks" should set the property value Pass Property white-space value 'nowrap preserve-breaks' -Fail e.style['white-space'] = "balance" should not set the property value -Fail e.style['white-space'] = "collapse balance" should not set the property value -Fail e.style['white-space'] = "balance collapse" should not set the property value -Fail e.style['white-space'] = "preserve balance" should not set the property value -Fail e.style['white-space'] = "balance preserve" should not set the property value \ No newline at end of file +Pass e.style['white-space'] = "balance" should not set the property value +Pass e.style['white-space'] = "collapse balance" should not set the property value +Pass e.style['white-space'] = "balance collapse" should not set the property value +Pass e.style['white-space'] = "preserve balance" should not set the property value +Pass e.style['white-space'] = "balance preserve" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-transitions/parsing/transition-behavior.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-transitions/parsing/transition-behavior.txt index f31d6bb23bf..1d2a79e2d28 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-transitions/parsing/transition-behavior.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-transitions/parsing/transition-behavior.txt @@ -2,8 +2,8 @@ Harness status: OK Found 28 tests -22 Pass -6 Fail +24 Pass +4 Fail Pass e.style['transition-behavior'] = "normal" should set the property value Pass Property transition-behavior value 'normal' Pass e.style['transition-behavior'] = "allow-discrete" should set the property value @@ -18,8 +18,8 @@ Pass e.style['transition'] = "allow-discrete display 3s ease-in-out" should set Pass Property transition value 'allow-discrete display 3s ease-in-out' Pass e.style['transition'] = "allow-discrete display 3s ease-in-out 1s" should set the property value Pass Property transition value 'allow-discrete display 3s ease-in-out 1s' -Fail e.style['transition'] = "asdf display" should not set the property value -Fail e.style['transition'] = "display asdf" should not set the property value +Pass e.style['transition'] = "asdf display" should not set the property value +Pass e.style['transition'] = "display asdf" should not set the property value Pass e.style['transition'] = "display allow-discrete 3s ease-in-out 1s" should set the property value Pass e.style['transition'] = "display 3s allow-discrete ease-in-out 1s" should set the property value Pass e.style['transition'] = "display 3s ease-in-out allow-discrete 1s" should set the property value diff --git a/Tests/LibWeb/Text/input/css/remove-property-shortand.html b/Tests/LibWeb/Text/input/css/remove-property-shortand.html new file mode 100644 index 00000000000..2635722c5f5 --- /dev/null +++ b/Tests/LibWeb/Text/input/css/remove-property-shortand.html @@ -0,0 +1,25 @@ + + + +
+ + + \ No newline at end of file