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

Side by Side Diff: chrome/browser/policy/browser_policy_connector.cc

Issue 8872032: Added the AutoEnrollmentClient and unit tests for it. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use callback instead of Delegate, using InSequence, renamed switches, cleanups Created 9 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/policy/browser_policy_connector.h" 5 #include "chrome/browser/policy/browser_policy_connector.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 61
62 #if defined(OS_CHROMEOS) 62 #if defined(OS_CHROMEOS)
63 // MachineInfo key names. 63 // MachineInfo key names.
64 const char kMachineInfoSystemHwqual[] = "hardware_class"; 64 const char kMachineInfoSystemHwqual[] = "hardware_class";
65 65
66 // These are the machine serial number keys that we check in order until we 66 // These are the machine serial number keys that we check in order until we
67 // find a non-empty serial number. The VPD spec says the serial number should be 67 // find a non-empty serial number. The VPD spec says the serial number should be
68 // in the "serial_number" key for v2+ VPDs. However, we cannot check this first, 68 // in the "serial_number" key for v2+ VPDs. However, we cannot check this first,
69 // since we'd get the "serial_number" value from the SMBIOS (yes, there's a name 69 // since we'd get the "serial_number" value from the SMBIOS (yes, there's a name
70 // clash here!), which is different from the serial number we want and not 70 // clash here!), which is different from the serial number we want and not
71 // actually per-device. So, we check the the legacy keys first. If we find a 71 // actually per-device. So, we check the legacy keys first. If we find a
72 // serial number for these, we use it, otherwise we must be on a newer device 72 // serial number for these, we use it, otherwise we must be on a newer device
73 // that provides the correct data in "serial_number". 73 // that provides the correct data in "serial_number".
74 const char* kMachineInfoSerialNumberKeys[] = { 74 const char* kMachineInfoSerialNumberKeys[] = {
75 "sn", // ZGB 75 "sn", // ZGB
76 "Product_S/N", // Alex 76 "Product_S/N", // Alex
77 "Product_SN", // Mario 77 "Product_SN", // Mario
78 "serial_number" // VPD v2+ devices 78 "serial_number" // VPD v2+ devices
79 }; 79 };
80 #endif 80 #endif
81 81
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 } 147 }
148 148
149 void BrowserPolicyConnector::RegisterForDevicePolicy( 149 void BrowserPolicyConnector::RegisterForDevicePolicy(
150 const std::string& owner_email, 150 const std::string& owner_email,
151 const std::string& token, 151 const std::string& token,
152 TokenType token_type) { 152 TokenType token_type) {
153 #if defined(OS_CHROMEOS) 153 #if defined(OS_CHROMEOS)
154 if (device_data_store_.get()) { 154 if (device_data_store_.get()) {
155 if (device_data_store_->machine_id().empty() || 155 if (device_data_store_->machine_id().empty() ||
156 device_data_store_->machine_model().empty()) { 156 device_data_store_->machine_model().empty()) {
157 std::string machine_id;
158 std::string machine_model;
159 chromeos::system::StatisticsProvider* provider = 157 chromeos::system::StatisticsProvider* provider =
160 chromeos::system::StatisticsProvider::GetInstance(); 158 chromeos::system::StatisticsProvider::GetInstance();
159
160 std::string machine_model;
161 if (!provider->GetMachineStatistic(kMachineInfoSystemHwqual, 161 if (!provider->GetMachineStatistic(kMachineInfoSystemHwqual,
162 &machine_model)) { 162 &machine_model)) {
163 LOG(ERROR) << "Failed to get machine model."; 163 LOG(ERROR) << "Failed to get machine model.";
164 } 164 }
165 for (size_t i = 0; i < arraysize(kMachineInfoSerialNumberKeys); i++) {
166 if (provider->GetMachineStatistic(kMachineInfoSerialNumberKeys[i],
167 &machine_id) &&
168 !machine_id.empty()) {
169 break;
170 }
171 }
172 165
166 std::string machine_id = GetSerialNumber();
173 if (machine_id.empty()) 167 if (machine_id.empty())
174 LOG(ERROR) << "Failed to get machine serial number."; 168 LOG(ERROR) << "Failed to get machine serial number.";
175 169
176 device_data_store_->set_machine_id(machine_id); 170 device_data_store_->set_machine_id(machine_id);
177 device_data_store_->set_machine_model(machine_model); 171 device_data_store_->set_machine_model(machine_model);
178 } 172 }
179 device_data_store_->set_user_name(owner_email); 173 device_data_store_->set_user_name(owner_email);
180 switch (token_type) { 174 switch (token_type) {
181 case TOKEN_TYPE_OAUTH: 175 case TOKEN_TYPE_OAUTH:
182 device_data_store_->SetOAuthToken(token); 176 device_data_store_->SetOAuthToken(token);
(...skipping 19 matching lines...) Expand all
202 EnterpriseInstallAttributes::LockResult 196 EnterpriseInstallAttributes::LockResult
203 BrowserPolicyConnector::LockDevice(const std::string& user) { 197 BrowserPolicyConnector::LockDevice(const std::string& user) {
204 #if defined(OS_CHROMEOS) 198 #if defined(OS_CHROMEOS)
205 if (install_attributes_.get()) 199 if (install_attributes_.get())
206 return install_attributes_->LockDevice(user); 200 return install_attributes_->LockDevice(user);
207 #endif 201 #endif
208 202
209 return EnterpriseInstallAttributes::LOCK_BACKEND_ERROR; 203 return EnterpriseInstallAttributes::LOCK_BACKEND_ERROR;
210 } 204 }
211 205
206 // static
207 std::string BrowserPolicyConnector::GetSerialNumber() {
208 std::string serial_number;
209 #if defined(OS_CHROMEOS)
210 chromeos::system::StatisticsProvider* provider =
211 chromeos::system::StatisticsProvider::GetInstance();
212 for (size_t i = 0; i < arraysize(kMachineInfoSerialNumberKeys); i++) {
213 if (provider->GetMachineStatistic(kMachineInfoSerialNumberKeys[i],
214 &serial_number) &&
215 !serial_number.empty()) {
216 break;
217 }
218 }
219 #endif
220 return serial_number;
221 }
222
212 std::string BrowserPolicyConnector::GetEnterpriseDomain() { 223 std::string BrowserPolicyConnector::GetEnterpriseDomain() {
213 #if defined(OS_CHROMEOS) 224 #if defined(OS_CHROMEOS)
214 if (install_attributes_.get()) 225 if (install_attributes_.get())
215 return install_attributes_->GetDomain(); 226 return install_attributes_->GetDomain();
216 #endif 227 #endif
217 228
218 return std::string(); 229 return std::string();
219 } 230 }
220 231
221 void BrowserPolicyConnector::ResetDevicePolicy() { 232 void BrowserPolicyConnector::ResetDevicePolicy() {
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); 488 config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
478 } else { 489 } else {
479 return NULL; 490 return NULL;
480 } 491 }
481 #else 492 #else
482 return NULL; 493 return NULL;
483 #endif 494 #endif
484 } 495 }
485 496
486 } // namespace policy 497 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698