1 // Copyright (c) 2011 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/notifications/desktop_notification_service_factory.h" 6 7 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/notifications/desktop_notification_service.h" 9 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile_dependency_manager.h" 11 #include "content/browser/browser_thread.h" 12 13 // static 14 DesktopNotificationService* DesktopNotificationServiceFactory::GetForProfile( 15 Profile* profile) { 16 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 17 return static_cast<DesktopNotificationService*>( 18 GetInstance()->GetServiceForProfile(profile)); 19 } 20 21 // static 22 DesktopNotificationServiceFactory* DesktopNotificationServiceFactory:: 23 GetInstance() { 24 return Singleton<DesktopNotificationServiceFactory>::get(); 25 } 26 27 DesktopNotificationServiceFactory::DesktopNotificationServiceFactory() 28 : ProfileKeyedServiceFactory(ProfileDependencyManager::GetInstance()) { 29 } 30 31 DesktopNotificationServiceFactory::~DesktopNotificationServiceFactory() { 32 } 33 34 ProfileKeyedService* DesktopNotificationServiceFactory::BuildServiceInstanceFor( 35 Profile* profile) const { 36 DesktopNotificationService* service = new DesktopNotificationService(profile, 37 g_browser_process->notification_ui_manager()); 38 39 return service; 40 } 41 42 bool DesktopNotificationServiceFactory::ServiceHasOwnInstanceInIncognito() { 43 return true; 44 } 45