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..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 |