LibWeb: Update layout when checking media queries inside iframes

This ensures that the containing iframe has up-to-date viewport metrics,
which is important since that may affect media query results.
This commit is contained in:
Andreas Kling 2025-02-13 13:02:14 +01:00 committed by Andreas Kling
commit 6fd24c2a68
Notes: github-actions[bot] 2025-02-13 19:53:36 +00:00
2 changed files with 21 additions and 13 deletions

View file

@ -54,6 +54,13 @@ bool MediaQueryList::matches() const
if (m_media.is_empty())
return true;
// NOTE: If our document is inside a frame, we need to update layout
// since that may cause our frame (and thus viewport) to resize.
if (auto container_document = m_document->container_document()) {
container_document->update_layout();
const_cast<MediaQueryList*>(this)->evaluate();
}
for (auto& media : m_media) {
if (media->matches())
return true;