.item) [8,8 100x100]
+ PaintableWithLines (BlockContainer(anonymous)) [8,108 784x0]
diff --git a/Tests/LibWeb/Layout/input/grid/container-max-width-max-content.html b/Tests/LibWeb/Layout/input/grid/container-max-width-max-content.html
new file mode 100644
index 0000000000..4265af963a
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/grid/container-max-width-max-content.html
@@ -0,0 +1,14 @@
+
+
+
diff --git a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp
index 4e8eccf0dd..77438e81f4 100644
--- a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp
+++ b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp
@@ -1857,6 +1857,8 @@ bool FormattingContext::should_treat_max_width_as_none(Box const& box, Available
auto const& max_width = box.computed_values().max_width();
if (max_width.is_none())
return true;
+ if (available_width.is_max_content() && max_width.is_max_content())
+ return true;
if (box.is_absolutely_positioned())
return false;
if (max_width.contains_percentage()) {
diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
index 81f523d268..5f39fa0033 100644
--- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
+++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
@@ -1197,16 +1197,19 @@ void GridFormattingContext::maximize_tracks(GridDimension const dimension)
return should_treat_max_width_as_none(grid_container(), available_size);
return !computed_values.max_height().is_auto();
}();
- auto maximum_size = calculate_grid_container_maximum_size(dimension);
- if (!should_treat_grid_container_maximum_size_as_none && grid_container_inner_size > maximum_size) {
- for (size_t i = 0; i < tracks.size(); i++)
- tracks[i].base_size = saved_base_sizes[i];
- auto available_space_with_max_width = *m_available_space;
- if (dimension == GridDimension::Column)
- available_space_with_max_width.width = AvailableSize::make_definite(maximum_size);
- else
- available_space_with_max_width.height = AvailableSize::make_definite(maximum_size);
- maximize_tracks_using_available_size(available_space_with_max_width, dimension);
+
+ if (!should_treat_grid_container_maximum_size_as_none) {
+ auto maximum_size = calculate_grid_container_maximum_size(dimension);
+ if (grid_container_inner_size > maximum_size) {
+ for (size_t i = 0; i < tracks.size(); i++)
+ tracks[i].base_size = saved_base_sizes[i];
+ auto available_space_with_max_width = *m_available_space;
+ if (dimension == GridDimension::Column)
+ available_space_with_max_width.width = AvailableSize::make_definite(maximum_size);
+ else
+ available_space_with_max_width.height = AvailableSize::make_definite(maximum_size);
+ maximize_tracks_using_available_size(available_space_with_max_width, dimension);
+ }
}
}