servo/components/constellation
Martin Robinson f451dccd0b
layout: Store scroll offsets in the ScrollTree (#37428)
There are currently five places that scroll offsets are stored:

 - DOM: A set of scroll offsets used for script.
 - Layout: An array of scroll offsets that is used for tracking
   layout-side scroll offsets.
 - Layout: The scroll offsets stored in the `ScrollTree`. These are
   currently unset and unused.
 - Compositor: The scroll offsets stored in the `ScrollTree` mirrored
   from layout.
 - WebRender: The scrolled offsets stored in the WebRender spatial tree.

This change is the first step in combining the first three into the
layout `ScrollTree`. It eliminates the extra array of scroll offsets
stored in layout in favor of the storing them in the `ScrollTree`. A
followup change will eliminate the ones stored in the DOM.

- In addition the `ScrollState` data structure is eliminated as these
are
now stored in a `HashMap` everywhere when passing them via IPC.
- The offsests stored in layout can now never scroll past the boundaries
of the scrolled content.

Testing: This should not change behavior and is thus covered by existing
WPT tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: stevennovaryo <steven.novaryo@gmail.com>
2025-06-13 12:01:27 +00:00
..
browsingcontext.rs constellation: Stop assuming that the viewport is shared by all WebViews (#36312) 2025-04-04 17:06:34 +00:00
Cargo.toml libservo: Remove the unused multiview feature (#36485) 2025-04-14 07:46:07 +00:00
constellation.rs layout: Store scroll offsets in the ScrollTree (#37428) 2025-06-13 12:01:27 +00:00
constellation_webview.rs constellation: Pass system theme to new Pipelines (#37132) 2025-05-26 12:05:38 +00:00
event_loop.rs compositor: Tick animations for an entire WebView at once (#36662) 2025-04-24 19:03:14 +00:00
lib.rs constellation: Pass system theme to new Pipelines (#37132) 2025-05-26 12:05:38 +00:00
logging.rs Move ScriptToConstellationMsg to constellation_traits (#36364) 2025-04-05 22:13:29 +00:00
pipeline.rs constellation: Pass system theme to new Pipelines (#37132) 2025-05-26 12:05:38 +00:00
process_manager.rs Make the memory reporting multi-process aware (#35863) 2025-04-05 05:42:12 +00:00
sandboxing.rs constellation: Ignore zombie_process warning (#36904) 2025-05-07 19:37:27 +00:00
serviceworker.rs Move ScriptToConstellationMsg to constellation_traits (#36364) 2025-04-05 22:13:29 +00:00
session_history.rs Move ScriptToConstellationMsg to constellation_traits (#36364) 2025-04-05 22:13:29 +00:00
tracing.rs Constellation can now optionally report memory usage when the page is loaded. (#37151) 2025-05-30 17:15:06 +00:00
webview_manager.rs Reduce indexing boilerplate for serializable/transferrable objects. (#36624) 2025-04-22 02:02:02 +00:00