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

Unified Diff: chrome/browser/browsing_data/browsing_data_remover.cc

Issue 10866013: Convert the browsing_data pyauto tests to chrome tests. Remove the ClearBrowsingData automation cod… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix flake in unittest harness Created 8 years, 4 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/browsing_data/browsing_data_remover.cc
===================================================================
--- chrome/browser/browsing_data/browsing_data_remover.cc (revision 152704)
+++ chrome/browser/browsing_data/browsing_data_remover.cc (working copy)
@@ -125,6 +125,7 @@
waiting_for_clear_plugin_data_(false),
waiting_for_clear_quota_managed_data_(false),
waiting_for_clear_content_licenses_(false),
+ waiting_for_clear_form_(false),
remove_mask_(0),
remove_origin_(GURL()),
origin_set_mask_(0) {
@@ -161,6 +162,7 @@
waiting_for_clear_plugin_data_(false),
waiting_for_clear_quota_managed_data_(false),
waiting_for_clear_content_licenses_(false),
+ waiting_for_clear_form_(false),
remove_mask_(0),
remove_origin_(GURL()),
origin_set_mask_(0) {
@@ -426,10 +428,18 @@
Profile::EXPLICIT_ACCESS);
if (web_data_service.get()) {
+ waiting_for_clear_form_ = true;
web_data_service->RemoveFormElementsAddedBetween(delete_begin_,
delete_end_);
web_data_service->RemoveAutofillProfilesAndCreditCardsModifiedBetween(
delete_begin_, delete_end_);
+ // The above calls are done on the UI thread but do their work on the DB
+ // thread. So wait for it.
+ BrowserThread::PostTask(
+ BrowserThread::DB, FROM_HERE,
+ base::Bind(&BrowsingDataRemover::FormDataDBThreadHop,
+ base::Unretained(this)));
+
PersonalDataManager* data_manager =
PersonalDataManagerFactory::GetForProfile(profile_);
if (data_manager) {
@@ -546,7 +556,8 @@
!waiting_for_clear_server_bound_certs_ &&
!waiting_for_clear_plugin_data_ &&
!waiting_for_clear_quota_managed_data_ &&
- !waiting_for_clear_content_licenses_;
+ !waiting_for_clear_content_licenses_ &&
+ !waiting_for_clear_form_;
}
void BrowsingDataRemover::Observe(int type,
@@ -908,3 +919,17 @@
waiting_for_clear_server_bound_certs_ = false;
NotifyAndDeleteIfDone();
}
+
+void BrowsingDataRemover::FormDataDBThreadHop() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(&BrowsingDataRemover::OnClearedFormData,
+ base::Unretained(this)));
+}
+
+void BrowsingDataRemover::OnClearedFormData() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ waiting_for_clear_form_ = false;
+ NotifyAndDeleteIfDone();
+}

Powered by Google App Engine
This is Rietveld 408576698