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