Home | History | Annotate | Download | only in notifications
      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