| 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 #ifndef CHROME_BROWSER_THEMES_THEME_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_THEMES_THEME_SERVICE_H_ |
| 6 #define CHROME_BROWSER_THEMES_THEME_SERVICE_H_ | 6 #define CHROME_BROWSER_THEMES_THEME_SERVICE_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 virtual std::string GetThemeID() const; | 128 virtual std::string GetThemeID() const; |
| 129 | 129 |
| 130 // This class needs to keep track of the number of theme infobars so that we | 130 // This class needs to keep track of the number of theme infobars so that we |
| 131 // clean up unused themes. | 131 // clean up unused themes. |
| 132 void OnInfobarDisplayed(); | 132 void OnInfobarDisplayed(); |
| 133 | 133 |
| 134 // Decrements the number of theme infobars. If the last infobar has been | 134 // Decrements the number of theme infobars. If the last infobar has been |
| 135 // destroyed, uninstalls all themes that aren't the currently selected. | 135 // destroyed, uninstalls all themes that aren't the currently selected. |
| 136 void OnInfobarDestroyed(); | 136 void OnInfobarDestroyed(); |
| 137 | 137 |
| 138 // Remove preference values for themes that are no longer in use. | 138 // Uninstall theme extensions which are no longer in use. |ignore_infobars| is |
| 139 void RemoveUnusedThemes(); | 139 // whether unused themes should be removed despite a theme infobar being |
| 140 // visible. |
| 141 void RemoveUnusedThemes(bool ignore_infobars); |
| 140 | 142 |
| 141 // Returns the syncable service for syncing theme. The returned service is | 143 // Returns the syncable service for syncing theme. The returned service is |
| 142 // owned by |this| object. | 144 // owned by |this| object. |
| 143 virtual ThemeSyncableService* GetThemeSyncableService() const; | 145 virtual ThemeSyncableService* GetThemeSyncableService() const; |
| 144 | 146 |
| 145 // Save the images to be written to disk, mapping file path to id. | 147 // Save the images to be written to disk, mapping file path to id. |
| 146 typedef std::map<base::FilePath, int> ImagesDiskCache; | 148 typedef std::map<base::FilePath, int> ImagesDiskCache; |
| 147 | 149 |
| 148 protected: | 150 protected: |
| 149 // Set a custom default theme instead of the normal default theme. | 151 // Set a custom default theme instead of the normal default theme. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 } | 185 } |
| 184 | 186 |
| 185 // True if the theme service is ready to be used. | 187 // True if the theme service is ready to be used. |
| 186 // TODO(pkotwicz): Add DCHECKS to the theme service's getters once | 188 // TODO(pkotwicz): Add DCHECKS to the theme service's getters once |
| 187 // ThemeSource no longer uses the ThemeService when it is not ready. | 189 // ThemeSource no longer uses the ThemeService when it is not ready. |
| 188 bool ready_; | 190 bool ready_; |
| 189 | 191 |
| 190 private: | 192 private: |
| 191 friend class theme_service_internal::ThemeServiceTest; | 193 friend class theme_service_internal::ThemeServiceTest; |
| 192 | 194 |
| 195 // Called when the extension service is ready. |
| 196 void OnExtensionServiceReady(); |
| 197 |
| 198 // Migrate the theme to the new theme pack schema by recreating the data pack |
| 199 // from the extension. |
| 200 void MigrateTheme(); |
| 201 |
| 193 // Replaces the current theme supplier with a new one and calls | 202 // Replaces the current theme supplier with a new one and calls |
| 194 // StopUsingTheme() or StartUsingTheme() as appropriate. | 203 // StopUsingTheme() or StartUsingTheme() as appropriate. |
| 195 void SwapThemeSupplier(scoped_refptr<CustomThemeSupplier> theme_supplier); | 204 void SwapThemeSupplier(scoped_refptr<CustomThemeSupplier> theme_supplier); |
| 196 | 205 |
| 197 // Migrate the theme to the new theme pack schema by recreating the data pack | |
| 198 // from the extension. | |
| 199 void MigrateTheme(); | |
| 200 | |
| 201 // Saves the filename of the cached theme pack. | 206 // Saves the filename of the cached theme pack. |
| 202 void SavePackName(const base::FilePath& pack_path); | 207 void SavePackName(const base::FilePath& pack_path); |
| 203 | 208 |
| 204 // Save the id of the last theme installed. | 209 // Save the id of the last theme installed. |
| 205 void SaveThemeID(const std::string& id); | 210 void SaveThemeID(const std::string& id); |
| 206 | 211 |
| 207 // Implementation of SetTheme() (and the fallback from LoadThemePrefs() in | 212 // Implementation of SetTheme() (and the fallback from LoadThemePrefs() in |
| 208 // case we don't have a theme pack). | 213 // case we don't have a theme pack). |
| 209 void BuildFromExtension(const extensions::Extension* extension); | 214 void BuildFromExtension(const extensions::Extension* extension); |
| 210 | 215 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 237 | 242 |
| 238 typedef std::map<int, NSGradient*> NSGradientMap; | 243 typedef std::map<int, NSGradient*> NSGradientMap; |
| 239 mutable NSGradientMap nsgradient_cache_; | 244 mutable NSGradientMap nsgradient_cache_; |
| 240 #endif | 245 #endif |
| 241 | 246 |
| 242 ui::ResourceBundle& rb_; | 247 ui::ResourceBundle& rb_; |
| 243 Profile* profile_; | 248 Profile* profile_; |
| 244 | 249 |
| 245 scoped_refptr<CustomThemeSupplier> theme_supplier_; | 250 scoped_refptr<CustomThemeSupplier> theme_supplier_; |
| 246 | 251 |
| 252 // The id of the theme extension which has just been installed but has not |
| 253 // been loaded yet. The theme extension with |installed_pending_load_id_| may |
| 254 // never be loaded if the install is due to updating a disabled theme. |
| 255 // |pending_install_id_| should be set to |kDefaultThemeID| if there are no |
| 256 // recently installed theme extensions |
| 257 std::string installed_pending_load_id_; |
| 258 |
| 247 // The number of infobars currently displayed. | 259 // The number of infobars currently displayed. |
| 248 int number_of_infobars_; | 260 int number_of_infobars_; |
| 249 | 261 |
| 250 content::NotificationRegistrar registrar_; | 262 content::NotificationRegistrar registrar_; |
| 251 | 263 |
| 252 scoped_ptr<ThemeSyncableService> theme_syncable_service_; | 264 scoped_ptr<ThemeSyncableService> theme_syncable_service_; |
| 253 | 265 |
| 254 base::WeakPtrFactory<ThemeService> weak_ptr_factory_; | 266 base::WeakPtrFactory<ThemeService> weak_ptr_factory_; |
| 255 | 267 |
| 256 DISALLOW_COPY_AND_ASSIGN(ThemeService); | 268 DISALLOW_COPY_AND_ASSIGN(ThemeService); |
| 257 }; | 269 }; |
| 258 | 270 |
| 259 #endif // CHROME_BROWSER_THEMES_THEME_SERVICE_H_ | 271 #endif // CHROME_BROWSER_THEMES_THEME_SERVICE_H_ |
| OLD | NEW |