Index: components/bookmarks/browser/bookmark_storage.cc |
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc |
index f2f1f1bc588801387823b30692d5582b82e21c7f..50e066920be9f80122b59500ead61e71d4c75aaf 100644 |
--- a/components/bookmarks/browser/bookmark_storage.cc |
+++ b/components/bookmarks/browser/bookmark_storage.cc |
@@ -49,7 +49,7 @@ void AddBookmarksToIndex(BookmarkLoadDetails* details, |
void LoadCallback(const base::FilePath& path, |
const base::WeakPtr<BookmarkStorage>& storage, |
- BookmarkLoadDetails* details, |
+ scoped_ptr<BookmarkLoadDetails> details, |
base::SequencedTaskRunner* task_runner) { |
startup_metric_utils::ScopedSlowStartupUMA |
scoped_timer("Startup.SlowStartupBookmarksLoad"); |
@@ -96,17 +96,18 @@ void LoadCallback(const base::FilePath& path, |
if (load_index) { |
TimeTicks start_time = TimeTicks::Now(); |
- AddBookmarksToIndex(details, details->bb_node()); |
- AddBookmarksToIndex(details, details->other_folder_node()); |
- AddBookmarksToIndex(details, details->mobile_folder_node()); |
+ AddBookmarksToIndex(details.get(), details->bb_node()); |
+ AddBookmarksToIndex(details.get(), details->other_folder_node()); |
+ AddBookmarksToIndex(details.get(), details->mobile_folder_node()); |
for (size_t i = 0; i < extra_nodes.size(); ++i) |
- AddBookmarksToIndex(details, extra_nodes[i]); |
+ AddBookmarksToIndex(details.get(), extra_nodes[i]); |
UMA_HISTOGRAM_TIMES("Bookmarks.CreateBookmarkIndexTime", |
TimeTicks::Now() - start_time); |
} |
task_runner->PostTask(FROM_HERE, |
- base::Bind(&BookmarkStorage::OnLoadFinished, storage)); |
+ base::Bind(&BookmarkStorage::OnLoadFinished, storage, |
+ base::Passed(&details))); |
} |
} // namespace |
@@ -162,14 +163,11 @@ BookmarkStorage::~BookmarkStorage() { |
void BookmarkStorage::LoadBookmarks( |
scoped_ptr<BookmarkLoadDetails> details, |
const scoped_refptr<base::SequencedTaskRunner>& task_runner) { |
- DCHECK(!details_.get()); |
- DCHECK(details); |
- details_ = details.Pass(); |
sequenced_task_runner_->PostTask(FROM_HERE, |
base::Bind(&LoadCallback, |
writer_.path(), |
weak_factory_.GetWeakPtr(), |
- details_.get(), |
+ base::Passed(&details), |
task_runner)); |
} |
@@ -193,11 +191,11 @@ bool BookmarkStorage::SerializeData(std::string* output) { |
return serializer.Serialize(*(value.get())); |
} |
-void BookmarkStorage::OnLoadFinished() { |
+void BookmarkStorage::OnLoadFinished(scoped_ptr<BookmarkLoadDetails> details) { |
if (!model_) |
return; |
- model_->DoneLoading(details_.Pass()); |
+ model_->DoneLoading(details.Pass()); |
} |
bool BookmarkStorage::SaveNow() { |