diff --git a/Libraries/LibWeb/CMakeLists.txt b/Libraries/LibWeb/CMakeLists.txt index 65ff7886876..61d9e9acb22 100644 --- a/Libraries/LibWeb/CMakeLists.txt +++ b/Libraries/LibWeb/CMakeLists.txt @@ -499,6 +499,7 @@ set(SOURCES HTML/WorkerGlobalScope.cpp HTML/WorkerLocation.cpp HTML/WorkerNavigator.cpp + HTML/WorkletGlobalScope.cpp HTML/ValidityState.cpp HighResolutionTime/Performance.cpp HighResolutionTime/TimeOrigin.cpp diff --git a/Libraries/LibWeb/HTML/WorkletGlobalScope.cpp b/Libraries/LibWeb/HTML/WorkletGlobalScope.cpp new file mode 100644 index 00000000000..7851afa879b --- /dev/null +++ b/Libraries/LibWeb/HTML/WorkletGlobalScope.cpp @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024, Shannon Booth + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +namespace Web::HTML { + +GC_DEFINE_ALLOCATOR(WorkletGlobalScope); + +WorkletGlobalScope::WorkletGlobalScope(JS::Realm& realm) + : PlatformObject(realm) +{ +} + +WorkletGlobalScope::~WorkletGlobalScope() = default; + +} diff --git a/Libraries/LibWeb/HTML/WorkletGlobalScope.h b/Libraries/LibWeb/HTML/WorkletGlobalScope.h new file mode 100644 index 00000000000..5cbee06dc38 --- /dev/null +++ b/Libraries/LibWeb/HTML/WorkletGlobalScope.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024, Shannon Booth + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace Web::HTML { + +// https://html.spec.whatwg.org/multipage/worklets.html#workletglobalscope +class WorkletGlobalScope : public Bindings::PlatformObject { + WEB_PLATFORM_OBJECT(WorkletGlobalScope, Bindings::PlatformObject); + GC_DECLARE_ALLOCATOR(WorkletGlobalScope); + +public: + virtual ~WorkletGlobalScope() override; + +protected: + explicit WorkletGlobalScope(JS::Realm&); +}; + +} diff --git a/Libraries/LibWeb/HTML/WorkletGlobalScope.idl b/Libraries/LibWeb/HTML/WorkletGlobalScope.idl new file mode 100644 index 00000000000..24dc47748c4 --- /dev/null +++ b/Libraries/LibWeb/HTML/WorkletGlobalScope.idl @@ -0,0 +1,3 @@ +// https://html.spec.whatwg.org/multipage/worklets.html#workletglobalscope +[Exposed=Worklet, SecureContext] +interface WorkletGlobalScope {}; diff --git a/Libraries/LibWeb/idl_files.cmake b/Libraries/LibWeb/idl_files.cmake index 34727a224d9..e93c1103260 100644 --- a/Libraries/LibWeb/idl_files.cmake +++ b/Libraries/LibWeb/idl_files.cmake @@ -241,6 +241,7 @@ libweb_js_bindings(HTML/Worker) libweb_js_bindings(HTML/WorkerGlobalScope) libweb_js_bindings(HTML/WorkerLocation) libweb_js_bindings(HTML/WorkerNavigator) +libweb_js_bindings(HTML/WorkletGlobalScope) libweb_js_bindings(HighResolutionTime/Performance) libweb_js_bindings(IndexedDB/IDBCursor) libweb_js_bindings(IndexedDB/IDBDatabase)