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(); }