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

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

Issue 2125213002: [IndexedDB] Propogating changes to observers : Renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lifetime
Patch Set: Minor typecasting Created 4 years, 5 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: third_party/WebKit/Source/modules/indexeddb/IDBObserver.h
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObserver.h b/third_party/WebKit/Source/modules/indexeddb/IDBObserver.h
index c85005677b75b4d05a78f5a7a8a103eb79d55a47..c8ef7daf516a55ccfef0c3b78f2726e60d78cf03 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBObserver.h
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBObserver.h
@@ -8,7 +8,9 @@
#include "bindings/core/v8/ScriptWrappable.h"
#include "modules/ModulesExport.h"
#include "platform/heap/Handle.h"
-#include <set>
+#include "public/platform/WebVector.h"
+#include "public/platform/modules/indexeddb/WebIDBTypes.h"
+#include <bitset>
namespace blink {
@@ -17,6 +19,7 @@ class IDBDatabase;
class IDBObserverCallback;
class IDBObserverInit;
class IDBTransaction;
+struct WebIDBObservation;
class MODULES_EXPORT IDBObserver final : public GarbageCollectedFinalized<IDBObserver>, public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
@@ -25,10 +28,18 @@ public:
static IDBObserver* create(IDBObserverCallback&, const IDBObserverInit&);
~IDBObserver();
- // API methods
+
+ void removeObserver(int32_t id);
+ void onChange(int32_t id, const WebVector<WebIDBObservation>&, const WebVector<int32_t>& observationIndex);
+
+ bool transaction() const { return m_transaction; }
+ bool noRecords() const { return m_noRecords; }
+ bool values() const { return m_values; }
+ const std::bitset<WebIDBOperationTypeCount>& operationTypes() const { return m_operationTypes; }
+
+ // Implement the IDBObserver IDL.
void observe(IDBDatabase*, IDBTransaction*, ExceptionState&);
void unobserve(IDBDatabase*, ExceptionState&);
- void removeObserver(int32_t id);
DECLARE_TRACE();
@@ -39,7 +50,9 @@ private:
bool m_transaction;
bool m_values;
bool m_noRecords;
- std::set<int32_t> m_observerIds;
+ // Operation type bits are set corresponding to WebIDBOperationType.
+ std::bitset<WebIDBOperationTypeCount> m_operationTypes;
+ HeapHashMap<int32_t, WeakMember<IDBDatabase>> m_observerIds;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698