Index: chrome/browser/ui/gtk/gtk_theme_service.cc |
diff --git a/chrome/browser/ui/gtk/gtk_theme_service.cc b/chrome/browser/ui/gtk/gtk_theme_service.cc |
index 76befd6661be937399eacb7a37ab859e3e59f917..97e0ec59387c5c3d8a00783667c0eabef9361289 100644 |
--- a/chrome/browser/ui/gtk/gtk_theme_service.cc |
+++ b/chrome/browser/ui/gtk/gtk_theme_service.cc |
@@ -17,6 +17,7 @@ |
#include "base/stl_util.h" |
#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/themes/custom_theme_supplier.h" |
#include "chrome/browser/themes/theme_properties.h" |
#include "chrome/browser/themes/theme_service_factory.h" |
#include "chrome/browser/ui/browser.h" |
@@ -347,6 +348,7 @@ void GtkThemeService::InitThemesFor(content::NotificationObserver* observer) { |
void GtkThemeService::SetTheme(const extensions::Extension* extension) { |
profile()->GetPrefs()->SetBoolean(prefs::kUsesSystemTheme, false); |
+ use_gtk_ = false; |
LoadDefaultValues(); |
ThemeService::SetTheme(extension); |
} |
@@ -370,6 +372,14 @@ bool GtkThemeService::UsingDefaultTheme() const { |
return !use_gtk_ && ThemeService::UsingDefaultTheme(); |
} |
+void GtkThemeService::SetCustomDefaultTheme( |
+ scoped_refptr<CustomThemeSupplier> theme_supplier) { |
+ profile()->GetPrefs()->SetBoolean(prefs::kUsesSystemTheme, false); |
+ use_gtk_ = false; |
+ LoadDefaultValues(); |
+ ThemeService::SetCustomDefaultTheme(theme_supplier); |
+} |
+ |
bool GtkThemeService::ShouldInitWithNativeTheme() const { |
return profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme); |
} |