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