mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 07:17:35 +00:00
LibWeb+Meta: Stop discrete media-features from parsing as ranges
Only "range" type media-features are allowed to appear in range syntax, or have a `min-/max-` prefix.
This commit is contained in:
parent
a451810599
commit
0371d33132
3 changed files with 29 additions and 3 deletions
|
@ -60,6 +60,30 @@ char const* string_from_media_feature_id(MediaFeatureID media_feature_id)
|
|||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
bool media_feature_type_is_range(MediaFeatureID media_feature_id)
|
||||
{
|
||||
switch (media_feature_id) {)~~~");
|
||||
|
||||
json.as_object().for_each_member([&](auto& name, auto& value) {
|
||||
VERIFY(value.is_object());
|
||||
auto& feature = value.as_object();
|
||||
|
||||
auto member_generator = generator.fork();
|
||||
member_generator.set("name:titlecase", title_casify(name));
|
||||
VERIFY(feature.has("type"));
|
||||
auto feature_type = feature.get("type");
|
||||
VERIFY(feature_type.is_string());
|
||||
member_generator.set("is_range", feature_type.as_string() == "range" ? "true" : "false");
|
||||
member_generator.append(R"~~~(
|
||||
case MediaFeatureID::@name:titlecase@:
|
||||
return @is_range@;)~~~");
|
||||
});
|
||||
|
||||
generator.append(R"~~~(
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
}
|
||||
)~~~");
|
||||
|
||||
|
|
|
@ -43,6 +43,8 @@ enum class MediaFeatureID {)~~~");
|
|||
Optional<MediaFeatureID> media_feature_id_from_string(StringView);
|
||||
char const* string_from_media_feature_id(MediaFeatureID);
|
||||
|
||||
bool media_feature_type_is_range(MediaFeatureID);
|
||||
|
||||
}
|
||||
)~~~");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue