| Index: chrome/browser/policy/cloud/cloud_policy_store.cc
 | 
| diff --git a/chrome/browser/policy/cloud/cloud_policy_store.cc b/chrome/browser/policy/cloud/cloud_policy_store.cc
 | 
| index 2205fb4922b1a58740848ce5c567eb1862af2b13..472c97d6ebb02508c0c4a7c5ce2ceebbd554b7dc 100644
 | 
| --- a/chrome/browser/policy/cloud/cloud_policy_store.cc
 | 
| +++ b/chrome/browser/policy/cloud/cloud_policy_store.cc
 | 
| @@ -4,6 +4,8 @@
 | 
|  
 | 
|  #include "chrome/browser/policy/cloud/cloud_policy_store.h"
 | 
|  
 | 
| +#include "base/hash.h"
 | 
| +
 | 
|  namespace policy {
 | 
|  
 | 
|  CloudPolicyStore::Observer::~Observer() {}
 | 
| @@ -11,10 +13,20 @@ CloudPolicyStore::Observer::~Observer() {}
 | 
|  CloudPolicyStore::CloudPolicyStore()
 | 
|      : status_(STATUS_OK),
 | 
|        validation_status_(CloudPolicyValidatorBase::VALIDATION_OK),
 | 
| -      is_initialized_(false) {}
 | 
| +      invalidation_version_(0),
 | 
| +      is_initialized_(false),
 | 
| +      policy_changed_(false),
 | 
| +      hash_value_(0) {}
 | 
|  
 | 
|  CloudPolicyStore::~CloudPolicyStore() {}
 | 
|  
 | 
| +void CloudPolicyStore::Store(
 | 
| +    const enterprise_management::PolicyFetchResponse& policy,
 | 
| +    int64 invalidation_version) {
 | 
| +  invalidation_version_ = invalidation_version;
 | 
| +  Store(policy);
 | 
| +}
 | 
| +
 | 
|  void CloudPolicyStore::AddObserver(CloudPolicyStore::Observer* observer) {
 | 
|    observers_.AddObserver(observer);
 | 
|  }
 | 
| @@ -24,6 +36,14 @@ void CloudPolicyStore::RemoveObserver(CloudPolicyStore::Observer* observer) {
 | 
|  }
 | 
|  
 | 
|  void CloudPolicyStore::NotifyStoreLoaded() {
 | 
| +  // Determine if the policy changed by comparing the new policy's hash value
 | 
| +  // to the previous.
 | 
| +  uint32 new_hash_value = 0;
 | 
| +  if (policy_ && policy_->has_policy_value())
 | 
| +    new_hash_value = base::Hash(policy_->policy_value());
 | 
| +  policy_changed_ = new_hash_value != hash_value_;
 | 
| +  hash_value_ = new_hash_value;
 | 
| +
 | 
|    is_initialized_ = true;
 | 
|    FOR_EACH_OBSERVER(Observer, observers_, OnStoreLoaded(this));
 | 
|  }
 | 
| @@ -33,4 +53,4 @@ void CloudPolicyStore::NotifyStoreError() {
 | 
|    FOR_EACH_OBSERVER(Observer, observers_, OnStoreError(this));
 | 
|  }
 | 
|  
 | 
| -}  // namespace
 | 
| +}  // namespace policy
 | 
| 
 |