Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/settings/reset_settings_handler.h" | 5 #include "chrome/browser/ui/webui/settings/reset_settings_handler.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| 11 #include "base/metrics/histogram_macros.h" | 11 #include "base/metrics/histogram_macros.h" |
| 12 #include "base/strings/string16.h" | 12 #include "base/strings/string16.h" |
| 13 #include "base/time/time.h" | 13 #include "base/time/time.h" |
| 14 #include "base/values.h" | 14 #include "base/values.h" |
| 15 #include "build/build_config.h" | 15 #include "build/build_config.h" |
| 16 #include "chrome/browser/google/google_brand.h" | 16 #include "chrome/browser/google/google_brand.h" |
| 17 #include "chrome/browser/prefs/chrome_pref_service_factory.h" | 17 #include "chrome/browser/prefs/chrome_pref_service_factory.h" |
| 18 #include "chrome/browser/profile_resetter/brandcode_config_fetcher.h" | 18 #include "chrome/browser/profile_resetter/brandcode_config_fetcher.h" |
| 19 #include "chrome/browser/profile_resetter/brandcoded_default_settings.h" | 19 #include "chrome/browser/profile_resetter/brandcoded_default_settings.h" |
| 20 #include "chrome/browser/profile_resetter/profile_reset_report.pb.h" | 20 #include "chrome/browser/profile_resetter/profile_reset_report.pb.h" |
| 21 #include "chrome/browser/profile_resetter/profile_resetter.h" | 21 #include "chrome/browser/profile_resetter/profile_resetter.h" |
| 22 #include "chrome/browser/profile_resetter/resettable_settings_snapshot.h" | 22 #include "chrome/browser/profile_resetter/resettable_settings_snapshot.h" |
| 23 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
| 24 #include "chrome/common/url_constants.h" | 24 #include "chrome/common/url_constants.h" |
| 25 #include "chrome/grit/generated_resources.h" | |
| 25 #include "components/prefs/pref_service.h" | 26 #include "components/prefs/pref_service.h" |
| 26 #include "content/public/browser/user_metrics.h" | 27 #include "content/public/browser/user_metrics.h" |
| 27 #include "content/public/browser/web_ui.h" | 28 #include "content/public/browser/web_ui.h" |
| 28 #include "content/public/browser/web_ui_data_source.h" | 29 #include "content/public/browser/web_ui_data_source.h" |
| 30 #include "ui/base/l10n/l10n_util.h" | |
| 29 | 31 |
| 30 #if defined(OS_CHROMEOS) | 32 #if defined(OS_CHROMEOS) |
| 31 #include "chrome/browser/browser_process.h" | 33 #include "chrome/browser/browser_process.h" |
| 32 #include "chrome/browser/browser_process_platform_part.h" | 34 #include "chrome/browser/browser_process_platform_part.h" |
| 33 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 35 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 34 #include "chrome/browser/chromeos/reset/metrics.h" | 36 #include "chrome/browser/chromeos/reset/metrics.h" |
| 35 #include "chrome/common/pref_names.h" | 37 #include "chrome/common/pref_names.h" |
| 36 #include "components/user_manager/user_manager.h" | 38 #include "components/user_manager/user_manager.h" |
| 37 #endif // defined(OS_CHROMEOS) | 39 #endif // defined(OS_CHROMEOS) |
| 38 | 40 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 83 base::Unretained(this))); | 85 base::Unretained(this))); |
| 84 web_ui()->RegisterMessageCallback("getReportedSettings", | 86 web_ui()->RegisterMessageCallback("getReportedSettings", |
| 85 base::Bind(&ResetSettingsHandler::HandleGetReportedSettings, | 87 base::Bind(&ResetSettingsHandler::HandleGetReportedSettings, |
| 86 base::Unretained(this))); | 88 base::Unretained(this))); |
| 87 web_ui()->RegisterMessageCallback("onHideResetProfileDialog", | 89 web_ui()->RegisterMessageCallback("onHideResetProfileDialog", |
| 88 base::Bind(&ResetSettingsHandler::OnHideResetProfileDialog, | 90 base::Bind(&ResetSettingsHandler::OnHideResetProfileDialog, |
| 89 base::Unretained(this))); | 91 base::Unretained(this))); |
| 90 web_ui()->RegisterMessageCallback("onHideResetProfileBanner", | 92 web_ui()->RegisterMessageCallback("onHideResetProfileBanner", |
| 91 base::Bind(&ResetSettingsHandler::OnHideResetProfileBanner, | 93 base::Bind(&ResetSettingsHandler::OnHideResetProfileBanner, |
| 92 base::Unretained(this))); | 94 base::Unretained(this))); |
| 95 web_ui()->RegisterMessageCallback( | |
| 96 "getTriggeredResetToolName", | |
| 97 base::Bind(&ResetSettingsHandler::HandleGetTriggeredResetToolName, | |
| 98 base::Unretained(this))); | |
| 93 #if defined(OS_CHROMEOS) | 99 #if defined(OS_CHROMEOS) |
| 94 web_ui()->RegisterMessageCallback( | 100 web_ui()->RegisterMessageCallback( |
| 95 "onPowerwashDialogShow", | 101 "onPowerwashDialogShow", |
| 96 base::Bind(&ResetSettingsHandler::OnShowPowerwashDialog, | 102 base::Bind(&ResetSettingsHandler::OnShowPowerwashDialog, |
| 97 base::Unretained(this))); | 103 base::Unretained(this))); |
| 98 #endif // defined(OS_CHROMEOS) | 104 #endif // defined(OS_CHROMEOS) |
| 99 } | 105 } |
| 100 | 106 |
| 101 void ResetSettingsHandler::HandleResetProfileSettings( | 107 void ResetSettingsHandler::HandleResetProfileSettings( |
| 102 const base::ListValue* args) { | 108 const base::ListValue* args) { |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 226 content::RecordAction(base::UserMetricsAction("ResetProfile")); | 232 content::RecordAction(base::UserMetricsAction("ResetProfile")); |
| 227 UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings); | 233 UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings); |
| 228 } | 234 } |
| 229 | 235 |
| 230 ProfileResetter* ResetSettingsHandler::GetResetter() { | 236 ProfileResetter* ResetSettingsHandler::GetResetter() { |
| 231 if (!resetter_) | 237 if (!resetter_) |
| 232 resetter_.reset(new ProfileResetter(profile_)); | 238 resetter_.reset(new ProfileResetter(profile_)); |
| 233 return resetter_.get(); | 239 return resetter_.get(); |
| 234 } | 240 } |
| 235 | 241 |
| 242 void ResetSettingsHandler::HandleGetTriggeredResetToolName( | |
| 243 const base::ListValue* args) { | |
| 244 AllowJavascript(); | |
| 245 | |
| 246 CHECK_EQ(1U, args->GetSize()); | |
| 247 std::string callback_id; | |
| 248 CHECK(args->GetString(0, &callback_id)); | |
|
Dan Beam
2016/09/28 01:40:09
instead of getting this as a string and then makin
alito
2016/09/28 04:27:29
Done.
| |
| 249 | |
| 250 // Set up the localized strings for the triggered profile reset dialog. | |
| 251 // Custom reset tool names are supported on Windows only. | |
| 252 base::string16 reset_tool_name; | |
| 253 #if defined(OS_WIN) | |
| 254 Profile* profile = Profile::FromWebUI(web_ui()); | |
| 255 TriggeredProfileResetter* triggered_profile_resetter = | |
| 256 TriggeredProfileResetterFactory::GetForBrowserContext(profile); | |
| 257 // TriggeredProfileResetter instance will be nullptr for incognito profiles. | |
| 258 if (triggered_profile_resetter) { | |
| 259 reset_tool_name = triggered_profile_resetter->GetResetToolName(); | |
| 260 | |
| 261 // Now that a reset UI has been shown, don't trigger again for this profile. | |
| 262 triggered_profile_resetter->ClearResetTrigger(); | |
| 263 } | |
| 264 #endif // defined(OS_WIN) | |
| 265 | |
| 266 if (reset_tool_name.empty()) { | |
| 267 reset_tool_name = l10n_util::GetStringUTF16( | |
| 268 IDS_TRIGGERED_RESET_PROFILE_SETTINGS_DEFAULT_TOOL_NAME); | |
| 269 } | |
| 270 | |
| 271 base::StringValue string_value(reset_tool_name); | |
| 272 ResolveJavascriptCallback(base::StringValue(callback_id), string_value); | |
| 273 } | |
| 274 | |
| 236 #if defined(OS_CHROMEOS) | 275 #if defined(OS_CHROMEOS) |
| 237 void ResetSettingsHandler::OnShowPowerwashDialog( | 276 void ResetSettingsHandler::OnShowPowerwashDialog( |
| 238 const base::ListValue* args) { | 277 const base::ListValue* args) { |
| 239 UMA_HISTOGRAM_ENUMERATION( | 278 UMA_HISTOGRAM_ENUMERATION( |
| 240 "Reset.ChromeOS.PowerwashDialogShown", | 279 "Reset.ChromeOS.PowerwashDialogShown", |
| 241 chromeos::reset::DIALOG_FROM_OPTIONS, | 280 chromeos::reset::DIALOG_FROM_OPTIONS, |
| 242 chromeos::reset::DIALOG_VIEW_TYPE_SIZE); | 281 chromeos::reset::DIALOG_VIEW_TYPE_SIZE); |
| 243 } | 282 } |
| 244 #endif // defined(OS_CHROMEOS) | 283 #endif // defined(OS_CHROMEOS) |
| 245 | 284 |
| 246 } // namespace settings | 285 } // namespace settings |
| OLD | NEW |