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

Unified Diff: base/android/record_histogram.cc

Issue 1124763003: Update from https://crrev.com/327068 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: update nacl, buildtools, fix display_change_notifier_unittest Created 5 years, 7 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: base/android/record_histogram.cc
diff --git a/base/android/record_histogram.cc b/base/android/record_histogram.cc
index 8b7f7bd1d96df21b94b6d36d705dc0647735a071..9a68deca54f420aa2136608dc9b097b2f08fb27a 100644
--- a/base/android/record_histogram.cc
+++ b/base/android/record_histogram.cc
@@ -10,6 +10,7 @@
#include "base/android/jni_string.h"
#include "base/lazy_instance.h"
#include "base/metrics/histogram.h"
+#include "base/metrics/sparse_histogram.h"
#include "base/metrics/statistics_recorder.h"
#include "base/synchronization/lock.h"
#include "base/time/time.h"
@@ -60,28 +61,42 @@ class HistogramCache {
return InsertLocked(j_histogram_key, histogram);
}
- HistogramBase* CountHistogram(JNIEnv* env,
- jstring j_histogram_name,
- jint j_histogram_key) {
- // These values are based on the hard-coded constants in the
- // UMA_HISTOGRAM_COUNTS macro from base/metrics/histogram_macros.h.
- const int histogram_min = 1;
- const int histogram_max = 1000000;
- const int histogram_num_buckets = 50;
-
+ HistogramBase* CustomCountHistogram(JNIEnv* env,
+ jstring j_histogram_name,
+ jint j_histogram_key,
+ jint j_min,
+ jint j_max,
+ jint j_num_buckets) {
DCHECK(j_histogram_name);
DCHECK(j_histogram_key);
+ int64 min = static_cast<int64>(j_min);
+ int64 max = static_cast<int64>(j_max);
+ int num_buckets = static_cast<int>(j_num_buckets);
HistogramBase* histogram = FindLocked(j_histogram_key);
if (histogram) {
- DCHECK(histogram->HasConstructionArguments(histogram_min, histogram_max,
- histogram_num_buckets));
+ DCHECK(histogram->HasConstructionArguments(min, max, num_buckets));
return histogram;
}
std::string histogram_name = ConvertJavaStringToUTF8(env, j_histogram_name);
- histogram = Histogram::FactoryGet(histogram_name, histogram_min,
- histogram_max, histogram_num_buckets,
- HistogramBase::kUmaTargetedHistogramFlag);
+ histogram =
+ Histogram::FactoryGet(histogram_name, min, max, num_buckets,
+ HistogramBase::kUmaTargetedHistogramFlag);
+ return InsertLocked(j_histogram_key, histogram);
+ }
+
+ HistogramBase* SparseHistogram(JNIEnv* env,
+ jstring j_histogram_name,
+ jint j_histogram_key) {
+ DCHECK(j_histogram_name);
+ DCHECK(j_histogram_key);
+ HistogramBase* histogram = FindLocked(j_histogram_key);
+ if (histogram)
+ return histogram;
+
+ std::string histogram_name = ConvertJavaStringToUTF8(env, j_histogram_name);
+ histogram = SparseHistogram::FactoryGet(
+ histogram_name, HistogramBase::kUmaTargetedHistogramFlag);
return InsertLocked(j_histogram_key, histogram);
}
@@ -158,18 +173,33 @@ void RecordEnumeratedHistogram(JNIEnv* env,
->Add(sample);
}
-void RecordCountHistogram(JNIEnv* env,
- jclass clazz,
- jstring j_histogram_name,
- jint j_histogram_key,
- jint j_sample) {
+void RecordCustomCountHistogram(JNIEnv* env,
+ jclass clazz,
+ jstring j_histogram_name,
+ jint j_histogram_key,
+ jint j_sample,
+ jint j_min,
+ jint j_max,
+ jint j_num_buckets) {
int sample = static_cast<int>(j_sample);
g_histograms.Get()
- .CountHistogram(env, j_histogram_name, j_histogram_key)
+ .CustomCountHistogram(env, j_histogram_name, j_histogram_key, j_min,
+ j_max, j_num_buckets)
->Add(sample);
}
+void RecordSparseHistogram(JNIEnv* env,
+ jclass clazz,
+ jstring j_histogram_name,
+ jint j_histogram_key,
+ jint j_sample) {
+ int sample = static_cast<int>(j_sample);
+ g_histograms.Get()
+ .SparseHistogram(env, j_histogram_name, j_histogram_key)
+ ->Add(sample);
+}
+
void RecordCustomTimesHistogramMilliseconds(JNIEnv* env,
jclass clazz,
jstring j_histogram_name,

Powered by Google App Engine
This is Rietveld 408576698