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

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..9ba13e3171ba2ddcb2c88ad22044dd1c6f399efb 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 },
@@ -97,6 +100,8 @@ void ClearBrowserDataHandler::RegisterMessages() {
}
void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
+ DCHECK(!remover_);
+
Profile* profile = Profile::FromWebUI(web_ui());
PrefService* prefs = profile->GetPrefs();
@@ -121,29 +126,59 @@ void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
if (prefs->GetBoolean(prefs::kDeauthorizeContentLicenses))
remove_mask |= BrowsingDataRemover::REMOVE_CONTENT_LICENSES;
- int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
+ remove_hosted_app_data_pending_ =
+ prefs->GetBoolean(prefs::kDeleteHostedAppsData);
+
+ if (!remove_mask) {
+ // If no unprotected data should be removed, skip straight to removing
+ // hosted app data. If nothing should be removed (which would mean that the
+ // JS-side is buggy), skip straight to cleaning up.
+ if (remove_hosted_app_data_pending_)
+ ClearHostedAppData();
+ else
+ OnAllDataRemoved();
+ } else {
+ // BrowsingDataRemover deletes itself when done.
+ int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
+ remover_ = new BrowsingDataRemover(profile,
+ static_cast<BrowsingDataRemover::TimePeriod>(period_selected),
+ base::Time());
+ remover_->AddObserver(this);
+ remover_->Remove(remove_mask, BrowsingDataHelper::UNPROTECTED_WEB);
+ }
+}
- base::FundamentalValue state(true);
- web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.setClearingState",
- state);
+void ClearBrowserDataHandler::ClearHostedAppData() {
+ DCHECK(!remover_);
+ DCHECK(remove_hosted_app_data_pending_);
- // If we are still observing a previous data remover, we need to stop
- // observing.
- if (remover_)
- remover_->RemoveObserver(this);
+ remove_hosted_app_data_pending_ = false;
+ Profile* profile = Profile::FromWebUI(web_ui());
+ PrefService* prefs = profile->GetPrefs();
+ int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
// BrowsingDataRemover deletes itself when done.
- remover_ = new BrowsingDataRemover(profile,
+ remover_ = new BrowsingDataRemover(
+ profile,
static_cast<BrowsingDataRemover::TimePeriod>(period_selected),
base::Time());
remover_->AddObserver(this);
- remover_->Remove(remove_mask, BrowsingDataHelper::UNPROTECTED_WEB);
+ 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;
+
+ if (remove_hosted_app_data_pending_)
+ ClearHostedAppData();
+ else
+ OnAllDataRemoved();
+}
+
+void ClearBrowserDataHandler::OnAllDataRemoved() {
web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing");
}
« 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