diff --git a/Userland/Libraries/LibWeb/HTML/Navigable.cpp b/Userland/Libraries/LibWeb/HTML/Navigable.cpp
index 22cb67c76ec..9dcf7b4aa8f 100644
--- a/Userland/Libraries/LibWeb/HTML/Navigable.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Navigable.cpp
@@ -1070,9 +1070,8 @@ WebIDL::ExceptionOr Navigable::populate_session_history_entry_document(
// FIXME: 1. Assert: this is running in parallel.
// 2. Assert: if navigationParams is non-null, then navigationParams's response is non-null.
- // NavigationParams' response field is NonnullGCPtr
if (!navigation_params.has() && !navigation_params.has())
- VERIFY(navigation_params.has>());
+ VERIFY(navigation_params.has>() && navigation_params.get>()->response);
// 3. Let currentBrowsingContext be navigable's active browsing context.
[[maybe_unused]] auto current_browsing_context = active_browsing_context();
@@ -1202,9 +1201,12 @@ WebIDL::ExceptionOr Navigable::populate_session_history_entry_document(
// 3. If entry's document state's request referrer is "client", and navigationParams is a navigation params (i.e., neither null nor a non-fetch scheme navigation params), then:
if (entry->document_state()->request_referrer() == Fetch::Infrastructure::Request::Referrer::Client
- && (!navigation_params.has() && !navigation_params.has() && Fetch::Infrastructure::is_fetch_scheme(entry->url().scheme()))) {
- // FIXME: 1. Assert: navigationParams's request is not null.
- // FIXME: 2. Set entry's document state's request referrer to navigationParams's request's referrer.
+ && (!navigation_params.has() && !navigation_params.has() && navigation_params.has>())) {
+ // 1. Assert: navigationParams's request is not null.
+ VERIFY(navigation_params.has>() && navigation_params.get>()->request);
+
+ // 2. Set entry's document state's request referrer to navigationParams's request's referrer.
+ entry->document_state()->set_request_referrer(navigation_params.get>()->request->referrer());
}
}