Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(414)

Unified Diff: chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc

Issue 2613833004: Split BrowsingDataRemover into an abstract interface and implementation. (Closed)
Patch Set: Removed unnecessary instantiations. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)),

Powered by Google App Engine
This is Rietveld 408576698