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 14DesktopNotificationService* DesktopNotificationServiceFactory::GetForProfile( 15 Profile* profile) { 16 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 17 return static_cast<DesktopNotificationService*>( 18 GetInstance()->GetServiceForProfile(profile)); 19} 20 21// static 22DesktopNotificationServiceFactory* DesktopNotificationServiceFactory:: 23 GetInstance() { 24 return Singleton<DesktopNotificationServiceFactory>::get(); 25} 26 27DesktopNotificationServiceFactory::DesktopNotificationServiceFactory() 28 : ProfileKeyedServiceFactory(ProfileDependencyManager::GetInstance()) { 29} 30 31DesktopNotificationServiceFactory::~DesktopNotificationServiceFactory() { 32} 33 34ProfileKeyedService* 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 42bool DesktopNotificationServiceFactory::ServiceHasOwnInstanceInIncognito() { 43 return true; 44} 45