LibWeb: Fix infinite recursion when max-width is min/max-content in GFC

Treat max-width as auto when it's specified to min/max-content and
available size is intrinsic constraint.

Fixes stack overflow on https://claude.ai/
This commit is contained in:
Aliaksandr Kalenik 2024-10-29 21:41:47 +01:00 committed by Andreas Kling
commit e95226839e
Notes: github-actions[bot] 2024-10-30 07:49:10 +00:00
3 changed files with 104 additions and 9 deletions

View file

@ -1994,15 +1994,12 @@ bool FormattingContext::should_treat_max_width_as_none(Box const& box, Available
if (!m_state.get(*box.non_anonymous_containing_block()).has_definite_width())
return true;
}
if (box.children_are_inline()) {
if (max_width.is_fit_content() && available_width.is_intrinsic_sizing_constraint())
return true;
if (max_width.is_max_content() && available_width.is_max_content())
return true;
if (max_width.is_min_content() && available_width.is_min_content())
return true;
}
if (max_width.is_fit_content() && available_width.is_intrinsic_sizing_constraint())
return true;
if (max_width.is_max_content() && available_width.is_max_content())
return true;
if (max_width.is_min_content() && available_width.is_min_content())
return true;
return false;
}