Просмотр исходного кода

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. :^)
Sam Atkins 3 лет назад
Родитель
Сommit
46bba44f8b

+ 1 - 3
Userland/Libraries/LibWeb/CSS/MediaList.cpp

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

+ 14 - 0
Userland/Libraries/LibWeb/CSS/MediaQuery.cpp

@@ -227,4 +227,18 @@ bool MediaQuery::evaluate(DOM::Window const& window)
     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();
+}
+
 }

+ 2 - 0
Userland/Libraries/LibWeb/CSS/MediaQuery.h

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

+ 1 - 3
Userland/Libraries/LibWeb/CSS/MediaQueryList.cpp

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