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 |