diff --git a/Userland/Libraries/LibWeb/HTML/Location.cpp b/Userland/Libraries/LibWeb/HTML/Location.cpp
index cb5b70714f..c1f000ea60 100644
--- a/Userland/Libraries/LibWeb/HTML/Location.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Location.cpp
@@ -359,8 +359,17 @@ WebIDL::ExceptionOr Location::set_hash(String const& value)
// https://html.spec.whatwg.org/multipage/history.html#dom-location-reload
void Location::reload() const
{
- auto& window = verify_cast(HTML::current_global_object());
- window.did_call_location_reload({});
+ // 1. Let document be this's relevant Document.
+ auto document = relevant_document();
+
+ // 2. If document is null, then return.
+ if (!document)
+ return;
+
+ // FIXME: 3. If document's origin is not same origin-domain with the entry settings object's origin, then throw a "SecurityError" DOMException.
+
+ // 4. Reload document's node navigable.
+ document->navigable()->reload();
}
// https://html.spec.whatwg.org/multipage/history.html#dom-location-replace
diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp
index 969dcbf324..21c38ee51e 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Window.cpp
@@ -429,14 +429,6 @@ void Window::did_set_location_href(Badge, AK::URL const& new_href)
browsing_context->loader().load(new_href, FrameLoader::Type::Navigation);
}
-void Window::did_call_location_reload(Badge)
-{
- auto* browsing_context = associated_document().browsing_context();
- if (!browsing_context)
- return;
- browsing_context->loader().load(associated_document().url(), FrameLoader::Type::Reload);
-}
-
void Window::did_call_location_replace(Badge, DeprecatedString url)
{
auto* browsing_context = associated_document().browsing_context();
diff --git a/Userland/Libraries/LibWeb/HTML/Window.h b/Userland/Libraries/LibWeb/HTML/Window.h
index 1513238e4b..eeb05500fd 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.h
+++ b/Userland/Libraries/LibWeb/HTML/Window.h
@@ -96,7 +96,6 @@ public:
bool has_animation_frame_callbacks() const { return m_animation_frame_callback_driver.has_callbacks(); }
void did_set_location_href(Badge, AK::URL const& new_href);
- void did_call_location_reload(Badge);
void did_call_location_replace(Badge, DeprecatedString url);
DOM::Event* current_event() { return m_current_event.ptr(); }