Chromium Code Reviews| Index: chrome/browser/profile.cc |
| diff --git a/chrome/browser/profile.cc b/chrome/browser/profile.cc |
| index 5d0ccecec2d9ff4fea4edf8158365baf0cfb9c6b..0034792cd2c684137000baf7546a5e06e5c5c6aa 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); |
|
tony
2009/07/07 19:47:05
Nit: Maybe make a static ::Create method to avoid
|
| +#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(); |