diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp index 695eceb8c8..654e7af867 100644 --- a/Userland/Libraries/LibWeb/HTML/Window.cpp +++ b/Userland/Libraries/LibWeb/HTML/Window.cpp @@ -1092,7 +1092,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/window-object.html#dom-window +JS::NonnullGCPtr Window::window() const +{ + // The window, frames, and self getter steps are to return this's relevant realm.[[GlobalEnv]].[[GlobalThisValue]]. + return verify_cast(relevant_realm(*this).global_environment().global_this_value()); +} + // https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator JS::NonnullGCPtr Window::navigator() const { @@ -1532,14 +1538,6 @@ JS_DEFINE_NATIVE_FUNCTION(Window::self_getter) return &relevant_realm(*impl).global_environment().global_this_value(); } -// https://html.spec.whatwg.org/multipage/window-object.html#dom-window -JS_DEFINE_NATIVE_FUNCTION(Window::window_getter) -{ - auto* impl = TRY(impl_from(vm)); - // The window, frames, and self getter steps are to return this's relevant realm.[[GlobalEnv]].[[GlobalThisValue]]. - return &relevant_realm(*impl).global_environment().global_this_value(); -} - // https://html.spec.whatwg.org/multipage/window-object.html#dom-frames JS_DEFINE_NATIVE_FUNCTION(Window::frames_getter) { diff --git a/Userland/Libraries/LibWeb/HTML/Window.h b/Userland/Libraries/LibWeb/HTML/Window.h index 78fafdcaa4..4aee11c1af 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 window() const; + JS::NonnullGCPtr navigator() const; void alert(String const& message = {}); @@ -240,7 +242,6 @@ private: JS_DECLARE_NATIVE_FUNCTION(inner_width_getter); JS_DECLARE_NATIVE_FUNCTION(inner_height_getter); - JS_DECLARE_NATIVE_FUNCTION(window_getter); JS_DECLARE_NATIVE_FUNCTION(frames_getter); JS_DECLARE_NATIVE_FUNCTION(self_getter); diff --git a/Userland/Libraries/LibWeb/HTML/Window.idl b/Userland/Libraries/LibWeb/HTML/Window.idl index c8cade2f95..cbcb3d5655 100644 --- a/Userland/Libraries/LibWeb/HTML/Window.idl +++ b/Userland/Libraries/LibWeb/HTML/Window.idl @@ -5,6 +5,9 @@ // https://html.spec.whatwg.org/multipage/nav-history-apis.html#window [Global=Window, Exposed=Window, LegacyUnenumerableNamedProperties, UseNewAKString] interface Window : EventTarget { + // the current browsing context + [LegacyUnforgeable] readonly attribute WindowProxy window; + // the user agent readonly attribute Navigator navigator; [ImplementedAs=navigator] readonly attribute Navigator clientInformation; // legacy alias of .navigator