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 |