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

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

Issue 23710022: Convert NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED to CallbackList (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clean-up Created 7 years, 2 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
diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc
index b7af2e1b448bdad66e7836002d665e4e863a9f2d..7455e76ca442bd57d1fea15e5de4129aa372dc0b 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover.cc
@@ -177,6 +177,7 @@ BrowsingDataRemover::BrowsingDataRemover(Profile* profile,
waiting_for_clear_session_storage_(false),
waiting_for_clear_shader_cache_(false),
waiting_for_clear_webrtc_identity_store_(false),
+ waiting_for_clear_keyword_data_(false),
remove_mask_(0),
remove_origin_(GURL()),
origin_set_mask_(0) {
@@ -304,9 +305,11 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
TemplateURLService* keywords_model =
TemplateURLServiceFactory::GetForProfile(profile_);
if (keywords_model && !keywords_model->loaded()) {
- registrar_.Add(this, chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED,
- content::Source<TemplateURLService>(keywords_model));
+ template_url_sub_ = keywords_model->RegisterOnLoadedCallback(
+ base::Bind(&BrowsingDataRemover::OnKeywordsLoaded,
+ base::Unretained(this)));
keywords_model->Load();
+ waiting_for_clear_keyword_data_ = true;
} else if (keywords_model) {
keywords_model->RemoveAutoGeneratedForOriginBetween(remove_origin_,
delete_begin_, delete_end_);
@@ -643,7 +646,8 @@ base::Time BrowsingDataRemover::CalculateBeginDeleteTime(
}
bool BrowsingDataRemover::AllDone() {
- return registrar_.IsEmpty() && !waiting_for_clear_autofill_origin_urls_ &&
+ return !waiting_for_clear_keyword_data_ &&
+ !waiting_for_clear_autofill_origin_urls_ &&
!waiting_for_clear_cache_ && !waiting_for_clear_nacl_cache_ &&
!waiting_for_clear_cookies_count_ && !waiting_for_clear_history_ &&
!waiting_for_clear_local_storage_ &&
@@ -661,19 +665,20 @@ bool BrowsingDataRemover::AllDone() {
!waiting_for_clear_webrtc_identity_store_;
}
-void BrowsingDataRemover::Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
+void BrowsingDataRemover::OnKeywordsLoaded() {
// TODO(brettw) bug 1139736: This should also observe session
Avi (use Gerrit) 2013/10/02 22:27:52 Can you migrate this bug out of buganizer? And th
Cait (Slow) 2013/10/03 15:36:45 brettw: Is this buganizer issue still relevant? If
// clearing (what about other things such as passwords, etc.?) and wait for
// them to complete before continuing.
- DCHECK(type == chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED);
- TemplateURLService* model = content::Source<TemplateURLService>(source).ptr();
- if (model->profile() == profile_) {
- registrar_.RemoveAll();
- model->RemoveAutoGeneratedBetween(delete_begin_, delete_end_);
- NotifyAndDeleteIfDone();
- }
+
+ // Deletes the entries from the model, and if we're not waiting on anything
+ // else notifies, observers and deletes this BrowsingDataRemover.
Avi (use Gerrit) 2013/10/02 22:27:52 Misplaced comma; do: "...else, notifies observers.
Cait (Slow) 2013/10/03 15:36:45 Done.
+ TemplateURLService* model =
+ TemplateURLServiceFactory::GetForProfile(profile_);
+ DCHECK(model->profile() == profile_);
+ model->RemoveAutoGeneratedBetween(delete_begin_, delete_end_);
+ waiting_for_clear_keyword_data_ = false;
+ template_url_sub_.reset();
+ NotifyAndDeleteIfDone();
}
void BrowsingDataRemover::NotifyAndDeleteIfDone() {

Powered by Google App Engine
This is Rietveld 408576698