[go: nahoru, domu]

blob: c524726db7706a50989edef5bb315f2ea6f73ccc [file] [log] [blame]
bartfab@chromium.org3b9deb402014-01-30 17:50:161// Copyright 2014 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/chromeos/login/saml/saml_offline_signin_limiter_factory.h"
6
7#include "base/time/clock.h"
8#include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h"
9#include "chrome/browser/profiles/profile.h"
blundell@chromium.org12b7af32014-03-13 05:28:2010#include "components/keyed_service/content/browser_context_dependency_manager.h"
11#include "components/keyed_service/core/keyed_service.h"
bartfab@chromium.org3b9deb402014-01-30 17:50:1612#include "content/public/browser/browser_context.h"
13
14namespace chromeos {
15
16base::Clock* SAMLOfflineSigninLimiterFactory::clock_for_testing_ = NULL;
17
18// static
19SAMLOfflineSigninLimiterFactory*
20 SAMLOfflineSigninLimiterFactory::GetInstance() {
21 return Singleton<SAMLOfflineSigninLimiterFactory>::get();
22}
23
24// static
25SAMLOfflineSigninLimiter* SAMLOfflineSigninLimiterFactory::GetForProfile(
26 Profile* profile) {
27 return static_cast<SAMLOfflineSigninLimiter*>(
28 GetInstance()->GetServiceForBrowserContext(profile, true));
29}
30
31// static
32void SAMLOfflineSigninLimiterFactory::SetClockForTesting(base::Clock* clock) {
33 clock_for_testing_ = clock;
34}
35
36SAMLOfflineSigninLimiterFactory::SAMLOfflineSigninLimiterFactory()
37 : BrowserContextKeyedServiceFactory(
38 "SAMLOfflineSigninLimiter",
39 BrowserContextDependencyManager::GetInstance()) {
40}
41
42SAMLOfflineSigninLimiterFactory::~SAMLOfflineSigninLimiterFactory() {
43}
44
blundell@chromium.org12b7af32014-03-13 05:28:2045KeyedService* SAMLOfflineSigninLimiterFactory::BuildServiceInstanceFor(
46 content::BrowserContext* context) const {
bartfab@chromium.org3b9deb402014-01-30 17:50:1647 return new SAMLOfflineSigninLimiter(static_cast<Profile*>(context),
48 clock_for_testing_);
49}
50
51} // namespace chromeos