197ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu// Copyright (c) 2013 The Chromium Authors. All rights reserved.
297ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu// Use of this source code is governed by a BSD-style license that can be
397ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu// found in the LICENSE file.
497ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu
597ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu#include "chrome/browser/profiles/startup_task_runner_service.h"
697ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu
797ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu#include "base/deferred_sequenced_task_runner.h"
897ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu#include "base/logging.h"
997ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu#include "chrome/browser/profiles/profile.h"
1097ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu
1197ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing XuStartupTaskRunnerService::StartupTaskRunnerService(Profile* profile)
1297ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu    : profile_(profile) {
1397ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu}
1497ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu
1597ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing XuStartupTaskRunnerService::~StartupTaskRunnerService() {
16d02e83a548359df978f40cc1a52ffd78b7ef371bTed Kremenek}
1797ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu
1897ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xuscoped_refptr<base::DeferredSequencedTaskRunner>
1997ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu    StartupTaskRunnerService::GetBookmarkTaskRunner() {
2097ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu  DCHECK(CalledOnValidThread());
2197ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu  if (!bookmark_task_runner_.get()) {
22b1a7b65231e86f7da6aacbf00bcdc16c56350e65Ted Kremenek    bookmark_task_runner_ =
23b1a7b65231e86f7da6aacbf00bcdc16c56350e65Ted Kremenek        new base::DeferredSequencedTaskRunner(profile_->GetIOTaskRunner());
2487a05f1fe8ae14044f182b015b279e0a6f4cbdd1Mike Stump  }
2597ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu  return bookmark_task_runner_;
2697ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu}
2797ab3941effe1f508c7113d9aa0c2887774f6fa8Zhongxing Xu
2858f5ec7d56b1ebf5f90ee11226ebe7663f2821eaTed Kremenekvoid StartupTaskRunnerService::StartDeferredTaskRunners() {
2958f5ec7d56b1ebf5f90ee11226ebe7663f2821eaTed Kremenek  GetBookmarkTaskRunner()->Start();
3058f5ec7d56b1ebf5f90ee11226ebe7663f2821eaTed Kremenek}
3158f5ec7d56b1ebf5f90ee11226ebe7663f2821eaTed Kremenek