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. |