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

Unified Diff: chrome/browser/ui/webui/options2/clear_browser_data_handler2.cc

Issue 10502015: Adding "Clear hosted app data" checkbox to browsing data removal UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Feedback. Created 8 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
« no previous file with comments | « chrome/browser/ui/webui/options2/clear_browser_data_handler2.h ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/options2/clear_browser_data_handler2.cc
diff --git a/chrome/browser/ui/webui/options2/clear_browser_data_handler2.cc b/chrome/browser/ui/webui/options2/clear_browser_data_handler2.cc
index 620b5678ffce629ed816891ad27958a6d65616bb..8add9085588600db5483df68ec17763a40fa40cb 100644
--- a/chrome/browser/ui/webui/options2/clear_browser_data_handler2.cc
+++ b/chrome/browser/ui/webui/options2/clear_browser_data_handler2.cc
@@ -24,7 +24,9 @@
namespace options2 {
-ClearBrowserDataHandler::ClearBrowserDataHandler() : remover_(NULL) {
+ClearBrowserDataHandler::ClearBrowserDataHandler()
+ : remover_(NULL),
+ remove_hosted_app_data_pending_(false) {
}
ClearBrowserDataHandler::~ClearBrowserDataHandler() {
@@ -51,6 +53,7 @@ void ClearBrowserDataHandler::GetLocalizedValues(
{ "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX },
{ "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX },
{ "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX },
+ { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX },
{ "deauthorizeContentLicensesCheckbox",
IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX },
{ "clearBrowserDataCommit", IDS_CLEAR_BROWSING_DATA_COMMIT },
@@ -92,11 +95,11 @@ void ClearBrowserDataHandler::GetLocalizedValues(
void ClearBrowserDataHandler::RegisterMessages() {
// Setup handlers specific to this panel.
web_ui()->RegisterMessageCallback("performClearBrowserData",
- base::Bind(&ClearBrowserDataHandler::HandleClearBrowserData,
+ base::Bind(&ClearBrowserDataHandler::ClearBrowserData,
base::Unretained(this)));
}
-void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
+void ClearBrowserDataHandler::ClearBrowserData(const ListValue* value) {
Evan Stade 2012/06/05 18:07:45 this one actually does handle a chrome.send messag
Mike West 2012/06/11 09:35:44 Done.
Profile* profile = Profile::FromWebUI(web_ui());
PrefService* prefs = profile->GetPrefs();
@@ -121,6 +124,9 @@ void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
if (prefs->GetBoolean(prefs::kDeauthorizeContentLicenses))
remove_mask |= BrowsingDataRemover::REMOVE_CONTENT_LICENSES;
+ remove_hosted_app_data_pending_ =
+ prefs->GetBoolean(prefs::kDeleteHostedAppsData);
+
int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
Evan Stade 2012/06/05 18:07:45 this should be declared where it's used.
Mike West 2012/06/11 09:35:44 Done.
base::FundamentalValue state(true);
@@ -140,11 +146,37 @@ void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
remover_->Remove(remove_mask, BrowsingDataHelper::UNPROTECTED_WEB);
Evan Stade 2012/06/05 18:07:45 it seems that remove_mask can be 0 here, in which
battre 2012/06/07 21:17:24 We rely on the callback even if remove_mask is 0 h
Evan Stade 2012/06/07 21:50:21 yea, I can see that. Doesn't mean it makes sense.
Mike West 2012/06/11 09:35:44 You're right. I've added a skip. I've also handled
}
+void ClearBrowserDataHandler::ClearHostedAppData() {
+ Profile* profile = Profile::FromWebUI(web_ui());
+ PrefService* prefs = profile->GetPrefs();
+
+ // If we are still observing a previous data remover, we need to stop
+ // observing.
+ if (remover_)
Evan Stade 2012/06/05 18:07:45 this is still here. intentional?
battre 2012/06/07 21:17:24 This was just for defensive programming. There is
Evan Stade 2012/06/07 21:50:21 then DCHECK(!remover_) is more appropriate
Mike West 2012/06/11 09:35:44 Done.
+ remover_->RemoveObserver(this);
+
+ int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
+ // BrowsingDataRemover deletes itself when done.
+ remover_ = new BrowsingDataRemover(
+ profile,
+ static_cast<BrowsingDataRemover::TimePeriod>(period_selected),
+ base::Time());
+ remover_->AddObserver(this);
+ remover_->Remove(BrowsingDataRemover::REMOVE_SITE_DATA,
+ BrowsingDataHelper::PROTECTED_WEB);
+}
+
void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() {
// No need to remove ourselves as an observer as BrowsingDataRemover deletes
// itself after we return.
remover_ = NULL;
- web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing");
+
+ if (remove_hosted_app_data_pending_) {
+ remove_hosted_app_data_pending_ = false;
+ ClearHostedAppData();
+ } else {
+ web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing");
+ }
}
} // namespace options2
« no previous file with comments | « chrome/browser/ui/webui/options2/clear_browser_data_handler2.h ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698