From fe3962a64d1ab019b36965ecc60fe495adfd9295 Mon Sep 17 00:00:00 2001 From: Jamie Mansfield Date: Sat, 22 Jun 2024 11:28:25 +0100 Subject: [PATCH] LibWeb: Implement IDBOpenDBRequest.onupgradeneeded --- Userland/Libraries/LibWeb/HTML/EventNames.h | 1 + .../Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp | 12 ++++++++++++ .../Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h | 2 ++ .../Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl | 2 +- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/HTML/EventNames.h b/Userland/Libraries/LibWeb/HTML/EventNames.h index 9f8c2f0cd8a..f9cb286a641 100644 --- a/Userland/Libraries/LibWeb/HTML/EventNames.h +++ b/Userland/Libraries/LibWeb/HTML/EventNames.h @@ -111,6 +111,7 @@ namespace Web::HTML::EventNames { __ENUMERATE_HTML_EVENT(transitionend) \ __ENUMERATE_HTML_EVENT(unhandledrejection) \ __ENUMERATE_HTML_EVENT(unload) \ + __ENUMERATE_HTML_EVENT(upgradeneeded) \ __ENUMERATE_HTML_EVENT(visibilitychange) \ __ENUMERATE_HTML_EVENT(volumechange) \ __ENUMERATE_HTML_EVENT(waiting) \ diff --git a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp index 827bd706485..2b5e83644aa 100644 --- a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp +++ b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp @@ -39,4 +39,16 @@ WebIDL::CallbackType* IDBOpenDBRequest::onblocked() return event_handler_attribute(HTML::EventNames::blocked); } +// https://w3c.github.io/IndexedDB/#dom-idbopendbrequest-onupgradeneeded +void IDBOpenDBRequest::set_onupgradeneeded(WebIDL::CallbackType* event_handler) +{ + set_event_handler_attribute(HTML::EventNames::upgradeneeded, event_handler); +} + +// https://w3c.github.io/IndexedDB/#dom-idbopendbrequest-onupgradeneeded +WebIDL::CallbackType* IDBOpenDBRequest::onupgradeneeded() +{ + return event_handler_attribute(HTML::EventNames::upgradeneeded); +} + } diff --git a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h index 6055ff5d159..b908dd9b4e9 100644 --- a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h +++ b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h @@ -21,6 +21,8 @@ public: void set_onblocked(WebIDL::CallbackType*); WebIDL::CallbackType* onblocked(); + void set_onupgradeneeded(WebIDL::CallbackType*); + WebIDL::CallbackType* onupgradeneeded(); protected: explicit IDBOpenDBRequest(JS::Realm&); diff --git a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl index 51c7787cfb8..d2a8cea2d94 100644 --- a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl +++ b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl @@ -5,5 +5,5 @@ interface IDBOpenDBRequest : IDBRequest { // Event handlers: attribute EventHandler onblocked; - [FIXME] attribute EventHandler onupgradeneeded; + attribute EventHandler onupgradeneeded; };