Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Unified Diff: content/child/indexed_db/indexed_db_dispatcher.h

Issue 2062203004: IDBObserver: Lifetime Management: Adding Observer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Observer moved to connection Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/child/indexed_db/indexed_db_dispatcher.h
diff --git a/content/child/indexed_db/indexed_db_dispatcher.h b/content/child/indexed_db/indexed_db_dispatcher.h
index 9e5068db7b6f12e14a3ef48bc722d0bcdf3e2093..b75cda2f4cc402c34f9233beb6a46646f1a1a636 100644
--- a/content/child/indexed_db/indexed_db_dispatcher.h
+++ b/content/child/indexed_db/indexed_db_dispatcher.h
@@ -24,6 +24,7 @@
#include "third_party/WebKit/public/platform/WebBlobInfo.h"
#include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBCallbacks.h"
#include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBDatabaseCallbacks.h"
+#include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBObserver.h"
#include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBTypes.h"
#include "url/origin.h"
@@ -74,6 +75,15 @@ class CONTENT_EXPORT IndexedDBDispatcher : public WorkerThread::Observer {
// This method is virtual so it can be overridden in unit tests.
virtual bool Send(IPC::Message* msg);
+ int32_t AddIDBObserver(int32_t ipc_database_id,
+ int64_t transaction_id,
+ blink::WebIDBObserver* observer);
dmurph 2016/06/22 01:09:50 please use std::unique_ptr as an argument, and the
+ std::vector<int32_t> RemoveIDBObservers(
+ int32_t ipc_database_id,
+ blink::WebIDBObserver* observer,
+ std::vector<int32_t> database_observers_id);
dmurph 2016/06/22 01:09:50 const ref
+ void ClearIDBObserver(std::vector<int32_t> observersToRemove);
dmurph 2016/06/22 01:09:50 const ref, no camelCase
+
void RequestIDBFactoryGetDatabaseNames(blink::WebIDBCallbacks* callbacks,
const url::Origin& origin);
@@ -258,12 +268,12 @@ class CONTENT_EXPORT IndexedDBDispatcher : public WorkerThread::Observer {
// Used by unit tests to exercise behavior without allocating huge chunks
// of memory.
size_t max_put_value_size_ = kMaxIDBMessageSizeInBytes;
-
// Careful! WebIDBCallbacks wraps non-threadsafe data types. It must be
// destroyed and used on the same thread it was created on.
IDMap<blink::WebIDBCallbacks, IDMapOwnPointer> pending_callbacks_;
IDMap<blink::WebIDBDatabaseCallbacks, IDMapOwnPointer>
pending_database_callbacks_;
+ IDMap<blink::WebIDBObserver, IDMapOwnPointer> observers_;
// Maps the ipc_callback_id from an open cursor request to the request's
// transaction_id. Used to assign the transaction_id to the WebIDBCursorImpl
@@ -272,7 +282,6 @@ class CONTENT_EXPORT IndexedDBDispatcher : public WorkerThread::Observer {
// Map from cursor id to WebIDBCursorImpl.
std::map<int32_t, WebIDBCursorImpl*> cursors_;
-
std::map<int32_t, WebIDBDatabaseImpl*> databases_;
DISALLOW_COPY_AND_ASSIGN(IndexedDBDispatcher);

Powered by Google App Engine
This is Rietveld 408576698