1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/sessions/tab_restore_service_factory.h"
6
7#include "chrome/browser/profiles/profile.h"
8#include "chrome/browser/sessions/tab_restore_service.h"
9#include "components/keyed_service/content/browser_context_dependency_manager.h"
10
11// static
12TabRestoreService* TabRestoreServiceFactory::GetForProfile(Profile* profile) {
13  return static_cast<TabRestoreService*>(
14      GetInstance()->GetServiceForBrowserContext(profile, true));
15}
16
17// static
18TabRestoreService* TabRestoreServiceFactory::GetForProfileIfExisting(
19    Profile* profile) {
20  return static_cast<TabRestoreService*>(
21      GetInstance()->GetServiceForBrowserContext(profile, false));
22}
23
24// static
25void TabRestoreServiceFactory::ResetForProfile(Profile* profile) {
26  TabRestoreServiceFactory* factory = GetInstance();
27  factory->BrowserContextShutdown(profile);
28  factory->BrowserContextDestroyed(profile);
29}
30
31TabRestoreServiceFactory* TabRestoreServiceFactory::GetInstance() {
32  return Singleton<TabRestoreServiceFactory>::get();
33}
34
35TabRestoreServiceFactory::TabRestoreServiceFactory()
36    : BrowserContextKeyedServiceFactory(
37        "TabRestoreService",
38        BrowserContextDependencyManager::GetInstance()) {
39}
40
41TabRestoreServiceFactory::~TabRestoreServiceFactory() {
42}
43
44bool TabRestoreServiceFactory::ServiceIsNULLWhileTesting() const {
45  return true;
46}
47