supervised_user_service_factory.cc revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/supervised_user/supervised_user_service_factory.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/incognito_helpers.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/supervised_user/supervised_user_service.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/profile_sync_service_factory.h" 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "components/keyed_service/content/browser_context_dependency_manager.h" 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(ENABLE_EXTENSIONS) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "extensions/browser/extension_system_provider.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "extensions/browser/extensions_browser_client.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SupervisedUserService* SupervisedUserServiceFactory::GetForProfile( 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile) { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return static_cast<SupervisedUserService*>( 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetInstance()->GetServiceForBrowserContext(profile, true)); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SupervisedUserServiceFactory* SupervisedUserServiceFactory::GetInstance() { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return Singleton<SupervisedUserServiceFactory>::get(); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)KeyedService* SupervisedUserServiceFactory::BuildInstanceFor(Profile* profile) { 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return new SupervisedUserService(profile); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SupervisedUserServiceFactory::SupervisedUserServiceFactory() 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : BrowserContextKeyedServiceFactory( 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "SupervisedUserService", 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserContextDependencyManager::GetInstance()) { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(ENABLE_EXTENSIONS) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DependsOn( 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DependsOn(ProfileOAuth2TokenServiceFactory::GetInstance()); 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DependsOn(ProfileSyncServiceFactory::GetInstance()); 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)SupervisedUserServiceFactory::~SupervisedUserServiceFactory() {} 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)content::BrowserContext* SupervisedUserServiceFactory::GetBrowserContextToUse( 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) content::BrowserContext* context) const { 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return chrome::GetBrowserContextRedirectedInIncognito(context); 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)KeyedService* SupervisedUserServiceFactory::BuildServiceInstanceFor( 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) content::BrowserContext* profile) const { 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return BuildInstanceFor(static_cast<Profile*>(profile)); 585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)