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

Unified Diff: third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h

Issue 2511403003: Send IndexedDB observations through IDBDatabaseCallbacks. (Closed)
Patch Set: Remove unnecessary forward declaration. Created 4 years, 1 month 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: third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
index 3790ac71b3e6b4ee5c9a7993d768f6cecb872d1c..e0c9dc0e94b0f64e3c46ee9e4e241d28d76978fa 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
@@ -52,6 +52,8 @@ namespace blink {
class DOMException;
class ExceptionState;
class ExecutionContext;
+class IDBObserver;
+struct WebIDBObservation;
class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
public ActiveScriptWrappable,
@@ -76,6 +78,14 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
void transactionCreated(IDBTransaction*);
void transactionFinished(const IDBTransaction*);
const String& getObjectStoreName(int64_t objectStoreId) const;
+ int32_t addObserver(
+ IDBObserver*,
+ int64_t transactionId,
+ bool includeTransaction,
+ bool noRecords,
+ bool values,
+ const std::bitset<WebIDBOperationTypeCount>& operationTypes);
+ void removeObservers(const Vector<int32_t>& observerIds);
// Implement the IDL
const String& name() const { return m_metadata.name; }
@@ -105,6 +115,9 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
void onVersionChange(int64_t oldVersion, int64_t newVersion);
void onAbort(int64_t, DOMException*);
void onComplete(int64_t);
+ void onChanges(const std::unordered_map<int32_t, std::vector<int32_t>>&
+ observation_index_map,
+ const WebVector<WebIDBObservation>& observations);
// ScriptWrappable
bool hasPendingActivity() const final;
@@ -133,6 +146,7 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
WebIDBDatabase* backend() const { return m_backend.get(); }
static int64_t nextTransactionId();
+ static int32_t nextObserverId();
static const char indexDeletedErrorMessage[];
static const char indexNameTakenErrorMessage[];
@@ -173,6 +187,7 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
std::unique_ptr<WebIDBDatabase> m_backend;
Member<IDBTransaction> m_versionChangeTransaction;
HeapHashMap<int64_t, Member<IDBTransaction>> m_transactions;
+ HeapHashMap<int32_t, Member<IDBObserver>> m_observers;
bool m_closePending = false;
« no previous file with comments | « third_party/WebKit/Source/modules/indexeddb/BUILD.gn ('k') | third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698