mirror of
https://github.com/RGBCube/serenity
synced 2025-06-03 13:08:14 +00:00
LibWeb: Add missing paintable null check in get_bounding_client_rect()
Fixes crashing on https://github.com/
This commit is contained in:
parent
f361b8c000
commit
8f8ec37d58
3 changed files with 15 additions and 1 deletions
|
@ -0,0 +1 @@
|
||||||
|
{"x":0,"y":0,"width":0,"height":0,"top":0,"right":0,"bottom":0,"left":0}
|
|
@ -0,0 +1,12 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<style type="text/css">
|
||||||
|
#box { display: none; }
|
||||||
|
</style>
|
||||||
|
<div id="box"></div>
|
||||||
|
<script src="include.js"></script>
|
||||||
|
<script>
|
||||||
|
test(() => {
|
||||||
|
const rect = document.getElementById("box").getBoundingClientRect();
|
||||||
|
println(JSON.stringify(rect));
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -844,7 +844,8 @@ JS::NonnullGCPtr<Geometry::DOMRect> Element::get_bounding_client_rect() const
|
||||||
return Geometry::DOMRect::create(realm(), absolute_rect.to_type<float>());
|
return Geometry::DOMRect::create(realm(), absolute_rect.to_type<float>());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auto const* paintable = this->paintable(); is<Painting::InlinePaintable>(*paintable)) {
|
auto const* paintable = this->paintable();
|
||||||
|
if (paintable && is<Painting::InlinePaintable>(*paintable)) {
|
||||||
auto const& inline_paintable = static_cast<Painting::InlinePaintable const&>(*paintable);
|
auto const& inline_paintable = static_cast<Painting::InlinePaintable const&>(*paintable);
|
||||||
auto absolute_rect = inline_paintable.bounding_rect();
|
auto absolute_rect = inline_paintable.bounding_rect();
|
||||||
absolute_rect.translate_by(-viewport_offset.x(), -viewport_offset.y());
|
absolute_rect.translate_by(-viewport_offset.x(), -viewport_offset.y());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue