1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:57:45 +00:00

LibWeb: Port CSS::MediaQuery to new Strings

This commit is contained in:
Sam Atkins 2023-02-14 20:19:58 +00:00 committed by Tim Flynn
parent a381ce9519
commit a0b1eddc56
4 changed files with 7 additions and 10 deletions

View file

@ -34,7 +34,7 @@ JS::ThrowCompletionOr<void> MediaList::initialize(JS::Realm& realm)
// https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext // https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext
DeprecatedString MediaList::media_text() const DeprecatedString MediaList::media_text() const
{ {
return serialize_a_media_query_list(m_media); return serialize_a_media_query_list(m_media).release_value_but_fixme_should_propagate_errors().to_deprecated_string();
} }
// https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext // https://www.w3.org/TR/cssom-1/#dom-medialist-mediatext

View file

@ -379,17 +379,15 @@ bool MediaQuery::evaluate(HTML::Window const& window)
} }
// https://www.w3.org/TR/cssom-1/#serialize-a-media-query-list // https://www.w3.org/TR/cssom-1/#serialize-a-media-query-list
DeprecatedString serialize_a_media_query_list(NonnullRefPtrVector<MediaQuery> const& media_queries) ErrorOr<String> serialize_a_media_query_list(NonnullRefPtrVector<MediaQuery> const& media_queries)
{ {
// 1. If the media query list is empty, then return the empty string. // 1. If the media query list is empty, then return the empty string.
if (media_queries.is_empty()) if (media_queries.is_empty())
return ""; return String {};
// 2. Serialize each media query in the list of media queries, in the same order as they // 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. // appear in the media query list, and then serialize the list.
StringBuilder builder; return String::join(", "sv, media_queries);
builder.join(", "sv, media_queries);
return builder.to_deprecated_string();
} }
bool is_media_feature_name(StringView name) bool is_media_feature_name(StringView name)

View file

@ -1,12 +1,11 @@
/* /*
* Copyright (c) 2021, Sam Atkins <atkinssj@serenityos.org> * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
* *
* SPDX-License-Identifier: BSD-2-Clause * SPDX-License-Identifier: BSD-2-Clause
*/ */
#pragma once #pragma once
#include <AK/DeprecatedFlyString.h>
#include <AK/NonnullOwnPtrVector.h> #include <AK/NonnullOwnPtrVector.h>
#include <AK/NonnullRefPtr.h> #include <AK/NonnullRefPtr.h>
#include <AK/Optional.h> #include <AK/Optional.h>
@ -255,7 +254,7 @@ private:
bool m_matches { false }; bool m_matches { false };
}; };
DeprecatedString serialize_a_media_query_list(NonnullRefPtrVector<MediaQuery> const&); ErrorOr<String> serialize_a_media_query_list(NonnullRefPtrVector<MediaQuery> const&);
bool is_media_feature_name(StringView name); bool is_media_feature_name(StringView name);

View file

@ -45,7 +45,7 @@ void MediaQueryList::visit_edges(Cell::Visitor& visitor)
// https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-media // https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-media
DeprecatedString MediaQueryList::media() const DeprecatedString MediaQueryList::media() const
{ {
return serialize_a_media_query_list(m_media); return serialize_a_media_query_list(m_media).release_value_but_fixme_should_propagate_errors().to_deprecated_string();
} }
// https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-matches // https://drafts.csswg.org/cssom-view/#dom-mediaquerylist-matches