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" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 84 return new ResetSettingsHandler(profile, allow_powerwash); | 84 return new ResetSettingsHandler(profile, allow_powerwash); |
| 85 } | 85 } |
| 86 | 86 |
| 87 void ResetSettingsHandler::RegisterMessages() { | 87 void ResetSettingsHandler::RegisterMessages() { |
| 88 web_ui()->RegisterMessageCallback("performResetProfileSettings", | 88 web_ui()->RegisterMessageCallback("performResetProfileSettings", |
| 89 base::Bind(&ResetSettingsHandler::HandleResetProfileSettings, | 89 base::Bind(&ResetSettingsHandler::HandleResetProfileSettings, |
| 90 base::Unretained(this))); | 90 base::Unretained(this))); |
| 91 web_ui()->RegisterMessageCallback("onShowResetProfileDialog", | 91 web_ui()->RegisterMessageCallback("onShowResetProfileDialog", |
| 92 base::Bind(&ResetSettingsHandler::OnShowResetProfileDialog, | 92 base::Bind(&ResetSettingsHandler::OnShowResetProfileDialog, |
| 93 base::Unretained(this))); | 93 base::Unretained(this))); |
| 94 web_ui()->RegisterMessageCallback("getReportedSettings", | |
| 95 base::Bind(&ResetSettingsHandler::HandleGetReportedSettings, | |
| 96 base::Unretained(this))); | |
| 94 web_ui()->RegisterMessageCallback("onHideResetProfileDialog", | 97 web_ui()->RegisterMessageCallback("onHideResetProfileDialog", |
| 95 base::Bind(&ResetSettingsHandler::OnHideResetProfileDialog, | 98 base::Bind(&ResetSettingsHandler::OnHideResetProfileDialog, |
| 96 base::Unretained(this))); | 99 base::Unretained(this))); |
| 97 web_ui()->RegisterMessageCallback("onHideResetProfileBanner", | 100 web_ui()->RegisterMessageCallback("onHideResetProfileBanner", |
| 98 base::Bind(&ResetSettingsHandler::OnHideResetProfileBanner, | 101 base::Bind(&ResetSettingsHandler::OnHideResetProfileBanner, |
| 99 base::Unretained(this))); | 102 base::Unretained(this))); |
| 100 #if defined(OS_CHROMEOS) | 103 #if defined(OS_CHROMEOS) |
| 101 web_ui()->RegisterMessageCallback( | 104 web_ui()->RegisterMessageCallback( |
| 102 "onPowerwashDialogShow", | 105 "onPowerwashDialogShow", |
| 103 base::Bind(&ResetSettingsHandler::OnShowPowerwashDialog, | 106 base::Bind(&ResetSettingsHandler::OnShowPowerwashDialog, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 141 setting_snapshot_->Subtract(current_snapshot); | 144 setting_snapshot_->Subtract(current_snapshot); |
| 142 std::unique_ptr<reset_report::ChromeResetReport> report_proto = | 145 std::unique_ptr<reset_report::ChromeResetReport> report_proto = |
| 143 SerializeSettingsReportToProto(*setting_snapshot_, difference); | 146 SerializeSettingsReportToProto(*setting_snapshot_, difference); |
| 144 if (report_proto) | 147 if (report_proto) |
| 145 SendSettingsFeedbackProto(*report_proto, profile_); | 148 SendSettingsFeedbackProto(*report_proto, profile_); |
| 146 } | 149 } |
| 147 } | 150 } |
| 148 setting_snapshot_.reset(); | 151 setting_snapshot_.reset(); |
| 149 } | 152 } |
| 150 | 153 |
| 154 void ResetSettingsHandler::HandleGetReportedSettings( | |
| 155 const base::ListValue* args) { | |
| 156 CHECK_EQ(1U, args->GetSize()); | |
| 157 std::string callback_id; | |
| 158 CHECK(args->GetString(0, &callback_id)); | |
| 159 | |
| 160 setting_snapshot_->RequestShortcuts(base::Bind( | |
|
tommycli
2016/04/20 23:23:18
Since all two callers of ResettableSettingsSnapsho
dpapad
2016/04/21 00:27:10
Acknowledged.
| |
| 161 &ResetSettingsHandler::OnGetReportedSettingsDone, | |
| 162 weak_ptr_factory_.GetWeakPtr(), | |
| 163 callback_id)); | |
| 164 } | |
| 165 | |
| 166 void ResetSettingsHandler::OnGetReportedSettingsDone(std::string callback_id) { | |
| 167 std::unique_ptr<base::ListValue> list = | |
| 168 GetReadableFeedbackForSnapshot(profile_, *setting_snapshot_); | |
| 169 ResolveJavascriptCallback(base::StringValue(callback_id), *list); | |
| 170 } | |
| 171 | |
| 151 void ResetSettingsHandler::OnShowResetProfileDialog( | 172 void ResetSettingsHandler::OnShowResetProfileDialog( |
| 152 const base::ListValue* args) { | 173 const base::ListValue* args) { |
| 153 if (!GetResetter()->IsActive()) { | 174 if (!GetResetter()->IsActive()) { |
| 154 setting_snapshot_.reset(new ResettableSettingsSnapshot(profile_)); | 175 setting_snapshot_.reset(new ResettableSettingsSnapshot(profile_)); |
| 155 setting_snapshot_->RequestShortcuts(base::Bind( | |
| 156 &ResetSettingsHandler::UpdateFeedbackUI, | |
| 157 weak_ptr_factory_.GetWeakPtr())); | |
| 158 UpdateFeedbackUI(); | |
| 159 } | 176 } |
| 160 | 177 |
| 161 if (brandcode_.empty()) | 178 if (brandcode_.empty()) |
| 162 return; | 179 return; |
| 163 config_fetcher_.reset(new BrandcodeConfigFetcher( | 180 config_fetcher_.reset(new BrandcodeConfigFetcher( |
| 164 base::Bind(&ResetSettingsHandler::OnSettingsFetched, | 181 base::Bind(&ResetSettingsHandler::OnSettingsFetched, |
| 165 base::Unretained(this)), | 182 base::Unretained(this)), |
| 166 GURL("https://tools.google.com/service/update2"), | 183 GURL("https://tools.google.com/service/update2"), |
| 167 brandcode_)); | 184 brandcode_)); |
| 168 } | 185 } |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 205 GetResetter()->Reset( | 222 GetResetter()->Reset( |
| 206 ProfileResetter::ALL, std::move(default_settings), | 223 ProfileResetter::ALL, std::move(default_settings), |
| 207 base::Bind(&ResetSettingsHandler::OnResetProfileSettingsDone, | 224 base::Bind(&ResetSettingsHandler::OnResetProfileSettingsDone, |
| 208 weak_ptr_factory_.GetWeakPtr(), | 225 weak_ptr_factory_.GetWeakPtr(), |
| 209 callback_id, | 226 callback_id, |
| 210 send_settings)); | 227 send_settings)); |
| 211 content::RecordAction(base::UserMetricsAction("ResetProfile")); | 228 content::RecordAction(base::UserMetricsAction("ResetProfile")); |
| 212 UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings); | 229 UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings); |
| 213 } | 230 } |
| 214 | 231 |
| 215 void ResetSettingsHandler::UpdateFeedbackUI() { | |
| 216 if (!setting_snapshot_) | |
| 217 return; | |
| 218 std::unique_ptr<base::ListValue> list = | |
| 219 GetReadableFeedbackForSnapshot(profile_, *setting_snapshot_); | |
| 220 web_ui()->CallJavascriptFunction("cr.webUIListenerCallback", | |
| 221 base::StringValue("feedback-info-changed"), | |
| 222 *list.release()); | |
| 223 } | |
| 224 | |
| 225 ProfileResetter* ResetSettingsHandler::GetResetter() { | 232 ProfileResetter* ResetSettingsHandler::GetResetter() { |
| 226 if (!resetter_) | 233 if (!resetter_) |
| 227 resetter_.reset(new ProfileResetter(profile_)); | 234 resetter_.reset(new ProfileResetter(profile_)); |
| 228 return resetter_.get(); | 235 return resetter_.get(); |
| 229 } | 236 } |
| 230 | 237 |
| 231 #if defined(OS_CHROMEOS) | 238 #if defined(OS_CHROMEOS) |
| 232 void ResetSettingsHandler::OnShowPowerwashDialog( | 239 void ResetSettingsHandler::OnShowPowerwashDialog( |
| 233 const base::ListValue* args) { | 240 const base::ListValue* args) { |
| 234 UMA_HISTOGRAM_ENUMERATION( | 241 UMA_HISTOGRAM_ENUMERATION( |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 246 prefs->SetBoolean(prefs::kFactoryResetRequested, true); | 253 prefs->SetBoolean(prefs::kFactoryResetRequested, true); |
| 247 prefs->CommitPendingWrite(); | 254 prefs->CommitPendingWrite(); |
| 248 | 255 |
| 249 // Perform sign out. Current chrome process will then terminate, new one will | 256 // Perform sign out. Current chrome process will then terminate, new one will |
| 250 // be launched (as if it was a restart). | 257 // be launched (as if it was a restart). |
| 251 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 258 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
| 252 } | 259 } |
| 253 #endif // defined(OS_CHROMEOS) | 260 #endif // defined(OS_CHROMEOS) |
| 254 | 261 |
| 255 } // namespace settings | 262 } // namespace settings |
| OLD | NEW |