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

Side by Side Diff: chrome/browser/ui/webui/settings/reset_settings_handler.cc

Issue 2052003002: MD Settings: Hook up reset_page to new LifetimeBrowserProxy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comment. Created 4 years, 6 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 unified diff | Download patch
OLDNEW
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 17 matching lines...) Expand all
28 #include "content/public/browser/user_metrics.h" 28 #include "content/public/browser/user_metrics.h"
29 #include "content/public/browser/web_ui.h" 29 #include "content/public/browser/web_ui.h"
30 #include "content/public/browser/web_ui_data_source.h" 30 #include "content/public/browser/web_ui_data_source.h"
31 31
32 #if defined(OS_CHROMEOS) 32 #if defined(OS_CHROMEOS)
33 #include "chrome/browser/browser_process.h" 33 #include "chrome/browser/browser_process.h"
34 #include "chrome/browser/browser_process_platform_part.h" 34 #include "chrome/browser/browser_process_platform_part.h"
35 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 35 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
36 #include "chrome/browser/chromeos/reset/metrics.h" 36 #include "chrome/browser/chromeos/reset/metrics.h"
37 #include "chrome/common/pref_names.h" 37 #include "chrome/common/pref_names.h"
38 #include "chromeos/dbus/dbus_thread_manager.h"
39 #include "chromeos/dbus/power_manager_client.h"
40 #include "components/prefs/pref_service.h" 38 #include "components/prefs/pref_service.h"
41 #include "components/user_manager/user_manager.h" 39 #include "components/user_manager/user_manager.h"
42 #endif // defined(OS_CHROMEOS) 40 #endif // defined(OS_CHROMEOS)
43 41
44 #if defined(OS_WIN) 42 #if defined(OS_WIN)
45 #include "chrome/browser/profile_resetter/triggered_profile_resetter.h" 43 #include "chrome/browser/profile_resetter/triggered_profile_resetter.h"
46 #include "chrome/browser/profile_resetter/triggered_profile_resetter_factory.h" 44 #include "chrome/browser/profile_resetter/triggered_profile_resetter_factory.h"
47 #endif // defined(OS_WIN) 45 #endif // defined(OS_WIN)
48 46
49 namespace settings { 47 namespace settings {
50 48
51 ResetSettingsHandler::ResetSettingsHandler( 49 ResetSettingsHandler::ResetSettingsHandler(Profile* profile)
52 Profile* profile, bool allow_powerwash)
53 : profile_(profile), weak_ptr_factory_(this) { 50 : profile_(profile), weak_ptr_factory_(this) {
54 #if defined(OS_CHROMEOS)
55 allow_powerwash_ = allow_powerwash;
56 #endif // defined(OS_CHROMEOS)
57 google_brand::GetBrand(&brandcode_); 51 google_brand::GetBrand(&brandcode_);
58 } 52 }
59 53
60 ResetSettingsHandler::~ResetSettingsHandler() {} 54 ResetSettingsHandler::~ResetSettingsHandler() {}
61 55
62 ResetSettingsHandler* ResetSettingsHandler::Create( 56 ResetSettingsHandler* ResetSettingsHandler::Create(
63 content::WebUIDataSource* html_source, Profile* profile) { 57 content::WebUIDataSource* html_source, Profile* profile) {
58 #if defined(OS_CHROMEOS)
64 bool allow_powerwash = false; 59 bool allow_powerwash = false;
65 #if defined(OS_CHROMEOS)
66 policy::BrowserPolicyConnectorChromeOS* connector = 60 policy::BrowserPolicyConnectorChromeOS* connector =
67 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 61 g_browser_process->platform_part()->browser_policy_connector_chromeos();
68 allow_powerwash = !connector->IsEnterpriseManaged() && 62 allow_powerwash = !connector->IsEnterpriseManaged() &&
69 !user_manager::UserManager::Get()->IsLoggedInAsGuest() && 63 !user_manager::UserManager::Get()->IsLoggedInAsGuest() &&
70 !user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser(); 64 !user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser();
71 html_source->AddBoolean("allowPowerwash", allow_powerwash); 65 html_source->AddBoolean("allowPowerwash", allow_powerwash);
72 #endif // defined(OS_CHROMEOS) 66 #endif // defined(OS_CHROMEOS)
73 67
74 bool show_reset_profile_banner = false; 68 bool show_reset_profile_banner = false;
75 static const int kBannerShowTimeInDays = 5; 69 static const int kBannerShowTimeInDays = 5;
76 const base::Time then = chrome_prefs::GetResetTime(profile); 70 const base::Time then = chrome_prefs::GetResetTime(profile);
77 if (!then.is_null()) { 71 if (!then.is_null()) {
78 show_reset_profile_banner = 72 show_reset_profile_banner =
79 (base::Time::Now() - then).InDays() < kBannerShowTimeInDays; 73 (base::Time::Now() - then).InDays() < kBannerShowTimeInDays;
80 } 74 }
81 html_source->AddBoolean("showResetProfileBanner", show_reset_profile_banner); 75 html_source->AddBoolean("showResetProfileBanner", show_reset_profile_banner);
82 76
83 // Inject |allow_powerwash| for testing. 77 return new ResetSettingsHandler(profile);
84 return new ResetSettingsHandler(profile, allow_powerwash);
85 } 78 }
86 79
87 void ResetSettingsHandler::RegisterMessages() { 80 void ResetSettingsHandler::RegisterMessages() {
88 web_ui()->RegisterMessageCallback("performResetProfileSettings", 81 web_ui()->RegisterMessageCallback("performResetProfileSettings",
89 base::Bind(&ResetSettingsHandler::HandleResetProfileSettings, 82 base::Bind(&ResetSettingsHandler::HandleResetProfileSettings,
90 base::Unretained(this))); 83 base::Unretained(this)));
91 web_ui()->RegisterMessageCallback("onShowResetProfileDialog", 84 web_ui()->RegisterMessageCallback("onShowResetProfileDialog",
92 base::Bind(&ResetSettingsHandler::OnShowResetProfileDialog, 85 base::Bind(&ResetSettingsHandler::OnShowResetProfileDialog,
93 base::Unretained(this))); 86 base::Unretained(this)));
94 web_ui()->RegisterMessageCallback("getReportedSettings", 87 web_ui()->RegisterMessageCallback("getReportedSettings",
95 base::Bind(&ResetSettingsHandler::HandleGetReportedSettings, 88 base::Bind(&ResetSettingsHandler::HandleGetReportedSettings,
96 base::Unretained(this))); 89 base::Unretained(this)));
97 web_ui()->RegisterMessageCallback("onHideResetProfileDialog", 90 web_ui()->RegisterMessageCallback("onHideResetProfileDialog",
98 base::Bind(&ResetSettingsHandler::OnHideResetProfileDialog, 91 base::Bind(&ResetSettingsHandler::OnHideResetProfileDialog,
99 base::Unretained(this))); 92 base::Unretained(this)));
100 web_ui()->RegisterMessageCallback("onHideResetProfileBanner", 93 web_ui()->RegisterMessageCallback("onHideResetProfileBanner",
101 base::Bind(&ResetSettingsHandler::OnHideResetProfileBanner, 94 base::Bind(&ResetSettingsHandler::OnHideResetProfileBanner,
102 base::Unretained(this))); 95 base::Unretained(this)));
103 #if defined(OS_CHROMEOS) 96 #if defined(OS_CHROMEOS)
104 web_ui()->RegisterMessageCallback( 97 web_ui()->RegisterMessageCallback(
105 "onPowerwashDialogShow", 98 "onPowerwashDialogShow",
106 base::Bind(&ResetSettingsHandler::OnShowPowerwashDialog, 99 base::Bind(&ResetSettingsHandler::OnShowPowerwashDialog,
107 base::Unretained(this))); 100 base::Unretained(this)));
108 web_ui()->RegisterMessageCallback(
109 "requestFactoryResetRestart",
110 base::Bind(&ResetSettingsHandler::HandleFactoryResetRestart,
111 base::Unretained(this)));
112 #endif // defined(OS_CHROMEOS) 101 #endif // defined(OS_CHROMEOS)
113 } 102 }
114 103
115 void ResetSettingsHandler::HandleResetProfileSettings( 104 void ResetSettingsHandler::HandleResetProfileSettings(
116 const base::ListValue* args) { 105 const base::ListValue* args) {
117 AllowJavascript(); 106 AllowJavascript();
118 107
119 CHECK_EQ(2U, args->GetSize()); 108 CHECK_EQ(2U, args->GetSize());
120 std::string callback_id; 109 std::string callback_id;
121 CHECK(args->GetString(0, &callback_id)); 110 CHECK(args->GetString(0, &callback_id));
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 } 229 }
241 230
242 #if defined(OS_CHROMEOS) 231 #if defined(OS_CHROMEOS)
243 void ResetSettingsHandler::OnShowPowerwashDialog( 232 void ResetSettingsHandler::OnShowPowerwashDialog(
244 const base::ListValue* args) { 233 const base::ListValue* args) {
245 UMA_HISTOGRAM_ENUMERATION( 234 UMA_HISTOGRAM_ENUMERATION(
246 "Reset.ChromeOS.PowerwashDialogShown", 235 "Reset.ChromeOS.PowerwashDialogShown",
247 chromeos::reset::DIALOG_FROM_OPTIONS, 236 chromeos::reset::DIALOG_FROM_OPTIONS,
248 chromeos::reset::DIALOG_VIEW_TYPE_SIZE); 237 chromeos::reset::DIALOG_VIEW_TYPE_SIZE);
249 } 238 }
250
251 void ResetSettingsHandler::HandleFactoryResetRestart(
252 const base::ListValue* args) {
253 if (!allow_powerwash_)
254 return;
255
256 PrefService* prefs = g_browser_process->local_state();
257 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
258 prefs->CommitPendingWrite();
259
260 // Perform sign out. Current chrome process will then terminate, new one will
261 // be launched (as if it was a restart).
262 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart();
263 }
264 #endif // defined(OS_CHROMEOS) 239 #endif // defined(OS_CHROMEOS)
265 240
266 } // namespace settings 241 } // namespace settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698