Chromium Code Reviews| Index: content/browser/indexed_db/indexed_db_backing_store.cc |
| diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc |
| index eff43e0f0d32f14672f786f82b3667a2de8a1286..7eb73aaafc5ce466a6f862a6eabc540686c5cba0 100644 |
| --- a/content/browser/indexed_db/indexed_db_backing_store.cc |
| +++ b/content/browser/indexed_db/indexed_db_backing_store.cc |
| @@ -565,6 +565,7 @@ template <typename TransactionType> |
| static leveldb::Status GetBlobJournal(const StringPiece& key, |
| TransactionType* transaction, |
| BlobJournalType* journal) { |
| + IDB_TRACE("IndexedDBBackingStore::GetBlobJournal"); |
| std::string data; |
| bool found = false; |
| leveldb::Status s = transaction->Get(key, &data, &found); |
| @@ -666,6 +667,7 @@ static leveldb::Status MergeDatabaseIntoBlobJournal( |
| LevelDBDirectTransaction* transaction, |
| const std::string& key, |
| int64 database_id) { |
| + IDB_TRACE("IndexedDBBackingStore::MergeDatabaseIntoBlobJournal"); |
| BlobJournalType journal; |
| leveldb::Status s = GetBlobJournal(key, transaction, &journal); |
| if (!s.ok()) |
| @@ -1474,11 +1476,14 @@ leveldb::Status IndexedDBBackingStore::DeleteDatabase( |
| metadata.id, DatabaseMetaDataKey::ORIGIN_NAME); |
| const std::string stop_key = DatabaseMetaDataKey::Encode( |
| metadata.id + 1, DatabaseMetaDataKey::ORIGIN_NAME); |
| - scoped_ptr<LevelDBIterator> it = db_->CreateIterator(); |
| - for (s = it->Seek(start_key); |
| - s.ok() && it->IsValid() && CompareKeys(it->Key(), stop_key) < 0; |
| - s = it->Next()) |
| - transaction->Remove(it->Key()); |
| + { |
| + IDB_TRACE("IndexedDBBackingStore::DeleteDatabase.DeleteEntries"); |
| + scoped_ptr<LevelDBIterator> it = db_->CreateIterator(); |
| + for (s = it->Seek(start_key); |
| + s.ok() && it->IsValid() && CompareKeys(it->Key(), stop_key) < 0; |
| + s = it->Next()) |
| + transaction->Remove(it->Key()); |
| + } |
| if (!s.ok()) { |
| INTERNAL_WRITE_ERROR_UNTESTED(DELETE_DATABASE); |
| return s; |
| @@ -2692,6 +2697,7 @@ bool IndexedDBBackingStore::RemoveBlobDirectory(int64 database_id) const { |
| leveldb::Status IndexedDBBackingStore::CleanUpBlobJournalEntries( |
| const BlobJournalType& journal) const { |
| + IDB_TRACE("IndexedDBBackingStore::CleanUpBlobJournalEntries"); |
| if (journal.empty()) |
| return leveldb::Status::OK(); |
| for (const auto& entry : journal) { |
| @@ -2712,6 +2718,7 @@ leveldb::Status IndexedDBBackingStore::CleanUpBlobJournalEntries( |
| leveldb::Status IndexedDBBackingStore::CleanUpBlobJournal( |
| const std::string& level_db_key) const { |
| + IDB_TRACE("IndexedDBBackingStore::CleanUpBlobJournal"); |
| DCHECK(!committing_transaction_count_); |
| leveldb::Status s; |
| scoped_refptr<LevelDBTransaction> journal_transaction = |
| @@ -4223,6 +4230,7 @@ leveldb::Status IndexedDBBackingStore::Transaction::CommitPhaseTwo() { |
| BlobJournalType primary_journal, live_journal, saved_primary_journal, |
| dead_blobs; |
| if (!blob_change_map_.empty()) { |
| + IDB_TRACE("IndexedDBBackingStore::Transaction.BlobJournal"); |
| // Read the persisted states of the primary/live blob journals, |
| // so that they can be updated correctly by the transaction. |
| scoped_refptr<LevelDBTransaction> journal_transaction = |
| @@ -4317,6 +4325,8 @@ class IndexedDBBackingStore::Transaction::BlobWriteCallbackWrapper |
| scoped_refptr<BlobWriteCallback> callback) |
| : transaction_(transaction), callback_(callback) {} |
| void Run(bool succeeded) override { |
| + IDB_ASYNC_TRACE_END("IndexedDBBackingStore::Transaction::WriteNewBlobs", |
| + transaction_); |
| callback_->Run(succeeded); |
| if (succeeded) // Else it's already been deleted during rollback. |
| transaction_->chained_blob_writer_ = NULL; |
| @@ -4336,6 +4346,8 @@ void IndexedDBBackingStore::Transaction::WriteNewBlobs( |
| BlobEntryKeyValuePairVec* new_blob_entries, |
| WriteDescriptorVec* new_files_to_write, |
| scoped_refptr<BlobWriteCallback> callback) { |
| + IDB_ASYNC_TRACE_BEGIN("IndexedDBBackingStore::Transaction::WriteNewBlobs", |
| + this); |
|
cmumford
2015/08/26 19:06:18
You begin with "this", but end with "transaction_"
dmurph
2015/08/26 20:24:54
Yes, the BEGIN is in the transaction object, and t
|
| DCHECK_GT(new_files_to_write->size(), 0UL); |
| DCHECK_GT(database_id_, 0); |
| for (auto& blob_entry_iter : *new_blob_entries) { |