| Index: chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| index 2818aa42be11ab6e5a312cb32881091b96a70918..7381e53e3539116e436d75660f6ef7259410c5da 100644
|
| --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
|
|
|
| +#include "base/callback.h"
|
| #include "chrome/browser/autofill/personal_data_manager_factory.h"
|
| #include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
| #include "chrome/browser/browser_process.h"
|
| @@ -194,6 +195,35 @@ void ClearHostnameResolutionCacheOnIOThread(
|
|
|
| } // namespace
|
|
|
| +ChromeBrowsingDataRemoverDelegate::SubTask::SubTask(
|
| + const base::Closure& forward_callback)
|
| + : is_pending_(false),
|
| + forward_callback_(forward_callback),
|
| + weak_ptr_factory_(this) {
|
| + DCHECK(!forward_callback_.is_null());
|
| +}
|
| +
|
| +ChromeBrowsingDataRemoverDelegate::SubTask::~SubTask() {}
|
| +
|
| +void ChromeBrowsingDataRemoverDelegate::SubTask::Start() {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(!is_pending_);
|
| + is_pending_ = true;
|
| +}
|
| +
|
| +base::Closure
|
| +ChromeBrowsingDataRemoverDelegate::SubTask::GetCompletionCallback() {
|
| + return base::Bind(&SubTask::CompletionCallback,
|
| + weak_ptr_factory_.GetWeakPtr());
|
| +}
|
| +
|
| +void ChromeBrowsingDataRemoverDelegate::SubTask::CompletionCallback() {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(is_pending_);
|
| + is_pending_ = false;
|
| + forward_callback_.Run();
|
| +}
|
| +
|
| ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate(
|
| BrowserContext* browser_context)
|
| : profile_(Profile::FromBrowserContext(browser_context)),
|
|
|