| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/indexed_db/indexed_db_callbacks.h" | 5 #include "content/browser/indexed_db/indexed_db_callbacks.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, | 43 IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, |
| 44 int32_t ipc_thread_id, | 44 int32_t ipc_thread_id, |
| 45 int32_t ipc_callbacks_id) | 45 int32_t ipc_callbacks_id) |
| 46 : dispatcher_host_(dispatcher_host), | 46 : dispatcher_host_(dispatcher_host), |
| 47 ipc_callbacks_id_(ipc_callbacks_id), | 47 ipc_callbacks_id_(ipc_callbacks_id), |
| 48 ipc_thread_id_(ipc_thread_id), | 48 ipc_thread_id_(ipc_thread_id), |
| 49 ipc_cursor_id_(kNoCursor), | 49 ipc_cursor_id_(kNoCursor), |
| 50 host_transaction_id_(kNoTransaction), | 50 host_transaction_id_(kNoTransaction), |
| 51 ipc_database_id_(kNoDatabase), | 51 ipc_database_id_(kNoDatabase), |
| 52 ipc_database_callbacks_id_(kNoDatabaseCallbacks), | 52 ipc_database_callbacks_id_(kNoDatabaseCallbacks), |
| 53 data_loss_(blink::WebIDBDataLossNone), |
| 53 sent_blocked_(false) {} | 54 sent_blocked_(false) {} |
| 54 | 55 |
| 55 IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, | 56 IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, |
| 56 int32_t ipc_thread_id, | 57 int32_t ipc_thread_id, |
| 57 int32_t ipc_callbacks_id, | 58 int32_t ipc_callbacks_id, |
| 58 int32_t ipc_cursor_id) | 59 int32_t ipc_cursor_id) |
| 59 : dispatcher_host_(dispatcher_host), | 60 : dispatcher_host_(dispatcher_host), |
| 60 ipc_callbacks_id_(ipc_callbacks_id), | 61 ipc_callbacks_id_(ipc_callbacks_id), |
| 61 ipc_thread_id_(ipc_thread_id), | 62 ipc_thread_id_(ipc_thread_id), |
| 62 ipc_cursor_id_(ipc_cursor_id), | 63 ipc_cursor_id_(ipc_cursor_id), |
| 63 host_transaction_id_(kNoTransaction), | 64 host_transaction_id_(kNoTransaction), |
| 64 ipc_database_id_(kNoDatabase), | 65 ipc_database_id_(kNoDatabase), |
| 65 ipc_database_callbacks_id_(kNoDatabaseCallbacks), | 66 ipc_database_callbacks_id_(kNoDatabaseCallbacks), |
| 67 data_loss_(blink::WebIDBDataLossNone), |
| 66 sent_blocked_(false) {} | 68 sent_blocked_(false) {} |
| 67 | 69 |
| 68 IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, | 70 IndexedDBCallbacks::IndexedDBCallbacks(IndexedDBDispatcherHost* dispatcher_host, |
| 69 int32_t ipc_thread_id, | 71 int32_t ipc_thread_id, |
| 70 int32_t ipc_callbacks_id, | 72 int32_t ipc_callbacks_id, |
| 71 int32_t ipc_database_callbacks_id, | 73 int32_t ipc_database_callbacks_id, |
| 72 int64_t host_transaction_id, | 74 int64_t host_transaction_id, |
| 73 const url::Origin& origin) | 75 const url::Origin& origin) |
| 74 : dispatcher_host_(dispatcher_host), | 76 : dispatcher_host_(dispatcher_host), |
| 75 ipc_callbacks_id_(ipc_callbacks_id), | 77 ipc_callbacks_id_(ipc_callbacks_id), |
| 76 ipc_thread_id_(ipc_thread_id), | 78 ipc_thread_id_(ipc_thread_id), |
| 77 ipc_cursor_id_(kNoCursor), | 79 ipc_cursor_id_(kNoCursor), |
| 78 host_transaction_id_(host_transaction_id), | 80 host_transaction_id_(host_transaction_id), |
| 79 origin_(origin), | 81 origin_(origin), |
| 80 ipc_database_id_(kNoDatabase), | 82 ipc_database_id_(kNoDatabase), |
| 81 ipc_database_callbacks_id_(ipc_database_callbacks_id), | 83 ipc_database_callbacks_id_(ipc_database_callbacks_id), |
| 84 data_loss_(blink::WebIDBDataLossNone), |
| 82 sent_blocked_(false) {} | 85 sent_blocked_(false) {} |
| 83 | 86 |
| 84 IndexedDBCallbacks::~IndexedDBCallbacks() {} | 87 IndexedDBCallbacks::~IndexedDBCallbacks() {} |
| 85 | 88 |
| 86 void IndexedDBCallbacks::OnError(const IndexedDBDatabaseError& error) { | 89 void IndexedDBCallbacks::OnError(const IndexedDBDatabaseError& error) { |
| 87 DCHECK(dispatcher_host_.get()); | 90 DCHECK(dispatcher_host_.get()); |
| 88 | 91 |
| 89 dispatcher_host_->Send(new IndexedDBMsg_CallbacksError( | 92 dispatcher_host_->Send(new IndexedDBMsg_CallbacksError( |
| 90 ipc_thread_id_, ipc_callbacks_id_, error.code(), error.message())); | 93 ipc_thread_id_, ipc_callbacks_id_, error.code(), error.message())); |
| 91 dispatcher_host_ = NULL; | 94 dispatcher_host_ = NULL; |
| 92 | 95 |
| 93 if (!connection_open_start_time_.is_null()) { | 96 if (!connection_open_start_time_.is_null()) { |
| 94 UMA_HISTOGRAM_MEDIUM_TIMES( | 97 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 95 "WebCore.IndexedDB.OpenTime.Error", | 98 "WebCore.IndexedDB.OpenTime.Error", |
| 96 base::TimeTicks::Now() - connection_open_start_time_); | 99 base::TimeTicks::Now() - connection_open_start_time_); |
| 97 connection_open_start_time_ = base::TimeTicks(); | 100 connection_open_start_time_ = base::TimeTicks(); |
| 98 } | 101 } |
| 99 } | 102 } |
| 100 | 103 |
| 101 void IndexedDBCallbacks::OnSuccess(const std::vector<base::string16>& value) { | 104 void IndexedDBCallbacks::OnSuccess(const std::vector<base::string16>& value) { |
| 102 DCHECK(dispatcher_host_.get()); | 105 DCHECK(dispatcher_host_.get()); |
| 103 | 106 |
| 104 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 107 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
| 105 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 108 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 106 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 109 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 107 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 110 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 108 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 111 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 109 | 112 |
| 110 std::vector<base::string16> list; | 113 std::vector<base::string16> list; |
| 111 for (unsigned i = 0; i < value.size(); ++i) | 114 for (unsigned i = 0; i < value.size(); ++i) |
| 112 list.push_back(value[i]); | 115 list.push_back(value[i]); |
| 113 | 116 |
| 114 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessStringList( | 117 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessStringList( |
| 115 ipc_thread_id_, ipc_callbacks_id_, list)); | 118 ipc_thread_id_, ipc_callbacks_id_, list)); |
| 116 dispatcher_host_ = NULL; | 119 dispatcher_host_ = NULL; |
| 117 } | 120 } |
| 118 | 121 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 133 ipc_thread_id_, ipc_callbacks_id_, existing_version)); | 136 ipc_thread_id_, ipc_callbacks_id_, existing_version)); |
| 134 | 137 |
| 135 if (!connection_open_start_time_.is_null()) { | 138 if (!connection_open_start_time_.is_null()) { |
| 136 UMA_HISTOGRAM_MEDIUM_TIMES( | 139 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 137 "WebCore.IndexedDB.OpenTime.Blocked", | 140 "WebCore.IndexedDB.OpenTime.Blocked", |
| 138 base::TimeTicks::Now() - connection_open_start_time_); | 141 base::TimeTicks::Now() - connection_open_start_time_); |
| 139 connection_open_start_time_ = base::TimeTicks(); | 142 connection_open_start_time_ = base::TimeTicks(); |
| 140 } | 143 } |
| 141 } | 144 } |
| 142 | 145 |
| 143 void IndexedDBCallbacks::OnDataLoss(const IndexedDBDataLossInfo& info) { | |
| 144 data_loss_info_ = info; | |
| 145 } | |
| 146 | |
| 147 void IndexedDBCallbacks::OnUpgradeNeeded( | 146 void IndexedDBCallbacks::OnUpgradeNeeded( |
| 148 int64_t old_version, | 147 int64_t old_version, |
| 149 std::unique_ptr<IndexedDBConnection> connection, | 148 std::unique_ptr<IndexedDBConnection> connection, |
| 150 const IndexedDBDatabaseMetadata& metadata) { | 149 const IndexedDBDatabaseMetadata& metadata, |
| 150 const IndexedDBDataLossInfo& data_loss_info) { |
| 151 DCHECK(dispatcher_host_.get()); | 151 DCHECK(dispatcher_host_.get()); |
| 152 | 152 |
| 153 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 153 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
| 154 DCHECK_NE(kNoTransaction, host_transaction_id_); | 154 DCHECK_NE(kNoTransaction, host_transaction_id_); |
| 155 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 155 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 156 DCHECK_NE(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 156 DCHECK_NE(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 157 | 157 |
| 158 data_loss_ = data_loss_info.status; |
| 158 dispatcher_host_->RegisterTransactionId(host_transaction_id_, origin_); | 159 dispatcher_host_->RegisterTransactionId(host_transaction_id_, origin_); |
| 159 int32_t ipc_database_id = | 160 int32_t ipc_database_id = |
| 160 dispatcher_host_->Add(connection.release(), ipc_thread_id_, origin_); | 161 dispatcher_host_->Add(connection.release(), ipc_thread_id_, origin_); |
| 161 if (ipc_database_id < 0) | 162 if (ipc_database_id < 0) |
| 162 return; | 163 return; |
| 163 ipc_database_id_ = ipc_database_id; | 164 ipc_database_id_ = ipc_database_id; |
| 164 IndexedDBMsg_CallbacksUpgradeNeeded_Params params; | 165 IndexedDBMsg_CallbacksUpgradeNeeded_Params params; |
| 165 params.ipc_thread_id = ipc_thread_id_; | 166 params.ipc_thread_id = ipc_thread_id_; |
| 166 params.ipc_callbacks_id = ipc_callbacks_id_; | 167 params.ipc_callbacks_id = ipc_callbacks_id_; |
| 167 params.ipc_database_id = ipc_database_id; | 168 params.ipc_database_id = ipc_database_id; |
| 168 params.ipc_database_callbacks_id = ipc_database_callbacks_id_; | 169 params.ipc_database_callbacks_id = ipc_database_callbacks_id_; |
| 169 params.old_version = old_version; | 170 params.old_version = old_version; |
| 170 params.idb_metadata = IndexedDBDispatcherHost::ConvertMetadata(metadata); | 171 params.idb_metadata = IndexedDBDispatcherHost::ConvertMetadata(metadata); |
| 171 params.data_loss = data_loss_info_.status; | 172 params.data_loss = data_loss_info.status; |
| 172 params.data_loss_message = data_loss_info_.message; | 173 params.data_loss_message = data_loss_info.message; |
| 173 dispatcher_host_->Send(new IndexedDBMsg_CallbacksUpgradeNeeded(params)); | 174 dispatcher_host_->Send(new IndexedDBMsg_CallbacksUpgradeNeeded(params)); |
| 174 | 175 |
| 175 if (!connection_open_start_time_.is_null()) { | 176 if (!connection_open_start_time_.is_null()) { |
| 176 UMA_HISTOGRAM_MEDIUM_TIMES( | 177 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 177 "WebCore.IndexedDB.OpenTime.UpgradeNeeded", | 178 "WebCore.IndexedDB.OpenTime.UpgradeNeeded", |
| 178 base::TimeTicks::Now() - connection_open_start_time_); | 179 base::TimeTicks::Now() - connection_open_start_time_); |
| 179 connection_open_start_time_ = base::TimeTicks(); | 180 connection_open_start_time_ = base::TimeTicks(); |
| 180 } | 181 } |
| 181 } | 182 } |
| 182 | 183 |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 void IndexedDBCallbacks::OnSuccess(scoped_refptr<IndexedDBCursor> cursor, | 334 void IndexedDBCallbacks::OnSuccess(scoped_refptr<IndexedDBCursor> cursor, |
| 334 const IndexedDBKey& key, | 335 const IndexedDBKey& key, |
| 335 const IndexedDBKey& primary_key, | 336 const IndexedDBKey& primary_key, |
| 336 IndexedDBValue* value) { | 337 IndexedDBValue* value) { |
| 337 DCHECK(dispatcher_host_.get()); | 338 DCHECK(dispatcher_host_.get()); |
| 338 | 339 |
| 339 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 340 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
| 340 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 341 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 341 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 342 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 342 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 343 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 343 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 344 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 344 | 345 |
| 345 int32_t ipc_object_id = dispatcher_host_->Add(cursor.get()); | 346 int32_t ipc_object_id = dispatcher_host_->Add(cursor.get()); |
| 346 std::unique_ptr<IndexedDBMsg_CallbacksSuccessIDBCursor_Params> params( | 347 std::unique_ptr<IndexedDBMsg_CallbacksSuccessIDBCursor_Params> params( |
| 347 new IndexedDBMsg_CallbacksSuccessIDBCursor_Params()); | 348 new IndexedDBMsg_CallbacksSuccessIDBCursor_Params()); |
| 348 params->ipc_thread_id = ipc_thread_id_; | 349 params->ipc_thread_id = ipc_thread_id_; |
| 349 params->ipc_callbacks_id = ipc_callbacks_id_; | 350 params->ipc_callbacks_id = ipc_callbacks_id_; |
| 350 params->ipc_cursor_id = ipc_object_id; | 351 params->ipc_cursor_id = ipc_object_id; |
| 351 params->key = key; | 352 params->key = key; |
| 352 params->primary_key = primary_key; | 353 params->primary_key = primary_key; |
| 353 if (value && !value->empty()) | 354 if (value && !value->empty()) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 372 | 373 |
| 373 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& key, | 374 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& key, |
| 374 const IndexedDBKey& primary_key, | 375 const IndexedDBKey& primary_key, |
| 375 IndexedDBValue* value) { | 376 IndexedDBValue* value) { |
| 376 DCHECK(dispatcher_host_.get()); | 377 DCHECK(dispatcher_host_.get()); |
| 377 | 378 |
| 378 DCHECK_NE(kNoCursor, ipc_cursor_id_); | 379 DCHECK_NE(kNoCursor, ipc_cursor_id_); |
| 379 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 380 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 380 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 381 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 381 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 382 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 382 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 383 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 383 | 384 |
| 384 IndexedDBCursor* idb_cursor = | 385 IndexedDBCursor* idb_cursor = |
| 385 dispatcher_host_->GetCursorFromId(ipc_cursor_id_); | 386 dispatcher_host_->GetCursorFromId(ipc_cursor_id_); |
| 386 | 387 |
| 387 DCHECK(idb_cursor); | 388 DCHECK(idb_cursor); |
| 388 if (!idb_cursor) | 389 if (!idb_cursor) |
| 389 return; | 390 return; |
| 390 | 391 |
| 391 std::unique_ptr<IndexedDBMsg_CallbacksSuccessCursorContinue_Params> params( | 392 std::unique_ptr<IndexedDBMsg_CallbacksSuccessCursorContinue_Params> params( |
| 392 new IndexedDBMsg_CallbacksSuccessCursorContinue_Params()); | 393 new IndexedDBMsg_CallbacksSuccessCursorContinue_Params()); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 423 std::vector<IndexedDBValue>* values) { | 424 std::vector<IndexedDBValue>* values) { |
| 424 DCHECK_EQ(keys.size(), primary_keys.size()); | 425 DCHECK_EQ(keys.size(), primary_keys.size()); |
| 425 DCHECK_EQ(keys.size(), values->size()); | 426 DCHECK_EQ(keys.size(), values->size()); |
| 426 | 427 |
| 427 DCHECK(dispatcher_host_.get()); | 428 DCHECK(dispatcher_host_.get()); |
| 428 | 429 |
| 429 DCHECK_NE(kNoCursor, ipc_cursor_id_); | 430 DCHECK_NE(kNoCursor, ipc_cursor_id_); |
| 430 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 431 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 431 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 432 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 432 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 433 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 433 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 434 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 434 | 435 |
| 435 std::vector<IndexedDBKey> msg_keys; | 436 std::vector<IndexedDBKey> msg_keys; |
| 436 std::vector<IndexedDBKey> msg_primary_keys; | 437 std::vector<IndexedDBKey> msg_primary_keys; |
| 437 | 438 |
| 438 for (size_t i = 0; i < keys.size(); ++i) { | 439 for (size_t i = 0; i < keys.size(); ++i) { |
| 439 msg_keys.push_back(keys[i]); | 440 msg_keys.push_back(keys[i]); |
| 440 msg_primary_keys.push_back(primary_keys[i]); | 441 msg_primary_keys.push_back(primary_keys[i]); |
| 441 } | 442 } |
| 442 | 443 |
| 443 std::unique_ptr<IndexedDBMsg_CallbacksSuccessCursorPrefetch_Params> params( | 444 std::unique_ptr<IndexedDBMsg_CallbacksSuccessCursorPrefetch_Params> params( |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 DCHECK(dispatcher_host_.get()); | 482 DCHECK(dispatcher_host_.get()); |
| 482 | 483 |
| 483 if (value && value->primary_key.IsValid()) { | 484 if (value && value->primary_key.IsValid()) { |
| 484 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 485 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
| 485 } else { | 486 } else { |
| 486 DCHECK(kNoCursor == ipc_cursor_id_ || value == NULL); | 487 DCHECK(kNoCursor == ipc_cursor_id_ || value == NULL); |
| 487 } | 488 } |
| 488 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 489 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 489 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 490 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 490 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 491 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 491 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 492 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 492 | 493 |
| 493 std::unique_ptr<IndexedDBMsg_CallbacksSuccessValue_Params> params( | 494 std::unique_ptr<IndexedDBMsg_CallbacksSuccessValue_Params> params( |
| 494 new IndexedDBMsg_CallbacksSuccessValue_Params()); | 495 new IndexedDBMsg_CallbacksSuccessValue_Params()); |
| 495 params->ipc_thread_id = ipc_thread_id_; | 496 params->ipc_thread_id = ipc_thread_id_; |
| 496 params->ipc_callbacks_id = ipc_callbacks_id_; | 497 params->ipc_callbacks_id = ipc_callbacks_id_; |
| 497 if (value && value->primary_key.IsValid()) { | 498 if (value && value->primary_key.IsValid()) { |
| 498 params->value.primary_key = value->primary_key; | 499 params->value.primary_key = value->primary_key; |
| 499 params->value.key_path = value->key_path; | 500 params->value.key_path = value->key_path; |
| 500 } | 501 } |
| 501 if (value && !value->empty()) | 502 if (value && !value->empty()) |
| (...skipping 15 matching lines...) Expand all Loading... |
| 517 } | 518 } |
| 518 | 519 |
| 519 void IndexedDBCallbacks::OnSuccessArray( | 520 void IndexedDBCallbacks::OnSuccessArray( |
| 520 std::vector<IndexedDBReturnValue>* values, | 521 std::vector<IndexedDBReturnValue>* values, |
| 521 const IndexedDBKeyPath& key_path) { | 522 const IndexedDBKeyPath& key_path) { |
| 522 DCHECK(dispatcher_host_.get()); | 523 DCHECK(dispatcher_host_.get()); |
| 523 | 524 |
| 524 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 525 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 525 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 526 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 526 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 527 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 527 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 528 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 528 | 529 |
| 529 std::unique_ptr<IndexedDBMsg_CallbacksSuccessArray_Params> params( | 530 std::unique_ptr<IndexedDBMsg_CallbacksSuccessArray_Params> params( |
| 530 new IndexedDBMsg_CallbacksSuccessArray_Params()); | 531 new IndexedDBMsg_CallbacksSuccessArray_Params()); |
| 531 params->ipc_thread_id = ipc_thread_id_; | 532 params->ipc_thread_id = ipc_thread_id_; |
| 532 params->ipc_callbacks_id = ipc_callbacks_id_; | 533 params->ipc_callbacks_id = ipc_callbacks_id_; |
| 533 params->values.resize(values->size()); | 534 params->values.resize(values->size()); |
| 534 | 535 |
| 535 bool found_blob_info = false; | 536 bool found_blob_info = false; |
| 536 for (size_t i = 0; i < values->size(); ++i) { | 537 for (size_t i = 0; i < values->size(); ++i) { |
| 537 IndexedDBMsg_ReturnValue& pvalue = params->values[i]; | 538 IndexedDBMsg_ReturnValue& pvalue = params->values[i]; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 561 dispatcher_host_ = NULL; | 562 dispatcher_host_ = NULL; |
| 562 } | 563 } |
| 563 | 564 |
| 564 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) { | 565 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) { |
| 565 DCHECK(dispatcher_host_.get()); | 566 DCHECK(dispatcher_host_.get()); |
| 566 | 567 |
| 567 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 568 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
| 568 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 569 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 569 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 570 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 570 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 571 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 571 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 572 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 572 | 573 |
| 573 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessIndexedDBKey( | 574 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessIndexedDBKey( |
| 574 ipc_thread_id_, ipc_callbacks_id_, value)); | 575 ipc_thread_id_, ipc_callbacks_id_, value)); |
| 575 dispatcher_host_ = NULL; | 576 dispatcher_host_ = NULL; |
| 576 } | 577 } |
| 577 | 578 |
| 578 void IndexedDBCallbacks::OnSuccess(int64_t value) { | 579 void IndexedDBCallbacks::OnSuccess(int64_t value) { |
| 579 DCHECK(dispatcher_host_.get()); | 580 DCHECK(dispatcher_host_.get()); |
| 580 | 581 |
| 581 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 582 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
| 582 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 583 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 583 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 584 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 584 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 585 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 585 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 586 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 586 | 587 |
| 587 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessInteger( | 588 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessInteger( |
| 588 ipc_thread_id_, ipc_callbacks_id_, value)); | 589 ipc_thread_id_, ipc_callbacks_id_, value)); |
| 589 dispatcher_host_ = NULL; | 590 dispatcher_host_ = NULL; |
| 590 } | 591 } |
| 591 | 592 |
| 592 void IndexedDBCallbacks::OnSuccess() { | 593 void IndexedDBCallbacks::OnSuccess() { |
| 593 DCHECK(dispatcher_host_.get()); | 594 DCHECK(dispatcher_host_.get()); |
| 594 | 595 |
| 595 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 596 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
| 596 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 597 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
| 597 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 598 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
| 598 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 599 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
| 599 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_info_.status); | 600 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
| 600 | 601 |
| 601 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessUndefined( | 602 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessUndefined( |
| 602 ipc_thread_id_, ipc_callbacks_id_)); | 603 ipc_thread_id_, ipc_callbacks_id_)); |
| 603 dispatcher_host_ = NULL; | 604 dispatcher_host_ = NULL; |
| 604 } | 605 } |
| 605 | 606 |
| 606 void IndexedDBCallbacks::SetConnectionOpenStartTime( | 607 void IndexedDBCallbacks::SetConnectionOpenStartTime( |
| 607 const base::TimeTicks& start_time) { | 608 const base::TimeTicks& start_time) { |
| 608 connection_open_start_time_ = start_time; | 609 connection_open_start_time_ = start_time; |
| 609 } | 610 } |
| 610 | 611 |
| 611 } // namespace content | 612 } // namespace content |
| OLD | NEW |