1 // Copyright (c) 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 "chrome/browser/ui/webui/ntp/app_resource_cache_factory.h" 6 7 #include "chrome/browser/profiles/incognito_helpers.h" 8 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/themes/theme_service_factory.h" 10 #include "chrome/browser/ui/webui/ntp/ntp_resource_cache.h" 11 #include "components/keyed_service/content/browser_context_dependency_manager.h" 12 13 // static 14 NTPResourceCache* AppResourceCacheFactory::GetForProfile(Profile* profile) { 15 return static_cast<NTPResourceCache*>( 16 GetInstance()->GetServiceForBrowserContext(profile, true)); 17 } 18 19 // static 20 AppResourceCacheFactory* AppResourceCacheFactory::GetInstance() { 21 return Singleton<AppResourceCacheFactory>::get(); 22 } 23 24 AppResourceCacheFactory::AppResourceCacheFactory() 25 : BrowserContextKeyedServiceFactory( 26 "AppResourceCache", 27 BrowserContextDependencyManager::GetInstance()) { 28 #if defined(ENABLE_THEMES) 29 DependsOn(ThemeServiceFactory::GetInstance()); 30 #endif 31 } 32 33 AppResourceCacheFactory::~AppResourceCacheFactory() {} 34 35 KeyedService* AppResourceCacheFactory::BuildServiceInstanceFor( 36 content::BrowserContext* profile) const { 37 return new NTPResourceCache(static_cast<Profile*>(profile)); 38 } 39 40 content::BrowserContext* AppResourceCacheFactory::GetBrowserContextToUse( 41 content::BrowserContext* context) const { 42 return chrome::GetBrowserContextRedirectedInIncognito(context); 43 } 44