Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(559)

Side by Side Diff: chrome/browser/policy/cloud_policy_cache_base.cc

Issue 7105018: UMA metrics for cloud policies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed detection of some events, rebased Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/policy/cloud_policy_cache_base.h" 5 #include "chrome/browser/policy/cloud_policy_cache_base.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "chrome/browser/policy/configuration_policy_pref_store.h" 11 #include "chrome/browser/policy/configuration_policy_pref_store.h"
12 #include "chrome/browser/policy/enterprise_metrics.h"
12 #include "chrome/browser/policy/policy_notifier.h" 13 #include "chrome/browser/policy/policy_notifier.h"
13 14
14 namespace policy { 15 namespace policy {
15 16
17 namespace em = enterprise_management;
18
16 // A thin ConfigurationPolicyProvider implementation sitting on top of 19 // A thin ConfigurationPolicyProvider implementation sitting on top of
17 // CloudPolicyCacheBase for hooking up with ConfigurationPolicyPrefStore. 20 // CloudPolicyCacheBase for hooking up with ConfigurationPolicyPrefStore.
18 class CloudPolicyCacheBase::CloudPolicyProvider 21 class CloudPolicyCacheBase::CloudPolicyProvider
19 : public ConfigurationPolicyProvider { 22 : public ConfigurationPolicyProvider {
20 public: 23 public:
21 CloudPolicyProvider(const PolicyDefinitionList* policy_list, 24 CloudPolicyProvider(const PolicyDefinitionList* policy_list,
22 CloudPolicyCacheBase* cache, 25 CloudPolicyCacheBase* cache,
23 CloudPolicyCacheBase::PolicyLevel level) 26 CloudPolicyCacheBase::PolicyLevel level)
24 : ConfigurationPolicyProvider(policy_list), 27 : ConfigurationPolicyProvider(policy_list),
25 cache_(cache), 28 cache_(cache),
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 bool initialization_was_not_complete = !initialization_complete_; 94 bool initialization_was_not_complete = !initialization_complete_;
92 is_unmanaged_ = false; 95 is_unmanaged_ = false;
93 PolicyMap mandatory_policy; 96 PolicyMap mandatory_policy;
94 PolicyMap recommended_policy; 97 PolicyMap recommended_policy;
95 base::Time temp_timestamp; 98 base::Time temp_timestamp;
96 PublicKeyVersion temp_public_key_version; 99 PublicKeyVersion temp_public_key_version;
97 bool ok = DecodePolicyResponse(policy, &mandatory_policy, &recommended_policy, 100 bool ok = DecodePolicyResponse(policy, &mandatory_policy, &recommended_policy,
98 &temp_timestamp, &temp_public_key_version); 101 &temp_timestamp, &temp_public_key_version);
99 if (!ok) { 102 if (!ok) {
100 LOG(WARNING) << "Decoding policy data failed."; 103 LOG(WARNING) << "Decoding policy data failed.";
104 em::LogPolicyOperation(em::kPolicyFetchInvalidPolicy);
101 return false; 105 return false;
102 } 106 }
103 if (timestamp) { 107 if (timestamp) {
104 *timestamp = temp_timestamp; 108 *timestamp = temp_timestamp;
105 } 109 }
106 if (check_for_timestamp_validity && 110 if (check_for_timestamp_validity &&
107 temp_timestamp > base::Time::NowFromSystemTime()) { 111 temp_timestamp > base::Time::NowFromSystemTime()) {
108 LOG(WARNING) << "Rejected policy data, file is from the future."; 112 LOG(WARNING) << "Rejected policy data, file is from the future.";
113 em::LogPolicyOperation(em::kPolicyFetchTimestampInFuture);
109 return false; 114 return false;
110 } 115 }
111 public_key_version_.version = temp_public_key_version.version; 116 public_key_version_.version = temp_public_key_version.version;
112 public_key_version_.valid = temp_public_key_version.valid; 117 public_key_version_.valid = temp_public_key_version.valid;
113 118
114 const bool new_policy_differs = 119 const bool new_policy_differs =
115 !mandatory_policy_.Equals(mandatory_policy) || 120 !mandatory_policy_.Equals(mandatory_policy) ||
116 !recommended_policy_.Equals(recommended_policy); 121 !recommended_policy_.Equals(recommended_policy);
117 mandatory_policy_.Swap(&mandatory_policy); 122 mandatory_policy_.Swap(&mandatory_policy);
118 recommended_policy_.Swap(&recommended_policy); 123 recommended_policy_.Swap(&recommended_policy);
119 initialization_complete_ = true; 124 initialization_complete_ = true;
120 125
126 if (!new_policy_differs) {
127 em::LogPolicyOperation(em::kPolicyFetchNotModified);
128 }
129
121 if (new_policy_differs || initialization_was_not_complete) { 130 if (new_policy_differs || initialization_was_not_complete) {
122 FOR_EACH_OBSERVER(ConfigurationPolicyProvider::Observer, 131 FOR_EACH_OBSERVER(ConfigurationPolicyProvider::Observer,
123 observer_list_, OnUpdatePolicy()); 132 observer_list_, OnUpdatePolicy());
124 } 133 }
125 InformNotifier(CloudPolicySubsystem::SUCCESS, 134 InformNotifier(CloudPolicySubsystem::SUCCESS,
126 CloudPolicySubsystem::NO_DETAILS); 135 CloudPolicySubsystem::NO_DETAILS);
127 return true; 136 return true;
128 } 137 }
129 138
130 void CloudPolicyCacheBase::SetUnmanagedInternal(const base::Time& timestamp) { 139 void CloudPolicyCacheBase::SetUnmanagedInternal(const base::Time& timestamp) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 void CloudPolicyCacheBase::InformNotifier( 187 void CloudPolicyCacheBase::InformNotifier(
179 CloudPolicySubsystem::PolicySubsystemState state, 188 CloudPolicySubsystem::PolicySubsystemState state,
180 CloudPolicySubsystem::ErrorDetails error_details) { 189 CloudPolicySubsystem::ErrorDetails error_details) {
181 // TODO(jkummerow): To obsolete this NULL-check, make all uses of 190 // TODO(jkummerow): To obsolete this NULL-check, make all uses of
182 // UserPolicyCache explicitly set a notifier using |set_policy_notifier()|. 191 // UserPolicyCache explicitly set a notifier using |set_policy_notifier()|.
183 if (notifier_) 192 if (notifier_)
184 notifier_->Inform(state, error_details, PolicyNotifier::POLICY_CACHE); 193 notifier_->Inform(state, error_details, PolicyNotifier::POLICY_CACHE);
185 } 194 }
186 195
187 } // namespace policy 196 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698