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

Unified Diff: chrome/browser/policy/user_policy_cache.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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/policy/user_policy_cache.cc
diff --git a/chrome/browser/policy/user_policy_cache.cc b/chrome/browser/policy/user_policy_cache.cc
index 6d0a53edb90d11437ca986ddc402764237ae56ce..2e3873c54320114a962ae4056fb09e4431bd7aee 100644
--- a/chrome/browser/policy/user_policy_cache.cc
+++ b/chrome/browser/policy/user_policy_cache.cc
@@ -13,6 +13,7 @@
#include "base/task.h"
#include "base/values.h"
#include "chrome/browser/policy/configuration_policy_pref_store.h"
+#include "chrome/browser/policy/enterprise_metrics.h"
#include "chrome/browser/policy/policy_map.h"
#include "chrome/browser/policy/proto/cloud_policy.pb.h"
#include "chrome/browser/policy/proto/device_management_local.pb.h"
@@ -22,6 +23,8 @@
namespace policy {
+namespace em = enterprise_management;
+
// Decodes a CloudPolicySettings object into two maps with mandatory and
// recommended settings, respectively. The implementation is generated code
// in policy/cloud_policy_generated.cc.
@@ -69,6 +72,7 @@ UserPolicyCache::DiskCache::DiskCache(
void UserPolicyCache::DiskCache::Load() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ em::LogPolicyOperation(em::kPolicyLoadRequested);
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
NewRunnableMethod(this, &DiskCache::LoadOnFileThread));
@@ -77,6 +81,7 @@ void UserPolicyCache::DiskCache::Load() {
void UserPolicyCache::DiskCache::Store(
const em::CachedCloudPolicyResponse& policy) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ em::LogPolicyOperation(em::kPolicyStoreRequested);
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
NewRunnableMethod(this, &DiskCache::StoreOnFileThread, policy));
@@ -92,6 +97,7 @@ void UserPolicyCache::DiskCache::LoadOnFileThread() {
if (!file_util::ReadFileToString(backing_file_path_, &data)) {
LOG(WARNING) << "Failed to read policy data from "
<< backing_file_path_.value();
+ em::LogPolicyOperation(em::kPolicyLoadFailed);
return;
}
@@ -100,6 +106,7 @@ void UserPolicyCache::DiskCache::LoadOnFileThread() {
if (!cached_response.ParseFromArray(data.c_str(), data.size())) {
LOG(WARNING) << "Failed to parse policy data read from "
<< backing_file_path_.value();
+ em::LogPolicyOperation(em::kPolicyLoadFailed);
return;
}
@@ -124,18 +131,21 @@ void UserPolicyCache::DiskCache::StoreOnFileThread(
std::string data;
if (!policy.SerializeToString(&data)) {
LOG(WARNING) << "Failed to serialize policy data";
+ em::LogPolicyOperation(em::kPolicyStoreFailed);
return;
}
if (!file_util::CreateDirectory(backing_file_path_.DirName())) {
LOG(WARNING) << "Failed to create directory "
<< backing_file_path_.DirName().value();
+ em::LogPolicyOperation(em::kPolicyStoreFailed);
return;
}
int size = data.size();
if (file_util::WriteFile(backing_file_path_, data.c_str(), size) != size) {
LOG(WARNING) << "Failed to write " << backing_file_path_.value();
+ em::LogPolicyOperation(em::kPolicyStoreFailed);
return;
}
}
@@ -159,6 +169,7 @@ void UserPolicyCache::SetPolicy(const em::PolicyFetchResponse& policy) {
base::Time timestamp;
if (!SetPolicyInternal(policy, &timestamp, false))
return;
+ em::LogPolicyOperation(em::kPolicyFetchOK);
if (timestamp > base::Time::NowFromSystemTime() +
base::TimeDelta::FromMinutes(1)) {

Powered by Google App Engine
This is Rietveld 408576698