mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 20:59:16 +00:00
LibWeb: Align CSS Grid properties parsing with the specification
Reimplements `grid`, `grid-template`, `grid-template-rows`, and `grid-template-columns` in a way that uses a separate function for each grammar rule defined in the specification. This change results in many additional passing tests from the already imported WPT suite. Most of the remaining test failures are related to incorrect serialization of grid properties.
This commit is contained in:
parent
7b077595c3
commit
af602b2555
Notes:
github-actions[bot]
2025-06-21 20:08:32 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: af602b2555
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5150
Reviewed-by: https://github.com/tcl3
23 changed files with 894 additions and 574 deletions
|
@ -120,16 +120,10 @@ String GridMinMax::to_string() const
|
|||
return MUST(builder.to_string());
|
||||
}
|
||||
|
||||
GridRepeat::GridRepeat(GridTrackSizeList grid_track_size_list, int repeat_count)
|
||||
: m_type(Type::Default)
|
||||
, m_grid_track_size_list(grid_track_size_list)
|
||||
, m_repeat_count(repeat_count)
|
||||
{
|
||||
}
|
||||
|
||||
GridRepeat::GridRepeat(GridTrackSizeList grid_track_size_list, Type type)
|
||||
: m_type(type)
|
||||
, m_grid_track_size_list(grid_track_size_list)
|
||||
GridRepeat::GridRepeat(GridTrackSizeList&& grid_track_size_list, GridRepeatParams const& params)
|
||||
: m_type(params.type)
|
||||
, m_grid_track_size_list(move(grid_track_size_list))
|
||||
, m_repeat_count(params.count)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -138,13 +132,13 @@ String GridRepeat::to_string() const
|
|||
StringBuilder builder;
|
||||
builder.append("repeat("sv);
|
||||
switch (m_type) {
|
||||
case Type::AutoFit:
|
||||
case GridRepeatType::AutoFit:
|
||||
builder.append("auto-fit"sv);
|
||||
break;
|
||||
case Type::AutoFill:
|
||||
case GridRepeatType::AutoFill:
|
||||
builder.append("auto-fill"sv);
|
||||
break;
|
||||
case Type::Default:
|
||||
case GridRepeatType::Fixed:
|
||||
builder.appendff("{}", m_repeat_count);
|
||||
break;
|
||||
default:
|
||||
|
@ -177,15 +171,6 @@ String GridLineNames::to_string() const
|
|||
return MUST(builder.to_string());
|
||||
}
|
||||
|
||||
GridTrackSizeList::GridTrackSizeList(Vector<Variant<ExplicitGridTrack, GridLineNames>>&& list)
|
||||
: m_list(move(list))
|
||||
{
|
||||
}
|
||||
|
||||
GridTrackSizeList::GridTrackSizeList()
|
||||
{
|
||||
}
|
||||
|
||||
GridTrackSizeList GridTrackSizeList::make_none()
|
||||
{
|
||||
return GridTrackSizeList();
|
||||
|
@ -222,4 +207,14 @@ Vector<ExplicitGridTrack> GridTrackSizeList::track_list() const
|
|||
|
||||
bool GridTrackSizeList::operator==(GridTrackSizeList const& other) const = default;
|
||||
|
||||
void GridTrackSizeList::append(GridLineNames&& line_names)
|
||||
{
|
||||
m_list.append(move(line_names));
|
||||
}
|
||||
|
||||
void GridTrackSizeList::append(ExplicitGridTrack&& explicit_track)
|
||||
{
|
||||
m_list.append(move(explicit_track));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue