Index: chrome/browser/bookmarks/bookmark_model.cc |
diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc |
index 52533b4c2be72210353f7fc5c17cb7d33441eae5..f74602b74eb41809679d763472c396d70deabd47 100644 |
--- a/chrome/browser/bookmarks/bookmark_model.cc |
+++ b/chrome/browser/bookmarks/bookmark_model.cc |
@@ -9,6 +9,7 @@ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
+#include "base/deferred_sequenced_task_runner.h" |
#include "base/json/json_string_value_serializer.h" |
#include "base/sequenced_task_runner.h" |
#include "base/string_util.h" |
@@ -233,6 +234,15 @@ void BookmarkModel::Shutdown() { |
loaded_signal_.Signal(); |
} |
+scoped_refptr<base::DeferredSequencedTaskRunner> |
+ BookmarkModel::GetBookmarkTaskRunner() { |
+ if (!bookmark_task_runner_) { |
+ bookmark_task_runner_ = |
+ new base::DeferredSequencedTaskRunner(profile_->GetIOTaskRunner()); |
+ } |
+ return bookmark_task_runner_; |
+} |
+ |
void BookmarkModel::Load() { |
if (store_.get()) { |
// If the store is non-null, it means Load was already invoked. Load should |
@@ -250,7 +260,7 @@ void BookmarkModel::Load() { |
content::Source<Profile>(profile_)); |
// Load the bookmarks. BookmarkStorage notifies us when done. |
- store_ = new BookmarkStorage(profile_, this, profile_->GetIOTaskRunner()); |
+ store_ = new BookmarkStorage(profile_, this, GetBookmarkTaskRunner()); |
store_->LoadBookmarks(CreateLoadDetails()); |
} |