summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authormirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 22:45:55 +0000
committermirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-14 22:45:55 +0000
commitf0510a846663dcfd2bc656b84e63fe70eaf39667 (patch)
tree7a793d32035b6e1c4ce24df35ebcf5402fd83f53 /chrome/browser
parent569c5fe15cd205eeecadb95216d8a86d73c8519e (diff)
downloadchromium_src-f0510a846663dcfd2bc656b84e63fe70eaf39667.zip
chromium_src-f0510a846663dcfd2bc656b84e63fe70eaf39667.tar.gz
chromium_src-f0510a846663dcfd2bc656b84e63fe70eaf39667.tar.bz2
Disable "Reset to Default Theme" button in Google Chrome Options / Personal Stuff when the default theme is already set.
This change is for the Mac OS; Windows change in a separate patch. BUG= http://crbug.com/18585 TEST= Install a default theme, note that button is disabled. Install a non-default theme, note that button is enabled. Rinse, repeat. Review URL: http://codereview.chromium.org/278004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29047 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/browser_theme_provider.cc7
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.h1
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm21
3 files changed, 27 insertions, 2 deletions
diff --git a/chrome/browser/browser_theme_provider.cc b/chrome/browser/browser_theme_provider.cc
index 85fcd15..44fb4d6 100644
--- a/chrome/browser/browser_theme_provider.cc
+++ b/chrome/browser/browser_theme_provider.cc
@@ -470,6 +470,13 @@ void BrowserThemeProvider::SetTheme(Extension* extension) {
extension->path());
SetColorData(extension->GetThemeColors());
SetTintData(extension->GetThemeTints());
+
+ // Drop out to default theme if the theme data is empty.
+ if (images_.empty() && colors_.empty() && tints_.empty()) {
+ UseDefaultTheme();
+ return;
+ }
+
SetDisplayPropertyData(extension->GetThemeDisplayProperties());
raw_data_.clear();
diff --git a/chrome/browser/cocoa/preferences_window_controller.h b/chrome/browser/cocoa/preferences_window_controller.h
index a69591c..11e013d 100644
--- a/chrome/browser/cocoa/preferences_window_controller.h
+++ b/chrome/browser/cocoa/preferences_window_controller.h
@@ -71,6 +71,7 @@ class Profile;
IBOutlet NSPathControl* downloadLocationControl_;
StringPrefMember defaultDownloadLocation_;
BooleanPrefMember askForSaveLocation_;
+ StringPrefMember currentTheme_;
}
// Designated initializer. |profile| should not be NULL.
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm
index 6227d09..48f4b9b 100644
--- a/chrome/browser/cocoa/preferences_window_controller.mm
+++ b/chrome/browser/cocoa/preferences_window_controller.mm
@@ -86,6 +86,7 @@ void RemoveAllButLastView(NSArray* views) {
- (void)setShowPageOptionsButtons:(BOOL)value;
- (void)setPasswordManagerEnabledIndex:(NSInteger)value;
- (void)setFormAutofillEnabledIndex:(NSInteger)value;
+- (void)setIsUsingDefaultTheme:(BOOL)value;
- (void)setShowAlternateErrorPages:(BOOL)value;
- (void)setUseSuggest:(BOOL)value;
- (void)setDnsPrefetch:(BOOL)value;
@@ -249,10 +250,11 @@ class PrefObserverBridge : public NotificationObserver {
observer_.get());
// TODO(pinkerton): Register Default search.
- // UserData panel
+ // Personal Stuff panel
askSavePasswords_.Init(prefs::kPasswordManagerEnabled,
prefs_, observer_.get());
formAutofill_.Init(prefs::kFormAutofillEnabled, prefs_, observer_.get());
+ currentTheme_.Init(prefs::kCurrentThemeID, prefs_, observer_.get());
// Under the hood panel
alternateErrorPages_.Init(prefs::kAlternateErrorPagesEnabled,
@@ -260,6 +262,7 @@ class PrefObserverBridge : public NotificationObserver {
useSuggest_.Init(prefs::kSearchSuggestEnabled, prefs_, observer_.get());
dnsPrefetch_.Init(prefs::kDnsPrefetchingEnabled, prefs_, observer_.get());
safeBrowsing_.Init(prefs::kSafeBrowsingEnabled, prefs_, observer_.get());
+
// During unit tests, there is no local state object, so we fall back to
// the prefs object (where we've explicitly registered this pref so we
// know it's there).
@@ -671,7 +674,7 @@ const int kDisabledIndex = 1;
// Callback when preferences are changed. |prefName| is the name of the pref
// that has changed. Unlike on Windows, we don't need to use this method for
// initializing, that's handled by Cocoa Bindings.
-// Handles prefs for the "Minor Tweaks" panel.
+// Handles prefs for the "Personal Stuff" panel.
- (void)userDataPrefChanged:(std::wstring*)prefName {
if (*prefName == prefs::kPasswordManagerEnabled) {
[self setPasswordManagerEnabledIndex:askSavePasswords_.GetValue() ?
@@ -681,6 +684,9 @@ const int kDisabledIndex = 1;
[self setFormAutofillEnabledIndex:formAutofill_.GetValue() ?
kEnabledIndex : kDisabledIndex];
}
+ if (*prefName == prefs::kCurrentThemeID) {
+ [self setIsUsingDefaultTheme:currentTheme_.GetValue().length() == 0];
+ }
}
// Called to launch the Keychain Access app to show the user's stored
@@ -755,6 +761,17 @@ const int kDisabledIndex = 1;
return formAutofill_.GetValue() ? kEnabledIndex : kDisabledIndex;
}
+- (void)setIsUsingDefaultTheme:(BOOL)value {
+ if (value)
+ [self recordUserAction:L"Options_IsUsingDefaultTheme_Enable"];
+ else
+ [self recordUserAction:L"Options_IsUsingDefaultTheme_Disable"];
+}
+
+- (BOOL)isUsingDefaultTheme {
+ return currentTheme_.GetValue().length() == 0;
+}
+
//-------------------------------------------------------------------------
// Under the hood panel