summaryrefslogtreecommitdiffstats
path: root/chrome/browser/profile.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/profile.cc')
-rw-r--r--chrome/browser/profile.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/chrome/browser/profile.cc b/chrome/browser/profile.cc
index 5d0ccec..0034792 100644
--- a/chrome/browser/profile.cc
+++ b/chrome/browser/profile.cc
@@ -45,6 +45,10 @@
#include "grit/locale_settings.h"
#include "net/base/force_tls_state.h"
+#if defined(OS_LINUX)
+#include "chrome/browser/gtk/gtk_theme_provider.h"
+#endif
+
using base::Time;
using base::TimeDelta;
@@ -116,6 +120,9 @@ void Profile::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterBooleanPref(prefs::kEnableSpellCheck, true);
prefs->RegisterBooleanPref(prefs::kEnableAutoSpellCorrect, true);
prefs->RegisterBooleanPref(prefs::kEnableUserScripts, false);
+#if defined(OS_LINUX)
+ prefs->RegisterBooleanPref(prefs::kUsesSystemTheme, false);
+#endif
prefs->RegisterStringPref(prefs::kCurrentThemeID, L"");
prefs->RegisterDictionaryPref(prefs::kCurrentThemeImages);
prefs->RegisterDictionaryPref(prefs::kCurrentThemeColors);
@@ -287,6 +294,10 @@ class OffTheRecordProfileImpl : public Profile,
GetOriginalProfile()->SetTheme(extension);
}
+ virtual void SetNativeTheme() {
+ GetOriginalProfile()->SetNativeTheme();
+ }
+
virtual void ClearTheme() {
GetOriginalProfile()->ClearTheme();
}
@@ -922,7 +933,11 @@ bool ProfileImpl::HasCreatedDownloadManager() const {
void ProfileImpl::InitThemes() {
if (!created_theme_provider_) {
+#if defined(OS_LINUX)
+ scoped_refptr<BrowserThemeProvider> themes(new GtkThemeProvider);
+#else
scoped_refptr<BrowserThemeProvider> themes(new BrowserThemeProvider);
+#endif
themes->Init(this);
created_theme_provider_ = true;
theme_provider_.swap(themes);
@@ -934,6 +949,11 @@ void ProfileImpl::SetTheme(Extension* extension) {
theme_provider_.get()->SetTheme(extension);
}
+void ProfileImpl::SetNativeTheme() {
+ InitThemes();
+ theme_provider_.get()->SetNativeTheme();
+}
+
void ProfileImpl::ClearTheme() {
InitThemes();
theme_provider_.get()->UseDefaultTheme();