Chromium Code Reviews| Index: content/child/indexed_db/indexed_db_dispatcher.cc |
| diff --git a/content/child/indexed_db/indexed_db_dispatcher.cc b/content/child/indexed_db/indexed_db_dispatcher.cc |
| index aa40cca350f2e8548188b939f202ec53a261f290..8ff0e4d61396ab0b589791c42913cf6c1daf68e8 100644 |
| --- a/content/child/indexed_db/indexed_db_dispatcher.cc |
| +++ b/content/child/indexed_db/indexed_db_dispatcher.cc |
| @@ -30,6 +30,7 @@ using blink::WebIDBDatabaseCallbacks; |
| using blink::WebIDBDatabaseError; |
| using blink::WebIDBKey; |
| using blink::WebIDBMetadata; |
| +using blink::WebIDBObserver; |
| using blink::WebIDBValue; |
| using blink::WebString; |
| using blink::WebVector; |
| @@ -167,6 +168,34 @@ bool IndexedDBDispatcher::Send(IPC::Message* msg) { |
| return thread_safe_sender_->Send(msg); |
| } |
| +int32_t IndexedDBDispatcher::AddIDBObserver( |
| + int32_t ipc_database_id, |
| + int64_t transaction_id, |
| + std::unique_ptr<WebIDBObserver> observer) { |
| + int32_t observer_id = observers_.Add(observer.get()); |
| + observer->setId(observer_id); |
|
dmurph
2016/06/30 00:14:06
Move this to IDBObserver pls.
palakj1
2016/06/30 01:07:04
Done.
|
| + observer.release(); |
| + Send(new IndexedDBHostMsg_DatabaseObserve(ipc_database_id, transaction_id, |
| + observer_id)); |
| + return observer_id; |
| +} |
| + |
| +void IndexedDBDispatcher::RemoveIDBObserversFromDatabase( |
| + int32_t ipc_database_id, |
| + const std::vector<int32_t>& observer_ids_to_remove) { |
| + for (int32_t id_to_remove : observer_ids_to_remove) { |
| + observers_.Remove(id_to_remove); |
| + } |
| + Send(new IndexedDBHostMsg_DatabaseUnobserve(ipc_database_id, |
| + observer_ids_to_remove)); |
| +} |
| + |
| +void IndexedDBDispatcher::RemoveIDBObservers( |
| + const std::set<int32_t>& observer_ids_to_remove) { |
| + for (int32_t id : observer_ids_to_remove) |
| + observers_.Remove(id); |
| +} |
| + |
| void IndexedDBDispatcher::RequestIDBCursorAdvance( |
| unsigned long count, |
| WebIDBCallbacks* callbacks_ptr, |