mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibWeb/CSS: Serialize Supports::Declaration as original representation
Fixes some WPT tests that expected `supports(foo:bar)` to serialize as `supports(foo:bar)`, instead of `supports(foo: bar)` with a space between. Reading the original_full_text directly also lets us delete Declaration::to_string(), which was only used here.
This commit is contained in:
parent
db910c68a3
commit
b376ab4e81
Notes:
github-actions[bot]
2025-12-02 09:50:44 +00:00
Author: https://github.com/AtkinsSJ
Commit: b376ab4e81
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6986
4 changed files with 8 additions and 28 deletions
|
|
@ -398,11 +398,11 @@ OwnPtr<Supports::Declaration> Parser::parse_supports_declaration(TokenStream<Com
|
|||
// NB: Here, we only care about the <declaration> part.
|
||||
auto transaction = tokens.begin_transaction();
|
||||
tokens.discard_whitespace();
|
||||
if (auto declaration = consume_a_declaration(tokens); declaration.has_value()) {
|
||||
if (auto declaration = consume_a_declaration(tokens, Nested::No, SaveOriginalText::Yes); declaration.has_value()) {
|
||||
tokens.discard_whitespace();
|
||||
if (!tokens.has_next_token()) {
|
||||
transaction.commit();
|
||||
return Supports::Declaration::create(declaration->to_string(), convert_to_style_property(*declaration).has_value());
|
||||
return Supports::Declaration::create(declaration->original_full_text.release_value(), convert_to_style_property(*declaration).has_value());
|
||||
}
|
||||
}
|
||||
return {};
|
||||
|
|
|
|||
|
|
@ -12,23 +12,6 @@
|
|||
|
||||
namespace Web::CSS::Parser {
|
||||
|
||||
String Declaration::to_string() const
|
||||
{
|
||||
if (original_value_text.has_value())
|
||||
return original_value_text.value();
|
||||
|
||||
StringBuilder builder;
|
||||
|
||||
serialize_an_identifier(builder, name);
|
||||
builder.append(": "sv);
|
||||
builder.join(' ', value);
|
||||
|
||||
if (important == Important::Yes)
|
||||
builder.append(" !important"sv);
|
||||
|
||||
return MUST(builder.to_string());
|
||||
}
|
||||
|
||||
String SimpleBlock::to_string() const
|
||||
{
|
||||
StringBuilder builder;
|
||||
|
|
|
|||
|
|
@ -58,9 +58,6 @@ struct Declaration {
|
|||
Important important = Important::No;
|
||||
Optional<String> original_value_text = {};
|
||||
Optional<String> original_full_text = {};
|
||||
|
||||
// FIXME: Only needed by our janky @supports re-serialization-re-parse code.
|
||||
String to_string() const;
|
||||
};
|
||||
|
||||
struct SubstitutionFunctionsPresence {
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@ Harness status: OK
|
|||
|
||||
Found 22 tests
|
||||
|
||||
16 Pass
|
||||
6 Fail
|
||||
20 Pass
|
||||
2 Fail
|
||||
Pass @import url("nonexist.css") supports(); should be an invalid import rule due to an invalid supports() declaration
|
||||
Pass @import url("nonexist.css") supports(foo: bar); should be an invalid import rule due to an invalid supports() declaration
|
||||
Fail @import url("nonexist.css") supports(display:block); should be a valid supports() import rule
|
||||
Fail @import url("nonexist.css") supports((display:flex)); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports(display:block); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports((display:flex)); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports(not (display: flex)); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports((display: flex) and (display: block)); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports((display: flex) or (display: block)); should be a valid supports() import rule
|
||||
|
|
@ -23,6 +23,6 @@ Pass @import url("nonexist.css") supports(selector(p > a)); should be a valid su
|
|||
Pass @import url("nonexist.css") supports(selector(p + a)); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports(font-tech(color-colrv1)); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports(font-format(opentype)); should be a valid supports() import rule
|
||||
Fail @import url(nonexist.css) supports(display:block); should be a valid supports() import rule
|
||||
Fail @import "nonexist.css" supports(display:block); should be a valid supports() import rule
|
||||
Pass @import url(nonexist.css) supports(display:block); should be a valid supports() import rule
|
||||
Pass @import "nonexist.css" supports(display:block); should be a valid supports() import rule
|
||||
Pass @import url("nonexist.css") supports; should still be a valid import rule with an invalid supports() declaration
|
||||
Loading…
Add table
Add a link
Reference in a new issue