1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 09:48:11 +00:00

LibWeb: Use associated navigable in scrollX and scrollY in Window

If these functions are invoked from inside an iframe, we should use
the navigable associated with the iframe to get the viewport.
This commit is contained in:
Aliaksandr Kalenik 2024-02-03 10:32:21 +01:00 committed by Andreas Kling
parent 531025465a
commit 607e4cab0a

View file

@ -1217,7 +1217,9 @@ double Window::scroll_x() const
{
// The scrollX attribute must return the x-coordinate, relative to the initial containing block origin,
// of the left of the viewport, or zero if there is no viewport.
return page().top_level_traversable()->viewport_scroll_offset().x().to_double();
if (auto const navigable = associated_document().navigable())
return navigable->viewport_rect().x().to_double();
return 0;
}
// https://w3c.github.io/csswg-drafts/cssom-view/#dom-window-scrolly
@ -1225,7 +1227,9 @@ double Window::scroll_y() const
{
// The scrollY attribute must return the y-coordinate, relative to the initial containing block origin,
// of the top of the viewport, or zero if there is no viewport.
return page().top_level_traversable()->viewport_scroll_offset().y().to_double();
if (auto const navigable = associated_document().navigable())
return navigable->viewport_rect().y().to_double();
return 0;
}
// https://w3c.github.io/csswg-drafts/cssom-view/#perform-a-scroll