| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/policy/user_cloud_policy_manager_chromeos.h" | 5 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.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/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" | 
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 141       FetchPolicyOAuthTokenUsingRefreshToken(); | 141       FetchPolicyOAuthTokenUsingRefreshToken(); | 
| 142     } | 142     } | 
| 143   } | 143   } | 
| 144 | 144 | 
| 145   if (!wait_for_policy_fetch_) { | 145   if (!wait_for_policy_fetch_) { | 
| 146     // If this isn't blocking on a policy fetch then | 146     // If this isn't blocking on a policy fetch then | 
| 147     // CloudPolicyManager::OnStoreLoaded() already published the cached policy. | 147     // CloudPolicyManager::OnStoreLoaded() already published the cached policy. | 
| 148     // Start the refresh scheduler now, which will eventually refresh the | 148     // Start the refresh scheduler now, which will eventually refresh the | 
| 149     // cached policy or make the first fetch once the OAuth2 token is | 149     // cached policy or make the first fetch once the OAuth2 token is | 
| 150     // available. | 150     // available. | 
| 151     StartRefreshScheduler(); | 151     StartRefreshSchedulerIfReady(); | 
| 152   } | 152   } | 
| 153 } | 153 } | 
| 154 | 154 | 
| 155 void UserCloudPolicyManagerChromeOS::OnPolicyFetched( | 155 void UserCloudPolicyManagerChromeOS::OnPolicyFetched( | 
| 156     CloudPolicyClient* client) { | 156     CloudPolicyClient* client) { | 
| 157   // No action required. If we're blocked on a policy fetch, we'll learn about | 157   // No action required. If we're blocked on a policy fetch, we'll learn about | 
| 158   // completion of it through OnInitialPolicyFetchComplete(). | 158   // completion of it through OnInitialPolicyFetchComplete(). | 
| 159 } | 159 } | 
| 160 | 160 | 
| 161 void UserCloudPolicyManagerChromeOS::OnRegistrationStateChanged( | 161 void UserCloudPolicyManagerChromeOS::OnRegistrationStateChanged( | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 181   DCHECK_EQ(client(), cloud_policy_client); | 181   DCHECK_EQ(client(), cloud_policy_client); | 
| 182   CancelWaitForPolicyFetch(); | 182   CancelWaitForPolicyFetch(); | 
| 183 } | 183 } | 
| 184 | 184 | 
| 185 void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyRefreshNeeded() { | 185 void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyRefreshNeeded() { | 
| 186   core()->RefreshSoon(); | 186   core()->RefreshSoon(); | 
| 187 } | 187 } | 
| 188 | 188 | 
| 189 void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyUpdated() { | 189 void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyUpdated() { | 
| 190   CheckAndPublishPolicy(); | 190   CheckAndPublishPolicy(); | 
| 191   StartRefreshScheduler(); | 191   StartRefreshSchedulerIfReady(); | 
| 192 } | 192 } | 
| 193 | 193 | 
| 194 void UserCloudPolicyManagerChromeOS::FetchPolicyOAuthTokenUsingSigninProfile() { | 194 void UserCloudPolicyManagerChromeOS::FetchPolicyOAuthTokenUsingSigninProfile() { | 
| 195   scoped_refptr<net::URLRequestContextGetter> signin_context; | 195   scoped_refptr<net::URLRequestContextGetter> signin_context; | 
| 196   Profile* signin_profile = chromeos::ProfileHelper::GetSigninProfile(); | 196   Profile* signin_profile = chromeos::ProfileHelper::GetSigninProfile(); | 
| 197   if (signin_profile) | 197   if (signin_profile) | 
| 198     signin_context = signin_profile->GetRequestContext(); | 198     signin_context = signin_profile->GetRequestContext(); | 
| 199   if (!signin_context.get()) { | 199   if (!signin_context.get()) { | 
| 200     LOG(ERROR) << "No signin Profile for policy oauth token fetch!"; | 200     LOG(ERROR) << "No signin Profile for policy oauth token fetch!"; | 
| 201     OnOAuth2PolicyTokenFetched( | 201     OnOAuth2PolicyTokenFetched( | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 245 void UserCloudPolicyManagerChromeOS::OnInitialPolicyFetchComplete( | 245 void UserCloudPolicyManagerChromeOS::OnInitialPolicyFetchComplete( | 
| 246     bool success) { | 246     bool success) { | 
| 247   CancelWaitForPolicyFetch(); | 247   CancelWaitForPolicyFetch(); | 
| 248 } | 248 } | 
| 249 | 249 | 
| 250 void UserCloudPolicyManagerChromeOS::CancelWaitForPolicyFetch() { | 250 void UserCloudPolicyManagerChromeOS::CancelWaitForPolicyFetch() { | 
| 251   wait_for_policy_fetch_ = false; | 251   wait_for_policy_fetch_ = false; | 
| 252   CheckAndPublishPolicy(); | 252   CheckAndPublishPolicy(); | 
| 253   // Now that |wait_for_policy_fetch_| is guaranteed to be false, the scheduler | 253   // Now that |wait_for_policy_fetch_| is guaranteed to be false, the scheduler | 
| 254   // can be started. | 254   // can be started. | 
| 255   StartRefreshScheduler(); | 255   StartRefreshSchedulerIfReady(); | 
| 256 } | 256 } | 
| 257 | 257 | 
| 258 void UserCloudPolicyManagerChromeOS::StartRefreshScheduler() { | 258 void UserCloudPolicyManagerChromeOS::StartRefreshSchedulerIfReady() { | 
| 259   if (core()->refresh_scheduler()) | 259   if (core()->refresh_scheduler()) | 
| 260     return;  // Already started. | 260     return;  // Already started. | 
| 261 | 261 | 
| 262   if (wait_for_policy_fetch_) | 262   if (wait_for_policy_fetch_) | 
| 263     return;  // Still waiting for the initial, blocking fetch. | 263     return;  // Still waiting for the initial, blocking fetch. | 
| 264 | 264 | 
| 265   if (!service() || !local_state_) | 265   if (!service() || !local_state_) | 
| 266     return;  // Not connected. | 266     return;  // Not connected. | 
| 267 | 267 | 
| 268   if (component_policy_service_ && | 268   if (component_policy_service_ && | 
| 269       !component_policy_service_->is_initialized()) { | 269       !component_policy_service_->is_initialized()) { | 
| 270     // If the client doesn't have the list of components to fetch yet then don't | 270     // If the client doesn't have the list of components to fetch yet then don't | 
| 271     // start the scheduler. The |component_policy_service_| will call back into | 271     // start the scheduler. The |component_policy_service_| will call back into | 
| 272     // OnComponentCloudPolicyUpdated() once it's ready. | 272     // OnComponentCloudPolicyUpdated() once it's ready. | 
| 273     return; | 273     return; | 
| 274   } | 274   } | 
| 275 | 275 | 
| 276   core()->StartRefreshScheduler(); | 276   StartRefreshScheduler(); | 
| 277   core()->TrackRefreshDelayPref(local_state_, prefs::kUserPolicyRefreshRate); | 277   core()->TrackRefreshDelayPref(local_state_, prefs::kUserPolicyRefreshRate); | 
| 278 } | 278 } | 
| 279 | 279 | 
| 280 }  // namespace policy | 280 }  // namespace policy | 
| OLD | NEW | 
|---|