signin_error_notifier_factory_ash.cc revision 23730a6e56a168d1879203e4b3819bb36e3d8f1f
1// 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/signin/signin_error_notifier_factory_ash.h" 6 7#include "ash/shell.h" 8#include "chrome/browser/browser_process.h" 9#include "chrome/browser/profiles/profile.h" 10#include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 11#include "chrome/browser/signin/signin_error_notifier_ash.h" 12#include "components/keyed_service/content/browser_context_dependency_manager.h" 13#include "components/signin/core/profile_oauth2_token_service.h" 14 15SigninErrorNotifierFactory::SigninErrorNotifierFactory() 16 : BrowserContextKeyedServiceFactory( 17 "SigninErrorNotifier", 18 BrowserContextDependencyManager::GetInstance()) { 19 DependsOn(ProfileOAuth2TokenServiceFactory::GetInstance()); 20} 21 22SigninErrorNotifierFactory::~SigninErrorNotifierFactory() {} 23 24// static 25SigninErrorNotifier* SigninErrorNotifierFactory::GetForProfile( 26 Profile* profile) { 27 return static_cast<SigninErrorNotifier*>( 28 GetInstance()->GetServiceForBrowserContext(profile, true)); 29} 30 31// static 32SigninErrorNotifierFactory* SigninErrorNotifierFactory::GetInstance() { 33 return Singleton<SigninErrorNotifierFactory>::get(); 34} 35 36KeyedService* SigninErrorNotifierFactory::BuildServiceInstanceFor( 37 content::BrowserContext* context) const { 38 if (!ash::Shell::HasInstance()) 39 return NULL; 40 41 Profile* profile = static_cast<Profile*>(context); 42 43 SigninErrorController* controller = 44 ProfileOAuth2TokenServiceFactory::GetForProfile(profile)-> 45 signin_error_controller(); 46 47 return new SigninErrorNotifier(controller, profile); 48} 49