Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: content/browser/indexed_db/indexed_db_callbacks.cc

Issue 2109273002: IndexedDB: Created IndexedDBDataLossInfo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: initializing data loss in IndexedDBBackingStore::Open Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698