| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/themes/theme_service_factory.h" |
| |
| #include "base/logging.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_dependency_manager.h" |
| #include "chrome/browser/themes/theme_service.h" |
| #include "content/common/notification_service.h" |
| |
| #if defined(TOOLKIT_USES_GTK) |
| #include "chrome/browser/ui/gtk/gtk_theme_service.h" |
| #endif |
| |
| // static |
| ThemeService* ThemeServiceFactory::GetForProfile(Profile* profile) { |
| return static_cast<ThemeService*>( |
| GetInstance()->GetServiceForProfile(profile)); |
| } |
| |
| // static |
| const Extension* ThemeServiceFactory::GetThemeForProfile(Profile* profile) { |
| std::string id = GetForProfile(profile)->GetThemeID(); |
| if (id == ThemeService::kDefaultThemeID) |
| return NULL; |
| |
| return profile->GetExtensionService()->GetExtensionById(id, false); |
| } |
| |
| // static |
| ThemeServiceFactory* ThemeServiceFactory::GetInstance() { |
| return Singleton<ThemeServiceFactory>::get(); |
| } |
| |
| ThemeServiceFactory::ThemeServiceFactory() |
| : ProfileKeyedServiceFactory( |
| ProfileDependencyManager::GetInstance()) |
| {} |
| |
| ThemeServiceFactory::~ThemeServiceFactory() {} |
| |
| ProfileKeyedService* ThemeServiceFactory::BuildServiceInstanceFor( |
| Profile* profile) const { |
| ThemeService* provider = NULL; |
| #if defined(TOOLKIT_USES_GTK) |
| provider = new GtkThemeService; |
| #else |
| provider = new ThemeService; |
| #endif |
| provider->Init(profile); |
| |
| return provider; |
| } |
| |
| bool ThemeServiceFactory::ServiceRedirectedInIncognito() { |
| return true; |
| } |