From 3aa36caa529135c102a0e9ddd043525898bce199 Mon Sep 17 00:00:00 2001 From: Shannon Booth Date: Sun, 19 May 2024 18:07:06 +1200 Subject: [PATCH] LibWeb: Add stub interface for IDBOpenDBRequest --- Userland/Libraries/LibWeb/CMakeLists.txt | 1 + Userland/Libraries/LibWeb/Forward.h | 1 + .../LibWeb/IndexedDB/IDBOpenDBRequest.cpp | 28 +++++++++++++++++++ .../LibWeb/IndexedDB/IDBOpenDBRequest.h | 27 ++++++++++++++++++ .../LibWeb/IndexedDB/IDBOpenDBRequest.idl | 9 ++++++ Userland/Libraries/LibWeb/idl_files.cmake | 1 + 6 files changed, 67 insertions(+) create mode 100644 Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp create mode 100644 Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h create mode 100644 Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index 4e7bc50adec..6e541bd25ed 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -448,6 +448,7 @@ set(SOURCES Infra/JSON.cpp Infra/Strings.cpp IndexedDB/IDBFactory.cpp + IndexedDB/IDBOpenDBRequest.cpp IndexedDB/IDBRequest.cpp Internals/Inspector.cpp Internals/InternalAnimationTimeline.cpp diff --git a/Userland/Libraries/LibWeb/Forward.h b/Userland/Libraries/LibWeb/Forward.h index 54c1ddc832e..444dcb44f3b 100644 --- a/Userland/Libraries/LibWeb/Forward.h +++ b/Userland/Libraries/LibWeb/Forward.h @@ -500,6 +500,7 @@ class Performance; namespace Web::IndexedDB { class IDBFactory; +class IDBOpenDBRequest; class IDBRequest; } diff --git a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp new file mode 100644 index 00000000000..ecb4f9a0ea8 --- /dev/null +++ b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024, Shannon Booth + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +namespace Web::IndexedDB { + +JS_DEFINE_ALLOCATOR(IDBOpenDBRequest); + +IDBOpenDBRequest::~IDBOpenDBRequest() = default; + +IDBOpenDBRequest::IDBOpenDBRequest(JS::Realm& realm) + : IDBRequest(realm) +{ +} + +void IDBOpenDBRequest::initialize(JS::Realm& realm) +{ + Base::initialize(realm); + WEB_SET_PROTOTYPE_FOR_INTERFACE(IDBOpenDBRequest); +} + +} diff --git a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h new file mode 100644 index 00000000000..5fa6903f428 --- /dev/null +++ b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024, Shannon Booth + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace Web::IndexedDB { + +// https://w3c.github.io/IndexedDB/#idbopendbrequest +class IDBOpenDBRequest : public IDBRequest { + WEB_PLATFORM_OBJECT(IDBOpenDBRequest, IDBRequest); + JS_DECLARE_ALLOCATOR(IDBOpenDBRequest); + +public: + virtual ~IDBOpenDBRequest(); + +protected: + explicit IDBOpenDBRequest(JS::Realm&); + + virtual void initialize(JS::Realm&) override; +}; + +} diff --git a/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl new file mode 100644 index 00000000000..a645029b620 --- /dev/null +++ b/Userland/Libraries/LibWeb/IndexedDB/IDBOpenDBRequest.idl @@ -0,0 +1,9 @@ +#import + +// https://w3c.github.io/IndexedDB/#idbopendbrequest +[Exposed=(Window,Worker)] +interface IDBOpenDBRequest : IDBRequest { + // Event handlers: + // FIXME: attribute EventHandler onblocked; + // FIXME: attribute EventHandler onupgradeneeded; +}; diff --git a/Userland/Libraries/LibWeb/idl_files.cmake b/Userland/Libraries/LibWeb/idl_files.cmake index 1f3e37b217c..8e7eef09432 100644 --- a/Userland/Libraries/LibWeb/idl_files.cmake +++ b/Userland/Libraries/LibWeb/idl_files.cmake @@ -217,6 +217,7 @@ libweb_js_bindings(HTML/WorkerLocation) libweb_js_bindings(HTML/WorkerNavigator) libweb_js_bindings(HighResolutionTime/Performance) libweb_js_bindings(IndexedDB/IDBFactory) +libweb_js_bindings(IndexedDB/IDBOpenDBRequest) libweb_js_bindings(IndexedDB/IDBRequest) libweb_js_bindings(Internals/Inspector) libweb_js_bindings(Internals/InternalAnimationTimeline)