From b92abe5c266d0c57aa4f1aa5990d9354ad5b9109 Mon Sep 17 00:00:00 2001 From: Colin Reeder Date: Sun, 11 Aug 2024 09:34:37 -0600 Subject: [PATCH] LibWeb: Avoid calling matches before evaluate --- Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp | 5 +++-- Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp index 50a4045b19f..354a26568b5 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp @@ -308,13 +308,14 @@ bool CSSStyleSheet::evaluate_media_queries(HTML::Window const& window) { bool any_media_queries_changed_match_state = false; - bool did_match = m_media->matches(); bool now_matches = m_media->evaluate(window); - if (did_match != now_matches) + if (!m_did_match.has_value() || m_did_match.value() != now_matches) any_media_queries_changed_match_state = true; if (now_matches && m_rules->evaluate_media_queries(window)) any_media_queries_changed_match_state = true; + m_did_match = now_matches; + return any_media_queries_changed_match_state; } diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h index 11412d48f16..e541fbdb7ca 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h @@ -100,6 +100,7 @@ private: JS::GCPtr m_constructor_document; bool m_constructed { false }; bool m_disallow_modification { false }; + Optional m_did_match; }; }