1 // Copyright 2015 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/android/animation_frame_time_histogram.h" 6 7 #include "base/android/jni_string.h" 8 #include "base/metrics/histogram_macros.h" 9 #include "jni/AnimationFrameTimeHistogram_jni.h" 10 11 using base::android::JavaParamRef; 12 13 // static 14 void SaveHistogram(JNIEnv* env, 15 const JavaParamRef<jobject>& jcaller, 16 const JavaParamRef<jstring>& j_histogram_name, 17 const JavaParamRef<jlongArray>& j_frame_times_ms, 18 jint j_count) { 19 jlong *frame_times_ms = env->GetLongArrayElements(j_frame_times_ms, NULL); 20 std::string histogram_name = base::android::ConvertJavaStringToUTF8( 21 env, j_histogram_name); 22 23 for (int i = 0; i < j_count; ++i) { 24 UMA_HISTOGRAM_TIMES(histogram_name.c_str(), 25 base::TimeDelta::FromMilliseconds(frame_times_ms[i])); 26 } 27 } 28 29 namespace base { 30 namespace android { 31 32 // static 33 bool RegisterAnimationFrameTimeHistogram(JNIEnv* env) { 34 return RegisterNativesImpl(env); 35 } 36 37 } // namespace android 38 } // namespace base 39