| 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 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 | 132 |
| 133 void ResetSettingsHandler::OnResetProfileSettingsDone( | 133 void ResetSettingsHandler::OnResetProfileSettingsDone( |
| 134 std::string callback_id, bool send_feedback) { | 134 std::string callback_id, bool send_feedback) { |
| 135 ResolveJavascriptCallback( | 135 ResolveJavascriptCallback( |
| 136 base::StringValue(callback_id), *base::Value::CreateNullValue()); | 136 base::StringValue(callback_id), *base::Value::CreateNullValue()); |
| 137 if (send_feedback && setting_snapshot_) { | 137 if (send_feedback && setting_snapshot_) { |
| 138 ResettableSettingsSnapshot current_snapshot(profile_); | 138 ResettableSettingsSnapshot current_snapshot(profile_); |
| 139 int difference = setting_snapshot_->FindDifferentFields(current_snapshot); | 139 int difference = setting_snapshot_->FindDifferentFields(current_snapshot); |
| 140 if (difference) { | 140 if (difference) { |
| 141 setting_snapshot_->Subtract(current_snapshot); | 141 setting_snapshot_->Subtract(current_snapshot); |
| 142 scoped_ptr<reset_report::ChromeResetReport> report_proto = | 142 std::unique_ptr<reset_report::ChromeResetReport> report_proto = |
| 143 SerializeSettingsReportToProto(*setting_snapshot_, difference); | 143 SerializeSettingsReportToProto(*setting_snapshot_, difference); |
| 144 if (report_proto) | 144 if (report_proto) |
| 145 SendSettingsFeedbackProto(*report_proto, profile_); | 145 SendSettingsFeedbackProto(*report_proto, profile_); |
| 146 } | 146 } |
| 147 } | 147 } |
| 148 setting_snapshot_.reset(); | 148 setting_snapshot_.reset(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 void ResetSettingsHandler::OnShowResetProfileDialog( | 151 void ResetSettingsHandler::OnShowResetProfileDialog( |
| 152 const base::ListValue* args) { | 152 const base::ListValue* args) { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 181 void ResetSettingsHandler::OnSettingsFetched() { | 181 void ResetSettingsHandler::OnSettingsFetched() { |
| 182 DCHECK(config_fetcher_); | 182 DCHECK(config_fetcher_); |
| 183 DCHECK(!config_fetcher_->IsActive()); | 183 DCHECK(!config_fetcher_->IsActive()); |
| 184 // The master prefs is fetched. We are waiting for user pressing 'Reset'. | 184 // The master prefs is fetched. We are waiting for user pressing 'Reset'. |
| 185 } | 185 } |
| 186 | 186 |
| 187 void ResetSettingsHandler::ResetProfile(std::string callback_id, | 187 void ResetSettingsHandler::ResetProfile(std::string callback_id, |
| 188 bool send_settings) { | 188 bool send_settings) { |
| 189 DCHECK(!GetResetter()->IsActive()); | 189 DCHECK(!GetResetter()->IsActive()); |
| 190 | 190 |
| 191 scoped_ptr<BrandcodedDefaultSettings> default_settings; | 191 std::unique_ptr<BrandcodedDefaultSettings> default_settings; |
| 192 if (config_fetcher_) { | 192 if (config_fetcher_) { |
| 193 DCHECK(!config_fetcher_->IsActive()); | 193 DCHECK(!config_fetcher_->IsActive()); |
| 194 default_settings = config_fetcher_->GetSettings(); | 194 default_settings = config_fetcher_->GetSettings(); |
| 195 config_fetcher_.reset(); | 195 config_fetcher_.reset(); |
| 196 } else { | 196 } else { |
| 197 DCHECK(brandcode_.empty()); | 197 DCHECK(brandcode_.empty()); |
| 198 } | 198 } |
| 199 | 199 |
| 200 // If failed to fetch BrandcodedDefaultSettings or this is an organic | 200 // If failed to fetch BrandcodedDefaultSettings or this is an organic |
| 201 // installation, use default settings. | 201 // installation, use default settings. |
| 202 if (!default_settings) | 202 if (!default_settings) |
| 203 default_settings.reset(new BrandcodedDefaultSettings); | 203 default_settings.reset(new BrandcodedDefaultSettings); |
| 204 | 204 |
| 205 GetResetter()->Reset( | 205 GetResetter()->Reset( |
| 206 ProfileResetter::ALL, std::move(default_settings), | 206 ProfileResetter::ALL, std::move(default_settings), |
| 207 base::Bind(&ResetSettingsHandler::OnResetProfileSettingsDone, | 207 base::Bind(&ResetSettingsHandler::OnResetProfileSettingsDone, |
| 208 weak_ptr_factory_.GetWeakPtr(), | 208 weak_ptr_factory_.GetWeakPtr(), |
| 209 callback_id, | 209 callback_id, |
| 210 send_settings)); | 210 send_settings)); |
| 211 content::RecordAction(base::UserMetricsAction("ResetProfile")); | 211 content::RecordAction(base::UserMetricsAction("ResetProfile")); |
| 212 UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings); | 212 UMA_HISTOGRAM_BOOLEAN("ProfileReset.SendFeedback", send_settings); |
| 213 } | 213 } |
| 214 | 214 |
| 215 void ResetSettingsHandler::UpdateFeedbackUI() { | 215 void ResetSettingsHandler::UpdateFeedbackUI() { |
| 216 if (!setting_snapshot_) | 216 if (!setting_snapshot_) |
| 217 return; | 217 return; |
| 218 scoped_ptr<base::ListValue> list = GetReadableFeedbackForSnapshot( | 218 std::unique_ptr<base::ListValue> list = |
| 219 profile_, *setting_snapshot_); | 219 GetReadableFeedbackForSnapshot(profile_, *setting_snapshot_); |
| 220 web_ui()->CallJavascriptFunction("cr.webUIListenerCallback", | 220 web_ui()->CallJavascriptFunction("cr.webUIListenerCallback", |
| 221 base::StringValue("feedback-info-changed"), | 221 base::StringValue("feedback-info-changed"), |
| 222 *list.release()); | 222 *list.release()); |
| 223 } | 223 } |
| 224 | 224 |
| 225 ProfileResetter* ResetSettingsHandler::GetResetter() { | 225 ProfileResetter* ResetSettingsHandler::GetResetter() { |
| 226 if (!resetter_) | 226 if (!resetter_) |
| 227 resetter_.reset(new ProfileResetter(profile_)); | 227 resetter_.reset(new ProfileResetter(profile_)); |
| 228 return resetter_.get(); | 228 return resetter_.get(); |
| 229 } | 229 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 246 prefs->SetBoolean(prefs::kFactoryResetRequested, true); | 246 prefs->SetBoolean(prefs::kFactoryResetRequested, true); |
| 247 prefs->CommitPendingWrite(); | 247 prefs->CommitPendingWrite(); |
| 248 | 248 |
| 249 // Perform sign out. Current chrome process will then terminate, new one will | 249 // Perform sign out. Current chrome process will then terminate, new one will |
| 250 // be launched (as if it was a restart). | 250 // be launched (as if it was a restart). |
| 251 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 251 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
| 252 } | 252 } |
| 253 #endif // defined(OS_CHROMEOS) | 253 #endif // defined(OS_CHROMEOS) |
| 254 | 254 |
| 255 } // namespace settings | 255 } // namespace settings |
| OLD | NEW |