| Index: chrome/browser/bookmarks/bookmark_storage.cc
|
| diff --git a/chrome/browser/bookmarks/bookmark_storage.cc b/chrome/browser/bookmarks/bookmark_storage.cc
|
| index b07cd0b677d82a264548fe8cbf65fcb4fb1e002e..a7dc118eb97c85fd351ecef52085daa2edb5fbd9 100644
|
| --- a/chrome/browser/bookmarks/bookmark_storage.cc
|
| +++ b/chrome/browser/bookmarks/bookmark_storage.cc
|
| @@ -11,17 +11,16 @@
|
| #include "base/json/json_file_value_serializer.h"
|
| #include "base/json/json_string_value_serializer.h"
|
| #include "base/metrics/histogram.h"
|
| +#include "base/sequenced_task_runner.h"
|
| #include "base/time/time.h"
|
| #include "chrome/browser/bookmarks/bookmark_codec.h"
|
| #include "chrome/browser/bookmarks/bookmark_index.h"
|
| #include "chrome/browser/bookmarks/bookmark_model.h"
|
| +#include "components/bookmarks/core/browser/bookmark_client.h"
|
| #include "components/bookmarks/core/common/bookmark_constants.h"
|
| #include "components/startup_metric_utils/startup_metric_utils.h"
|
| -#include "content/public/browser/browser_context.h"
|
| -#include "content/public/browser/browser_thread.h"
|
|
|
| using base::TimeTicks;
|
| -using content::BrowserThread;
|
|
|
| namespace {
|
|
|
| @@ -50,7 +49,8 @@ void AddBookmarksToIndex(BookmarkLoadDetails* details,
|
|
|
| void LoadCallback(const base::FilePath& path,
|
| BookmarkStorage* storage,
|
| - BookmarkLoadDetails* details) {
|
| + BookmarkLoadDetails* details,
|
| + base::SequencedTaskRunner* task_runner) {
|
| startup_metric_utils::ScopedSlowStartupUMA
|
| scoped_timer("Startup.SlowStartupBookmarksLoad");
|
| bool bookmark_file_exists = base::PathExists(path);
|
| @@ -85,9 +85,8 @@ void LoadCallback(const base::FilePath& path,
|
| }
|
| }
|
|
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&BookmarkStorage::OnLoadFinished, storage));
|
| + task_runner->PostTask(FROM_HERE,
|
| + base::Bind(&BookmarkStorage::OnLoadFinished, storage));
|
| }
|
|
|
| } // namespace
|
| @@ -116,11 +115,11 @@ BookmarkLoadDetails::~BookmarkLoadDetails() {
|
| // BookmarkStorage -------------------------------------------------------------
|
|
|
| BookmarkStorage::BookmarkStorage(
|
| - content::BrowserContext* context,
|
| BookmarkModel* model,
|
| + const base::FilePath& profile_path,
|
| base::SequencedTaskRunner* sequenced_task_runner)
|
| : model_(model),
|
| - writer_(context->GetPath().Append(bookmarks::kBookmarksFileName),
|
| + writer_(profile_path.Append(bookmarks::kBookmarksFileName),
|
| sequenced_task_runner) {
|
| sequenced_task_runner_ = sequenced_task_runner;
|
| writer_.set_commit_interval(base::TimeDelta::FromMilliseconds(kSaveDelayMS));
|
| @@ -133,14 +132,18 @@ BookmarkStorage::~BookmarkStorage() {
|
| writer_.DoScheduledWrite();
|
| }
|
|
|
| -void BookmarkStorage::LoadBookmarks(BookmarkLoadDetails* details) {
|
| +void BookmarkStorage::LoadBookmarks(
|
| + BookmarkLoadDetails* details,
|
| + const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
|
| DCHECK(!details_.get());
|
| DCHECK(details);
|
| details_.reset(details);
|
| - sequenced_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&LoadCallback, writer_.path(), make_scoped_refptr(this),
|
| - details_.get()));
|
| + sequenced_task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&LoadCallback,
|
| + writer_.path(),
|
| + make_scoped_refptr(this),
|
| + details_.get(),
|
| + task_runner));
|
| }
|
|
|
| void BookmarkStorage::ScheduleSave() {
|
|
|