| OLD | NEW |
| 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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 | 162 |
| 163 FilePath GetCachePath(const FilePath& base) { | 163 FilePath GetCachePath(const FilePath& base) { |
| 164 return base.Append(chrome::kCacheDirname); | 164 return base.Append(chrome::kCacheDirname); |
| 165 } | 165 } |
| 166 | 166 |
| 167 FilePath GetMediaCachePath(const FilePath& base) { | 167 FilePath GetMediaCachePath(const FilePath& base) { |
| 168 return base.Append(chrome::kMediaCacheDirname); | 168 return base.Append(chrome::kMediaCacheDirname); |
| 169 } | 169 } |
| 170 | 170 |
| 171 void SaveSessionStateOnIOThread( | 171 void SaveSessionStateOnIOThread( |
| 172 net::URLRequestContextGetter* url_request_context_getter) { | 172 net::URLRequestContextGetter* url_request_context_getter, |
| 173 ChromeAppCacheService* appcache_service) { |
| 173 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 174 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 174 url_request_context_getter->GetURLRequestContext()->cookie_store()-> | 175 url_request_context_getter->GetURLRequestContext()->cookie_store()-> |
| 175 GetCookieMonster()->SaveSessionCookies(); | 176 GetCookieMonster()->SaveSessionCookies(); |
| 177 if (appcache_service) |
| 178 appcache_service->set_save_session_state(true); |
| 176 } | 179 } |
| 177 | 180 |
| 178 } // namespace | 181 } // namespace |
| 179 | 182 |
| 180 // static | 183 // static |
| 181 Profile* Profile::CreateProfile(const FilePath& path) { | 184 Profile* Profile::CreateProfile(const FilePath& path) { |
| 182 if (!file_util::PathExists(path)) { | 185 if (!file_util::PathExists(path)) { |
| 183 // TODO(tc): http://b/1094718 Bad things happen if we can't write to the | 186 // TODO(tc): http://b/1094718 Bad things happen if we can't write to the |
| 184 // profile directory. We should eventually be able to run in this | 187 // profile directory. We should eventually be able to run in this |
| 185 // situation. | 188 // situation. |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 content::Source<Profile>(this), | 507 content::Source<Profile>(this), |
| 505 content::NotificationService::NoDetails()); | 508 content::NotificationService::NoDetails()); |
| 506 | 509 |
| 507 if (appcache_service_ && clear_local_state_on_exit_) { | 510 if (appcache_service_ && clear_local_state_on_exit_) { |
| 508 BrowserThread::PostTask( | 511 BrowserThread::PostTask( |
| 509 BrowserThread::IO, FROM_HERE, | 512 BrowserThread::IO, FROM_HERE, |
| 510 base::Bind(&appcache::AppCacheService::set_clear_local_state_on_exit, | 513 base::Bind(&appcache::AppCacheService::set_clear_local_state_on_exit, |
| 511 appcache_service_.get(), true)); | 514 appcache_service_.get(), true)); |
| 512 } | 515 } |
| 513 | 516 |
| 514 if (webkit_context_.get()) | |
| 515 webkit_context_->DeleteSessionOnlyData(); | |
| 516 | |
| 517 StopCreateSessionServiceTimer(); | 517 StopCreateSessionServiceTimer(); |
| 518 | 518 |
| 519 // Remove pref observers | 519 // Remove pref observers |
| 520 pref_change_registrar_.RemoveAll(); | 520 pref_change_registrar_.RemoveAll(); |
| 521 | 521 |
| 522 // The sync service needs to be deleted before the services it calls. | 522 // The sync service needs to be deleted before the services it calls. |
| 523 // TODO(stevet): Make ProfileSyncService into a PKS and let the PDM take care | 523 // TODO(stevet): Make ProfileSyncService into a PKS and let the PDM take care |
| 524 // of the cleanup below. | 524 // of the cleanup below. |
| 525 sync_service_.reset(); | 525 sync_service_.reset(); |
| 526 | 526 |
| (...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1577 | 1577 |
| 1578 NetworkActionPredictor* ProfileImpl::GetNetworkActionPredictor() { | 1578 NetworkActionPredictor* ProfileImpl::GetNetworkActionPredictor() { |
| 1579 if (!network_action_predictor_.get()) | 1579 if (!network_action_predictor_.get()) |
| 1580 network_action_predictor_.reset(new NetworkActionPredictor(this)); | 1580 network_action_predictor_.reset(new NetworkActionPredictor(this)); |
| 1581 return network_action_predictor_.get(); | 1581 return network_action_predictor_.get(); |
| 1582 } | 1582 } |
| 1583 | 1583 |
| 1584 void ProfileImpl::SaveSessionState() { | 1584 void ProfileImpl::SaveSessionState() { |
| 1585 if (!session_restore_enabled_) | 1585 if (!session_restore_enabled_) |
| 1586 return; | 1586 return; |
| 1587 if (webkit_context_.get()) |
| 1588 webkit_context_->SaveSessionState(); |
| 1589 if (db_tracker_.get()) |
| 1590 db_tracker_->SaveSessionState(); |
| 1591 |
| 1587 BrowserThread::PostTask( | 1592 BrowserThread::PostTask( |
| 1588 BrowserThread::IO, FROM_HERE, | 1593 BrowserThread::IO, FROM_HERE, |
| 1589 base::Bind(&SaveSessionStateOnIOThread, | 1594 base::Bind(&SaveSessionStateOnIOThread, |
| 1590 make_scoped_refptr(GetRequestContext()))); | 1595 make_scoped_refptr(GetRequestContext()), |
| 1596 make_scoped_refptr(appcache_service_.get()))); |
| 1591 } | 1597 } |
| 1592 | 1598 |
| 1593 SpellCheckProfile* ProfileImpl::GetSpellCheckProfile() { | 1599 SpellCheckProfile* ProfileImpl::GetSpellCheckProfile() { |
| 1594 if (!spellcheck_profile_.get()) | 1600 if (!spellcheck_profile_.get()) |
| 1595 spellcheck_profile_.reset(new SpellCheckProfile(path_)); | 1601 spellcheck_profile_.reset(new SpellCheckProfile(path_)); |
| 1596 return spellcheck_profile_.get(); | 1602 return spellcheck_profile_.get(); |
| 1597 } | 1603 } |
| 1598 | 1604 |
| 1599 void ProfileImpl::UpdateProfileUserNameCache() { | 1605 void ProfileImpl::UpdateProfileUserNameCache() { |
| 1600 ProfileManager* profile_manager = g_browser_process->profile_manager(); | 1606 ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1616 FilePath* cache_path, | 1622 FilePath* cache_path, |
| 1617 int* max_size) { | 1623 int* max_size) { |
| 1618 DCHECK(cache_path); | 1624 DCHECK(cache_path); |
| 1619 DCHECK(max_size); | 1625 DCHECK(max_size); |
| 1620 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); | 1626 FilePath path(prefs_->GetFilePath(prefs::kDiskCacheDir)); |
| 1621 if (!path.empty()) | 1627 if (!path.empty()) |
| 1622 *cache_path = path; | 1628 *cache_path = path; |
| 1623 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : | 1629 *max_size = is_media_context ? prefs_->GetInteger(prefs::kMediaCacheSize) : |
| 1624 prefs_->GetInteger(prefs::kDiskCacheSize); | 1630 prefs_->GetInteger(prefs::kDiskCacheSize); |
| 1625 } | 1631 } |
| OLD | NEW |