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

Unified Diff: chrome/browser/ui/webui/settings/reset_settings_handler.cc

Issue 2411383003: md-settings: add reset request origin to reset feedback proto. (Closed)
Patch Set: Addressed dbeam@'s comments Created 4 years, 2 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/settings/reset_settings_handler.cc
diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
index 5b22720cc10c9466ebabb65ef03eef35872ff366..25d97412e1063e17779e18dc477775b5b219a1f1 100644
--- a/chrome/browser/ui/webui/settings/reset_settings_handler.cc
+++ b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
@@ -17,7 +17,6 @@
#include "chrome/browser/prefs/chrome_pref_service_factory.h"
#include "chrome/browser/profile_resetter/brandcode_config_fetcher.h"
#include "chrome/browser/profile_resetter/brandcoded_default_settings.h"
-#include "chrome/browser/profile_resetter/profile_reset_report.pb.h"
#include "chrome/browser/profile_resetter/profile_resetter.h"
#include "chrome/browser/profile_resetter/resettable_settings_snapshot.h"
#include "chrome/browser/profiles/profile.h"
@@ -45,6 +44,31 @@
namespace settings {
+namespace {
+
+reset_report::ChromeResetReport::ResetRequestOrigin
+ResetRequestOriginFromString(const std::string& request_origin) {
+ static const char kOriginUserClick[] = "userclick";
+ static const char kOriginTriggeredReset[] = "triggeredreset";
+
+ if (request_origin == ResetSettingsHandler::kCctResetSettingsHash)
+ return reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_CCT;
+ if (request_origin == kOriginUserClick)
+ return reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_USER_CLICK;
+ if (request_origin == kOriginTriggeredReset) {
+ return reset_report::ChromeResetReport::
+ RESET_REQUEST_ORIGIN_TRIGGERED_RESET;
+ }
+ if (!request_origin.empty())
+ NOTREACHED();
+
+ return reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_UNKNOWN;
+}
+
+} // namespace
+
+const char ResetSettingsHandler::kCctResetSettingsHash[] = "cct";
+
ResetSettingsHandler::ResetSettingsHandler(Profile* profile)
: profile_(profile), weak_ptr_factory_(this) {
google_brand::GetBrand(&brandcode_);
@@ -108,27 +132,31 @@ void ResetSettingsHandler::HandleResetProfileSettings(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(3U, args->GetSize());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
bool send_settings = false;
CHECK(args->GetBoolean(1, &send_settings));
+ std::string request_origin_string;
+ CHECK(args->GetString(2, &request_origin_string));
+ reset_report::ChromeResetReport::ResetRequestOrigin request_origin =
+ ResetRequestOriginFromString(request_origin_string);
DCHECK(brandcode_.empty() || config_fetcher_);
if (config_fetcher_ && config_fetcher_->IsActive()) {
// Reset once the prefs are fetched.
- config_fetcher_->SetCallback(
- base::Bind(&ResetSettingsHandler::ResetProfile,
- base::Unretained(this),
- callback_id,
- send_settings));
+ config_fetcher_->SetCallback(base::Bind(&ResetSettingsHandler::ResetProfile,
+ base::Unretained(this), callback_id,
+ send_settings, request_origin));
} else {
- ResetProfile(callback_id, send_settings);
+ ResetProfile(callback_id, send_settings, request_origin);
}
}
void ResetSettingsHandler::OnResetProfileSettingsDone(
- std::string callback_id, bool send_feedback) {
+ std::string callback_id,
+ bool send_feedback,
+ reset_report::ChromeResetReport::ResetRequestOrigin request_origin) {
ResolveJavascriptCallback(
base::StringValue(callback_id), *base::Value::CreateNullValue());
if (send_feedback && setting_snapshot_) {
@@ -139,13 +167,7 @@ void ResetSettingsHandler::OnResetProfileSettingsDone(
std::unique_ptr<reset_report::ChromeResetReport> report_proto =
SerializeSettingsReportToProto(*setting_snapshot_, difference);
if (report_proto) {
- // The material design version of the settings page currently does not
- // expose the alternative ways, made available by the old settings page,
- // to get to the reset settings dialog. Until those are available, we
- // can assume that all reset requests came directly from user
- // navigation.
- report_proto->set_reset_request_origin(
- reset_report::ChromeResetReport::RESET_REQUEST_ORIGIN_USER_CLICK);
+ report_proto->set_reset_request_origin(request_origin);
SendSettingsFeedbackProto(*report_proto, profile_);
}
}
@@ -205,8 +227,10 @@ void ResetSettingsHandler::OnSettingsFetched() {
// The master prefs is fetched. We are waiting for user pressing 'Reset'.
}
-void ResetSettingsHandler::ResetProfile(std::string callback_id,
- bool send_settings) {
+void ResetSettingsHandler::ResetProfile(
+ const std::string& callback_id,
+ bool send_settings,
+ reset_report::ChromeResetReport::ResetRequestOrigin request_origin) {
DCHECK(!GetResetter()->IsActive());
std::unique_ptr<BrandcodedDefaultSettings> default_settings;
@@ -226,9 +250,8 @@ void ResetSettingsHandler::ResetProfile(std::string callback_id,
GetResetter()->Reset(
ProfileResetter::ALL, std::move(default_settings),
base::Bind(&ResetSettingsHandler::OnResetProfileSettingsDone,
- weak_ptr_factory_.GetWeakPtr(),
- callback_id,
- send_settings));
+ weak_ptr_factory_.GetWeakPtr(), callback_id, send_settings,
+ request_origin));
content::RecordAction(base::UserMetricsAction("ResetProfile"));
UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings);
}

Powered by Google App Engine
This is Rietveld 408576698