Preserve root scrolling overflow geometry
This commit is contained in:
1 parent
3822542e50
commit
139d4e77e1
2 files changed
+148
-19
No files matched your search
@@ -3194,6 +3194,43 @@ mod tests {
|
||||
assert_eq!(after[2].as_f64(), Some(80.0));
|
||||
}
|
||||
|
||||
#[cfg(feature = "render")]
|
||||
#[test]
|
||||
fn root_overflow_clip_preserves_cssom_scroll_range() {
|
||||
let dom = parse_html(
|
||||
r#"<html style="margin:0;height:100%;overflow:hidden">
|
||||
<body style="margin:0;height:100%;overflow:hidden">
|
||||
<main id="main" style="padding-top:48px">
|
||||
<div style="height:5000px"></div>
|
||||
</main>
|
||||
</body>
|
||||
</html>"#,
|
||||
);
|
||||
let mut rt = ObscuraJsRuntime::new();
|
||||
rt.set_dom(dom);
|
||||
rt.set_viewport(900.0, 1000.0);
|
||||
rt.run_page_init();
|
||||
|
||||
let result = rt
|
||||
.evaluate(
|
||||
r#"
|
||||
const main = document.getElementById("main");
|
||||
const before = main.getBoundingClientRect();
|
||||
scrollTo(0, 99999);
|
||||
const after = main.getBoundingClientRect();
|
||||
return [
|
||||
before.height,
|
||||
document.documentElement.scrollHeight,
|
||||
document.body.scrollHeight,
|
||||
scrollY,
|
||||
after.top,
|
||||
];
|
||||
"#,
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(result, serde_json::json!([5048, 5048, 5048, 4048, -4048]));
|
||||
}
|
||||
|
||||
#[cfg(feature = "render")]
|
||||
#[tokio::test(flavor = "current_thread")]
|
||||
async fn rendered_window_scroll_events_require_actual_movement() {
|
||||
|
||||
Reference in new issue
Block a user