| Index: content/browser/indexed_db/indexed_db_callbacks.cc
|
| diff --git a/content/browser/indexed_db/indexed_db_callbacks.cc b/content/browser/indexed_db/indexed_db_callbacks.cc
|
| index 8ec899b7337334f28f8db9813bebaed259ba0869..a5ad99cfd89903cc929f4d64524de065920e8dcb 100644
|
| --- a/content/browser/indexed_db/indexed_db_callbacks.cc
|
| +++ b/content/browser/indexed_db/indexed_db_callbacks.cc
|
| @@ -18,7 +18,6 @@
|
| #include "content/browser/indexed_db/indexed_db_connection.h"
|
| #include "content/browser/indexed_db/indexed_db_context_impl.h"
|
| #include "content/browser/indexed_db/indexed_db_cursor.h"
|
| -#include "content/browser/indexed_db/indexed_db_database_callbacks.h"
|
| #include "content/browser/indexed_db/indexed_db_database_error.h"
|
| #include "content/browser/indexed_db/indexed_db_metadata.h"
|
| #include "content/browser/indexed_db/indexed_db_return_value.h"
|
| @@ -30,15 +29,71 @@
|
| #include "storage/browser/blob/shareable_file_reference.h"
|
| #include "storage/browser/quota/quota_manager.h"
|
|
|
| +using indexed_db::mojom::CallbacksAssociatedPtrInfo;
|
| using storage::ShareableFileReference;
|
|
|
| namespace content {
|
|
|
| namespace {
|
| +
|
| const int32_t kNoCursor = -1;
|
| -const int32_t kNoDatabaseCallbacks = -1;
|
| const int64_t kNoTransaction = -1;
|
| +
|
| +::indexed_db::mojom::DatabaseMetadataPtr ConvertMetadata(
|
| + const content::IndexedDBDatabaseMetadata& web_metadata) {
|
| + auto metadata = ::indexed_db::mojom::DatabaseMetadata::New();
|
| + metadata->id = web_metadata.id;
|
| + metadata->name = web_metadata.name;
|
| + metadata->version = web_metadata.version;
|
| + metadata->max_object_store_id = web_metadata.max_object_store_id;
|
| +
|
| + for (const auto& iter : web_metadata.object_stores) {
|
| + const content::IndexedDBObjectStoreMetadata& web_store_metadata =
|
| + iter.second;
|
| + auto store_metadata = ::indexed_db::mojom::ObjectStoreMetadata::New();
|
| + store_metadata->id = web_store_metadata.id;
|
| + store_metadata->name = web_store_metadata.name;
|
| + store_metadata->key_path = web_store_metadata.key_path;
|
| + store_metadata->auto_increment = web_store_metadata.auto_increment;
|
| + store_metadata->max_index_id = web_store_metadata.max_index_id;
|
| +
|
| + for (const auto& index_iter : web_store_metadata.indexes) {
|
| + const content::IndexedDBIndexMetadata& web_index_metadata =
|
| + index_iter.second;
|
| + auto index_metadata = ::indexed_db::mojom::IndexMetadata::New();
|
| + index_metadata->id = web_index_metadata.id;
|
| + index_metadata->name = web_index_metadata.name;
|
| + index_metadata->key_path = web_index_metadata.key_path;
|
| + index_metadata->unique = web_index_metadata.unique;
|
| + index_metadata->multi_entry = web_index_metadata.multi_entry;
|
| + store_metadata->indexes.push_back(std::move(index_metadata));
|
| + }
|
| + metadata->object_stores.push_back(std::move(store_metadata));
|
| + }
|
| + return metadata;
|
| }
|
| +}
|
| +
|
| +class IndexedDBCallbacks::IOThreadHelper {
|
| + public:
|
| + IOThreadHelper(CallbacksAssociatedPtrInfo callbacks_info);
|
| + ~IOThreadHelper();
|
| +
|
| + void SendBlocked(int64_t existing_version);
|
| + void SendError(const IndexedDBDatabaseError& error);
|
| + void SendSuccessDatabase(int32_t database_id,
|
| + ::indexed_db::mojom::DatabaseMetadataPtr metadata);
|
| + void SendSuccessInteger(int64_t value);
|
| + void SendSuccessStringList(const std::vector<base::string16>& value);
|
| + void SendUpgradeNeeded(int32_t database_id,
|
| + int64_t old_version,
|
| + blink::WebIDBDataLoss data_loss,
|
| + const std::string& data_loss_message,
|
| + ::indexed_db::mojom::DatabaseMetadataPtr metadata);
|
| +
|
| + private:
|
| + ::indexed_db::mojom::CallbacksAssociatedPtr callbacks_;
|
| +};
|
|
|
| IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host,
|
| int32_t ipc_thread_id,
|
| @@ -49,9 +104,9 @@ IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host,
|
| ipc_cursor_id_(kNoCursor),
|
| host_transaction_id_(kNoTransaction),
|
| ipc_database_id_(kNoDatabase),
|
| - ipc_database_callbacks_id_(kNoDatabaseCallbacks),
|
| data_loss_(blink::WebIDBDataLossNone),
|
| - sent_blocked_(false) {}
|
| + sent_blocked_(false),
|
| + helper_(nullptr) {}
|
|
|
| IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host,
|
| int32_t ipc_thread_id,
|
| @@ -63,34 +118,42 @@ IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host,
|
| ipc_cursor_id_(ipc_cursor_id),
|
| host_transaction_id_(kNoTransaction),
|
| ipc_database_id_(kNoDatabase),
|
| - ipc_database_callbacks_id_(kNoDatabaseCallbacks),
|
| data_loss_(blink::WebIDBDataLossNone),
|
| - sent_blocked_(false) {}
|
| + sent_blocked_(false),
|
| + helper_(nullptr) {}
|
|
|
| -IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host,
|
| - int32_t ipc_thread_id,
|
| - int32_t ipc_callbacks_id,
|
| - int32_t ipc_database_callbacks_id,
|
| - int64_t host_transaction_id,
|
| - const url::Origin& origin)
|
| +IndexedDBCallbacks::IndexedDBCallbacks(
|
| + IndexedDBDispatcherHost* dispatcher_host,
|
| + const url::Origin& origin,
|
| + ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info)
|
| : dispatcher_host_(dispatcher_host),
|
| - ipc_callbacks_id_(ipc_callbacks_id),
|
| - ipc_thread_id_(ipc_thread_id),
|
| ipc_cursor_id_(kNoCursor),
|
| - host_transaction_id_(host_transaction_id),
|
| + host_transaction_id_(kNoTransaction),
|
| origin_(origin),
|
| ipc_database_id_(kNoDatabase),
|
| - ipc_database_callbacks_id_(ipc_database_callbacks_id),
|
| data_loss_(blink::WebIDBDataLossNone),
|
| - sent_blocked_(false) {}
|
| + sent_blocked_(false),
|
| + helper_(nullptr) {
|
| + if (callbacks_info.is_valid())
|
| + helper_ = new IOThreadHelper(std::move(callbacks_info));
|
| +}
|
|
|
| -IndexedDBCallbacks::~IndexedDBCallbacks() {}
|
| +IndexedDBCallbacks::~IndexedDBCallbacks() {
|
| + if (helper_)
|
| + BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, helper_);
|
| +}
|
|
|
| void IndexedDBCallbacks::OnError(const IndexedDBDatabaseError& error) {
|
| DCHECK(dispatcher_host_.get());
|
|
|
| - dispatcher_host_->Send(new IndexedDBMsg_CallbacksError(
|
| - ipc_thread_id_, ipc_callbacks_id_, error.code(), error.message()));
|
| + if (helper_) {
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&IOThreadHelper::SendError,
|
| + base::Unretained(helper_), error));
|
| + } else {
|
| + dispatcher_host_->Send(new IndexedDBMsg_CallbacksError(
|
| + ipc_thread_id_, ipc_callbacks_id_, error.code(), error.message()));
|
| + }
|
| dispatcher_host_ = NULL;
|
|
|
| if (!connection_open_start_time_.is_null()) {
|
| @@ -103,37 +166,31 @@ void IndexedDBCallbacks::OnError(const IndexedDBDatabaseError& error) {
|
|
|
| void IndexedDBCallbacks::OnSuccess(const std::vector<base::string16>& value) {
|
| DCHECK(dispatcher_host_.get());
|
| -
|
| + DCHECK(helper_);
|
| DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| - DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| - std::vector<base::string16> list;
|
| - for (unsigned i = 0; i < value.size(); ++i)
|
| - list.push_back(value[i]);
|
| -
|
| - dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessStringList(
|
| - ipc_thread_id_, ipc_callbacks_id_, list));
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&IOThreadHelper::SendSuccessStringList,
|
| + base::Unretained(helper_), value));
|
| dispatcher_host_ = NULL;
|
| }
|
|
|
| void IndexedDBCallbacks::OnBlocked(int64_t existing_version) {
|
| DCHECK(dispatcher_host_.get());
|
| -
|
| + DCHECK(helper_);
|
| DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| - // No transaction/db callbacks for DeleteDatabase.
|
| - DCHECK_EQ(kNoTransaction == host_transaction_id_,
|
| - kNoDatabaseCallbacks == ipc_database_callbacks_id_);
|
| - DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
|
|
| if (sent_blocked_)
|
| return;
|
|
|
| sent_blocked_ = true;
|
| - dispatcher_host_->Send(new IndexedDBMsg_CallbacksIntBlocked(
|
| - ipc_thread_id_, ipc_callbacks_id_, existing_version));
|
| +
|
| + BrowserThread::PostTask(
|
| + BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&IOThreadHelper::SendBlocked, base::Unretained(helper_),
|
| + existing_version));
|
|
|
| if (!connection_open_start_time_.is_null()) {
|
| UMA_HISTOGRAM_MEDIUM_TIMES(
|
| @@ -149,29 +206,26 @@ void IndexedDBCallbacks::OnUpgradeNeeded(
|
| const IndexedDBDatabaseMetadata& metadata,
|
| const IndexedDBDataLossInfo& data_loss_info) {
|
| DCHECK(dispatcher_host_.get());
|
| -
|
| - DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| + DCHECK(helper_);
|
| DCHECK_NE(kNoTransaction, host_transaction_id_);
|
| + DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_NE(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
|
|
| data_loss_ = data_loss_info.status;
|
| dispatcher_host_->RegisterTransactionId(host_transaction_id_, origin_);
|
| int32_t ipc_database_id =
|
| - dispatcher_host_->Add(connection.release(), ipc_thread_id_, origin_);
|
| + dispatcher_host_->Add(connection.release(), origin_);
|
| if (ipc_database_id < 0)
|
| return;
|
| +
|
| ipc_database_id_ = ipc_database_id;
|
| - IndexedDBMsg_CallbacksUpgradeNeeded_Params params;
|
| - params.ipc_thread_id = ipc_thread_id_;
|
| - params.ipc_callbacks_id = ipc_callbacks_id_;
|
| - params.ipc_database_id = ipc_database_id;
|
| - params.ipc_database_callbacks_id = ipc_database_callbacks_id_;
|
| - params.old_version = old_version;
|
| - params.idb_metadata = IndexedDBDispatcherHost::ConvertMetadata(metadata);
|
| - params.data_loss = data_loss_info.status;
|
| - params.data_loss_message = data_loss_info.message;
|
| - dispatcher_host_->Send(new IndexedDBMsg_CallbacksUpgradeNeeded(params));
|
| +
|
| + BrowserThread::PostTask(
|
| + BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&IOThreadHelper::SendUpgradeNeeded, base::Unretained(helper_),
|
| + ipc_database_id, old_version, data_loss_info.status,
|
| + data_loss_info.message,
|
| + base::Passed(ConvertMetadata(metadata))));
|
|
|
| if (!connection_open_start_time_.is_null()) {
|
| UMA_HISTOGRAM_MEDIUM_TIMES(
|
| @@ -185,27 +239,23 @@ void IndexedDBCallbacks::OnSuccess(
|
| std::unique_ptr<IndexedDBConnection> connection,
|
| const IndexedDBDatabaseMetadata& metadata) {
|
| DCHECK(dispatcher_host_.get());
|
| -
|
| + DCHECK(helper_);
|
| DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| DCHECK_NE(kNoTransaction, host_transaction_id_);
|
| DCHECK_NE(ipc_database_id_ == kNoDatabase, !connection);
|
| - DCHECK_NE(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
|
|
| scoped_refptr<IndexedDBCallbacks> self(this);
|
|
|
| int32_t ipc_object_id = kNoDatabase;
|
| // Only register if the connection was not previously sent in OnUpgradeNeeded.
|
| if (ipc_database_id_ == kNoDatabase) {
|
| - ipc_object_id =
|
| - dispatcher_host_->Add(connection.release(), ipc_thread_id_, origin_);
|
| + ipc_object_id = dispatcher_host_->Add(connection.release(), origin_);
|
| }
|
|
|
| - dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessIDBDatabase(
|
| - ipc_thread_id_,
|
| - ipc_callbacks_id_,
|
| - ipc_database_callbacks_id_,
|
| - ipc_object_id,
|
| - IndexedDBDispatcherHost::ConvertMetadata(metadata)));
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&IOThreadHelper::SendSuccessDatabase,
|
| + base::Unretained(helper_), ipc_object_id,
|
| + base::Passed(ConvertMetadata(metadata))));
|
| dispatcher_host_ = NULL;
|
|
|
| if (!connection_open_start_time_.is_null()) {
|
| @@ -335,12 +385,12 @@ void IndexedDBCallbacks::OnSuccess(scoped_refptr<IndexedDBCursor> cursor,
|
| const IndexedDBKey& key,
|
| const IndexedDBKey& primary_key,
|
| IndexedDBValue* value) {
|
| + DCHECK(!helper_);
|
| DCHECK(dispatcher_host_.get());
|
|
|
| DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| int32_t ipc_object_id = dispatcher_host_->Add(cursor.get());
|
| @@ -374,12 +424,12 @@ void IndexedDBCallbacks::OnSuccess(scoped_refptr<IndexedDBCursor> cursor,
|
| void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& key,
|
| const IndexedDBKey& primary_key,
|
| IndexedDBValue* value) {
|
| + DCHECK(!helper_);
|
| DCHECK(dispatcher_host_.get());
|
|
|
| DCHECK_NE(kNoCursor, ipc_cursor_id_);
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| IndexedDBCursor* idb_cursor =
|
| @@ -422,6 +472,7 @@ void IndexedDBCallbacks::OnSuccessWithPrefetch(
|
| const std::vector<IndexedDBKey>& keys,
|
| const std::vector<IndexedDBKey>& primary_keys,
|
| std::vector<IndexedDBValue>* values) {
|
| + DCHECK(!helper_);
|
| DCHECK_EQ(keys.size(), primary_keys.size());
|
| DCHECK_EQ(keys.size(), values->size());
|
|
|
| @@ -430,7 +481,6 @@ void IndexedDBCallbacks::OnSuccessWithPrefetch(
|
| DCHECK_NE(kNoCursor, ipc_cursor_id_);
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| std::vector<IndexedDBKey> msg_keys;
|
| @@ -479,6 +529,7 @@ void IndexedDBCallbacks::OnSuccessWithPrefetch(
|
| }
|
|
|
| void IndexedDBCallbacks::OnSuccess(IndexedDBReturnValue* value) {
|
| + DCHECK(!helper_);
|
| DCHECK(dispatcher_host_.get());
|
|
|
| if (value && value->primary_key.IsValid()) {
|
| @@ -488,7 +539,6 @@ void IndexedDBCallbacks::OnSuccess(IndexedDBReturnValue* value) {
|
| }
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| std::unique_ptr<IndexedDBMsg_CallbacksSuccessValue_Params> params(
|
| @@ -520,11 +570,11 @@ void IndexedDBCallbacks::OnSuccess(IndexedDBReturnValue* value) {
|
| void IndexedDBCallbacks::OnSuccessArray(
|
| std::vector<IndexedDBReturnValue>* values,
|
| const IndexedDBKeyPath& key_path) {
|
| + DCHECK(!helper_);
|
| DCHECK(dispatcher_host_.get());
|
|
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| std::unique_ptr<IndexedDBMsg_CallbacksSuccessArray_Params> params(
|
| @@ -563,12 +613,12 @@ void IndexedDBCallbacks::OnSuccessArray(
|
| }
|
|
|
| void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) {
|
| + DCHECK(!helper_);
|
| DCHECK(dispatcher_host_.get());
|
|
|
| DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessIndexedDBKey(
|
| @@ -578,25 +628,29 @@ void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) {
|
|
|
| void IndexedDBCallbacks::OnSuccess(int64_t value) {
|
| DCHECK(dispatcher_host_.get());
|
| + if (helper_) {
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&IOThreadHelper::SendSuccessInteger,
|
| + base::Unretained(helper_), value));
|
| + } else {
|
| + DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| + DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| + DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| + DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| - DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| - DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| - DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| - DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
| -
|
| - dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessInteger(
|
| - ipc_thread_id_, ipc_callbacks_id_, value));
|
| + dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessInteger(
|
| + ipc_thread_id_, ipc_callbacks_id_, value));
|
| + }
|
| dispatcher_host_ = NULL;
|
| }
|
|
|
| void IndexedDBCallbacks::OnSuccess() {
|
| + DCHECK(!helper_);
|
| DCHECK(dispatcher_host_.get());
|
|
|
| DCHECK_EQ(kNoCursor, ipc_cursor_id_);
|
| DCHECK_EQ(kNoTransaction, host_transaction_id_);
|
| DCHECK_EQ(kNoDatabase, ipc_database_id_);
|
| - DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_);
|
| DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_);
|
|
|
| dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessUndefined(
|
| @@ -609,4 +663,47 @@ void IndexedDBCallbacks::SetConnectionOpenStartTime(
|
| connection_open_start_time_ = start_time;
|
| }
|
|
|
| +IndexedDBCallbacks::IOThreadHelper::IOThreadHelper(
|
| + CallbacksAssociatedPtrInfo callbacks_info) {
|
| + callbacks_.Bind(std::move(callbacks_info));
|
| +}
|
| +
|
| +IndexedDBCallbacks::IOThreadHelper::~IOThreadHelper() {}
|
| +
|
| +void IndexedDBCallbacks::IOThreadHelper::SendBlocked(int64_t existing_version) {
|
| + callbacks_->Blocked(existing_version);
|
| +}
|
| +
|
| +void IndexedDBCallbacks::IOThreadHelper::SendError(
|
| + const IndexedDBDatabaseError& error) {
|
| + callbacks_->Error(error.code(), error.message());
|
| +}
|
| +
|
| +void IndexedDBCallbacks::IOThreadHelper::SendSuccessDatabase(
|
| + int32_t database_id,
|
| + ::indexed_db::mojom::DatabaseMetadataPtr metadata) {
|
| + callbacks_->SuccessDatabase(database_id, std::move(metadata));
|
| +}
|
| +
|
| +void IndexedDBCallbacks::IOThreadHelper::SendSuccessInteger(int64_t value) {
|
| + callbacks_->SuccessInteger(value);
|
| +}
|
| +
|
| +void IndexedDBCallbacks::IOThreadHelper::SendSuccessStringList(
|
| + const std::vector<base::string16>& value) {
|
| + callbacks_->SuccessStringList(value);
|
| +}
|
| +
|
| +void IndexedDBCallbacks::IOThreadHelper::SendUpgradeNeeded(
|
| + int32_t database_id,
|
| + int64_t old_version,
|
| + blink::WebIDBDataLoss data_loss,
|
| + const std::string& data_loss_message,
|
| + ::indexed_db::mojom::DatabaseMetadataPtr metadata) {
|
| + callbacks_->UpgradeNeeded(
|
| + database_id, old_version,
|
| + static_cast<::indexed_db::mojom::DataLoss>(data_loss), data_loss_message,
|
| + std::move(metadata));
|
| +}
|
| +
|
| } // namespace content
|
|
|