| Index: chrome/browser/policy/cloud_policy_manager.cc
|
| diff --git a/chrome/browser/policy/cloud_policy_manager.cc b/chrome/browser/policy/cloud_policy_manager.cc
|
| index a80fe6933afa9aaeb931d91c8847517105b4b16d..f4f6d71ba7e4ee4a45bf2cfcb4cef83994a3377e 100644
|
| --- a/chrome/browser/policy/cloud_policy_manager.cc
|
| +++ b/chrome/browser/policy/cloud_policy_manager.cc
|
| @@ -11,6 +11,7 @@
|
| #include "chrome/browser/policy/cloud_policy_service.h"
|
| #include "chrome/browser/policy/policy_bundle.h"
|
| #include "chrome/browser/policy/policy_map.h"
|
| +#include "chrome/browser/prefs/pref_service.h"
|
|
|
| namespace policy {
|
|
|
| @@ -73,6 +74,7 @@ void CloudPolicyManager::InitializeService(
|
| }
|
|
|
| void CloudPolicyManager::ShutdownService() {
|
| + refresh_delay_.reset();
|
| refresh_scheduler_.reset();
|
| service_.reset();
|
| client_.reset();
|
| @@ -82,10 +84,15 @@ void CloudPolicyManager::StartRefreshScheduler(
|
| PrefService* local_state,
|
| const std::string& refresh_rate_pref) {
|
| if (!refresh_scheduler_.get()) {
|
| + refresh_delay_.reset(new IntegerPrefMember());
|
| + refresh_delay_->Init(refresh_rate_pref.c_str(), local_state,
|
| + base::Bind(&CloudPolicyManager::UpdateRefreshDelay,
|
| + base::Unretained(this)));
|
| refresh_scheduler_.reset(
|
| new CloudPolicyRefreshScheduler(
|
| - client_.get(), store_, local_state, refresh_rate_pref,
|
| + client_.get(), store_,
|
| MessageLoop::current()->message_loop_proxy()));
|
| + UpdateRefreshDelay();
|
| }
|
| }
|
|
|
| @@ -103,4 +110,8 @@ void CloudPolicyManager::OnRefreshComplete() {
|
| CheckAndPublishPolicy();
|
| }
|
|
|
| +void CloudPolicyManager::UpdateRefreshDelay() {
|
| + refresh_scheduler_->SetRefreshDelay(refresh_delay_->GetValue());
|
| +}
|
| +
|
| } // namespace policy
|
|
|