1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 13:27:35 +00:00

LibWeb: Use border box rect in getBoundingClientRect()

With this change we scroll to correct position on Acid2 :)
This commit is contained in:
Aliaksandr Kalenik 2023-11-17 19:30:10 +01:00 committed by Andreas Kling
parent ef71f46da6
commit 6bed27cca9
3 changed files with 20 additions and 1 deletions

View file

@ -0,0 +1 @@
{"x":8,"y":500,"width":784,"height":150,"top":500,"right":792,"bottom":650,"left":8}

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<style type="text/css">
#box {
margin-top: 500px;
padding-top: 100px;
background-color: navy;
width: 100%;
height: 50px;
}
</style>
<div id="box"></div>
<script src="include.js"></script>
<script>
test(() => {
const rect = document.getElementById("box").getBoundingClientRect();
println(JSON.stringify(rect));
});
</script>

View file

@ -868,7 +868,7 @@ JS::NonnullGCPtr<Geometry::DOMRect> Element::get_bounding_client_rect() const
VERIFY(document().navigable());
auto viewport_offset = document().navigable()->viewport_scroll_offset();
return Geometry::DOMRect::create(realm(), paintable_box->absolute_rect().translated(-viewport_offset.x(), -viewport_offset.y()).to_type<float>());
return Geometry::DOMRect::create(realm(), paintable_box->absolute_border_box_rect().translated(-viewport_offset.x(), -viewport_offset.y()).to_type<float>());
}
// https://drafts.csswg.org/cssom-view/#dom-element-getclientrects