Index: chrome/browser/profiles/profile_impl.cc |
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc |
index 0cbc653fe489f536df0a09c2f0652d9f36034197..8f0b93a22e1c39766f48c1583a66c668111bf257 100644 |
--- a/chrome/browser/profiles/profile_impl.cc |
+++ b/chrome/browser/profiles/profile_impl.cc |
@@ -594,6 +594,15 @@ ProfileImpl::~ProfileImpl() { |
Source<Profile>(this), |
NotificationService::NoDetails()); |
+ if (appcache_service_ && clear_local_state_on_exit_) { |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ NewRunnableMethod( |
+ appcache_service_.get(), |
+ &appcache::AppCacheService::set_clear_local_state_on_exit, |
+ true)); |
+ } |
+ |
StopCreateSessionServiceTimer(); |
// Remove pref observers |
@@ -1337,8 +1346,7 @@ void ProfileImpl::CreateQuotaManagerAndClients() { |
IsOffTheRecord() |
? FilePath() : GetPath().Append(chrome::kAppCacheDirname), |
&GetResourceContext(), |
- make_scoped_refptr(GetExtensionSpecialStoragePolicy()), |
- clear_local_state_on_exit_)); |
+ make_scoped_refptr(GetExtensionSpecialStoragePolicy()))); |
} |
WebKitContext* ProfileImpl::GetWebKitContext() { |
@@ -1393,10 +1401,6 @@ void ProfileImpl::Observe(int type, |
webkit_context_->set_clear_local_state_on_exit( |
clear_local_state_on_exit_); |
} |
- if (appcache_service_) { |
- appcache_service_->SetClearLocalStateOnExit( |
- clear_local_state_on_exit_); |
- } |
if (db_tracker_) { |
db_tracker_->SetClearLocalStateOnExit( |
clear_local_state_on_exit_); |