| Index: content/browser/indexed_db/indexed_db_connection.cc
|
| diff --git a/content/browser/indexed_db/indexed_db_connection.cc b/content/browser/indexed_db/indexed_db_connection.cc
|
| index c2c7ebd266df6df2f445818775ad260965660cbb..c19d395beadb1ab1c89733223d6498fd9eda6b68 100644
|
| --- a/content/browser/indexed_db/indexed_db_connection.cc
|
| +++ b/content/browser/indexed_db/indexed_db_connection.cc
|
| @@ -7,41 +7,69 @@
|
| #include "base/logging.h"
|
| #include "base/stl_util.h"
|
|
|
| +using ::indexed_db::mojom::BlobInfoPtr;
|
| +using ::indexed_db::mojom::CursorDirection;
|
| +using ::indexed_db::mojom::KeyPtr;
|
| +using ::indexed_db::mojom::KeyRangePtr;
|
| +using ::indexed_db::mojom::PutMode;
|
| +using ::indexed_db::mojom::TaskType;
|
| +using ::indexed_db::mojom::TransactionMode;
|
| +
|
| namespace content {
|
|
|
| IndexedDBConnection::IndexedDBConnection(
|
| scoped_refptr<IndexedDBDatabase> database,
|
| scoped_refptr<IndexedDBDatabaseCallbacks> callbacks)
|
| - : database_(database), callbacks_(callbacks), weak_factory_(this) {}
|
| + : database_(database),
|
| + callbacks_(callbacks),
|
| + binding_(this),
|
| + weak_factory_(this) {}
|
|
|
| IndexedDBConnection::~IndexedDBConnection() {}
|
|
|
| -void IndexedDBConnection::Close() {
|
| +void IndexedDBConnection::ForceClose() {
|
| if (!callbacks_.get())
|
| return;
|
| +
|
| + // IndexedDBDatabase::Close() can delete this instance.
|
| base::WeakPtr<IndexedDBConnection> this_obj = weak_factory_.GetWeakPtr();
|
| - database_->Close(this, false /* forced */);
|
| + scoped_refptr<IndexedDBDatabaseCallbacks> callbacks(callbacks_);
|
| + database_->Close(this, true /* forced */);
|
| if (this_obj) {
|
| database_ = nullptr;
|
| callbacks_ = nullptr;
|
| active_observers_.clear();
|
| }
|
| + callbacks->OnForcedClose();
|
| }
|
|
|
| -void IndexedDBConnection::ForceClose() {
|
| +bool IndexedDBConnection::IsConnected() {
|
| + return database_.get() != NULL;
|
| +}
|
| +
|
| +void IndexedDBConnection::CreateObjectStore(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + const mojo::String& name,
|
| + const IndexedDBKeyPath& key_path,
|
| + bool auto_increment) {}
|
| +
|
| +void IndexedDBConnection::DeleteObjectStore(int64_t transaction_id,
|
| + int64_t object_store_id) {}
|
| +
|
| +void IndexedDBConnection::CreateTransaction(int64_t id,
|
| + mojo::Array<int64_t> scope,
|
| + TransactionMode transaction_mode) {}
|
| +
|
| +void IndexedDBConnection::Close() {
|
| if (!callbacks_.get())
|
| return;
|
| -
|
| - // IndexedDBDatabase::Close() can delete this instance.
|
| base::WeakPtr<IndexedDBConnection> this_obj = weak_factory_.GetWeakPtr();
|
| - scoped_refptr<IndexedDBDatabaseCallbacks> callbacks(callbacks_);
|
| - database_->Close(this, true /* forced */);
|
| + database_->Close(this, false /* forced */);
|
| if (this_obj) {
|
| database_ = nullptr;
|
| callbacks_ = nullptr;
|
| active_observers_.clear();
|
| }
|
| - callbacks->OnForcedClose();
|
| }
|
|
|
| void IndexedDBConnection::VersionChangeIgnored() {
|
| @@ -50,8 +78,114 @@ void IndexedDBConnection::VersionChangeIgnored() {
|
| database_->VersionChangeIgnored();
|
| }
|
|
|
| -bool IndexedDBConnection::IsConnected() {
|
| - return database_.get() != NULL;
|
| +void IndexedDBConnection::Abort(int64_t transaction_id) {}
|
| +
|
| +void IndexedDBConnection::Commit(int64_t transaction_id) {}
|
| +
|
| +void IndexedDBConnection::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) {}
|
| +
|
| +void IndexedDBConnection::DeleteIndex(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + int64_t index_id) {}
|
| +
|
| +void IndexedDBConnection::Get(int64_t database_id,
|
| + int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + int64_t index_id,
|
| + KeyRangePtr key_range,
|
| + bool key_only,
|
| + const GetCallback& callback) {
|
| + if (!IsConnected())
|
| + return;
|
| +
|
| +#if 0
|
| + connection->database()->Get(
|
| + HostTransactionId(transaction_id), object_store_id,
|
| + index_id,
|
| + base::WrapUnique(new IndexedDBKeyRange(key_range)),
|
| + params.key_only, callbacks);
|
| +#endif
|
| +#if 0
|
| + DCHECK(parent_->context()->TaskRunner()->RunsTasksOnCurrentThread());
|
| + IndexedDBConnection* connection =
|
| + parent_->GetOrTerminateProcess(&map_, params.ipc_database_id);
|
| + if (!connection || !connection->IsConnected())
|
| + return;
|
| +
|
| + scoped_refptr<IndexedDBCallbacks> callbacks(new IndexedDBCallbacks(
|
| + parent_, params.ipc_thread_id, params.ipc_callbacks_id));
|
| + connection->database()->Get(
|
| + parent_->HostTransactionId(params.transaction_id), params.object_store_id,
|
| + params.index_id,
|
| + base::WrapUnique(new IndexedDBKeyRange(params.key_range)),
|
| + params.key_only, callbacks);
|
| +#endif
|
| +
|
| + ::indexed_db::mojom::GetResultPtr result =
|
| + ::indexed_db::mojom::GetResult::New();
|
| + result->type = ::indexed_db::mojom::ResultType::Error;
|
| + callback.Run(std::move(result));
|
| +}
|
| +
|
| +void IndexedDBConnection::GetAll(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + int64_t index_id,
|
| + KeyRangePtr key_range,
|
| + int64_t max_count,
|
| + bool key_only) {}
|
| +
|
| +void IndexedDBConnection::Put(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + mojo::Array<int8_t> value,
|
| + mojo::Array<BlobInfoPtr> blob_info,
|
| + KeyPtr key,
|
| + PutMode put_mode,
|
| + mojo::Array<int64_t> index_ids,
|
| + mojo::Array<mojo::Array<KeyPtr>> index_keys) {}
|
| +
|
| +void IndexedDBConnection::DeleteRange(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + KeyRangePtr key_range) {}
|
| +
|
| +void IndexedDBConnection::Clear(int64_t transaction_id,
|
| + int64_t object_store_id) {}
|
| +
|
| +void IndexedDBConnection::SetIndexKeys(
|
| + int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + KeyPtr primary_key,
|
| + mojo::Array<int64_t> index_ids,
|
| + mojo::Array<mojo::Array<KeyPtr>> index_keys) {}
|
| +
|
| +void IndexedDBConnection::SetIndexesReady(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + mojo::Array<int64_t> index_ids) {}
|
| +
|
| +void IndexedDBConnection::OpenCursor(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + int64_t index_id,
|
| + KeyRangePtr key_range,
|
| + CursorDirection direction,
|
| + bool key_only,
|
| + TaskType task_type) {}
|
| +
|
| +void IndexedDBConnection::Count(int64_t transaction_id,
|
| + int64_t object_store_id,
|
| + int64_t index_id,
|
| + KeyRangePtr key_range) {}
|
| +
|
| +void IndexedDBConnection::AckReceivedBlobs(mojo::Array<mojo::String> uuids) {}
|
| +
|
| +::indexed_db::mojom::DatabasePtr IndexedDBConnection::CreateInterface() {
|
| + ::indexed_db::mojom::DatabasePtr interface;
|
| + binding_.Bind(&interface);
|
| + return interface;
|
| }
|
|
|
| // The observers begin listening to changes only once they are activated.
|
|
|