Index: chrome/browser/profiles/profile_impl.cc |
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc |
index 73adc7fcee46b55e2221652b89ac9c56770126e7..59849ae513f34db5d86f778bc25b7289fd9aa6de 100644 |
--- a/chrome/browser/profiles/profile_impl.cc |
+++ b/chrome/browser/profiles/profile_impl.cc |
@@ -613,6 +613,8 @@ ProfileImpl::~ProfileImpl() { |
BrowserThread::PostTask( |
BrowserThread::FILE, FROM_HERE, |
NewRunnableFunction(&BrowsingDataRemover::ClearGearsData, path_)); |
+ if (db_tracker_.get()) |
+ db_tracker_->Shutdown(); |
} |
// DownloadManager is lazily created, so check before accessing it. |
@@ -1325,7 +1327,8 @@ void ProfileImpl::CreateQuotaManagerAndClients() { |
GetExtensionSpecialStoragePolicy(), |
quota_manager_->proxy()); |
db_tracker_ = new webkit_database::DatabaseTracker( |
- GetPath(), IsOffTheRecord(), GetExtensionSpecialStoragePolicy(), |
+ GetPath(), IsOffTheRecord(), clear_local_state_on_exit_, |
+ GetExtensionSpecialStoragePolicy(), |
quota_manager_->proxy(), |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)); |
webkit_context_ = new WebKitContext( |
@@ -1400,6 +1403,10 @@ void ProfileImpl::Observe(NotificationType type, |
appcache_service_->SetClearLocalStateOnExit( |
clear_local_state_on_exit_); |
} |
+ if (db_tracker_) { |
+ db_tracker_->SetClearLocalStateOnExit( |
+ clear_local_state_on_exit_); |
+ } |
} else if (*pref_name_in == prefs::kGoogleServicesUsername) { |
ProfileManager* profile_manager = g_browser_process->profile_manager(); |
profile_manager->RegisterProfileName(this); |