Index: content/browser/indexed_db/indexed_db_connection.h |
diff --git a/content/browser/indexed_db/indexed_db_connection.h b/content/browser/indexed_db/indexed_db_connection.h |
index 3c305f39d057147c8a8feb12654a0f826404b09a..82c8c18dc86b86d18d93afdedf0c3f597717366d 100644 |
--- a/content/browser/indexed_db/indexed_db_connection.h |
+++ b/content/browser/indexed_db/indexed_db_connection.h |
@@ -11,23 +11,23 @@ |
#include "content/browser/indexed_db/indexed_db_database.h" |
#include "content/browser/indexed_db/indexed_db_database_callbacks.h" |
#include "content/browser/indexed_db/indexed_db_observer.h" |
+#include "mojo/public/cpp/bindings/strong_binding.h" |
+#include "third_party/WebKit/public/platform/modules/indexeddb/indexed_db.mojom.h" |
namespace content { |
class IndexedDBDatabaseError; |
-class CONTENT_EXPORT IndexedDBConnection { |
+class CONTENT_EXPORT IndexedDBConnection |
+ : public ::indexed_db::mojom::Database { |
public: |
IndexedDBConnection(scoped_refptr<IndexedDBDatabase> db, |
scoped_refptr<IndexedDBDatabaseCallbacks> callbacks); |
- virtual ~IndexedDBConnection(); |
+ ~IndexedDBConnection() override; |
// These methods are virtual to allow subclassing in unit tests. |
virtual void ForceClose(); |
- virtual void Close(); |
virtual bool IsConnected(); |
- void VersionChangeIgnored(); |
- |
virtual void ActivatePendingObservers( |
std::vector<std::unique_ptr<IndexedDBObserver>> pending_observers); |
// Removes observer listed in |remove_observer_ids| from active_observer of |
@@ -45,6 +45,100 @@ class CONTENT_EXPORT IndexedDBConnection { |
return weak_factory_.GetWeakPtr(); |
} |
+ // ::indexed_db::mojom::Database: |
+ void CreateObjectStore(int64_t transaction_id, |
+ int64_t object_store_id, |
+ const mojo::String& name, |
+ const IndexedDBKeyPath& key_path, |
+ bool auto_increment) override; |
+ |
+ void DeleteObjectStore(int64_t transaction_id, |
+ int64_t object_store_id) override; |
+ |
+ void CreateTransaction( |
+ int64_t id, |
+ mojo::Array<int64_t> scope, |
+ ::indexed_db::mojom::TransactionMode transaction_mode) override; |
+ |
+ void Close() override; |
+ |
+ void VersionChangeIgnored() override; |
+ |
+ void Abort(int64_t transaction_id) override; |
+ |
+ void Commit(int64_t transaction_id) override; |
+ |
+ void CreateIndex(int64_t transaction_id, |
+ int64_t object_store_id, |
+ int64_t index_id, |
+ const mojo::String& name, |
+ const IndexedDBKeyPath& key_path, |
+ bool unique, |
+ bool multi_entry) override; |
+ |
+ void DeleteIndex(int64_t transaction_id, |
+ int64_t object_store_id, |
+ int64_t index_id) override; |
+ |
+ void Get(int64_t database_id, |
+ int64_t transaction_id, |
+ int64_t object_store_id, |
+ int64_t index_id, |
+ ::indexed_db::mojom::KeyRangePtr key_range, |
+ bool key_only, |
+ const GetCallback& callback) override; |
+ |
+ void GetAll(int64_t transaction_id, |
+ int64_t object_store_id, |
+ int64_t index_id, |
+ ::indexed_db::mojom::KeyRangePtr key_range, |
+ int64_t max_count, |
+ bool key_only) override; |
+ |
+ void Put(int64_t transaction_id, |
+ int64_t object_store_id, |
+ mojo::Array<int8_t> value, |
+ mojo::Array<::indexed_db::mojom::BlobInfoPtr> blob_info, |
+ ::indexed_db::mojom::KeyPtr key, |
+ ::indexed_db::mojom::PutMode put_mode, |
+ mojo::Array<int64_t> index_ids, |
+ mojo::Array<mojo::Array<::indexed_db::mojom::KeyPtr>> index_keys) |
+ override; |
+ |
+ void DeleteRange(int64_t transaction_id, |
+ int64_t object_store_id, |
+ ::indexed_db::mojom::KeyRangePtr key_range) override; |
+ |
+ void Clear(int64_t transaction_id, int64_t object_store_id) override; |
+ |
+ void SetIndexKeys(int64_t transaction_id, |
+ int64_t object_store_id, |
+ ::indexed_db::mojom::KeyPtr primary_key, |
+ mojo::Array<int64_t> index_ids, |
+ mojo::Array<mojo::Array<::indexed_db::mojom::KeyPtr>> |
+ index_keys) override; |
+ |
+ void SetIndexesReady(int64_t transaction_id, |
+ int64_t object_store_id, |
+ mojo::Array<int64_t> index_ids) override; |
+ |
+ void OpenCursor(int64_t transaction_id, |
+ int64_t object_store_id, |
+ int64_t index_id, |
+ ::indexed_db::mojom::KeyRangePtr key_range, |
+ ::indexed_db::mojom::CursorDirection direction, |
+ bool key_only, |
+ ::indexed_db::mojom::TaskType task_type) override; |
+ |
+ void Count(int64_t transaction_id, |
+ int64_t object_store_id, |
+ int64_t index_id, |
+ ::indexed_db::mojom::KeyRangePtr key_range) override; |
+ |
+ void AckReceivedBlobs(mojo::Array<mojo::String> uuids) override; |
+ |
+ ::indexed_db::mojom::DatabasePtr CreateInterface(); |
+ |
private: |
// NULL in some unit tests, and after the connection is closed. |
scoped_refptr<IndexedDBDatabase> database_; |
@@ -53,6 +147,7 @@ class CONTENT_EXPORT IndexedDBConnection { |
// May be NULL in unit tests. |
scoped_refptr<IndexedDBDatabaseCallbacks> callbacks_; |
std::vector<std::unique_ptr<IndexedDBObserver>> active_observers_; |
+ mojo::StrongBinding<::indexed_db::mojom::Database> binding_; |
base::WeakPtrFactory<IndexedDBConnection> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(IndexedDBConnection); |