Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/profile.h" | 5 #include "chrome/browser/profile.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/file_path.h" | 8 #include "base/file_path.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 38 #include "chrome/common/chrome_paths.h" | 38 #include "chrome/common/chrome_paths.h" |
| 39 #include "chrome/common/chrome_switches.h" | 39 #include "chrome/common/chrome_switches.h" |
| 40 #include "chrome/common/extensions/extension_error_reporter.h" | 40 #include "chrome/common/extensions/extension_error_reporter.h" |
| 41 #include "chrome/common/net/cookie_monster_sqlite.h" | 41 #include "chrome/common/net/cookie_monster_sqlite.h" |
| 42 #include "chrome/common/notification_service.h" | 42 #include "chrome/common/notification_service.h" |
| 43 #include "chrome/common/pref_names.h" | 43 #include "chrome/common/pref_names.h" |
| 44 #include "chrome/common/render_messages.h" | 44 #include "chrome/common/render_messages.h" |
| 45 #include "grit/locale_settings.h" | 45 #include "grit/locale_settings.h" |
| 46 #include "net/base/force_tls_state.h" | 46 #include "net/base/force_tls_state.h" |
| 47 | 47 |
| 48 #if defined(OS_LINUX) | |
| 49 #include "chrome/browser/gtk/gtk_theme_provider.h" | |
| 50 #endif | |
| 51 | |
| 48 using base::Time; | 52 using base::Time; |
| 49 using base::TimeDelta; | 53 using base::TimeDelta; |
| 50 | 54 |
| 51 namespace { | 55 namespace { |
| 52 | 56 |
| 53 // Delay, in milliseconds, before we explicitly create the SessionService. | 57 // Delay, in milliseconds, before we explicitly create the SessionService. |
| 54 static const int kCreateSessionServiceDelayMS = 500; | 58 static const int kCreateSessionServiceDelayMS = 500; |
| 55 | 59 |
| 56 enum ContextType { | 60 enum ContextType { |
| 57 kNormalContext, | 61 kNormalContext, |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 109 void Profile::RegisterUserPrefs(PrefService* prefs) { | 113 void Profile::RegisterUserPrefs(PrefService* prefs) { |
| 110 prefs->RegisterBooleanPref(prefs::kSearchSuggestEnabled, true); | 114 prefs->RegisterBooleanPref(prefs::kSearchSuggestEnabled, true); |
| 111 prefs->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); | 115 prefs->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); |
| 112 prefs->RegisterBooleanPref(prefs::kSafeBrowsingEnabled, true); | 116 prefs->RegisterBooleanPref(prefs::kSafeBrowsingEnabled, true); |
| 113 // TODO(estade): IDS_SPELLCHECK_DICTIONARY should be an ASCII string. | 117 // TODO(estade): IDS_SPELLCHECK_DICTIONARY should be an ASCII string. |
| 114 prefs->RegisterLocalizedStringPref(prefs::kSpellCheckDictionary, | 118 prefs->RegisterLocalizedStringPref(prefs::kSpellCheckDictionary, |
| 115 IDS_SPELLCHECK_DICTIONARY); | 119 IDS_SPELLCHECK_DICTIONARY); |
| 116 prefs->RegisterBooleanPref(prefs::kEnableSpellCheck, true); | 120 prefs->RegisterBooleanPref(prefs::kEnableSpellCheck, true); |
| 117 prefs->RegisterBooleanPref(prefs::kEnableAutoSpellCorrect, true); | 121 prefs->RegisterBooleanPref(prefs::kEnableAutoSpellCorrect, true); |
| 118 prefs->RegisterBooleanPref(prefs::kEnableUserScripts, false); | 122 prefs->RegisterBooleanPref(prefs::kEnableUserScripts, false); |
| 123 #if defined(OS_LINUX) | |
| 124 prefs->RegisterBooleanPref(prefs::kUsesSystemTheme, false); | |
| 125 #endif | |
| 119 prefs->RegisterStringPref(prefs::kCurrentThemeID, L""); | 126 prefs->RegisterStringPref(prefs::kCurrentThemeID, L""); |
| 120 prefs->RegisterDictionaryPref(prefs::kCurrentThemeImages); | 127 prefs->RegisterDictionaryPref(prefs::kCurrentThemeImages); |
| 121 prefs->RegisterDictionaryPref(prefs::kCurrentThemeColors); | 128 prefs->RegisterDictionaryPref(prefs::kCurrentThemeColors); |
| 122 prefs->RegisterDictionaryPref(prefs::kCurrentThemeTints); | 129 prefs->RegisterDictionaryPref(prefs::kCurrentThemeTints); |
| 123 prefs->RegisterDictionaryPref(prefs::kCurrentThemeDisplayProperties); | 130 prefs->RegisterDictionaryPref(prefs::kCurrentThemeDisplayProperties); |
| 124 prefs->RegisterBooleanPref(prefs::kEnableExtensions, false); | 131 prefs->RegisterBooleanPref(prefs::kEnableExtensions, false); |
| 125 } | 132 } |
| 126 | 133 |
| 127 // static | 134 // static |
| 128 Profile* Profile::CreateProfile(const FilePath& path) { | 135 Profile* Profile::CreateProfile(const FilePath& path) { |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 280 } | 287 } |
| 281 | 288 |
| 282 virtual void InitThemes() { | 289 virtual void InitThemes() { |
| 283 GetOriginalProfile()->InitThemes(); | 290 GetOriginalProfile()->InitThemes(); |
| 284 } | 291 } |
| 285 | 292 |
| 286 virtual void SetTheme(Extension* extension) { | 293 virtual void SetTheme(Extension* extension) { |
| 287 GetOriginalProfile()->SetTheme(extension); | 294 GetOriginalProfile()->SetTheme(extension); |
| 288 } | 295 } |
| 289 | 296 |
| 297 virtual void SetNativeTheme() { | |
| 298 GetOriginalProfile()->SetNativeTheme(); | |
| 299 } | |
| 300 | |
| 290 virtual void ClearTheme() { | 301 virtual void ClearTheme() { |
| 291 GetOriginalProfile()->ClearTheme(); | 302 GetOriginalProfile()->ClearTheme(); |
| 292 } | 303 } |
| 293 | 304 |
| 294 virtual ThemeProvider* GetThemeProvider() { | 305 virtual ThemeProvider* GetThemeProvider() { |
| 295 return GetOriginalProfile()->GetThemeProvider(); | 306 return GetOriginalProfile()->GetThemeProvider(); |
| 296 } | 307 } |
| 297 | 308 |
| 298 virtual URLRequestContext* GetRequestContext() { | 309 virtual URLRequestContext* GetRequestContext() { |
| 299 return request_context_; | 310 return request_context_; |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 915 } | 926 } |
| 916 return download_manager_.get(); | 927 return download_manager_.get(); |
| 917 } | 928 } |
| 918 | 929 |
| 919 bool ProfileImpl::HasCreatedDownloadManager() const { | 930 bool ProfileImpl::HasCreatedDownloadManager() const { |
| 920 return created_download_manager_; | 931 return created_download_manager_; |
| 921 } | 932 } |
| 922 | 933 |
| 923 void ProfileImpl::InitThemes() { | 934 void ProfileImpl::InitThemes() { |
| 924 if (!created_theme_provider_) { | 935 if (!created_theme_provider_) { |
| 936 #if defined(OS_LINUX) | |
| 937 scoped_refptr<BrowserThemeProvider> themes(new GtkThemeProvider); | |
|
tony
2009/07/07 19:47:05
Nit: Maybe make a static ::Create method to avoid
| |
| 938 #else | |
| 925 scoped_refptr<BrowserThemeProvider> themes(new BrowserThemeProvider); | 939 scoped_refptr<BrowserThemeProvider> themes(new BrowserThemeProvider); |
| 940 #endif | |
| 926 themes->Init(this); | 941 themes->Init(this); |
| 927 created_theme_provider_ = true; | 942 created_theme_provider_ = true; |
| 928 theme_provider_.swap(themes); | 943 theme_provider_.swap(themes); |
| 929 } | 944 } |
| 930 } | 945 } |
| 931 | 946 |
| 932 void ProfileImpl::SetTheme(Extension* extension) { | 947 void ProfileImpl::SetTheme(Extension* extension) { |
| 933 InitThemes(); | 948 InitThemes(); |
| 934 theme_provider_.get()->SetTheme(extension); | 949 theme_provider_.get()->SetTheme(extension); |
| 935 } | 950 } |
| 936 | 951 |
| 952 void ProfileImpl::SetNativeTheme() { | |
| 953 InitThemes(); | |
| 954 theme_provider_.get()->SetNativeTheme(); | |
| 955 } | |
| 956 | |
| 937 void ProfileImpl::ClearTheme() { | 957 void ProfileImpl::ClearTheme() { |
| 938 InitThemes(); | 958 InitThemes(); |
| 939 theme_provider_.get()->UseDefaultTheme(); | 959 theme_provider_.get()->UseDefaultTheme(); |
| 940 } | 960 } |
| 941 | 961 |
| 942 ThemeProvider* ProfileImpl::GetThemeProvider() { | 962 ThemeProvider* ProfileImpl::GetThemeProvider() { |
| 943 InitThemes(); | 963 InitThemes(); |
| 944 return theme_provider_.get(); | 964 return theme_provider_.get(); |
| 945 } | 965 } |
| 946 | 966 |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1154 | 1174 |
| 1155 void ProfileImpl::StopCreateSessionServiceTimer() { | 1175 void ProfileImpl::StopCreateSessionServiceTimer() { |
| 1156 create_session_service_timer_.Stop(); | 1176 create_session_service_timer_.Stop(); |
| 1157 } | 1177 } |
| 1158 | 1178 |
| 1159 #ifdef CHROME_PERSONALIZATION | 1179 #ifdef CHROME_PERSONALIZATION |
| 1160 ProfilePersonalization* ProfileImpl::GetProfilePersonalization() { | 1180 ProfilePersonalization* ProfileImpl::GetProfilePersonalization() { |
| 1161 return personalization_.get(); | 1181 return personalization_.get(); |
| 1162 } | 1182 } |
| 1163 #endif | 1183 #endif |
| OLD | NEW |