Kaynağa Gözat

LibWeb/HTML: Port Window.sessionStorage to IDL

Linus Groh 2 yıl önce
ebeveyn
işleme
a31c561a5a

+ 0 - 8
Userland/Libraries/LibWeb/HTML/Window.cpp

@@ -897,8 +897,6 @@ WebIDL::ExceptionOr<void> Window::initialize_web_interfaces(Badge<WindowEnvironm
 
     define_direct_property("CSS", MUST_OR_THROW_OOM(heap().allocate<Bindings::CSSNamespace>(realm, realm)), 0);
 
-    define_native_accessor(realm, "sessionStorage", session_storage_getter, {}, attr);
-
     // FIXME: Implement codegen for readonly properties with [PutForwards]
     auto& location_accessor = storage_get("location")->value.as_accessor();
     location_accessor.set_setter(JS::NativeFunction::create(realm, location_setter, 1, "location", &realm, {}, "set"sv));
@@ -1618,10 +1616,4 @@ JS_DEFINE_NATIVE_FUNCTION(Window::structured_clone)
     }));
 }
 
-JS_DEFINE_NATIVE_FUNCTION(Window::session_storage_getter)
-{
-    auto* impl = TRY(impl_from(vm));
-    return impl->session_storage();
-}
-
 }

+ 0 - 2
Userland/Libraries/LibWeb/HTML/Window.h

@@ -253,8 +253,6 @@ private:
 
     JS_DECLARE_NATIVE_FUNCTION(structured_clone);
 
-    JS_DECLARE_NATIVE_FUNCTION(session_storage_getter);
-
     JS_DECLARE_NATIVE_FUNCTION(set_interval);
     JS_DECLARE_NATIVE_FUNCTION(set_timeout);
     JS_DECLARE_NATIVE_FUNCTION(clear_interval);

+ 2 - 0
Userland/Libraries/LibWeb/HTML/Window.idl

@@ -9,6 +9,7 @@
 #import <HTML/Navigator.idl>
 #import <HTML/WindowLocalStorage.idl>
 #import <HTML/WindowOrWorkerGlobalScope.idl>
+#import <HTML/WindowSessionStorage.idl>
 #import <RequestIdleCallback/IdleRequest.idl>
 
 // https://html.spec.whatwg.org/multipage/nav-history-apis.html#window
@@ -98,6 +99,7 @@ Window includes AnimationFrameProvider;
 Window includes GlobalEventHandlers;
 Window includes WindowEventHandlers;
 Window includes WindowLocalStorage;
+Window includes WindowSessionStorage;
 Window includes WindowOrWorkerGlobalScope;
 
 enum ScrollBehavior { "auto", "instant", "smooth" };

+ 6 - 0
Userland/Libraries/LibWeb/HTML/WindowSessionStorage.idl

@@ -0,0 +1,6 @@
+#import <HTML/Storage.idl>
+
+// https://html.spec.whatwg.org/multipage/webstorage.html#windowsessionstorage
+interface mixin WindowSessionStorage {
+    readonly attribute Storage sessionStorage;
+};