• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)19 ThemeService* ThemeServiceFactory::GetForProfile(Profile* profile) {
20   return static_cast<ThemeService*>(
21       GetInstance()->GetServiceForProfile(profile));
22 }
23 
24 // static
GetThemeForProfile(Profile * profile)25 const 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()34 ThemeServiceFactory* ThemeServiceFactory::GetInstance() {
35   return Singleton<ThemeServiceFactory>::get();
36 }
37 
ThemeServiceFactory()38 ThemeServiceFactory::ThemeServiceFactory()
39     : ProfileKeyedServiceFactory(
40         ProfileDependencyManager::GetInstance())
41 {}
42 
~ThemeServiceFactory()43 ThemeServiceFactory::~ThemeServiceFactory() {}
44 
BuildServiceInstanceFor(Profile * profile) const45 ProfileKeyedService* 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()58 bool ThemeServiceFactory::ServiceRedirectedInIncognito() {
59   return true;
60 }
61