diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp
index 84222389cc..695eceb8c8 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Window.cpp
@@ -1160,9 +1160,6 @@ WebIDL::ExceptionOr Window::initialize_web_interfaces(Badge impl_from(JS::VM& vm)
return vm.throw_completion(JS::ErrorType::NotAnObjectOfType, "Window");
}
+// https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator
+JS::NonnullGCPtr Window::navigator() const
+{
+ // The navigator and clientInformation getter steps are to return this's associated Navigator.
+ return *m_navigator;
+}
+
// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-alert
void Window::alert(String const& message)
{
@@ -1912,10 +1916,4 @@ JS_DEFINE_NATIVE_FUNCTION(Window::name_setter)
return JS::js_undefined();
}
-JS_DEFINE_NATIVE_FUNCTION(Window::navigator_getter)
-{
- auto* impl = TRY(impl_from(vm));
- return impl->m_navigator;
-}
-
}
diff --git a/Userland/Libraries/LibWeb/HTML/Window.h b/Userland/Libraries/LibWeb/HTML/Window.h
index b88dad92e6..78fafdcaa4 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.h
+++ b/Userland/Libraries/LibWeb/HTML/Window.h
@@ -140,6 +140,8 @@ public:
Vector> pdf_viewer_mime_type_objects();
// JS API functions
+ JS::NonnullGCPtr navigator() const;
+
void alert(String const& message = {});
bool confirm(Optional const& message);
Optional prompt(Optional const& message, Optional const& default_);
@@ -288,8 +290,6 @@ private:
JS_DECLARE_NATIVE_FUNCTION(crypto_getter);
- JS_DECLARE_NATIVE_FUNCTION(navigator_getter);
-
HTML::Location* m_location { nullptr };
// [[CrossOriginPropertyDescriptorMap]], https://html.spec.whatwg.org/multipage/browsers.html#crossoriginpropertydescriptormap
diff --git a/Userland/Libraries/LibWeb/HTML/Window.idl b/Userland/Libraries/LibWeb/HTML/Window.idl
index 36989d9565..c8cade2f95 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.idl
+++ b/Userland/Libraries/LibWeb/HTML/Window.idl
@@ -1,9 +1,14 @@
#import
#import
+#import
// https://html.spec.whatwg.org/multipage/nav-history-apis.html#window
[Global=Window, Exposed=Window, LegacyUnenumerableNamedProperties, UseNewAKString]
interface Window : EventTarget {
+ // the user agent
+ readonly attribute Navigator navigator;
+ [ImplementedAs=navigator] readonly attribute Navigator clientInformation; // legacy alias of .navigator
+
// user prompts
undefined alert();
undefined alert(DOMString message);