Chromium Code Reviews| 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 |