LibWeb: Don't treat "--" as a valid custom property name

This is reserved for future use by CSS.
This commit is contained in:
Tim Ledbetter 2025-06-25 11:43:14 +01:00 committed by Sam Atkins
commit bf37f3400e
Notes: github-actions[bot] 2025-06-25 16:10:47 +00:00
3 changed files with 28 additions and 1 deletions

View file

@ -11,11 +11,19 @@
namespace Web::CSS {
static bool is_invalid_custom_property_name_string(StringView string)
{
// https://drafts.csswg.org/css-variables-2/#typedef-custom-property-name
// The <custom-property-name> production corresponds to this: its defined as any <dashed-ident>
// (a valid identifier that starts with two dashes), except -- itself, which is reserved for future use by CSS.
return string == "--"sv;
}
// https://drafts.css-houdini.org/css-typed-om-1/#custom-property-name-string
static bool is_a_custom_property_name_string(StringView string)
{
// A string is a custom property name string if it starts with two dashes (U+002D HYPHEN-MINUS), like --foo.
return string.starts_with("--"sv);
return string.starts_with("--"sv) && !is_invalid_custom_property_name_string(string);
}
}

View file

@ -0,0 +1,6 @@
Harness status: OK
Found 1 tests
1 Pass
Pass -- is a reserved property name

View file

@ -0,0 +1,13 @@
<!doctype html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2692">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1467309">
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="author" title="Mozilla" href="https://mozilla.org">
<title>-- is a reserved property name</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
test(function() {
assert_false(CSS.supports("--", "initial"), "-- is a reserved property name");
});
</script>