Chromium Code Reviews| Index: base/android/library_loader/library_loader_hooks.cc |
| diff --git a/base/android/library_loader/library_loader_hooks.cc b/base/android/library_loader/library_loader_hooks.cc |
| index bbc99352f6d8211146574ca3025328de0bfcbbaf..578eaa8be11b1abc58df948aaaa344364180e116 100644 |
| --- a/base/android/library_loader/library_loader_hooks.cc |
| +++ b/base/android/library_loader/library_loader_hooks.cc |
| @@ -10,6 +10,7 @@ |
| #include "base/android/library_loader/library_prefetcher.h" |
| #include "base/at_exit.h" |
| #include "base/metrics/histogram.h" |
| +#include "base/metrics/sparse_histogram.h" |
| #include "jni/LibraryLoader_jni.h" |
| namespace base { |
| @@ -48,6 +49,12 @@ enum BrowserHistogramCode { |
| RendererHistogramCode g_renderer_histogram_code = NO_PENDING_HISTOGRAM_CODE; |
| +// Indicate whether g_library_preloader_renderer_histogram_code is valid |
| +bool g_library_preloader_renderer_histogram_code_registered = false; |
| + |
| +// The return value of NativeLibraryPreloader.loadLibrary() in child processes. |
| +int g_library_preloader_renderer_histogram_code = 0; |
| + |
| // The amount of time, in milliseconds, that it took to load the shared |
| // libraries in the renderer. Set in |
| // RegisterChromiumAndroidLinkerRendererHistogram. |
| @@ -72,8 +79,8 @@ static void RegisterChromiumAndroidLinkerRendererHistogram( |
| g_renderer_library_load_time_ms = library_load_time_ms; |
| } |
| -void RecordChromiumAndroidLinkerRendererHistogram() { |
| - if (g_renderer_histogram_code == NO_PENDING_HISTOGRAM_CODE) |
| +static void RecordChromiumAndroidLinkerRendererHistogram() { |
| + if (g_renderer_histogram_code != NO_PENDING_HISTOGRAM_CODE) |
| return; |
| // Record and release the pending histogram value. |
| UMA_HISTOGRAM_ENUMERATION("ChromiumAndroidLinker.RendererStates", |
| @@ -116,6 +123,36 @@ static void RecordChromiumAndroidLinkerBrowserHistogram( |
| base::TimeDelta::FromMilliseconds(library_load_time_ms)); |
| } |
| +static void RecordLibraryPreloaderBrowserHistogram( |
| + JNIEnv* env, |
| + const JavaParamRef<jobject>& jcaller, |
| + jint status) { |
| + UMA_HISTOGRAM_SPARSE_SLOWLY( |
| + "ChromiumAndroidNativeLibraryPreloader.BrowserStates", |
| + status); |
| +} |
| + |
| +static void RegisterLibraryPreloaderRendererHistogram( |
| + JNIEnv* env, |
| + const JavaParamRef<jobject>& jcaller, |
| + jint status) { |
| + g_library_preloader_renderer_histogram_code = status; |
| + g_library_preloader_renderer_histogram_code_registered = true; |
| +} |
| + |
| +static void RecordLibraryPreloaderRendereHistogram() { |
| + if (g_library_preloader_renderer_histogram_code_registered) { |
| + UMA_HISTOGRAM_SPARSE_SLOWLY( |
| + "ChromiumAndroidNativeLibraryPreloader.RendererStates", |
|
Alexei Svitkine (slow)
2016/05/26 14:56:29
I suggest not adding a new histogram prefix unless
michaelbai
2016/05/26 19:10:35
Done.
|
| + g_library_preloader_renderer_histogram_code); |
| + } |
| +} |
| + |
| +void RecordChromiumAndroidLibraryLoaderRendererHistogram() { |
| + RecordChromiumAndroidLinkerRendererHistogram(); |
| + RecordLibraryPreloaderRendereHistogram(); |
| +} |
| + |
| void SetLibraryLoadedHook(LibraryLoadedHook* func) { |
| g_registration_callback = func; |
| } |