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

Unified Diff: chrome/browser/policy/user_policy_token_cache.cc

Issue 7105018: UMA metrics for cloud policies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments, 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_token_cache.cc
diff --git a/chrome/browser/policy/user_policy_token_cache.cc b/chrome/browser/policy/user_policy_token_cache.cc
index adba4a4e89c75f5cc9fb03081d753a99fba66216..62560c0f42c501a5349e05747ec21d8f79316bad 100644
--- a/chrome/browser/policy/user_policy_token_cache.cc
+++ b/chrome/browser/policy/user_policy_token_cache.cc
@@ -5,8 +5,28 @@
#include "chrome/browser/policy/user_policy_token_cache.h"
#include "base/file_util.h"
+#include "base/metrics/histogram.h"
+#include "chrome/browser/policy/enterprise_metrics.h"
#include "content/browser/browser_thread.h"
+namespace {
+
+// Other places can sample on the same UMA counter, so make sure they all do
+// it on the same thread (UI).
+void SampleUMAOnUIThread(policy::MetricToken sample) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ UMA_HISTOGRAM_ENUMERATION(policy::kMetricToken, sample,
+ policy::kMetricTokenSize);
+}
+
+void SampleUMA(policy::MetricToken sample) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
+ NewRunnableFunction(&SampleUMAOnUIThread, sample));
+}
+
+} // namespace
+
namespace policy {
namespace em = enterprise_management;
@@ -21,6 +41,8 @@ UserPolicyTokenCache::UserPolicyTokenCache(
void UserPolicyTokenCache::Load() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ UMA_HISTOGRAM_ENUMERATION(kMetricToken, kMetricTokenLoadRequested,
+ kMetricTokenSize);
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
NewRunnableMethod(this, &UserPolicyTokenCache::LoadOnFileThread));
@@ -29,6 +51,8 @@ void UserPolicyTokenCache::Load() {
void UserPolicyTokenCache::Store(const std::string& token,
const std::string& device_id) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ UMA_HISTOGRAM_ENUMERATION(kMetricToken, kMetricTokenStoreRequested,
+ kMetricTokenSize);
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
NewRunnableMethod(this,
@@ -52,6 +76,8 @@ void UserPolicyTokenCache::LoadOnFileThread() {
device_credentials.ParseFromArray(data.c_str(), data.size())) {
device_token = device_credentials.device_token();
device_id = device_credentials.device_id();
+ } else {
+ SampleUMA(kMetricTokenLoadFailed);
}
}
@@ -81,16 +107,22 @@ void UserPolicyTokenCache::StoreOnFileThread(const std::string& token,
if (!success) {
LOG(WARNING) << "Failed serialize device token data, will not write "
<< cache_file_.value();
+ SampleUMA(kMetricTokenStoreFailed);
return;
}
if (!file_util::CreateDirectory(cache_file_.DirName())) {
LOG(WARNING) << "Failed to create directory "
<< cache_file_.DirName().value();
+ SampleUMA(kMetricTokenStoreFailed);
return;
}
- file_util::WriteFile(cache_file_, data.c_str(), data.length());
+ int size = data.size();
+ if (file_util::WriteFile(cache_file_, data.c_str(), size) != size) {
+ LOG(WARNING) << "Failed to write " << cache_file_.value();
+ SampleUMA(kMetricTokenStoreFailed);
+ }
}
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698