diff --git a/Userland/Libraries/LibWeb/CSS/ComputedValues.h b/Userland/Libraries/LibWeb/CSS/ComputedValues.h index 28aa230ef84..6a2cd9e6f52 100644 --- a/Userland/Libraries/LibWeb/CSS/ComputedValues.h +++ b/Userland/Libraries/LibWeb/CSS/ComputedValues.h @@ -6,6 +6,7 @@ #pragma once +#include #include #include #include @@ -49,7 +50,7 @@ struct QuotesData { Auto, Specified, } type; - Vector> strings {}; + Vector> strings {}; }; struct ResolvedBackdropFilter { diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 8dd99a1a67f..547febc70b2 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -2912,7 +2912,7 @@ RefPtr Parser::parse_string_value(TokenStream& token auto peek = tokens.peek_token(); if (peek.is(Token::Type::String)) { (void)tokens.next_token(); - return StringStyleValue::create(peek.token().string().to_string()); + return StringStyleValue::create(peek.token().string()); } return nullptr; @@ -4761,7 +4761,7 @@ RefPtr Parser::parse_font_family_value(TokenStream& (void)tokens.next_token(); // String if (!next_is_comma_or_eof()) return nullptr; - font_families.append(StringStyleValue::create(peek.token().string().to_string())); + font_families.append(StringStyleValue::create(peek.token().string())); (void)tokens.next_token(); // Comma continue; } @@ -7088,7 +7088,7 @@ Optional Parser::parse_css_value_for_properties(Readon if (peek_token.is(Token::Type::String)) { if (auto property = any_property_accepts_type(property_ids, ValueType::String); property.has_value()) - return PropertyAndValue { *property, StringStyleValue::create(tokens.next_token().token().string().to_string()) }; + return PropertyAndValue { *property, StringStyleValue::create(tokens.next_token().token().string()) }; } if (auto property = any_property_accepts_type(property_ids, ValueType::Url); property.has_value()) { diff --git a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp index 358e848a7d1..61b6d99ff27 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -1742,7 +1742,7 @@ void StyleComputer::compute_cascaded_values(StyleProperties& style, DOM::Element if (animation_name.is_null()) return OptionalNone {}; if (animation_name->is_string()) - return animation_name->as_string().string_value(); + return animation_name->as_string().string_value().to_string(); return animation_name->to_string(); }(); diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index 9fc50658198..992f105725f 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -656,13 +656,13 @@ StyleProperties::ContentDataAndQuoteNestingLevel StyleProperties::content(u32 in auto get_quote_string = [&](bool open, auto depth) { switch (quotes_data.type) { case QuotesData::Type::None: - return String {}; + return FlyString {}; case QuotesData::Type::Auto: // FIXME: "A typographically appropriate used value for quotes is automatically chosen by the UA // based on the content language of the element and/or its parent." if (open) - return depth == 0 ? "“"_string : "‘"_string; - return depth == 0 ? "”"_string : "’"_string; + return depth == 0 ? "“"_fly_string : "‘"_fly_string; + return depth == 0 ? "”"_fly_string : "’"_fly_string; case QuotesData::Type::Specified: // If the depth is greater than the number of pairs, the last pair is repeated. auto& level = quotes_data.strings[min(depth, quotes_data.strings.size() - 1)]; diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/StringStyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValues/StringStyleValue.h index ecb5643a052..91eea8d2a0c 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValues/StringStyleValue.h +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/StringStyleValue.h @@ -1,37 +1,37 @@ /* - * Copyright (c) 2022-2023, Sam Atkins + * Copyright (c) 2022-2024, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once -#include +#include #include namespace Web::CSS { class StringStyleValue : public StyleValueWithDefaultOperators { public: - static ValueComparingNonnullRefPtr create(String const& string) + static ValueComparingNonnullRefPtr create(FlyString const& string) { return adopt_ref(*new (nothrow) StringStyleValue(string)); } virtual ~StringStyleValue() override = default; - String string_value() const { return m_string; } + FlyString string_value() const { return m_string; } String to_string() const override { return serialize_a_string(m_string); } bool properties_equal(StringStyleValue const& other) const { return m_string == other.m_string; } private: - explicit StringStyleValue(String const& string) + explicit StringStyleValue(FlyString const& string) : StyleValueWithDefaultOperators(Type::String) , m_string(string) { } - String m_string; + FlyString m_string; }; }