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 |