| 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 aa714fa585062faa276461771c2fac0c8e39667a..97ed1d6ef0c312d472507ad46231586f4c1462b6 100644
|
| --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| @@ -8,6 +8,7 @@
|
| #include <string>
|
| #include <utility>
|
|
|
| +#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"
|
| @@ -208,6 +209,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)),
|
|
|