Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(883)

Side by Side Diff: chrome/browser/profiles/profile_impl.cc

Issue 10447117: Unwire the clear on exit preference from the storage systems. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/profiles/profile_impl.h" 5 #include "chrome/browser/profiles/profile_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/environment.h" 10 #include "base/environment.h"
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 } 192 }
193 193
194 // static 194 // static
195 int ProfileImpl::create_readme_delay_ms = 60000; 195 int ProfileImpl::create_readme_delay_ms = 60000;
196 196
197 // static 197 // static
198 void ProfileImpl::RegisterUserPrefs(PrefService* prefs) { 198 void ProfileImpl::RegisterUserPrefs(PrefService* prefs) {
199 prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, 199 prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled,
200 false, 200 false,
201 PrefService::UNSYNCABLE_PREF); 201 PrefService::UNSYNCABLE_PREF);
202 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit,
203 false,
204 PrefService::SYNCABLE_PREF);
205 prefs->RegisterBooleanPref(prefs::kProfileShortcutCreated, 202 prefs->RegisterBooleanPref(prefs::kProfileShortcutCreated,
206 false, 203 false,
207 PrefService::UNSYNCABLE_PREF); 204 PrefService::UNSYNCABLE_PREF);
208 prefs->RegisterIntegerPref(prefs::kProfileAvatarIndex, 205 prefs->RegisterIntegerPref(prefs::kProfileAvatarIndex,
209 -1, 206 -1,
210 PrefService::SYNCABLE_PREF); 207 PrefService::SYNCABLE_PREF);
211 prefs->RegisterStringPref(prefs::kProfileName, 208 prefs->RegisterStringPref(prefs::kProfileName,
212 "", 209 "",
213 PrefService::SYNCABLE_PREF); 210 PrefService::SYNCABLE_PREF);
214 prefs->RegisterBooleanPref(prefs::kRestoreSessionStateDialogShown, 211 prefs->RegisterBooleanPref(prefs::kRestoreSessionStateDialogShown,
215 false, 212 false,
216 PrefService::SYNCABLE_PREF); 213 PrefService::SYNCABLE_PREF);
214
215 // Deprecated. Kept around for migration.
216 prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit,
217 false,
218 PrefService::SYNCABLE_PREF);
217 } 219 }
218 220
219 ProfileImpl::ProfileImpl(const FilePath& path, 221 ProfileImpl::ProfileImpl(const FilePath& path,
220 Delegate* delegate, 222 Delegate* delegate,
221 CreateMode create_mode) 223 CreateMode create_mode)
222 : path_(path), 224 : path_(path),
223 ALLOW_THIS_IN_INITIALIZER_LIST(visited_link_event_listener_( 225 ALLOW_THIS_IN_INITIALIZER_LIST(visited_link_event_listener_(
224 new VisitedLinkEventListener(this))), 226 new VisitedLinkEventListener(this))),
225 ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)), 227 ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)),
226 host_content_settings_map_(NULL), 228 host_content_settings_map_(NULL),
227 history_service_created_(false), 229 history_service_created_(false),
228 favicon_service_created_(false), 230 favicon_service_created_(false),
229 clear_local_state_on_exit_(false),
230 start_time_(Time::Now()), 231 start_time_(Time::Now()),
231 delegate_(delegate), 232 delegate_(delegate),
232 predictor_(NULL), 233 predictor_(NULL),
233 session_restore_enabled_(false) { 234 session_restore_enabled_(false) {
234 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << 235 DCHECK(!path.empty()) << "Using an empty path will attempt to write " <<
235 "profile files to the root directory!"; 236 "profile files to the root directory!";
236 237
237 #if defined(ENABLE_SESSION_SERVICE) 238 #if defined(ENABLE_SESSION_SERVICE)
238 create_session_service_timer_.Start(FROM_HERE, 239 create_session_service_timer_.Start(FROM_HERE,
239 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, 240 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this,
(...skipping 29 matching lines...) Expand all
269 OnPrefsLoaded(true); 270 OnPrefsLoaded(true);
270 } else { 271 } else {
271 NOTREACHED(); 272 NOTREACHED();
272 } 273 }
273 } 274 }
274 275
275 void ProfileImpl::DoFinalInit(bool is_new_profile) { 276 void ProfileImpl::DoFinalInit(bool is_new_profile) {
276 PrefService* prefs = GetPrefs(); 277 PrefService* prefs = GetPrefs();
277 pref_change_registrar_.Init(prefs); 278 pref_change_registrar_.Init(prefs);
278 pref_change_registrar_.Add(prefs::kSpeechRecognitionFilterProfanities, this); 279 pref_change_registrar_.Add(prefs::kSpeechRecognitionFilterProfanities, this);
279 pref_change_registrar_.Add(prefs::kClearSiteDataOnExit, this);
280 pref_change_registrar_.Add(prefs::kGoogleServicesUsername, this); 280 pref_change_registrar_.Add(prefs::kGoogleServicesUsername, this);
281 pref_change_registrar_.Add(prefs::kDefaultZoomLevel, this); 281 pref_change_registrar_.Add(prefs::kDefaultZoomLevel, this);
282 pref_change_registrar_.Add(prefs::kProfileAvatarIndex, this); 282 pref_change_registrar_.Add(prefs::kProfileAvatarIndex, this);
283 pref_change_registrar_.Add(prefs::kProfileName, this); 283 pref_change_registrar_.Add(prefs::kProfileName, this);
284 284
285 // It would be nice to use PathService for fetching this directory, but 285 // It would be nice to use PathService for fetching this directory, but
286 // the cache directory depends on the profile directory, which isn't available 286 // the cache directory depends on the profile directory, which isn't available
287 // to PathService. 287 // to PathService.
288 chrome::GetUserCacheDirectory(path_, &base_cache_path_); 288 chrome::GetUserCacheDirectory(path_, &base_cache_path_);
289 // Always create the cache directory asynchronously. 289 // Always create the cache directory asynchronously.
(...skipping 28 matching lines...) Expand all
318 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kKeepAliveForTest)) 318 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kKeepAliveForTest))
319 init_background_mode_manager = false; 319 init_background_mode_manager = false;
320 #endif 320 #endif
321 if (init_background_mode_manager) { 321 if (init_background_mode_manager) {
322 if (g_browser_process->background_mode_manager()) 322 if (g_browser_process->background_mode_manager())
323 g_browser_process->background_mode_manager()->RegisterProfile(this); 323 g_browser_process->background_mode_manager()->RegisterProfile(this);
324 } 324 }
325 325
326 InitRegisteredProtocolHandlers(); 326 InitRegisteredProtocolHandlers();
327 327
328 clear_local_state_on_exit_ = prefs->GetBoolean(prefs::kClearSiteDataOnExit);
329 if (clear_local_state_on_exit_) {
330 content::RecordAction(
331 UserMetricsAction("ClearSiteDataOnExitEnabled"));
332 } else {
333 content::RecordAction(
334 UserMetricsAction("ClearSiteDataOnExitDisabled"));
335 }
336
337 InstantController::RecordMetrics(this); 328 InstantController::RecordMetrics(this);
338 329
339 FilePath cookie_path = GetPath(); 330 FilePath cookie_path = GetPath();
340 cookie_path = cookie_path.Append(chrome::kCookieFilename); 331 cookie_path = cookie_path.Append(chrome::kCookieFilename);
341 FilePath server_bound_cert_path = GetPath(); 332 FilePath server_bound_cert_path = GetPath();
342 server_bound_cert_path = 333 server_bound_cert_path =
343 server_bound_cert_path.Append(chrome::kOBCertFilename); 334 server_bound_cert_path.Append(chrome::kOBCertFilename);
344 FilePath cache_path = base_cache_path_; 335 FilePath cache_path = base_cache_path_;
345 int cache_max_size; 336 int cache_max_size;
346 GetCacheParameters(false, &cache_path, &cache_max_size); 337 GetCacheParameters(false, &cache_path, &cache_max_size);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 GetPrefs()->SetFilePath(prefs::kSelectFileLastDirectory, path); 464 GetPrefs()->SetFilePath(prefs::kSelectFileLastDirectory, path);
474 } 465 }
475 466
476 ProfileImpl::~ProfileImpl() { 467 ProfileImpl::~ProfileImpl() {
477 content::NotificationService::current()->Notify( 468 content::NotificationService::current()->Notify(
478 chrome::NOTIFICATION_PROFILE_DESTROYED, 469 chrome::NOTIFICATION_PROFILE_DESTROYED,
479 content::Source<Profile>(this), 470 content::Source<Profile>(this),
480 content::NotificationService::NoDetails()); 471 content::NotificationService::NoDetails());
481 bool prefs_loaded = prefs_->GetInitializationStatus() != 472 bool prefs_loaded = prefs_->GetInitializationStatus() !=
482 PrefService::INITIALIZATION_STATUS_WAITING; 473 PrefService::INITIALIZATION_STATUS_WAITING;
483 // Honor the "clear local state" setting.
484 if (clear_local_state_on_exit_)
485 BrowserContext::ClearLocalOnDestruction(this);
486 474
487 #if defined(ENABLE_SESSION_SERVICE) 475 #if defined(ENABLE_SESSION_SERVICE)
488 StopCreateSessionServiceTimer(); 476 StopCreateSessionServiceTimer();
489 #endif 477 #endif
490 478
491 // Remove pref observers 479 // Remove pref observers
492 pref_change_registrar_.RemoveAll(); 480 pref_change_registrar_.RemoveAll();
493 481
494 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext( 482 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext(
495 io_data_.GetResourceContextNoInit()); 483 io_data_.GetResourceContextNoInit());
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 std::string* pref_name_in = content::Details<std::string>(details).ptr(); 891 std::string* pref_name_in = content::Details<std::string>(details).ptr();
904 PrefService* prefs = content::Source<PrefService>(source).ptr(); 892 PrefService* prefs = content::Source<PrefService>(source).ptr();
905 DCHECK(pref_name_in && prefs); 893 DCHECK(pref_name_in && prefs);
906 if (*pref_name_in == prefs::kSpeechRecognitionFilterProfanities) { 894 if (*pref_name_in == prefs::kSpeechRecognitionFilterProfanities) {
907 content::SpeechRecognitionPreferences* speech_prefs = 895 content::SpeechRecognitionPreferences* speech_prefs =
908 GetSpeechRecognitionPreferences(); 896 GetSpeechRecognitionPreferences();
909 if (speech_prefs) { 897 if (speech_prefs) {
910 speech_prefs->SetFilterProfanities(prefs->GetBoolean( 898 speech_prefs->SetFilterProfanities(prefs->GetBoolean(
911 prefs::kSpeechRecognitionFilterProfanities)); 899 prefs::kSpeechRecognitionFilterProfanities));
912 } 900 }
913 } else if (*pref_name_in == prefs::kClearSiteDataOnExit) {
914 clear_local_state_on_exit_ =
915 prefs->GetBoolean(prefs::kClearSiteDataOnExit);
916 } else if (*pref_name_in == prefs::kGoogleServicesUsername) { 901 } else if (*pref_name_in == prefs::kGoogleServicesUsername) {
917 UpdateProfileUserNameCache(); 902 UpdateProfileUserNameCache();
918 } else if (*pref_name_in == prefs::kProfileAvatarIndex) { 903 } else if (*pref_name_in == prefs::kProfileAvatarIndex) {
919 UpdateProfileAvatarCache(); 904 UpdateProfileAvatarCache();
920 } else if (*pref_name_in == prefs::kProfileName) { 905 } else if (*pref_name_in == prefs::kProfileName) {
921 UpdateProfileNameCache(); 906 UpdateProfileNameCache();
922 } else if (*pref_name_in == prefs::kDefaultZoomLevel) { 907 } else if (*pref_name_in == prefs::kDefaultZoomLevel) {
923 HostZoomMap::GetForBrowserContext(this)->SetDefaultZoomLevel( 908 HostZoomMap::GetForBrowserContext(this)->SetDefaultZoomLevel(
924 prefs->GetDouble(prefs::kDefaultZoomLevel)); 909 prefs->GetDouble(prefs::kDefaultZoomLevel));
925 } 910 }
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 if (!path.empty()) 1132 if (!path.empty())
1148 *cache_path = path; 1133 *cache_path = path;
1149 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : 1134 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) :
1150 prefs_->GetInteger(prefs::kDiskCacheSize); 1135 prefs_->GetInteger(prefs::kDiskCacheSize);
1151 } 1136 }
1152 1137
1153 base::Callback<ChromeURLDataManagerBackend*(void)> 1138 base::Callback<ChromeURLDataManagerBackend*(void)>
1154 ProfileImpl::GetChromeURLDataManagerBackendGetter() const { 1139 ProfileImpl::GetChromeURLDataManagerBackendGetter() const {
1155 return io_data_.GetChromeURLDataManagerBackendGetter(); 1140 return io_data_.GetChromeURLDataManagerBackendGetter();
1156 } 1141 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698