Index: content/browser/indexed_db/indexed_db_transaction.cc |
diff --git a/content/browser/indexed_db/indexed_db_transaction.cc b/content/browser/indexed_db/indexed_db_transaction.cc |
index 4c43f9953238e3cb1ab028edfe08ed49cad9afd0..7fa24567ae611fb9e3d7916613f161016ef2ba00 100644 |
--- a/content/browser/indexed_db/indexed_db_transaction.cc |
+++ b/content/browser/indexed_db/indexed_db_transaction.cc |
@@ -365,6 +365,16 @@ leveldb::Status IndexedDBTransaction::CommitPhaseTwo() { |
callbacks_->OnComplete(*this); |
} |
if (!pending_observers_.empty() && connection_) { |
+ // Observers observe all stores for a version change transaction. |
+ if (mode_ == blink::WebIDBTransactionModeVersionChange) { |
+ std::set<int64_t> object_stores; |
cmumford
2017/01/09 21:31:25
object_store_ids
dmurph
2017/01/10 00:17:39
removed.
|
+ for (const auto& store_metadata : database_->metadata().object_stores) { |
+ object_stores.insert(store_metadata.first); |
+ } |
+ for (auto& pending_observer : pending_observers_) { |
+ pending_observer->set_object_store_ids(std::move(object_stores)); |
cmumford
2017/01/09 21:31:26
Won't this only set the first pending observer's s
dmurph
2017/01/10 00:17:39
Removed this feature as per https://github.com/WIC
|
+ } |
+ } |
connection_->ActivatePendingObservers(std::move(pending_observers_)); |
pending_observers_.clear(); |
} |
@@ -510,13 +520,12 @@ void IndexedDBTransaction::AddObservation( |
it->second->observations.push_back(std::move(observation)); |
} |
-void IndexedDBTransaction::RecordObserverForLastObservation( |
- int32_t connection_id, |
- int32_t observer_id) { |
+::indexed_db::mojom::ObserverChangesPtr* |
cmumford
2017/01/09 21:31:26
function should be const, *and* return a const Obs
dmurph
2017/01/10 00:17:39
Neither can be const, as I need to modify the retu
|
+IndexedDBTransaction::GetPendingChangesForConnection(int32_t connection_id) { |
auto it = connection_changes_map_.find(connection_id); |
- DCHECK(it != connection_changes_map_.end()); |
- it->second->observation_index_map[observer_id].push_back( |
- it->second->observations.size() - 1); |
+ if (it != connection_changes_map_.end()) |
+ return &it->second; |
+ return nullptr; |
} |
} // namespace content |