Chromium Code Reviews

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

Issue 4960003: Don't register gmail users at the device management server (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/device_management_policy_provider.h" 5 #include "chrome/browser/policy/device_management_policy_provider.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/rand_util.h" 10 #include "base/rand_util.h"
11 #include "base/task.h" 11 #include "base/task.h"
12 #include "chrome/browser/browser_thread.h" 12 #include "chrome/browser/browser_thread.h"
13 #include "chrome/browser/profile.h"
13 #include "chrome/browser/policy/device_management_backend.h" 14 #include "chrome/browser/policy/device_management_backend.h"
14 #include "chrome/browser/policy/device_management_policy_cache.h" 15 #include "chrome/browser/policy/device_management_policy_cache.h"
15 #include "chrome/browser/policy/proto/device_management_constants.h" 16 #include "chrome/browser/policy/proto/device_management_constants.h"
16 #include "chrome/common/chrome_paths.h" 17 #include "chrome/common/chrome_paths.h"
17 #include "chrome/common/chrome_switches.h" 18 #include "chrome/common/chrome_switches.h"
18 #include "chrome/common/notification_service.h" 19 #include "chrome/common/notification_service.h"
19 #include "chrome/common/notification_type.h" 20 #include "chrome/common/notification_type.h"
20 21
21 namespace policy { 22 namespace policy {
22 23
(...skipping 40 matching lines...)
63 provider->RefreshTaskExecute(); 64 provider->RefreshTaskExecute();
64 } 65 }
65 66
66 private: 67 private:
67 base::WeakPtr<DeviceManagementPolicyProvider> provider_; 68 base::WeakPtr<DeviceManagementPolicyProvider> provider_;
68 }; 69 };
69 70
70 DeviceManagementPolicyProvider::DeviceManagementPolicyProvider( 71 DeviceManagementPolicyProvider::DeviceManagementPolicyProvider(
71 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list, 72 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list,
72 DeviceManagementBackend* backend, 73 DeviceManagementBackend* backend,
73 TokenService* token_service, 74 Profile* profile)
74 const FilePath& storage_dir)
75 : ConfigurationPolicyProvider(policy_list), 75 : ConfigurationPolicyProvider(policy_list),
76 backend_(backend), 76 backend_(backend),
77 token_service_(token_service), 77 profile_(profile),
78 storage_dir_(GetOrCreateDeviceManagementDir(storage_dir)), 78 storage_dir_(GetOrCreateDeviceManagementDir(profile_->GetPath())),
79 policy_request_pending_(false), 79 policy_request_pending_(false),
80 refresh_task_pending_(false), 80 refresh_task_pending_(false),
81 policy_refresh_rate_ms_(kPolicyRefreshRateInMilliseconds), 81 policy_refresh_rate_ms_(kPolicyRefreshRateInMilliseconds),
82 policy_refresh_max_earlier_ms_(kPolicyRefreshMaxEarlierInMilliseconds), 82 policy_refresh_max_earlier_ms_(kPolicyRefreshMaxEarlierInMilliseconds),
83 policy_refresh_error_delay_ms_(kPolicyRefreshErrorDelayInMilliseconds), 83 policy_refresh_error_delay_ms_(kPolicyRefreshErrorDelayInMilliseconds),
84 token_fetch_error_delay_ms_(kDeviceTokenRefreshErrorDelayInMilliseconds) { 84 token_fetch_error_delay_ms_(kDeviceTokenRefreshErrorDelayInMilliseconds) {
85 Initialize(); 85 Initialize();
86 } 86 }
87 87
88 DeviceManagementPolicyProvider::~DeviceManagementPolicyProvider() {} 88 DeviceManagementPolicyProvider::~DeviceManagementPolicyProvider() {}
(...skipping 41 matching lines...)
130 token_fetch_error_delay_ms_ *= 2; 130 token_fetch_error_delay_ms_ *= 2;
131 if (token_fetch_error_delay_ms_ > policy_refresh_rate_ms_) 131 if (token_fetch_error_delay_ms_ > policy_refresh_rate_ms_)
132 token_fetch_error_delay_ms_ = policy_refresh_rate_ms_; 132 token_fetch_error_delay_ms_ = policy_refresh_rate_ms_;
133 } 133 }
134 134
135 void DeviceManagementPolicyProvider::OnNotManaged() { 135 void DeviceManagementPolicyProvider::OnNotManaged() {
136 VLOG(1) << "This device is not managed."; 136 VLOG(1) << "This device is not managed.";
137 } 137 }
138 138
139 void DeviceManagementPolicyProvider::Shutdown() { 139 void DeviceManagementPolicyProvider::Shutdown() {
140 token_service_ = NULL; 140 profile_ = NULL;
141 if (token_fetcher_) 141 if (token_fetcher_)
142 token_fetcher_->Shutdown(); 142 token_fetcher_->Shutdown();
143 } 143 }
144 144
145 void DeviceManagementPolicyProvider::Initialize() { 145 void DeviceManagementPolicyProvider::Initialize() {
146 const FilePath policy_path = storage_dir_.Append( 146 const FilePath policy_path = storage_dir_.Append(
147 FILE_PATH_LITERAL("Policy")); 147 FILE_PATH_LITERAL("Policy"));
148 cache_.reset(new DeviceManagementPolicyCache(policy_path)); 148 cache_.reset(new DeviceManagementPolicyCache(policy_path));
149 cache_->LoadPolicyFromFile(); 149 cache_->LoadPolicyFromFile();
150 150
151 // Defer initialization that requires the IOThread until after the IOThread 151 // Defer initialization that requires the IOThread until after the IOThread
152 // has been initialized. 152 // has been initialized.
153 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 153 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
154 new InitializeAfterIOThreadExistsTask(AsWeakPtr())); 154 new InitializeAfterIOThreadExistsTask(AsWeakPtr()));
155 } 155 }
156 156
157 void DeviceManagementPolicyProvider::InitializeAfterIOThreadExists() { 157 void DeviceManagementPolicyProvider::InitializeAfterIOThreadExists() {
158 const FilePath token_path = storage_dir_.Append( 158 if (profile_) {
159 FILE_PATH_LITERAL("Token")); 159 if (!token_fetcher_) {
160 if (token_service_) { 160 token_fetcher_ = new DeviceTokenFetcher(
161 token_fetcher_ = 161 backend_.get(), profile_, GetTokenPath());
162 new DeviceTokenFetcher(backend_.get(), token_service_, token_path); 162 }
163 registrar_.Init(token_fetcher_); 163 registrar_.Init(token_fetcher_);
164 registrar_.AddObserver(this); 164 registrar_.AddObserver(this);
165 token_fetcher_->StartFetching(); 165 token_fetcher_->StartFetching();
166 } 166 }
167 } 167 }
168 168
169 void DeviceManagementPolicyProvider::SendPolicyRequest() { 169 void DeviceManagementPolicyProvider::SendPolicyRequest() {
170 if (!policy_request_pending_) { 170 if (!policy_request_pending_) {
171 policy_request_pending_ = true; 171 policy_request_pending_ = true;
172 em::DevicePolicyRequest policy_request; 172 em::DevicePolicyRequest policy_request;
(...skipping 37 matching lines...)
210 delay_in_milliseconds); 210 delay_in_milliseconds);
211 } 211 }
212 212
213 int64 DeviceManagementPolicyProvider::GetRefreshTaskDelay() { 213 int64 DeviceManagementPolicyProvider::GetRefreshTaskDelay() {
214 int64 delay = policy_refresh_rate_ms_; 214 int64 delay = policy_refresh_rate_ms_;
215 if (policy_refresh_max_earlier_ms_) 215 if (policy_refresh_max_earlier_ms_)
216 delay -= base::RandGenerator(policy_refresh_max_earlier_ms_); 216 delay -= base::RandGenerator(policy_refresh_max_earlier_ms_);
217 return delay; 217 return delay;
218 } 218 }
219 219
220 FilePath DeviceManagementPolicyProvider::GetTokenPath() {
221 return storage_dir_.Append(FILE_PATH_LITERAL("Token"));
222 }
223
224 void DeviceManagementPolicyProvider::SetDeviceTokenFetcher(
225 DeviceTokenFetcher* token_fetcher) {
226 DCHECK(!token_fetcher_);
227 token_fetcher_ = token_fetcher;
228 }
229
220 // static 230 // static
221 std::string DeviceManagementPolicyProvider::GetDeviceManagementURL() { 231 std::string DeviceManagementPolicyProvider::GetDeviceManagementURL() {
222 return CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 232 return CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
223 switches::kDeviceManagementUrl); 233 switches::kDeviceManagementUrl);
224 } 234 }
225 235
226 // static 236 // static
227 FilePath DeviceManagementPolicyProvider::GetOrCreateDeviceManagementDir( 237 FilePath DeviceManagementPolicyProvider::GetOrCreateDeviceManagementDir(
228 const FilePath& user_data_dir) { 238 const FilePath& user_data_dir) {
229 const FilePath device_management_dir = user_data_dir.Append( 239 const FilePath device_management_dir = user_data_dir.Append(
230 FILE_PATH_LITERAL("Device Management")); 240 FILE_PATH_LITERAL("Device Management"));
231 if (!file_util::DirectoryExists(device_management_dir)) { 241 if (!file_util::DirectoryExists(device_management_dir)) {
232 if (!file_util::CreateDirectory(device_management_dir)) 242 if (!file_util::CreateDirectory(device_management_dir))
233 NOTREACHED(); 243 NOTREACHED();
234 } 244 }
235 return device_management_dir; 245 return device_management_dir;
236 } 246 }
237 247
238 } // namespace policy 248 } // namespace policy
OLDNEW

Powered by Google App Engine