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

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: Style cleanup, rebased 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
« no previous file with comments | « chrome/browser/policy/browser_policy_connector.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 #if defined(OS_CHROMEOS) 63 #if defined(OS_CHROMEOS)
64 // MachineInfo key names. 64 // MachineInfo key names.
65 const char kMachineInfoSystemHwqual[] = "hardware_class"; 65 const char kMachineInfoSystemHwqual[] = "hardware_class";
66 66
67 // These are the machine serial number keys that we check in order until we 67 // These are the machine serial number keys that we check in order until we
68 // find a non-empty serial number. The VPD spec says the serial number should be 68 // find a non-empty serial number. The VPD spec says the serial number should be
69 // in the "serial_number" key for v2+ VPDs. However, we cannot check this first, 69 // in the "serial_number" key for v2+ VPDs. However, we cannot check this first,
70 // since we'd get the "serial_number" value from the SMBIOS (yes, there's a name 70 // since we'd get the "serial_number" value from the SMBIOS (yes, there's a name
71 // clash here!), which is different from the serial number we want and not 71 // clash here!), which is different from the serial number we want and not
72 // actually per-device. So, we check the the legacy keys first. If we find a 72 // actually per-device. So, we check the legacy keys first. If we find a
73 // serial number for these, we use it, otherwise we must be on a newer device 73 // serial number for these, we use it, otherwise we must be on a newer device
74 // that provides the correct data in "serial_number". 74 // that provides the correct data in "serial_number".
75 const char* kMachineInfoSerialNumberKeys[] = { 75 const char* kMachineInfoSerialNumberKeys[] = {
76 "sn", // ZGB 76 "sn", // ZGB
77 "Product_S/N", // Alex 77 "Product_S/N", // Alex
78 "Product_SN", // Mario 78 "Product_SN", // Mario
79 "serial_number" // VPD v2+ devices 79 "serial_number" // VPD v2+ devices
80 }; 80 };
81 #endif 81 #endif
82 82
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 } 148 }
149 149
150 void BrowserPolicyConnector::RegisterForDevicePolicy( 150 void BrowserPolicyConnector::RegisterForDevicePolicy(
151 const std::string& owner_email, 151 const std::string& owner_email,
152 const std::string& token, 152 const std::string& token,
153 TokenType token_type) { 153 TokenType token_type) {
154 #if defined(OS_CHROMEOS) 154 #if defined(OS_CHROMEOS)
155 if (device_data_store_.get()) { 155 if (device_data_store_.get()) {
156 if (device_data_store_->machine_id().empty() || 156 if (device_data_store_->machine_id().empty() ||
157 device_data_store_->machine_model().empty()) { 157 device_data_store_->machine_model().empty()) {
158 std::string machine_id;
159 std::string machine_model;
160 chromeos::system::StatisticsProvider* provider = 158 chromeos::system::StatisticsProvider* provider =
161 chromeos::system::StatisticsProvider::GetInstance(); 159 chromeos::system::StatisticsProvider::GetInstance();
160
161 std::string machine_model;
162 if (!provider->GetMachineStatistic(kMachineInfoSystemHwqual, 162 if (!provider->GetMachineStatistic(kMachineInfoSystemHwqual,
163 &machine_model)) { 163 &machine_model)) {
164 LOG(ERROR) << "Failed to get machine model."; 164 LOG(ERROR) << "Failed to get machine model.";
165 } 165 }
166 for (size_t i = 0; i < arraysize(kMachineInfoSerialNumberKeys); i++) {
167 if (provider->GetMachineStatistic(kMachineInfoSerialNumberKeys[i],
168 &machine_id) &&
169 !machine_id.empty()) {
170 break;
171 }
172 }
173 166
167 std::string machine_id = GetSerialNumber();
174 if (machine_id.empty()) 168 if (machine_id.empty())
175 LOG(ERROR) << "Failed to get machine serial number."; 169 LOG(ERROR) << "Failed to get machine serial number.";
176 170
177 device_data_store_->set_machine_id(machine_id); 171 device_data_store_->set_machine_id(machine_id);
178 device_data_store_->set_machine_model(machine_model); 172 device_data_store_->set_machine_model(machine_model);
179 } 173 }
180 device_data_store_->set_user_name(owner_email); 174 device_data_store_->set_user_name(owner_email);
181 switch (token_type) { 175 switch (token_type) {
182 case TOKEN_TYPE_OAUTH: 176 case TOKEN_TYPE_OAUTH:
183 device_data_store_->SetOAuthToken(token); 177 device_data_store_->SetOAuthToken(token);
(...skipping 19 matching lines...) Expand all
203 EnterpriseInstallAttributes::LockResult 197 EnterpriseInstallAttributes::LockResult
204 BrowserPolicyConnector::LockDevice(const std::string& user) { 198 BrowserPolicyConnector::LockDevice(const std::string& user) {
205 #if defined(OS_CHROMEOS) 199 #if defined(OS_CHROMEOS)
206 if (install_attributes_.get()) 200 if (install_attributes_.get())
207 return install_attributes_->LockDevice(user); 201 return install_attributes_->LockDevice(user);
208 #endif 202 #endif
209 203
210 return EnterpriseInstallAttributes::LOCK_BACKEND_ERROR; 204 return EnterpriseInstallAttributes::LOCK_BACKEND_ERROR;
211 } 205 }
212 206
207 // static
208 std::string BrowserPolicyConnector::GetSerialNumber() {
209 std::string serial_number;
210 #if defined(OS_CHROMEOS)
211 chromeos::system::StatisticsProvider* provider =
212 chromeos::system::StatisticsProvider::GetInstance();
213 for (size_t i = 0; i < arraysize(kMachineInfoSerialNumberKeys); i++) {
214 if (provider->GetMachineStatistic(kMachineInfoSerialNumberKeys[i],
215 &serial_number) &&
216 !serial_number.empty()) {
217 break;
218 }
219 }
220 #endif
221 return serial_number;
222 }
223
213 std::string BrowserPolicyConnector::GetEnterpriseDomain() { 224 std::string BrowserPolicyConnector::GetEnterpriseDomain() {
214 #if defined(OS_CHROMEOS) 225 #if defined(OS_CHROMEOS)
215 if (install_attributes_.get()) 226 if (install_attributes_.get())
216 return install_attributes_->GetDomain(); 227 return install_attributes_->GetDomain();
217 #endif 228 #endif
218 229
219 return std::string(); 230 return std::string();
220 } 231 }
221 232
222 void BrowserPolicyConnector::ResetDevicePolicy() { 233 void BrowserPolicyConnector::ResetDevicePolicy() {
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); 491 config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
481 } else { 492 } else {
482 return NULL; 493 return NULL;
483 } 494 }
484 #else 495 #else
485 return NULL; 496 return NULL;
486 #endif 497 #endif
487 } 498 }
488 499
489 } // namespace policy 500 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/browser_policy_connector.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698