diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp index 654e7af867..52a5d60db1 100644 --- a/Userland/Libraries/LibWeb/HTML/Window.cpp +++ b/Userland/Libraries/LibWeb/HTML/Window.cpp @@ -1093,7 +1093,6 @@ WebIDL::ExceptionOr Window::initialize_web_interfaces(Badge Window::window() const return verify_cast(relevant_realm(*this).global_environment().global_this_value()); } +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +JS::NonnullGCPtr Window::self() 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 { @@ -1530,14 +1536,6 @@ JS_DEFINE_NATIVE_FUNCTION(Window::top_getter) return browsing_context->top_level_browsing_context().window_proxy(); } -// https://html.spec.whatwg.org/multipage/window-object.html#dom-self -JS_DEFINE_NATIVE_FUNCTION(Window::self_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 4aee11c1af..7b9b4a6592 100644 --- a/Userland/Libraries/LibWeb/HTML/Window.h +++ b/Userland/Libraries/LibWeb/HTML/Window.h @@ -141,6 +141,7 @@ public: // JS API functions JS::NonnullGCPtr window() const; + JS::NonnullGCPtr self() const; JS::NonnullGCPtr navigator() const; @@ -243,7 +244,6 @@ private: JS_DECLARE_NATIVE_FUNCTION(inner_height_getter); JS_DECLARE_NATIVE_FUNCTION(frames_getter); - JS_DECLARE_NATIVE_FUNCTION(self_getter); JS_DECLARE_NATIVE_FUNCTION(parent_getter); diff --git a/Userland/Libraries/LibWeb/HTML/Window.idl b/Userland/Libraries/LibWeb/HTML/Window.idl index cbcb3d5655..9d7ad25a72 100644 --- a/Userland/Libraries/LibWeb/HTML/Window.idl +++ b/Userland/Libraries/LibWeb/HTML/Window.idl @@ -7,6 +7,7 @@ interface Window : EventTarget { // the current browsing context [LegacyUnforgeable] readonly attribute WindowProxy window; + [Replaceable] readonly attribute WindowProxy self; // the user agent readonly attribute Navigator navigator;