ladybird/Userland/Libraries/LibWeb/CSS/StyleValues/UnresolvedStyleValue.cpp
Sam Atkins bf3e6daedb LibWeb/CSS: Preserve whitespace and comments in custom properties
A couple of parts of this:
- Store the source text for Declarations of custom properties.
- Then save that in the UnresolvedStyleValue.
- Serialize UnresolvedStyleValue using the saved source when available -
  that is, for custom properties but not for regular properties that
  include var() or attr().
2024-10-16 08:34:31 +02:00

34 lines
911 B
C++

/*
* Copyright (c) 2018-2020, Andreas Kling <andreas@ladybird.org>
* Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org>
* Copyright (c) 2021-2024, Sam Atkins <sam@ladybird.org>
* Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "UnresolvedStyleValue.h"
#include <AK/StringBuilder.h>
namespace Web::CSS {
String UnresolvedStyleValue::to_string() const
{
if (m_original_source_text.has_value())
return *m_original_source_text;
StringBuilder builder;
for (auto& value : m_values)
builder.append(value.to_string());
return MUST(builder.to_string());
}
bool UnresolvedStyleValue::equals(CSSStyleValue const& other) const
{
if (type() != other.type())
return false;
// This is a case where comparing the strings actually makes sense.
return to_string() == other.to_string();
}
}