Chromium Code Reviews| Index: chrome/browser/browsing_data_remover.cc |
| diff --git a/chrome/browser/browsing_data_remover.cc b/chrome/browser/browsing_data_remover.cc |
| index 8a2a8d069eb03097f7d9616e1a2e31d77b12e97f..753ff0a784502a03e13324445f4ae76f5680d7da 100644 |
| --- a/chrome/browser/browsing_data_remover.cc |
| +++ b/chrome/browser/browsing_data_remover.cc |
| @@ -45,7 +45,7 @@ |
| #include "content/browser/in_process_webkit/webkit_context.h" |
| #include "content/browser/user_metrics.h" |
| #include "content/public/browser/browser_thread.h" |
| -#include "content/public/browser/notification_source.h" |
| +#include "content/public/browser/notification_service.h" |
| #include "content/public/browser/plugin_data_remover.h" |
| #include "net/base/cookie_monster.h" |
| #include "net/base/net_errors.h" |
| @@ -65,6 +65,15 @@ DISABLE_RUNNABLE_METHOD_REFCOUNT(BrowsingDataRemover); |
| bool BrowsingDataRemover::removing_ = false; |
| +BrowsingDataRemover::NotificationDetail::NotificationDetail( |
| + base::Time removal_begin, |
| + int removal_mask) |
| + : removal_begin(removal_begin), |
| + removal_mask(removal_mask) { |
| +} |
| + |
| +BrowsingDataRemover::NotificationDetail::~NotificationDetail() {} |
| + |
| BrowsingDataRemover::BrowsingDataRemover(Profile* profile, |
| base::Time delete_begin, |
| base::Time delete_end) |
| @@ -84,7 +93,8 @@ BrowsingDataRemover::BrowsingDataRemover(Profile* profile, |
| waiting_for_clear_networking_history_(false), |
| waiting_for_clear_cookies_(false), |
| waiting_for_clear_cache_(false), |
| - waiting_for_clear_lso_data_(false) { |
| + waiting_for_clear_lso_data_(false), |
| + remove_mask_(0) { |
| DCHECK(profile); |
| } |
| @@ -107,7 +117,8 @@ BrowsingDataRemover::BrowsingDataRemover(Profile* profile, |
| waiting_for_clear_networking_history_(false), |
| waiting_for_clear_cookies_(false), |
| waiting_for_clear_cache_(false), |
| - waiting_for_clear_lso_data_(false) { |
| + waiting_for_clear_lso_data_(false), |
| + remove_mask_(0) { |
| DCHECK(profile); |
| } |
| @@ -124,6 +135,7 @@ void BrowsingDataRemover::set_removing(bool removing) { |
| void BrowsingDataRemover::Remove(int remove_mask) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| set_removing(true); |
| + remove_mask_ = remove_mask; |
| if (remove_mask & REMOVE_HISTORY) { |
| HistoryService* history_service = |
| @@ -370,6 +382,14 @@ void BrowsingDataRemover::NotifyAndDeleteIfDone() { |
| g_browser_process->net_log()->ClearAllPassivelyCapturedEvents(); |
| set_removing(false); |
| + |
| + // Send global notification, then notify any explicit observers. |
| + BrowsingDataRemover::NotificationDetail details(delete_begin_, remove_mask_); |
| + content::NotificationService::current()->Notify( |
| + chrome::NOTIFICATION_BROWSING_DATA_REMOVED, |
| + content::Source<Profile>(profile_->GetOriginalProfile()), |
|
jochen (gone - plz use gerrit)
2011/12/13 13:18:48
can you invoke the browsing data deleter on the in
Mike West
2011/12/13 14:23:26
Yup. I should just use the profile here, not the o
|
| + content::Details<BrowsingDataRemover::NotificationDetail>(&details)); |
| + |
| FOR_EACH_OBSERVER(Observer, observer_list_, OnBrowsingDataRemoverDone()); |
| // History requests aren't happy if you delete yourself from the callback. |