1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/signin/chrome_signin_client_factory.h"
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/content/browser_context_dependency_manager.h"
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)ChromeSigninClientFactory::ChromeSigninClientFactory()
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    : BrowserContextKeyedServiceFactory(
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          "ChromeSigninClient",
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          BrowserContextDependencyManager::GetInstance()) {}
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)ChromeSigninClientFactory::~ChromeSigninClientFactory() {}
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// static
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)SigninClient* ChromeSigninClientFactory::GetForProfile(Profile* profile) {
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return static_cast<SigninClient*>(
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      GetInstance()->GetServiceForBrowserContext(profile, true));
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// static
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)ChromeSigninClientFactory* ChromeSigninClientFactory::GetInstance() {
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return Singleton<ChromeSigninClientFactory>::get();
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)KeyedService* ChromeSigninClientFactory::BuildServiceInstanceFor(
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    content::BrowserContext* context) const {
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ChromeSigninClient* client =
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new ChromeSigninClient(static_cast<Profile*>(context));
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return client;
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
34