From de640ffef47d4548d52ad82b039b26105d6f4c9f Mon Sep 17 00:00:00 2001 From: stelar7 Date: Wed, 9 Apr 2025 23:14:10 +0200 Subject: [PATCH] LibWeb/IDB: Implement auto-commit for IDBTransaction --- Libraries/LibWeb/IndexedDB/IDBTransaction.h | 2 +- Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Libraries/LibWeb/IndexedDB/IDBTransaction.h b/Libraries/LibWeb/IndexedDB/IDBTransaction.h index bc5af18a485..3913d1c506e 100644 --- a/Libraries/LibWeb/IndexedDB/IDBTransaction.h +++ b/Libraries/LibWeb/IndexedDB/IDBTransaction.h @@ -49,10 +49,10 @@ public: [[nodiscard]] String uuid() const { return m_uuid; } void set_mode(Bindings::IDBTransactionMode mode) { m_mode = mode; } - void set_state(TransactionState state) { m_state = state; } void set_error(GC::Ptr error) { m_error = error; } void set_associated_request(GC::Ptr request) { m_associated_request = request; } void set_aborted(bool aborted) { m_aborted = aborted; } + void set_state(TransactionState state) { m_state = state; } [[nodiscard]] bool is_upgrade_transaction() const { return m_mode == Bindings::IDBTransactionMode::Versionchange; } [[nodiscard]] bool is_readonly() const { return m_mode == Bindings::IDBTransactionMode::Readonly; } diff --git a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp index 4b325a9fab8..61ee5b3c7e7 100644 --- a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp +++ b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp @@ -409,6 +409,15 @@ GC::Ref upgrade_a_database(JS::Realm& realm, GC::Refstate() == IDBTransaction::TransactionState::Inactive && transaction->request_list().is_empty() && !transaction->aborted()) + commit_a_transaction(realm, transaction); + wait_for_transaction = false; }));