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/themes/theme_service_factory.h" 6 7 #include "base/logging.h" 8 #include "chrome/browser/extensions/extension_service.h" 9 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile_dependency_manager.h" 11 #include "chrome/browser/themes/theme_service.h" 12 #include "content/common/notification_service.h" 13 14 #if defined(TOOLKIT_USES_GTK) 15 #include "chrome/browser/ui/gtk/gtk_theme_service.h" 16 #endif 17 18 // static GetForProfile(Profile * profile)19ThemeService* ThemeServiceFactory::GetForProfile(Profile* profile) { 20 return static_cast<ThemeService*>( 21 GetInstance()->GetServiceForProfile(profile)); 22 } 23 24 // static GetThemeForProfile(Profile * profile)25const Extension* ThemeServiceFactory::GetThemeForProfile(Profile* profile) { 26 std::string id = GetForProfile(profile)->GetThemeID(); 27 if (id == ThemeService::kDefaultThemeID) 28 return NULL; 29 30 return profile->GetExtensionService()->GetExtensionById(id, false); 31 } 32 33 // static GetInstance()34ThemeServiceFactory* ThemeServiceFactory::GetInstance() { 35 return Singleton<ThemeServiceFactory>::get(); 36 } 37 ThemeServiceFactory()38ThemeServiceFactory::ThemeServiceFactory() 39 : ProfileKeyedServiceFactory( 40 ProfileDependencyManager::GetInstance()) 41 {} 42 ~ThemeServiceFactory()43ThemeServiceFactory::~ThemeServiceFactory() {} 44 BuildServiceInstanceFor(Profile * profile) const45ProfileKeyedService* ThemeServiceFactory::BuildServiceInstanceFor( 46 Profile* profile) const { 47 ThemeService* provider = NULL; 48 #if defined(TOOLKIT_USES_GTK) 49 provider = new GtkThemeService; 50 #else 51 provider = new ThemeService; 52 #endif 53 provider->Init(profile); 54 55 return provider; 56 } 57 ServiceRedirectedInIncognito()58bool ThemeServiceFactory::ServiceRedirectedInIncognito() { 59 return true; 60 } 61