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

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

Issue 9965012: Honor session content settings even if "continue where I left off" is selected. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Only honor the "clear on exit", not session-only cookies. Created 8 years, 8 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 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 553
554 void ProfileImpl::set_last_selected_directory(const FilePath& path) { 554 void ProfileImpl::set_last_selected_directory(const FilePath& path) {
555 GetPrefs()->SetFilePath(prefs::kSelectFileLastDirectory, path); 555 GetPrefs()->SetFilePath(prefs::kSelectFileLastDirectory, path);
556 } 556 }
557 557
558 ProfileImpl::~ProfileImpl() { 558 ProfileImpl::~ProfileImpl() {
559 content::NotificationService::current()->Notify( 559 content::NotificationService::current()->Notify(
560 chrome::NOTIFICATION_PROFILE_DESTROYED, 560 chrome::NOTIFICATION_PROFILE_DESTROYED,
561 content::Source<Profile>(this), 561 content::Source<Profile>(this),
562 content::NotificationService::NoDetails()); 562 content::NotificationService::NoDetails());
563 // Save the session state if we're going to restore the session during the
564 // next startup.
565 SessionStartupPref pref = SessionStartupPref::GetStartupPref(this); 563 SessionStartupPref pref = SessionStartupPref::GetStartupPref(this);
566 if (pref.type == SessionStartupPref::LAST) { 564 // Honor the "clear local state" setting. If it's not set, keep the session
567 if (session_restore_enabled_) 565 // data if we're going to continue the session upon startup.
568 BrowserContext::SaveSessionState(this); 566 if (clear_local_state_on_exit_)
569 } else if (clear_local_state_on_exit_) {
570 BrowserContext::ClearLocalOnDestruction(this); 567 BrowserContext::ClearLocalOnDestruction(this);
571 } 568 else if (session_restore_enabled_ && pref.type == SessionStartupPref::LAST)
569 BrowserContext::SaveSessionState(this);
572 570
573 StopCreateSessionServiceTimer(); 571 StopCreateSessionServiceTimer();
574 572
575 // Remove pref observers 573 // Remove pref observers
576 pref_change_registrar_.RemoveAll(); 574 pref_change_registrar_.RemoveAll();
577 575
578 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext( 576 ChromePluginServiceFilter::GetInstance()->UnregisterResourceContext(
579 io_data_.GetResourceContextNoInit()); 577 io_data_.GetResourceContextNoInit());
580 578
581 if (io_data_.HasMainRequestContext() && 579 if (io_data_.HasMainRequestContext() &&
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after
1346 FilePath* cache_path, 1344 FilePath* cache_path,
1347 int* max_size) { 1345 int* max_size) {
1348 DCHECK(cache_path); 1346 DCHECK(cache_path);
1349 DCHECK(max_size); 1347 DCHECK(max_size);
1350 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); 1348 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir));
1351 if (!path.empty()) 1349 if (!path.empty())
1352 *cache_path = path; 1350 *cache_path = path;
1353 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : 1351 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) :
1354 prefs_->GetInteger(prefs::kDiskCacheSize); 1352 prefs_->GetInteger(prefs::kDiskCacheSize);
1355 } 1353 }
OLDNEW
« no previous file with comments | « chrome/browser/chrome_content_browser_client.cc ('k') | chrome/browser/profiles/profile_io_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698