Chromium Code Reviews| Index: content/browser/indexed_db/indexed_db_database.cc |
| diff --git a/content/browser/indexed_db/indexed_db_database.cc b/content/browser/indexed_db/indexed_db_database.cc |
| index c686ae87ad3aaa4a86d13e948f644c1f0c8265ba..11054433af2c55b1c352ba1e44df5c3440017823 100644 |
| --- a/content/browser/indexed_db/indexed_db_database.cc |
| +++ b/content/browser/indexed_db/indexed_db_database.cc |
| @@ -17,6 +17,7 @@ |
| #include "base/memory/ptr_util.h" |
| #include "base/memory/scoped_vector.h" |
| #include "base/metrics/histogram_macros.h" |
| +#include "base/numerics/safe_conversions.h" |
| #include "base/stl_util.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/utf_string_conversions.h" |
| @@ -1410,13 +1411,12 @@ void IndexedDBDatabase::DeleteRangeOperation( |
| std::unique_ptr<IndexedDBKeyRange> key_range, |
| scoped_refptr<IndexedDBCallbacks> callbacks, |
| IndexedDBTransaction* transaction) { |
| - IDB_TRACE1( |
| - "IndexedDBDatabase::DeleteRangeOperation", "txn.id", transaction->id()); |
| + IDB_TRACE1("IndexedDBDatabase::DeleteRangeOperation", "txn.id", |
| + transaction->id()); |
| + size_t delete_count = 0; |
| leveldb::Status s = |
| - backing_store_->DeleteRange(transaction->BackingStoreTransaction(), |
| - id(), |
| - object_store_id, |
| - *key_range); |
| + backing_store_->DeleteRange(transaction->BackingStoreTransaction(), id(), |
| + object_store_id, *key_range, &delete_count); |
| if (!s.ok()) { |
| base::string16 error_string = |
| ASCIIToUTF16("Internal error deleting data in range"); |
| @@ -1428,7 +1428,7 @@ void IndexedDBDatabase::DeleteRangeOperation( |
| } |
| return; |
| } |
| - callbacks->OnSuccess(); |
| + callbacks->OnSuccess(base::checked_cast<int64_t>(delete_count)); |
|
dmurph
2016/05/24 18:49:18
Put the check right here.
if (experiment_web_plat
palakj1
2016/05/26 18:04:28
Thanks. Had done the same thing.
|
| } |
| void IndexedDBDatabase::Clear(int64_t transaction_id, |