diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp
index e3d792300a..28d32a09ce 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Window.cpp
@@ -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