Index: chrome/browser/browsing_data_remover.cc |
=================================================================== |
--- chrome/browser/browsing_data_remover.cc (revision 92558) |
+++ chrome/browser/browsing_data_remover.cc (working copy) |
@@ -7,6 +7,7 @@ |
#include <map> |
#include <set> |
+#include "base/bind.h" |
#include "base/callback.h" |
#include "base/file_util.h" |
#include "base/platform_file.h" |
@@ -79,6 +80,7 @@ |
waiting_for_clear_databases_(false), |
waiting_for_clear_history_(false), |
waiting_for_clear_networking_history_(false), |
+ waiting_for_clear_cookies_(false), |
waiting_for_clear_cache_(false), |
waiting_for_clear_appcache_(false), |
waiting_for_clear_gears_data_(false), |
@@ -109,6 +111,7 @@ |
waiting_for_clear_databases_(false), |
waiting_for_clear_history_(false), |
waiting_for_clear_networking_history_(false), |
+ waiting_for_clear_cookies_(false), |
waiting_for_clear_cache_(false), |
waiting_for_clear_appcache_(false), |
waiting_for_clear_lso_data_(false), |
@@ -123,6 +126,7 @@ |
void BrowsingDataRemover::Remove(int remove_mask) { |
DCHECK(!removing_); |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
removing_ = true; |
if (remove_mask & REMOVE_HISTORY) { |
@@ -201,11 +205,16 @@ |
net::CookieMonster* cookie_monster = NULL; |
net::URLRequestContextGetter* rq_context = profile_->GetRequestContext(); |
if (rq_context) { |
- cookie_monster = rq_context->DONTUSEME_GetCookieStore()-> |
+ cookie_monster = rq_context->GetURLRequestContext()->cookie_store()-> |
GetCookieMonster(); |
} |
- if (cookie_monster) |
- cookie_monster->DeleteAllCreatedBetween(delete_begin_, delete_end_, true); |
+ if (cookie_monster) { |
+ waiting_for_clear_cookies_ = true; |
+ cookie_monster->DeleteAllCreatedBetweenAsync( |
+ delete_begin_, delete_end_, true, |
+ base::Bind(&BrowsingDataRemover::OnCookiesDeleted, |
+ base::Unretained(this))); |
+ } |
// REMOVE_COOKIES is actually "cookies and other site data" so we make sure |
// to remove other data such local databases, STS state, etc. These only can |
@@ -633,3 +642,11 @@ |
waiting_for_clear_lso_data_ = false; |
NotifyAndDeleteIfDone(); |
} |
+ |
+void BrowsingDataRemover::OnCookiesDeleted(int num_deleted) { |
+ waiting_for_clear_cookies_ = false; |
+ MessageLoop::current()->PostTask( |
ycxiao
2011/07/15 20:43:39
Post a Task here, because this callback make be in
erikwright (departed)
2011/07/17 17:21:56
Add a comment in the code to this effect.
On 2011
|
+ FROM_HERE, |
+ base::Bind(&BrowsingDataRemover::NotifyAndDeleteIfDone, |
+ base::Unretained(this))); |
+} |