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

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: Fixing? 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
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..ff1e739e1e23f6924c9dce5e2d9c3ee33588b8e7 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 },
@@ -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);
base::FundamentalValue state(true);
@@ -140,11 +146,36 @@ void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
remover_->Remove(remove_mask, BrowsingDataHelper::UNPROTECTED_WEB);
}
+void ClearBrowserDataHandler::HandleClearHostedAppData() {
Evan Stade 2012/06/04 22:03:40 it's confusing to call this Handle... because that
Mike West 2012/06/05 08:55:02 Dropping "Handle" from this and the above "HandleC
+ 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/04 22:03:40 I don't think that remover_ can be non-NULL here b
Mike West 2012/06/05 08:55:02 I think you're right. That's the only callsite for
+ remover_->RemoveObserver(this);
+
+ int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
+ // BrowsingDataRemover deletes itself when done.
+ remover_ = new BrowsingDataRemover(profile,
markusheintz_ 2012/06/04 14:50:52 nit: If I interpret the style guide correctly then
Mike West 2012/06/05 08:55:02 Done.
+ 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;
+ HandleClearHostedAppData();
Evan Stade 2012/06/04 22:03:40 why do you defer this until after the first set of
Mike West 2012/06/05 08:55:02 An excellent question, and one I should have read
Mike West 2012/06/05 08:55:02 It explodes. BRD is actually set up to explicitly
+ } else {
+ web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing");
+ }
}
} // namespace options2

Powered by Google App Engine
This is Rietveld 408576698