Chromium Code Reviews| Index: chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
| diff --git a/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc b/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
| index d26b0893a509b71f7b8bb72772d6912a4d106d31..11d012c19b3a807a93c5b88453d2ffbf874e1a75 100644 |
| --- a/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
| +++ b/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
| @@ -36,6 +36,33 @@ |
| namespace options { |
| +namespace { |
| + |
| +reset_report::ChromeResetReport::ResetRequestOrigin |
| +ResetRequestOriginFromString(const std::string& reset_request_origin) { |
| + static const char kOriginUserClick[] = "userClick"; |
| + static const char kOriginCct[] = "CCT"; |
| + static const char kOriginTriggeredReset[] = "triggeredReset"; |
| + |
| + if (reset_request_origin == kOriginUserClick) { |
| + return reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_USER_CLICK; |
| + } else if (reset_request_origin == kOriginCct) { |
|
vasilii
2016/08/11 16:33:38
There shouldn't be "else" after the "return" state
alito
2016/08/11 16:59:05
Done.
|
| + return reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_CCT; |
| + } |
| + if (reset_request_origin == kOriginTriggeredReset) { |
| + return reset_report::ChromeResetReport:: |
| + RESET_REQUEST_ORIGIN_TRIGGERED_RESET; |
| + } else if (reset_request_origin.empty()) { |
| + return reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_UNKNOWN; |
| + } |
| + |
| + NOTREACHED() << "Unknown reset request origin string: '" |
| + << reset_request_origin << "'"; |
| + return reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_UNKNOWN; |
| +} |
| + |
| +} // namespace |
| + |
| ResetProfileSettingsHandler::ResetProfileSettingsHandler() { |
| google_brand::GetBrand(&brandcode_); |
| } |
| @@ -127,23 +154,25 @@ void ResetProfileSettingsHandler::RegisterMessages() { |
| void ResetProfileSettingsHandler::HandleResetProfileSettings( |
| const base::ListValue* value) { |
| bool send_settings = false; |
| - bool success = value->GetBoolean(0, &send_settings); |
| + std::string reset_request_origin; |
| + bool success = value->GetBoolean(0, &send_settings) && |
| + value->GetString(1, &reset_request_origin); |
| DCHECK(success); |
| DCHECK(brandcode_.empty() || config_fetcher_); |
| if (config_fetcher_ && config_fetcher_->IsActive()) { |
| // Reset once the prefs are fetched. |
| config_fetcher_->SetCallback( |
| - base::Bind(&ResetProfileSettingsHandler::ResetProfile, |
| - Unretained(this), |
| - send_settings)); |
| + base::Bind(&ResetProfileSettingsHandler::ResetProfile, Unretained(this), |
| + send_settings, reset_request_origin)); |
| } else { |
| - ResetProfile(send_settings); |
| + ResetProfile(send_settings, reset_request_origin); |
| } |
| } |
| void ResetProfileSettingsHandler::OnResetProfileSettingsDone( |
| - bool send_feedback) { |
| + bool send_feedback, |
| + const std::string& reset_request_origin) { |
| web_ui()->CallJavascriptFunctionUnsafe( |
| "ResetProfileSettingsOverlay.doneResetting"); |
| if (send_feedback && setting_snapshot_) { |
| @@ -154,8 +183,11 @@ void ResetProfileSettingsHandler::OnResetProfileSettingsDone( |
| setting_snapshot_->Subtract(current_snapshot); |
| std::unique_ptr<reset_report::ChromeResetReport> report_proto = |
| SerializeSettingsReportToProto(*setting_snapshot_, difference); |
| - if (report_proto) |
| + if (report_proto) { |
| + report_proto->set_reset_request_origin( |
| + ResetRequestOriginFromString(reset_request_origin)); |
| SendSettingsFeedbackProto(*report_proto, profile); |
| + } |
| } |
| } |
| setting_snapshot_.reset(); |
| @@ -192,7 +224,9 @@ void ResetProfileSettingsHandler::OnSettingsFetched() { |
| // The master prefs is fetched. We are waiting for user pressing 'Reset'. |
| } |
| -void ResetProfileSettingsHandler::ResetProfile(bool send_settings) { |
| +void ResetProfileSettingsHandler::ResetProfile( |
| + bool send_settings, |
| + const std::string& reset_request_origin) { |
| DCHECK(resetter_); |
| DCHECK(!resetter_->IsActive()); |
| @@ -212,7 +246,7 @@ void ResetProfileSettingsHandler::ResetProfile(bool send_settings) { |
| resetter_->Reset( |
| ProfileResetter::ALL, std::move(default_settings), |
| base::Bind(&ResetProfileSettingsHandler::OnResetProfileSettingsDone, |
| - AsWeakPtr(), send_settings)); |
| + AsWeakPtr(), send_settings, reset_request_origin)); |
| content::RecordAction(base::UserMetricsAction("ResetProfile")); |
| UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings); |
| } |