servo/components/compositing
Oriol Brufau d29ad5b9c3
compositing: Don't reset scroll positions when receiving a new frame tree (#39515)
In the past, all scroll offsets were reset when navigating between
pages,
and layouts probably didn't preserve their scroll positions between back
and forward operations. Whatever the reason, the compositor was still
trying to
reset these positions right after a load.

This is an issue, because a page can request a scroll during a load, and
this
scroll might be requested from `<iframe>` content. In that case, the
scroll
positions should be the ones that layout reflects and not cleared from
the
Compositor. This reset operation had the potential to stomp on scroll
positions
set during load.

It's quite likely that the Compositor shouldn't be trying to reset them
at all,
so just stop doing that. This removes a source of intermittency when
running
tests that set scroll positions.

Testing: Once #39475 lands after this, its test should always pass.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-09-26 17:14:45 +00:00
..
Cargo.toml Cargo.toml cleanup (#39403) 2025-09-20 03:09:37 +00:00
compositor.rs servoshell: Move touch event simulation to servoshell (#39352) 2025-09-23 07:00:11 +00:00
lib.rs compositor: Preserve CompositorMsg deserialization errors (#38972) 2025-08-27 14:11:20 +00:00
refresh_driver.rs script: Allow reflows that do not produce display lists (#37186) 2025-06-12 19:25:04 +00:00
touch.rs servoshell: Move touch event simulation to servoshell (#39352) 2025-09-23 07:00:11 +00:00
tracing.rs compositor: Allow canvas to upload rendered contents asynchronously (#37776) 2025-08-29 10:04:41 +00:00
webview_manager.rs Removed FnvHash and transformed the rest to FxHashmap (#39233) 2025-09-10 13:34:54 +00:00
webview_renderer.rs compositing: Don't reset scroll positions when receiving a new frame tree (#39515) 2025-09-26 17:14:45 +00:00