1// Copyright 2013 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 "apps/app_lifetime_monitor_factory.h" 6 7#include "apps/app_lifetime_monitor.h" 8#include "chrome/browser/profiles/profile.h" 9#include "components/keyed_service/content/browser_context_dependency_manager.h" 10#include "extensions/browser/app_window/app_window_registry.h" 11#include "extensions/browser/extensions_browser_client.h" 12 13namespace apps { 14 15// static 16AppLifetimeMonitor* AppLifetimeMonitorFactory::GetForProfile(Profile* profile) { 17 return static_cast<AppLifetimeMonitor*>( 18 GetInstance()->GetServiceForBrowserContext(profile, false)); 19} 20 21AppLifetimeMonitorFactory* AppLifetimeMonitorFactory::GetInstance() { 22 return Singleton<AppLifetimeMonitorFactory>::get(); 23} 24 25AppLifetimeMonitorFactory::AppLifetimeMonitorFactory() 26 : BrowserContextKeyedServiceFactory( 27 "AppLifetimeMonitor", 28 BrowserContextDependencyManager::GetInstance()) { 29 DependsOn(extensions::AppWindowRegistry::Factory::GetInstance()); 30} 31 32AppLifetimeMonitorFactory::~AppLifetimeMonitorFactory() {} 33 34KeyedService* AppLifetimeMonitorFactory::BuildServiceInstanceFor( 35 content::BrowserContext* profile) const { 36 return new AppLifetimeMonitor(static_cast<Profile*>(profile)); 37} 38 39bool AppLifetimeMonitorFactory::ServiceIsCreatedWithBrowserContext() const { 40 return true; 41} 42 43content::BrowserContext* AppLifetimeMonitorFactory::GetBrowserContextToUse( 44 content::BrowserContext* context) const { 45 return extensions::ExtensionsBrowserClient::Get()-> 46 GetOriginalContext(context); 47} 48 49} // namespace apps 50