diff options
Diffstat (limited to 'chrome/browser/profile.cc')
-rw-r--r-- | chrome/browser/profile.cc | 20 |
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(); |