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); |
DCHECK_GT(new_files_to_write->size(), 0UL); |
DCHECK_GT(database_id_, 0); |
for (auto& blob_entry_iter : *new_blob_entries) { |