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