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

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

Issue 8533013: SessionRestore: Store session cookies and restore them if chrome crashes or auto-restarts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 } 160 }
161 161
162 FilePath GetCachePath(const FilePath& base) { 162 FilePath GetCachePath(const FilePath& base) {
163 return base.Append(chrome::kCacheDirname); 163 return base.Append(chrome::kCacheDirname);
164 } 164 }
165 165
166 FilePath GetMediaCachePath(const FilePath& base) { 166 FilePath GetMediaCachePath(const FilePath& base) {
167 return base.Append(chrome::kMediaCacheDirname); 167 return base.Append(chrome::kMediaCacheDirname);
168 } 168 }
169 169
170 void SaveSessionStateOnIOThread(
171 net::URLRequestContextGetter* url_request_context_getter) {
172 url_request_context_getter->GetURLRequestContext()->cookie_store()->
173 GetCookieMonster()->SaveSessionCookies();
174 }
175
176 void RestoreSessionStateOnIOThread(
177 net::URLRequestContextGetter* url_request_context_getter) {
178 url_request_context_getter->GetURLRequestContext()->cookie_store()->
179 GetCookieMonster()->RestoreOldSessionCookies();
180 }
181
182 void DiscardSessionStateOnIOThread(
183 net::URLRequestContextGetter* url_request_context_getter) {
184 url_request_context_getter->GetURLRequestContext()->cookie_store()->
185 GetCookieMonster()->DiscardOldSessionCookies();
186 }
187
170 } // namespace 188 } // namespace
171 189
172 // static 190 // static
173 Profile* Profile::CreateProfile(const FilePath& path) { 191 Profile* Profile::CreateProfile(const FilePath& path) {
174 if (!file_util::PathExists(path)) { 192 if (!file_util::PathExists(path)) {
175 // TODO(tc): http://b/1094718 Bad things happen if we can't write to the 193 // TODO(tc): http://b/1094718 Bad things happen if we can't write to the
176 // profile directory. We should eventually be able to run in this 194 // profile directory. We should eventually be able to run in this
177 // situation. 195 // situation.
178 if (!file_util::CreateDirectory(path)) 196 if (!file_util::CreateDirectory(path))
179 return NULL; 197 return NULL;
(...skipping 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 return GURL(chrome::kChromeUINewTabURL); 1562 return GURL(chrome::kChromeUINewTabURL);
1545 return home_page; 1563 return home_page;
1546 } 1564 }
1547 1565
1548 NetworkActionPredictor* ProfileImpl::GetNetworkActionPredictor() { 1566 NetworkActionPredictor* ProfileImpl::GetNetworkActionPredictor() {
1549 if (!network_action_predictor_.get()) 1567 if (!network_action_predictor_.get())
1550 network_action_predictor_.reset(new NetworkActionPredictor(this)); 1568 network_action_predictor_.reset(new NetworkActionPredictor(this));
1551 return network_action_predictor_.get(); 1569 return network_action_predictor_.get();
1552 } 1570 }
1553 1571
1572 void ProfileImpl::SaveSessionState() {
1573 BrowserThread::PostTask(
1574 BrowserThread::IO, FROM_HERE,
1575 base::Bind(&SaveSessionStateOnIOThread,
1576 make_scoped_refptr(GetRequestContext())));
1577 }
1578
1579 void ProfileImpl::RestoreSessionState() {
1580 BrowserThread::PostTask(
1581 BrowserThread::IO, FROM_HERE,
1582 base::Bind(&RestoreSessionStateOnIOThread,
1583 make_scoped_refptr(GetRequestContext())));
1584 }
1585
1586 void ProfileImpl::DiscardSessionState() {
1587 BrowserThread::PostTask(
1588 BrowserThread::IO, FROM_HERE,
1589 base::Bind(&DiscardSessionStateOnIOThread,
1590 make_scoped_refptr(GetRequestContext())));
1591 }
1592
1554 SpellCheckProfile* ProfileImpl::GetSpellCheckProfile() { 1593 SpellCheckProfile* ProfileImpl::GetSpellCheckProfile() {
1555 if (!spellcheck_profile_.get()) 1594 if (!spellcheck_profile_.get())
1556 spellcheck_profile_.reset(new SpellCheckProfile(path_)); 1595 spellcheck_profile_.reset(new SpellCheckProfile(path_));
1557 return spellcheck_profile_.get(); 1596 return spellcheck_profile_.get();
1558 } 1597 }
1559 1598
1560 void ProfileImpl::UpdateProfileUserNameCache() { 1599 void ProfileImpl::UpdateProfileUserNameCache() {
1561 ProfileManager* profile_manager = g_browser_process->profile_manager(); 1600 ProfileManager* profile_manager = g_browser_process->profile_manager();
1562 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); 1601 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache();
1563 size_t index = cache.GetIndexOfProfileWithPath(GetPath()); 1602 size_t index = cache.GetIndexOfProfileWithPath(GetPath());
(...skipping 13 matching lines...) Expand all
1577 FilePath* cache_path, 1616 FilePath* cache_path,
1578 int* max_size) { 1617 int* max_size) {
1579 DCHECK(cache_path); 1618 DCHECK(cache_path);
1580 DCHECK(max_size); 1619 DCHECK(max_size);
1581 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); 1620 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir));
1582 if (!path.empty()) 1621 if (!path.empty())
1583 *cache_path = path; 1622 *cache_path = path;
1584 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : 1623 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) :
1585 prefs_->GetInteger(prefs::kDiskCacheSize); 1624 prefs_->GetInteger(prefs::kDiskCacheSize);
1586 } 1625 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698