| Index: content/browser/indexed_db/indexed_db_database.cc
|
| diff --git a/content/browser/indexed_db/indexed_db_database.cc b/content/browser/indexed_db/indexed_db_database.cc
|
| index 881c85985e2e84808300b02a1ce724cb3ad87084..761537a27fe6cf14daf71aa51b91c4edc0b665e5 100644
|
| --- a/content/browser/indexed_db/indexed_db_database.cc
|
| +++ b/content/browser/indexed_db/indexed_db_database.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/auto_reset.h"
|
| #include "base/logging.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/stl_util.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "content/browser/indexed_db/indexed_db_connection.h"
|
| @@ -40,12 +41,12 @@ class IndexedDBDatabase::PendingOpenCall {
|
| database_callbacks_(database_callbacks),
|
| version_(version),
|
| transaction_id_(transaction_id) {}
|
| - scoped_refptr<IndexedDBCallbacks> Callbacks() { return callbacks_; }
|
| - scoped_refptr<IndexedDBDatabaseCallbacks> DatabaseCallbacks() {
|
| + scoped_refptr<IndexedDBCallbacks> callbacks() const { return callbacks_; }
|
| + scoped_refptr<IndexedDBDatabaseCallbacks> const database_callbacks() {
|
| return database_callbacks_;
|
| }
|
| - int64 Version() { return version_; }
|
| - int64 TransactionId() const { return transaction_id_; }
|
| + int64 version() const { return version_; }
|
| + int64 transaction_id() const { return transaction_id_; }
|
|
|
| private:
|
| scoped_refptr<IndexedDBCallbacks> callbacks_;
|
| @@ -66,10 +67,13 @@ class IndexedDBDatabase::PendingUpgradeCall {
|
| connection_(connection.Pass()),
|
| version_(version),
|
| transaction_id_(transaction_id) {}
|
| - scoped_refptr<IndexedDBCallbacks> Callbacks() { return callbacks_; }
|
| - scoped_ptr<IndexedDBConnection> Connection() { return connection_.Pass(); }
|
| - int64 Version() { return version_; }
|
| - int64 TransactionId() const { return transaction_id_; }
|
| + scoped_refptr<IndexedDBCallbacks> callbacks() const { return callbacks_; }
|
| + // Takes ownership of the connection object.
|
| + scoped_ptr<IndexedDBConnection> ReleaseConnection() WARN_UNUSED_RESULT {
|
| + return connection_.Pass();
|
| + }
|
| + int64 version() const { return version_; }
|
| + int64 transaction_id() const { return transaction_id_; }
|
|
|
| private:
|
| scoped_refptr<IndexedDBCallbacks> callbacks_;
|
| @@ -87,9 +91,9 @@ class IndexedDBDatabase::PendingSuccessCall {
|
| IndexedDBConnection* connection,
|
| int64 version)
|
| : callbacks_(callbacks), connection_(connection), version_(version) {}
|
| - scoped_refptr<IndexedDBCallbacks> Callbacks() { return callbacks_; }
|
| - IndexedDBConnection* Connection() { return connection_; }
|
| - int64 Version() { return version_; }
|
| + scoped_refptr<IndexedDBCallbacks> callbacks() const { return callbacks_; }
|
| + IndexedDBConnection* connection() const { return connection_; }
|
| + int64 version() const { return version_; }
|
|
|
| private:
|
| scoped_refptr<IndexedDBCallbacks> callbacks_;
|
| @@ -101,7 +105,7 @@ class IndexedDBDatabase::PendingDeleteCall {
|
| public:
|
| explicit PendingDeleteCall(scoped_refptr<IndexedDBCallbacks> callbacks)
|
| : callbacks_(callbacks) {}
|
| - scoped_refptr<IndexedDBCallbacks> Callbacks() { return callbacks_; }
|
| + scoped_refptr<IndexedDBCallbacks> callbacks() const { return callbacks_; }
|
|
|
| private:
|
| scoped_refptr<IndexedDBCallbacks> callbacks_;
|
| @@ -121,11 +125,6 @@ scoped_refptr<IndexedDBDatabase> IndexedDBDatabase::Create(
|
|
|
| namespace {
|
| const base::string16::value_type kNoStringVersion[] = {0};
|
| -
|
| -template <typename T, typename U>
|
| -bool Contains(const T& container, const U& item) {
|
| - return container.find(item) != container.end();
|
| -}
|
| }
|
|
|
| IndexedDBDatabase::IndexedDBDatabase(const base::string16& name,
|
| @@ -222,7 +221,7 @@ IndexedDBTransaction* IndexedDBDatabase::GetTransaction(
|
| }
|
|
|
| bool IndexedDBDatabase::ValidateObjectStoreId(int64 object_store_id) const {
|
| - if (!Contains(metadata_.object_stores, object_store_id)) {
|
| + if (!ContainsKey(metadata_.object_stores, object_store_id)) {
|
| DLOG(ERROR) << "Invalid object_store_id";
|
| return false;
|
| }
|
| @@ -235,7 +234,7 @@ bool IndexedDBDatabase::ValidateObjectStoreIdAndIndexId(int64 object_store_id,
|
| return false;
|
| const IndexedDBObjectStoreMetadata& object_store_metadata =
|
| metadata_.object_stores.find(object_store_id)->second;
|
| - if (!Contains(object_store_metadata.indexes, index_id)) {
|
| + if (!ContainsKey(object_store_metadata.indexes, index_id)) {
|
| DLOG(ERROR) << "Invalid index_id";
|
| return false;
|
| }
|
| @@ -250,7 +249,7 @@ bool IndexedDBDatabase::ValidateObjectStoreIdAndOptionalIndexId(
|
| const IndexedDBObjectStoreMetadata& object_store_metadata =
|
| metadata_.object_stores.find(object_store_id)->second;
|
| if (index_id != IndexedDBIndexMetadata::kInvalidId &&
|
| - !Contains(object_store_metadata.indexes, index_id)) {
|
| + !ContainsKey(object_store_metadata.indexes, index_id)) {
|
| DLOG(ERROR) << "Invalid index_id";
|
| return false;
|
| }
|
| @@ -264,7 +263,7 @@ bool IndexedDBDatabase::ValidateObjectStoreIdAndNewIndexId(
|
| return false;
|
| const IndexedDBObjectStoreMetadata& object_store_metadata =
|
| metadata_.object_stores.find(object_store_id)->second;
|
| - if (Contains(object_store_metadata.indexes, index_id)) {
|
| + if (ContainsKey(object_store_metadata.indexes, index_id)) {
|
| DLOG(ERROR) << "Invalid index_id";
|
| return false;
|
| }
|
| @@ -282,7 +281,7 @@ void IndexedDBDatabase::CreateObjectStore(int64 transaction_id,
|
| return;
|
| DCHECK_EQ(transaction->mode(), indexed_db::TRANSACTION_VERSION_CHANGE);
|
|
|
| - if (Contains(metadata_.object_stores, object_store_id)) {
|
| + if (ContainsKey(metadata_.object_stores, object_store_id)) {
|
| DLOG(ERROR) << "Invalid object_store_id";
|
| return;
|
| }
|
| @@ -1279,15 +1278,15 @@ void IndexedDBDatabase::TransactionFinished(IndexedDBTransaction* transaction,
|
|
|
| if (pending_second_half_open_) {
|
| if (committed) {
|
| - DCHECK_EQ(pending_second_half_open_->Version(), metadata_.int_version);
|
| + DCHECK_EQ(pending_second_half_open_->version(), metadata_.int_version);
|
| DCHECK(metadata_.id != kInvalidId);
|
|
|
| // Connection was already minted for OnUpgradeNeeded callback.
|
| scoped_ptr<IndexedDBConnection> connection;
|
| - pending_second_half_open_->Callbacks()->OnSuccess(connection.Pass(),
|
| + pending_second_half_open_->callbacks()->OnSuccess(connection.Pass(),
|
| this->metadata());
|
| } else {
|
| - pending_second_half_open_->Callbacks()->OnError(
|
| + pending_second_half_open_->callbacks()->OnError(
|
| IndexedDBDatabaseError(blink::WebIDBDatabaseExceptionAbortError,
|
| "Version change transaction was aborted in "
|
| "upgradeneeded event handler."));
|
| @@ -1331,14 +1330,14 @@ size_t IndexedDBDatabase::PendingDeleteCount() const {
|
|
|
| void IndexedDBDatabase::ProcessPendingCalls() {
|
| if (pending_run_version_change_transaction_call_ && ConnectionCount() == 1) {
|
| - DCHECK(pending_run_version_change_transaction_call_->Version() >
|
| + DCHECK(pending_run_version_change_transaction_call_->version() >
|
| metadata_.int_version);
|
| scoped_ptr<PendingUpgradeCall> pending_call =
|
| pending_run_version_change_transaction_call_.Pass();
|
| - RunVersionChangeTransactionFinal(pending_call->Callbacks(),
|
| - pending_call->Connection(),
|
| - pending_call->TransactionId(),
|
| - pending_call->Version());
|
| + RunVersionChangeTransactionFinal(pending_call->callbacks(),
|
| + pending_call->ReleaseConnection(),
|
| + pending_call->transaction_id(),
|
| + pending_call->version());
|
| DCHECK_EQ(static_cast<size_t>(1), ConnectionCount());
|
| // Fall through would be a no-op, since transaction must complete
|
| // asynchronously.
|
| @@ -1356,7 +1355,7 @@ void IndexedDBDatabase::ProcessPendingCalls() {
|
| scoped_ptr<PendingDeleteCall> pending_delete_call(
|
| pending_delete_calls.front());
|
| pending_delete_calls.pop_front();
|
| - DeleteDatabaseFinal(pending_delete_call->Callbacks());
|
| + DeleteDatabaseFinal(pending_delete_call->callbacks());
|
| }
|
| // delete_database_final should never re-queue calls.
|
| DCHECK(pending_delete_calls_.empty());
|
| @@ -1369,10 +1368,10 @@ void IndexedDBDatabase::ProcessPendingCalls() {
|
| while (!pending_open_calls.empty()) {
|
| scoped_ptr<PendingOpenCall> pending_open_call(pending_open_calls.front());
|
| pending_open_calls.pop_front();
|
| - OpenConnection(pending_open_call->Callbacks(),
|
| - pending_open_call->DatabaseCallbacks(),
|
| - pending_open_call->TransactionId(),
|
| - pending_open_call->Version());
|
| + OpenConnection(pending_open_call->callbacks(),
|
| + pending_open_call->database_callbacks(),
|
| + pending_open_call->transaction_id(),
|
| + pending_open_call->version());
|
| }
|
| }
|
| }
|
| @@ -1670,8 +1669,8 @@ void IndexedDBDatabase::Close(IndexedDBConnection* connection, bool forced) {
|
|
|
| connections_.erase(connection);
|
| if (pending_second_half_open_ &&
|
| - pending_second_half_open_->Connection() == connection) {
|
| - pending_second_half_open_->Callbacks()->OnError(
|
| + pending_second_half_open_->connection() == connection) {
|
| + pending_second_half_open_->callbacks()->OnError(
|
| IndexedDBDatabaseError(blink::WebIDBDatabaseExceptionAbortError,
|
| "The connection was closed."));
|
| pending_second_half_open_.reset();
|
|
|