| // Copyright 2015 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "base/android/animation_frame_time_histogram.h" | 
 |  | 
 | #include "base/android/jni_string.h" | 
 | #include "base/metrics/histogram_macros.h" | 
 | #include "jni/AnimationFrameTimeHistogram_jni.h" | 
 |  | 
 | // static | 
 | void SaveHistogram(JNIEnv* env, | 
 |                    jobject jcaller, | 
 |                    jstring j_histogram_name, | 
 |                    jlongArray j_frame_times_ms, | 
 |                    jint j_count) { | 
 |   jlong *frame_times_ms = env->GetLongArrayElements(j_frame_times_ms, NULL); | 
 |   std::string histogram_name = base::android::ConvertJavaStringToUTF8( | 
 |       env, j_histogram_name); | 
 |  | 
 |   for (int i = 0; i < j_count; ++i) { | 
 |     UMA_HISTOGRAM_TIMES(histogram_name.c_str(), | 
 |                         base::TimeDelta::FromMilliseconds(frame_times_ms[i])); | 
 |   } | 
 | } | 
 |  | 
 | namespace base { | 
 | namespace android { | 
 |  | 
 | // static | 
 | bool RegisterAnimationFrameTimeHistogram(JNIEnv* env) { | 
 |   return RegisterNativesImpl(env); | 
 | } | 
 |  | 
 | }  // namespace android | 
 | }  // namespace base |