Index: content/browser/indexed_db/indexed_db_transaction_coordinator.cc |
diff --git a/content/browser/indexed_db/indexed_db_transaction_coordinator.cc b/content/browser/indexed_db/indexed_db_transaction_coordinator.cc |
index 68e01728813500240ba1625873519d9073cc87ea..80345303ab195efadd7a765b33fb8d8b154033b1 100644 |
--- a/content/browser/indexed_db/indexed_db_transaction_coordinator.cc |
+++ b/content/browser/indexed_db/indexed_db_transaction_coordinator.cc |
@@ -27,6 +27,17 @@ void IndexedDBTransactionCoordinator::DidCreateTransaction( |
ProcessQueuedTransactions(); |
} |
+// Observer transactions jump to the front of the queue. |
+void IndexedDBTransactionCoordinator::DidCreateObserverTransaction( |
+ IndexedDBTransaction* transaction) { |
+ DCHECK(!queued_transactions_.count(transaction)); |
+ DCHECK(!started_transactions_.count(transaction)); |
+ DCHECK_EQ(IndexedDBTransaction::CREATED, transaction->state()); |
+ |
+ started_transactions_.insert_front(transaction); |
+ ProcessQueuedTransactions(); |
+} |
+ |
void IndexedDBTransactionCoordinator::DidFinishTransaction( |
IndexedDBTransaction* transaction) { |
if (queued_transactions_.count(transaction)) { |