From 4e4b9f440f10b9446993e5a27319dd498ba2f080 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 19 Mar 2024 13:04:39 +0100 Subject: [PATCH] Revert "LibWeb: Run IntersectionObserver steps only when needed" This reverts commit 11b4216e65ea1be4704c66e9baf32f3357163a31. --- Userland/Libraries/LibWeb/DOM/Document.cpp | 3 --- Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp | 4 +++- Userland/Libraries/LibWeb/HTML/Navigable.cpp | 4 ---- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 12588a4048d..594227a5fa3 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -1114,9 +1114,6 @@ void Document::update_layout() m_needs_layout = false; m_layout_update_timer->stop(); - - // OPTIMIZATION: We do this here instead of in HTML::EventLoop::process() to avoid redundant work. - run_the_update_intersection_observations_steps(HighResolutionTime::unsafe_shared_current_time()); } [[nodiscard]] static Element::RequiredInvalidationAfterStyleChange update_style_recursively(Node& node) diff --git a/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp b/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp index 19318d59f35..b3138ec1f81 100644 --- a/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp +++ b/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp @@ -249,7 +249,9 @@ void EventLoop::process() }); // 14. For each fully active Document in docs, run the update intersection observations steps for that Document, passing in now as the timestamp. [INTERSECTIONOBSERVER] - // OPTIMIZATION: We do this automatically after layout or viewport changes, so we don't need to do it here. + for_each_fully_active_document_in_docs([&](DOM::Document& document) { + document.run_the_update_intersection_observations_steps(now); + }); // FIXME: 15. Invoke the mark paint timing algorithm for each Document object in docs. diff --git a/Userland/Libraries/LibWeb/HTML/Navigable.cpp b/Userland/Libraries/LibWeb/HTML/Navigable.cpp index b70b398c965..8aff3c46695 100644 --- a/Userland/Libraries/LibWeb/HTML/Navigable.cpp +++ b/Userland/Libraries/LibWeb/HTML/Navigable.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -1949,9 +1948,6 @@ void Navigable::scroll_offset_did_change() // 3. Append doc to doc’s pending scroll event targets. doc->pending_scroll_event_targets().append(*doc); - - // OPTIMIZATION: We do this here instead of in HTML::EventLoop::process() to avoid redundant work. - doc->run_the_update_intersection_observations_steps(HighResolutionTime::unsafe_shared_current_time()); } CSSPixelRect Navigable::to_top_level_rect(CSSPixelRect const& a_rect)