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

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: Fix win build, rebased Created 9 years, 5 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
« no previous file with comments | « chrome/browser/policy/user_policy_disk_cache.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..e2341d88740b284a19cdff0ea078b875255b2040 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;
@@ -52,6 +72,9 @@ void UserPolicyTokenCache::LoadOnFileThread() {
device_credentials.ParseFromArray(data.c_str(), data.size())) {
device_token = device_credentials.device_token();
device_id = device_credentials.device_id();
+ SampleUMA(kMetricTokenLoadSucceeded);
+ } else {
+ SampleUMA(kMetricTokenLoadFailed);
}
}
@@ -81,16 +104,24 @@ 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);
+ }
+
+ SampleUMA(kMetricTokenStoreSucceeded);
}
} // namespace policy
« no previous file with comments | « chrome/browser/policy/user_policy_disk_cache.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698