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

Unified Diff: chrome/browser/profile_resetter/profile_resetter.cc

Issue 17274006: Reset profile: reset cookies and site data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 7 years, 6 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/profile_resetter/profile_resetter.cc
diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc
index ea601c0c21f1c00fbb9b2e978fd2619c5398bcf1..b2bc0ed80018e308e22a848c813e0e3da2da1ad8 100644
--- a/chrome/browser/profile_resetter/profile_resetter.cc
+++ b/chrome/browser/profile_resetter/profile_resetter.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/profile_resetter/profile_resetter.h"
#include "base/prefs/pref_service.h"
+#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/management_policy.h"
@@ -24,14 +25,18 @@
ProfileResetter::ProfileResetter(Profile* profile)
: profile_(profile),
template_url_service_(TemplateURLServiceFactory::GetForProfile(profile_)),
- pending_reset_flags_(0) {
+ pending_reset_flags_(0),
+ cookies_remover_(NULL) {
DCHECK(CalledOnValidThread());
DCHECK(profile_);
registrar_.Add(this, chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED,
content::Source<TemplateURLService>(template_url_service_));
}
-ProfileResetter::~ProfileResetter() {}
+ProfileResetter::~ProfileResetter() {
+ if (cookies_remover_)
+ cookies_remover_->RemoveObserver(this);
+}
void ProfileResetter::Reset(ProfileResetter::ResettableFlags resettable_flags,
const base::Closure& callback) {
@@ -137,9 +142,18 @@ void ProfileResetter::ResetContentSettings() {
void ProfileResetter::ResetCookiesAndSiteData() {
DCHECK(CalledOnValidThread());
- NOTIMPLEMENTED();
- // TODO(battre/vabr): Implement
- MarkAsDone(COOKIES_AND_SITE_DATA);
+ DCHECK(!cookies_remover_);
+
+ cookies_remover_ = BrowsingDataRemover::CreateForUnboundedRange(profile_);
+ cookies_remover_->AddObserver(this);
+ int remove_mask = BrowsingDataRemover::REMOVE_SITE_DATA |
+ BrowsingDataRemover::REMOVE_CACHE;
+ PrefService* prefs = profile_->GetPrefs();
+ DCHECK(prefs);
+ // Don't try to clear LSO data if it's not supported.
+ if (!prefs->GetBoolean(prefs::kClearPluginLSODataEnabled))
+ remove_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
+ cookies_remover_->Remove(remove_mask, BrowsingDataHelper::UNPROTECTED_WEB);
}
void ProfileResetter::ResetExtensions() {
@@ -187,3 +201,8 @@ void ProfileResetter::Observe(int type,
if (pending_reset_flags_ & DEFAULT_SEARCH_ENGINE)
ResetDefaultSearchEngine();
}
+
+void ProfileResetter::OnBrowsingDataRemoverDone() {
+ cookies_remover_ = NULL;
+ MarkAsDone(COOKIES_AND_SITE_DATA);
+}
« no previous file with comments | « chrome/browser/profile_resetter/profile_resetter.h ('k') | chrome/browser/profile_resetter/profile_resetter_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698