LibWeb/IndexedDB: Prevent copying and moving of RequestList

RequestList cannot be copied or moved, because m_pending_request_queue
contains lambdas that store pointers to the original RequestList and
completion steps that we don't have a reference to.

Fixes a bunch of WPT regressions and imports the ones that work.
This commit is contained in:
Luke Wilde
2025-10-09 15:26:55 +01:00
committed by Jelle Raaijmakers
parent 4ede2cdf18
commit 85e8d2ba38
Notes: github-actions[bot] 2025-10-23 12:44:02 +00:00
88 changed files with 5924 additions and 11 deletions

View File

@@ -13,8 +13,13 @@
namespace Web::IndexedDB {
class RequestList : public AK::Vector<GC::Root<IDBRequest>> {
class RequestList final : public AK::Vector<GC::Root<IDBRequest>> {
AK_MAKE_NONMOVABLE(RequestList);
AK_MAKE_NONCOPYABLE(RequestList);
public:
RequestList() = default;
void all_requests_processed(GC::Heap&, GC::Ref<GC::Function<void()>> on_complete);
void all_previous_requests_processed(GC::Heap&, GC::Ref<IDBRequest> const& request, GC::Ref<GC::Function<void()>> on_complete);