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/settings/device_settings_provider.h" | 5 #include "chrome/browser/chromeos/settings/device_settings_provider.h" |
6 | 6 |
7 #include <memory.h> | 7 #include <memory.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 DecodeReportingPolicies(settings, &new_values_cache); | 728 DecodeReportingPolicies(settings, &new_values_cache); |
729 DecodeHeartbeatPolicies(settings, &new_values_cache); | 729 DecodeHeartbeatPolicies(settings, &new_values_cache); |
730 DecodeGenericPolicies(settings, &new_values_cache); | 730 DecodeGenericPolicies(settings, &new_values_cache); |
731 DecodeLogUploadPolicies(settings, &new_values_cache); | 731 DecodeLogUploadPolicies(settings, &new_values_cache); |
732 DecodeDeviceState(policy_data, &new_values_cache); | 732 DecodeDeviceState(policy_data, &new_values_cache); |
733 | 733 |
734 // Collect all notifications but send them only after we have swapped the | 734 // Collect all notifications but send them only after we have swapped the |
735 // cache so that if somebody actually reads the cache will be already valid. | 735 // cache so that if somebody actually reads the cache will be already valid. |
736 std::vector<std::string> notifications; | 736 std::vector<std::string> notifications; |
737 // Go through the new values and verify in the old ones. | 737 // Go through the new values and verify in the old ones. |
738 PrefValueMap::iterator iter = new_values_cache.begin(); | 738 auto iter = new_values_cache.begin(); |
739 for (; iter != new_values_cache.end(); ++iter) { | 739 for (; iter != new_values_cache.end(); ++iter) { |
740 const base::Value* old_value; | 740 const base::Value* old_value; |
741 if (!values_cache_.GetValue(iter->first, &old_value) || | 741 if (!values_cache_.GetValue(iter->first, &old_value) || |
742 !old_value->Equals(iter->second)) { | 742 !old_value->Equals(iter->second.get())) { |
743 notifications.push_back(iter->first); | 743 notifications.push_back(iter->first); |
744 } | 744 } |
745 } | 745 } |
746 // Now check for values that have been removed from the policy blob. | 746 // Now check for values that have been removed from the policy blob. |
747 for (iter = values_cache_.begin(); iter != values_cache_.end(); ++iter) { | 747 for (iter = values_cache_.begin(); iter != values_cache_.end(); ++iter) { |
748 const base::Value* value; | 748 const base::Value* value; |
749 if (!new_values_cache.GetValue(iter->first, &value)) | 749 if (!new_values_cache.GetValue(iter->first, &value)) |
750 notifications.push_back(iter->first); | 750 notifications.push_back(iter->first); |
751 } | 751 } |
752 // Swap and notify. | 752 // Swap and notify. |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
871 // Notify the observers we are done. | 871 // Notify the observers we are done. |
872 std::vector<base::Closure> callbacks; | 872 std::vector<base::Closure> callbacks; |
873 callbacks.swap(callbacks_); | 873 callbacks.swap(callbacks_); |
874 for (size_t i = 0; i < callbacks.size(); ++i) | 874 for (size_t i = 0; i < callbacks.size(); ++i) |
875 callbacks[i].Run(); | 875 callbacks[i].Run(); |
876 | 876 |
877 return settings_loaded; | 877 return settings_loaded; |
878 } | 878 } |
879 | 879 |
880 } // namespace chromeos | 880 } // namespace chromeos |
OLD | NEW |