diff --git a/Userland/Libraries/LibWeb/HTML/Navigable.cpp b/Userland/Libraries/LibWeb/HTML/Navigable.cpp
index b11db3a0b5..e7bcf2440e 100644
--- a/Userland/Libraries/LibWeb/HTML/Navigable.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Navigable.cpp
@@ -1113,4 +1113,10 @@ void Navigable::reload()
});
}
+// https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-navigation-must-be-a-replace
+bool navigation_must_be_a_replace(AK::URL const& url, DOM::Document const& document)
+{
+ return url.scheme() == "javascript"sv || document.is_initial_about_blank();
+}
+
}
diff --git a/Userland/Libraries/LibWeb/HTML/Navigable.h b/Userland/Libraries/LibWeb/HTML/Navigable.h
index 32bd6eed2a..f8f9f610d7 100644
--- a/Userland/Libraries/LibWeb/HTML/Navigable.h
+++ b/Userland/Libraries/LibWeb/HTML/Navigable.h
@@ -7,6 +7,7 @@
#pragma once
+#include
#include
#include
#include
@@ -135,4 +136,6 @@ private:
JS::GCPtr m_container;
};
+bool navigation_must_be_a_replace(AK::URL const& url, DOM::Document const& document);
+
}