diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp
index 65aa384bb44..d7eca709a62 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Window.cpp
@@ -897,7 +897,6 @@ WebIDL::ExceptionOr Window::initialize_web_interfaces(Badge(realm, realm)), 0);
- define_native_accessor(realm, "localStorage", local_storage_getter, {}, attr);
define_native_accessor(realm, "sessionStorage", session_storage_getter, {}, attr);
// FIXME: Implement codegen for readonly properties with [PutForwards]
@@ -1619,12 +1618,6 @@ JS_DEFINE_NATIVE_FUNCTION(Window::structured_clone)
}));
}
-JS_DEFINE_NATIVE_FUNCTION(Window::local_storage_getter)
-{
- auto* impl = TRY(impl_from(vm));
- return impl->local_storage();
-}
-
JS_DEFINE_NATIVE_FUNCTION(Window::session_storage_getter)
{
auto* impl = TRY(impl_from(vm));
diff --git a/Userland/Libraries/LibWeb/HTML/Window.h b/Userland/Libraries/LibWeb/HTML/Window.h
index 1b32aafa529..df9f22e31b2 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.h
+++ b/Userland/Libraries/LibWeb/HTML/Window.h
@@ -253,7 +253,6 @@ private:
JS_DECLARE_NATIVE_FUNCTION(structured_clone);
- JS_DECLARE_NATIVE_FUNCTION(local_storage_getter);
JS_DECLARE_NATIVE_FUNCTION(session_storage_getter);
JS_DECLARE_NATIVE_FUNCTION(set_interval);
diff --git a/Userland/Libraries/LibWeb/HTML/Window.idl b/Userland/Libraries/LibWeb/HTML/Window.idl
index ed2d7997da9..48f42dd438e 100644
--- a/Userland/Libraries/LibWeb/HTML/Window.idl
+++ b/Userland/Libraries/LibWeb/HTML/Window.idl
@@ -7,6 +7,7 @@
#import
#import
#import
+#import
#import
#import
@@ -96,6 +97,7 @@ interface Window : EventTarget {
Window includes AnimationFrameProvider;
Window includes GlobalEventHandlers;
Window includes WindowEventHandlers;
+Window includes WindowLocalStorage;
Window includes WindowOrWorkerGlobalScope;
enum ScrollBehavior { "auto", "instant", "smooth" };
diff --git a/Userland/Libraries/LibWeb/HTML/WindowLocalStorage.idl b/Userland/Libraries/LibWeb/HTML/WindowLocalStorage.idl
new file mode 100644
index 00000000000..8bed5e295ba
--- /dev/null
+++ b/Userland/Libraries/LibWeb/HTML/WindowLocalStorage.idl
@@ -0,0 +1,6 @@
+#import
+
+// https://html.spec.whatwg.org/multipage/webstorage.html#windowlocalstorage
+interface mixin WindowLocalStorage {
+ readonly attribute Storage localStorage;
+};