OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/options/chromeos/consumer_management_handler.h " | 5 #include "chrome/browser/ui/webui/options/chromeos/consumer_management_handler.h " |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/prefs/pref_service.h" | |
10 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/browser/browser_process.h" | |
13 #include "chrome/browser/chromeos/login/users/user_manager.h" | |
14 #include "chrome/common/pref_names.h" | |
15 #include "chromeos/dbus/dbus_thread_manager.h" | |
16 #include "chromeos/dbus/power_manager_client.h" | |
11 #include "content/public/browser/web_ui.h" | 17 #include "content/public/browser/web_ui.h" |
12 #include "grit/generated_resources.h" | 18 #include "grit/generated_resources.h" |
13 #include "ui/base/l10n/l10n_util.h" | 19 #include "ui/base/l10n/l10n_util.h" |
14 | 20 |
15 namespace chromeos { | 21 namespace chromeos { |
16 namespace options { | 22 namespace options { |
17 | 23 |
18 ConsumerManagementHandler::ConsumerManagementHandler() { | 24 ConsumerManagementHandler::ConsumerManagementHandler() { |
19 } | 25 } |
20 | 26 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
62 web_ui()->RegisterMessageCallback( | 68 web_ui()->RegisterMessageCallback( |
63 "enrollConsumerManagement", | 69 "enrollConsumerManagement", |
64 base::Bind(&ConsumerManagementHandler::HandleEnrollConsumerManagement, | 70 base::Bind(&ConsumerManagementHandler::HandleEnrollConsumerManagement, |
65 base::Unretained(this))); | 71 base::Unretained(this))); |
66 web_ui()->RegisterMessageCallback( | 72 web_ui()->RegisterMessageCallback( |
67 "unenrollConsumerManagement", | 73 "unenrollConsumerManagement", |
68 base::Bind(&ConsumerManagementHandler::HandleUnenrollConsumerManagement, | 74 base::Bind(&ConsumerManagementHandler::HandleUnenrollConsumerManagement, |
69 base::Unretained(this))); | 75 base::Unretained(this))); |
70 } | 76 } |
71 | 77 |
72 void ConsumerManagementHandler::InitializeHandler() { | |
73 // TODO(davidyu): Get the real enrollment status. http://crbug.com/353050. | |
74 SetEnrollmentStatus(false); | |
75 } | |
76 | |
77 void ConsumerManagementHandler::HandleEnrollConsumerManagement( | 78 void ConsumerManagementHandler::HandleEnrollConsumerManagement( |
78 const base::ListValue* args) { | 79 const base::ListValue* args) { |
79 StartEnrollment(); | 80 UserManager* user_manager = chromeos::UserManager::Get(); |
80 SetEnrollmentStatus(true); | 81 if (!user_manager) { |
bartfab (slow)
2014/07/23 19:27:13
Nit: Just like the other singletons, the UserManag
davidyu
2014/07/24 04:28:30
Hmm... the comment of UserManager::Get() is a litt
bartfab (slow)
2014/07/24 11:54:53
The UserManager might not exist in three cases:
*
| |
82 LOG(ERROR) << "UserManager is not available."; | |
83 return; | |
84 } | |
85 if (!user_manager->IsCurrentUserOwner()) { | |
86 LOG(ERROR) << "Received enrollConsumerManagement, but the current user is " | |
87 << "not the owner."; | |
88 return; | |
89 } | |
90 | |
91 PrefService* prefs = g_browser_process->local_state(); | |
92 prefs->SetBoolean(prefs::kConsumerManagementEnrollmentRequested, true); | |
93 prefs->CommitPendingWrite(); | |
94 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | |
81 } | 95 } |
82 | 96 |
83 void ConsumerManagementHandler::HandleUnenrollConsumerManagement( | 97 void ConsumerManagementHandler::HandleUnenrollConsumerManagement( |
84 const base::ListValue* args) { | 98 const base::ListValue* args) { |
85 StartUnenrollment(); | |
86 SetEnrollmentStatus(false); | |
87 } | |
88 | |
89 void ConsumerManagementHandler::StartEnrollment() { | |
90 NOTIMPLEMENTED(); | 99 NOTIMPLEMENTED(); |
91 } | 100 } |
92 | 101 |
93 void ConsumerManagementHandler::StartUnenrollment() { | |
94 NOTIMPLEMENTED(); | |
95 } | |
96 | |
97 void ConsumerManagementHandler::SetEnrollmentStatus( | |
98 bool is_enrolled) { | |
99 base::FundamentalValue is_enrolled_value(is_enrolled); | |
100 web_ui()->CallJavascriptFunction( | |
101 "BrowserOptions.setConsumerManagementEnrollmentStatus", | |
102 is_enrolled_value); | |
103 } | |
104 | |
105 } // namespace options | 102 } // namespace options |
106 } // namespace chromeos | 103 } // namespace chromeos |
OLD | NEW |