1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 05:57:41 +00:00

LibWeb: Move media-query-list serialization code to MediaQuery.{h,cpp}

It's not a complicated algorithm, but having it in one place instead of
2, and with spec comments, is nice. :^)
This commit is contained in:
Sam Atkins 2021-10-15 16:40:44 +01:00 committed by Linus Groh
parent caac0706c2
commit 46bba44f8b
4 changed files with 18 additions and 6 deletions

View file

@ -21,9 +21,7 @@ MediaList::~MediaList()
// https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext // https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext
String MediaList::media_text() const String MediaList::media_text() const
{ {
StringBuilder builder; return serialize_a_media_query_list(m_media);
builder.join(", ", m_media);
return builder.to_string();
} }
// https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext // https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext

View file

@ -227,4 +227,18 @@ bool MediaQuery::evaluate(DOM::Window const& window)
return m_matches; return m_matches;
} }
// https://www.w3.org/TR/cssom-1/#serialize-a-media-query-list
String serialize_a_media_query_list(NonnullRefPtrVector<MediaQuery> const& media_queries)
{
// 1. If the media query list is empty, then return the empty string.
if (media_queries.is_empty())
return "";
// 2. Serialize each media query in the list of media queries, in the same order as they
// appear in the media query list, and then serialize the list.
StringBuilder builder;
builder.join(", ", media_queries);
return builder.to_string();
}
} }

View file

@ -93,6 +93,8 @@ private:
bool m_matches { false }; bool m_matches { false };
}; };
String serialize_a_media_query_list(NonnullRefPtrVector<MediaQuery> const&);
} }
namespace AK { namespace AK {

View file

@ -29,9 +29,7 @@ MediaQueryList::~MediaQueryList()
// https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-media // https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-media
String MediaQueryList::media() const String MediaQueryList::media() const
{ {
StringBuilder builder; return serialize_a_media_query_list(m_media);
builder.join(", ", m_media);
return builder.to_string();
} }
// https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-matches // https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-matches