| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/themes/theme_service.h" | 5 #include "chrome/browser/themes/theme_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 #include "components/grit/components_scaled_resources.h" | 33 #include "components/grit/components_scaled_resources.h" |
| 34 #include "components/prefs/pref_service.h" | 34 #include "components/prefs/pref_service.h" |
| 35 #include "content/public/browser/notification_service.h" | 35 #include "content/public/browser/notification_service.h" |
| 36 #include "content/public/browser/user_metrics.h" | 36 #include "content/public/browser/user_metrics.h" |
| 37 #include "extensions/browser/extension_prefs.h" | 37 #include "extensions/browser/extension_prefs.h" |
| 38 #include "extensions/browser/extension_registry.h" | 38 #include "extensions/browser/extension_registry.h" |
| 39 #include "extensions/browser/extension_system.h" | 39 #include "extensions/browser/extension_system.h" |
| 40 #include "extensions/browser/uninstall_reason.h" | 40 #include "extensions/browser/uninstall_reason.h" |
| 41 #include "extensions/common/extension.h" | 41 #include "extensions/common/extension.h" |
| 42 #include "extensions/common/extension_set.h" | 42 #include "extensions/common/extension_set.h" |
| 43 #include "extensions/features/features.h" |
| 43 #include "ui/base/layout.h" | 44 #include "ui/base/layout.h" |
| 44 #include "ui/base/resource/resource_bundle.h" | 45 #include "ui/base/resource/resource_bundle.h" |
| 45 #include "ui/gfx/color_palette.h" | 46 #include "ui/gfx/color_palette.h" |
| 46 #include "ui/gfx/image/image_skia.h" | 47 #include "ui/gfx/image/image_skia.h" |
| 47 #include "ui/native_theme/common_theme.h" | 48 #include "ui/native_theme/common_theme.h" |
| 48 #include "ui/native_theme/native_theme.h" | 49 #include "ui/native_theme/native_theme.h" |
| 49 | 50 |
| 50 #if defined(ENABLE_EXTENSIONS) | 51 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 51 #include "extensions/browser/extension_registry_observer.h" | 52 #include "extensions/browser/extension_registry_observer.h" |
| 52 #endif | 53 #endif |
| 53 | 54 |
| 54 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 55 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 55 #include "chrome/browser/supervised_user/supervised_user_theme.h" | 56 #include "chrome/browser/supervised_user/supervised_user_theme.h" |
| 56 #endif | 57 #endif |
| 57 | 58 |
| 58 using base::UserMetricsAction; | 59 using base::UserMetricsAction; |
| 59 using content::BrowserThread; | 60 using content::BrowserThread; |
| 60 using extensions::Extension; | 61 using extensions::Extension; |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 | 150 |
| 150 base::RefCountedMemory* ThemeService::BrowserThemeProvider::GetRawData( | 151 base::RefCountedMemory* ThemeService::BrowserThemeProvider::GetRawData( |
| 151 int id, | 152 int id, |
| 152 ui::ScaleFactor scale_factor) const { | 153 ui::ScaleFactor scale_factor) const { |
| 153 return theme_service_.GetRawData(id, scale_factor); | 154 return theme_service_.GetRawData(id, scale_factor); |
| 154 } | 155 } |
| 155 | 156 |
| 156 | 157 |
| 157 // ThemeService::ThemeObserver ------------------------------------------------ | 158 // ThemeService::ThemeObserver ------------------------------------------------ |
| 158 | 159 |
| 159 #if defined(ENABLE_EXTENSIONS) | 160 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 160 class ThemeService::ThemeObserver | 161 class ThemeService::ThemeObserver |
| 161 : public extensions::ExtensionRegistryObserver { | 162 : public extensions::ExtensionRegistryObserver { |
| 162 public: | 163 public: |
| 163 explicit ThemeObserver(ThemeService* service) : theme_service_(service) { | 164 explicit ThemeObserver(ThemeService* service) : theme_service_(service) { |
| 164 extensions::ExtensionRegistry::Get(theme_service_->profile_) | 165 extensions::ExtensionRegistry::Get(theme_service_->profile_) |
| 165 ->AddObserver(this); | 166 ->AddObserver(this); |
| 166 } | 167 } |
| 167 | 168 |
| 168 ~ThemeObserver() override { | 169 ~ThemeObserver() override { |
| 169 extensions::ExtensionRegistry::Get(theme_service_->profile_) | 170 extensions::ExtensionRegistry::Get(theme_service_->profile_) |
| (...skipping 28 matching lines...) Expand all Loading... |
| 198 if (reason != extensions::UnloadedExtensionInfo::REASON_UPDATE && | 199 if (reason != extensions::UnloadedExtensionInfo::REASON_UPDATE && |
| 199 reason != extensions::UnloadedExtensionInfo::REASON_LOCK_ALL && | 200 reason != extensions::UnloadedExtensionInfo::REASON_LOCK_ALL && |
| 200 extension->is_theme() && | 201 extension->is_theme() && |
| 201 extension->id() == theme_service_->GetThemeID()) { | 202 extension->id() == theme_service_->GetThemeID()) { |
| 202 theme_service_->UseDefaultTheme(); | 203 theme_service_->UseDefaultTheme(); |
| 203 } | 204 } |
| 204 } | 205 } |
| 205 | 206 |
| 206 ThemeService* theme_service_; | 207 ThemeService* theme_service_; |
| 207 }; | 208 }; |
| 208 #endif // defined(ENABLE_EXTENSIONS) | 209 #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
| 209 | 210 |
| 210 | 211 |
| 211 // ThemeService --------------------------------------------------------------- | 212 // ThemeService --------------------------------------------------------------- |
| 212 | 213 |
| 213 // The default theme if we haven't installed a theme yet or if we've clicked | 214 // The default theme if we haven't installed a theme yet or if we've clicked |
| 214 // the "Use Classic" button. | 215 // the "Use Classic" button. |
| 215 const char ThemeService::kDefaultThemeID[] = ""; | 216 const char ThemeService::kDefaultThemeID[] = ""; |
| 216 | 217 |
| 217 ThemeService::ThemeService() | 218 ThemeService::ThemeService() |
| 218 : ready_(false), | 219 : ready_(false), |
| (...skipping 16 matching lines...) Expand all Loading... |
| 235 LoadThemePrefs(); | 236 LoadThemePrefs(); |
| 236 | 237 |
| 237 registrar_.Add(this, | 238 registrar_.Add(this, |
| 238 extensions::NOTIFICATION_EXTENSIONS_READY_DEPRECATED, | 239 extensions::NOTIFICATION_EXTENSIONS_READY_DEPRECATED, |
| 239 content::Source<Profile>(profile_)); | 240 content::Source<Profile>(profile_)); |
| 240 | 241 |
| 241 theme_syncable_service_.reset(new ThemeSyncableService(profile_, this)); | 242 theme_syncable_service_.reset(new ThemeSyncableService(profile_, this)); |
| 242 } | 243 } |
| 243 | 244 |
| 244 void ThemeService::Shutdown() { | 245 void ThemeService::Shutdown() { |
| 245 #if defined(ENABLE_EXTENSIONS) | 246 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 246 theme_observer_.reset(); | 247 theme_observer_.reset(); |
| 247 #endif | 248 #endif |
| 248 } | 249 } |
| 249 | 250 |
| 250 void ThemeService::Observe(int type, | 251 void ThemeService::Observe(int type, |
| 251 const content::NotificationSource& source, | 252 const content::NotificationSource& source, |
| 252 const content::NotificationDetails& details) { | 253 const content::NotificationDetails& details) { |
| 253 using content::Details; | 254 using content::Details; |
| 254 switch (type) { | 255 switch (type) { |
| 255 case extensions::NOTIFICATION_EXTENSIONS_READY_DEPRECATED: | 256 case extensions::NOTIFICATION_EXTENSIONS_READY_DEPRECATED: |
| (...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 // If the ThemeService is not ready yet, the custom theme data pack needs to | 790 // If the ThemeService is not ready yet, the custom theme data pack needs to |
| 790 // be recreated from the extension. | 791 // be recreated from the extension. |
| 791 MigrateTheme(); | 792 MigrateTheme(); |
| 792 set_ready(); | 793 set_ready(); |
| 793 | 794 |
| 794 // Send notification in case anyone requested data and cached it when the | 795 // Send notification in case anyone requested data and cached it when the |
| 795 // theme service was not ready yet. | 796 // theme service was not ready yet. |
| 796 NotifyThemeChanged(); | 797 NotifyThemeChanged(); |
| 797 } | 798 } |
| 798 | 799 |
| 799 #if defined(ENABLE_EXTENSIONS) | 800 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 800 theme_observer_.reset(new ThemeObserver(this)); | 801 theme_observer_.reset(new ThemeObserver(this)); |
| 801 #endif | 802 #endif |
| 802 | 803 |
| 803 registrar_.Add(this, | 804 registrar_.Add(this, |
| 804 extensions::NOTIFICATION_EXTENSION_ENABLED, | 805 extensions::NOTIFICATION_EXTENSION_ENABLED, |
| 805 content::Source<Profile>(profile_)); | 806 content::Source<Profile>(profile_)); |
| 806 | 807 |
| 807 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 808 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
| 808 FROM_HERE, base::Bind(&ThemeService::RemoveUnusedThemes, | 809 FROM_HERE, base::Bind(&ThemeService::RemoveUnusedThemes, |
| 809 weak_ptr_factory_.GetWeakPtr(), false), | 810 weak_ptr_factory_.GetWeakPtr(), false), |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 874 | 875 |
| 875 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 876 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 876 bool ThemeService::IsSupervisedUser() const { | 877 bool ThemeService::IsSupervisedUser() const { |
| 877 return profile_->IsSupervised(); | 878 return profile_->IsSupervised(); |
| 878 } | 879 } |
| 879 | 880 |
| 880 void ThemeService::SetSupervisedUserTheme() { | 881 void ThemeService::SetSupervisedUserTheme() { |
| 881 SetCustomDefaultTheme(new SupervisedUserTheme); | 882 SetCustomDefaultTheme(new SupervisedUserTheme); |
| 882 } | 883 } |
| 883 #endif | 884 #endif |
| OLD | NEW |