Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1736)

Side by Side Diff: chrome/browser/themes/theme_service.h

Issue 22755003: Reland: Chrome side work for allowing a user to revert to their previous theme without closing ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « chrome/browser/profile_resetter/profile_resetter_unittest.cc ('k') | chrome/browser/themes/theme_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698