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 57ac964577ab29916c8e9e5e6d3c04b0c559dddb..705c26ac8aaf4ef6849c6e8db218fcb1bf7069d6 100644 |
--- a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h |
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h |
@@ -34,15 +34,16 @@ |
#include "modules/EventModules.h" |
#include "modules/EventTargetModules.h" |
#include "modules/ModulesExport.h" |
-#include "modules/indexeddb/IDBDatabaseCallbacks.h" |
#include "modules/indexeddb/IDBHistograms.h" |
#include "modules/indexeddb/IDBMetadata.h" |
#include "modules/indexeddb/IDBObjectStore.h" |
#include "modules/indexeddb/IDBObjectStoreParameters.h" |
#include "modules/indexeddb/IDBTransaction.h" |
#include "modules/indexeddb/IndexedDB.h" |
+#include "mojo/public/cpp/bindings/associated_binding.h" |
#include "platform/heap/Handle.h" |
#include "public/platform/modules/indexeddb/WebIDBDatabase.h" |
+#include "public/platform/modules/indexeddb/indexed_db.mojom-blink.h" |
#include "wtf/PassRefPtr.h" |
#include "wtf/RefPtr.h" |
#include <memory> |
@@ -56,14 +57,19 @@ class ExecutionContext; |
class MODULES_EXPORT IDBDatabase final |
: public EventTargetWithInlineData |
, public ActiveScriptWrappable |
- , public ActiveDOMObject { |
+ , public ActiveDOMObject |
+ , public indexed_db::mojom::blink::DatabaseClient { |
USING_GARBAGE_COLLECTED_MIXIN(IDBDatabase); |
DEFINE_WRAPPERTYPEINFO(); |
+ USING_PRE_FINALIZER(IDBDatabase, dispose); |
+ |
public: |
- static IDBDatabase* create(ExecutionContext*, std::unique_ptr<WebIDBDatabase>, IDBDatabaseCallbacks*); |
+ static IDBDatabase* create(ExecutionContext*, std::unique_ptr<WebIDBDatabase>, indexed_db::mojom::blink::DatabaseClientAssociatedRequest); |
~IDBDatabase() override; |
DECLARE_VIRTUAL_TRACE(); |
+ void dispose(); |
+ |
void setMetadata(const IDBDatabaseMetadata& metadata) { m_metadata = metadata; } |
void indexCreated(int64_t objectStoreId, const IDBIndexMetadata&); |
void indexDeleted(int64_t objectStoreId, int64_t indexId); |
@@ -86,10 +92,11 @@ public: |
DEFINE_ATTRIBUTE_EVENT_LISTENER(error); |
DEFINE_ATTRIBUTE_EVENT_LISTENER(versionchange); |
- // IDBDatabaseCallbacks |
- void onVersionChange(int64_t oldVersion, int64_t newVersion); |
- void onAbort(int64_t, DOMException*); |
- void onComplete(int64_t); |
+ // indexed_db::mojom::blink::DatabaseClient |
+ void OnTransactionAborted(int64_t transactionId, indexed_db::mojom::blink::ErrorInfoPtr) override; |
+ void OnTransactionCompleted(int64_t transactionId) override; |
+ void OnForcedClosed() override; |
+ void OnVersionChange(int64_t oldVersion, int64_t newVersion) override; |
// ScriptWrappable |
bool hasPendingActivity() const final; |
@@ -140,7 +147,7 @@ protected: |
DispatchEventResult dispatchEventInternal(Event*) override; |
private: |
- IDBDatabase(ExecutionContext*, std::unique_ptr<WebIDBDatabase>, IDBDatabaseCallbacks*); |
+ IDBDatabase(ExecutionContext*, std::unique_ptr<WebIDBDatabase>, indexed_db::mojom::blink::DatabaseClientAssociatedRequest); |
IDBObjectStore* createObjectStore(const String& name, const IDBKeyPath&, bool autoIncrement, ExceptionState&); |
void closeConnection(); |
@@ -157,7 +164,7 @@ private: |
// database so that we can cancel them if the database closes. |
HeapVector<Member<Event>> m_enqueuedEvents; |
- Member<IDBDatabaseCallbacks> m_databaseCallbacks; |
+ mojo::AssociatedBinding<indexed_db::mojom::blink::DatabaseClient> m_clientBinding; |
}; |
} // namespace blink |