diff --git a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp index 4aa8fc7457d..621ab2a2dab 100644 --- a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp +++ b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp @@ -447,10 +447,10 @@ WebIDL::ExceptionOr delete_a_database(JS::Realm& realm, StorageAPI::Storage } // https://w3c.github.io/IndexedDB/#abort-a-transaction -void abort_a_transaction(IDBTransaction& transaction, GC::Ptr error) +void abort_a_transaction(GC::Ref transaction, GC::Ptr error) { // NOTE: This is not spec'ed anywhere, but we need to know IF the transaction was aborted. - transaction.set_aborted(true); + transaction->set_aborted(true); // FIXME: 1. All the changes made to the database by the transaction are reverted. // For upgrade transactions this includes changes to the set of object stores and indexes, as well as the change to the version. @@ -461,11 +461,11 @@ void abort_a_transaction(IDBTransaction& transaction, GC::Ptrset_state(IDBTransaction::TransactionState::Finished); // 4. If error is not null, set transaction’s error to error. if (error) - transaction.set_error(error); + transaction->set_error(error); // FIXME: 5. For each request of transaction’s request list, abort the steps to asynchronously execute a request for request, // set request’s processed flag to true, and queue a task to run these steps: @@ -475,23 +475,23 @@ void abort_a_transaction(IDBTransaction& transaction, GC::Ptrrealm().vm().heap(), [transaction]() { // 1. If transaction is an upgrade transaction, then set transaction’s connection's associated database's upgrade transaction to null. - if (transaction.is_upgrade_transaction()) - transaction.connection()->associated_database()->set_upgrade_transaction(nullptr); + if (transaction->is_upgrade_transaction()) + transaction->connection()->associated_database()->set_upgrade_transaction(nullptr); // 2. Fire an event named abort at transaction with its bubbles attribute initialized to true. - transaction.dispatch_event(DOM::Event::create(transaction.realm(), HTML::EventNames::abort, { .bubbles = true })); + transaction->dispatch_event(DOM::Event::create(transaction->realm(), HTML::EventNames::abort, { .bubbles = true })); // 3. If transaction is an upgrade transaction, then: - if (transaction.is_upgrade_transaction()) { + if (transaction->is_upgrade_transaction()) { // 1. Let request be the open request associated with transaction. - auto request = transaction.associated_request(); + auto request = transaction->associated_request(); // 2. Set request’s transaction to null. // NOTE: Clear the two-way binding. request->set_transaction(nullptr); - transaction.set_associated_request(nullptr); + transaction->set_associated_request(nullptr); // 3. Set request’s result to undefined. request->set_result(JS::js_undefined()); diff --git a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.h b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.h index 74e5b3f022f..907c2d1924b 100644 --- a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.h +++ b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.h @@ -23,7 +23,7 @@ ErrorOr> convert_a_value_to_a_key(JS::Realm&, JS::Value, Vector upgrade_a_database(JS::Realm&, GC::Ref, u64, GC::Ref); WebIDL::ExceptionOr delete_a_database(JS::Realm&, StorageAPI::StorageKey, String, GC::Ref); -void abort_a_transaction(IDBTransaction&, GC::Ptr); +void abort_a_transaction(GC::Ref, GC::Ptr); JS::Value convert_a_key_to_a_value(JS::Realm&, GC::Ref); bool is_valid_key_path(KeyPath const&); GC::Ref create_a_sorted_name_list(JS::Realm&, Vector);