Chromium Code Reviews| Index: chrome/browser/browsing_data/browsing_data_remover.cc |
| diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc |
| index f723a3f0176f5f7727077d8e6ce0bfced886e8ef..7362ec76a4ce66ad9674b7872d819a6fd32e69a5 100644 |
| --- a/chrome/browser/browsing_data/browsing_data_remover.cc |
| +++ b/chrome/browser/browsing_data/browsing_data_remover.cc |
| @@ -147,6 +147,7 @@ BrowsingDataRemover::BrowsingDataRemover(Profile* profile, |
| waiting_for_clear_quota_managed_data_(false), |
| waiting_for_clear_content_licenses_(false), |
| waiting_for_clear_form_(false), |
| + waiting_for_clear_profile_io_data_(false), |
| remove_mask_(0), |
| remove_origin_(GURL()), |
| origin_set_mask_(0) { |
| @@ -492,9 +493,11 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask, |
| // Also delete cached network related data (like TransportSecurityState, |
| // HttpServerProperties data). |
| - profile_->ClearNetworkingHistorySince(delete_begin_); |
| - |
| - NotifyAndDeleteIfDone(); |
| + waiting_for_clear_profile_io_data_ = true; |
| + profile_->ClearNetworkingHistorySince( |
| + delete_begin_, |
| + base::Bind(&BrowsingDataRemover::ClearedProfileIOData, |
| + base::Unretained(this))); |
|
mmenke
2012/10/25 16:01:15
This strikes me as very regression-prone. Since O
engedy
2012/10/25 19:41:31
Done.
|
| } |
| void BrowsingDataRemover::AddObserver(Observer* observer) { |
| @@ -555,7 +558,8 @@ bool BrowsingDataRemover::AllDone() { |
| !waiting_for_clear_plugin_data_ && |
| !waiting_for_clear_quota_managed_data_ && |
| !waiting_for_clear_content_licenses_ && |
| - !waiting_for_clear_form_; |
| + !waiting_for_clear_form_ && |
| + !waiting_for_clear_profile_io_data_; |
| } |
| void BrowsingDataRemover::Observe(int type, |
| @@ -974,3 +978,10 @@ void BrowsingDataRemover::OnClearedFormData() { |
| waiting_for_clear_form_ = false; |
| NotifyAndDeleteIfDone(); |
| } |
| + |
| +void BrowsingDataRemover::ClearedProfileIOData() { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + waiting_for_clear_profile_io_data_ = false; |
| + NotifyAndDeleteIfDone(); |
| +} |
| + |