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

Side by Side Diff: base/android/library_loader/library_loader_hooks.cc

Issue 643803003: Add UMA for testing whether device supports memory mapping APK files with executable permissions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/android/library_loader/library_loader_hooks.h" 5 #include "base/android/library_loader/library_loader_hooks.h"
6 6
7 #include "base/android/command_line_android.h" 7 #include "base/android/command_line_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/at_exit.h" 9 #include "base/at_exit.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 13 matching lines...) Expand all
24 void SetLibraryLoadedHook(LibraryLoadedHook* func) { 24 void SetLibraryLoadedHook(LibraryLoadedHook* func) {
25 g_registration_callback = func; 25 g_registration_callback = func;
26 } 26 }
27 27
28 static void InitCommandLine(JNIEnv* env, jclass clazz, 28 static void InitCommandLine(JNIEnv* env, jclass clazz,
29 jobjectArray init_command_line) { 29 jobjectArray init_command_line) {
30 InitNativeCommandLineFromJavaArray(env, init_command_line); 30 InitNativeCommandLineFromJavaArray(env, init_command_line);
31 } 31 }
32 32
33 static jboolean LibraryLoaded(JNIEnv* env, jclass clazz) { 33 static jboolean LibraryLoaded(JNIEnv* env, jclass clazz) {
34 if(g_registration_callback == NULL) { 34 if (g_registration_callback == NULL) {
35 return true; 35 return true;
36 } 36 }
37 return g_registration_callback(env, clazz); 37 return g_registration_callback(env, clazz);
38 } 38 }
39 39
40 static void RecordChromiumAndroidLinkerHistogram( 40 static void RecordChromiumAndroidLinkerHistogram(
41 JNIEnv* env, 41 JNIEnv* env,
42 jclass clazz, 42 jclass clazz,
43 jboolean loaded_at_fixed_address_failed, 43 jboolean loaded_at_fixed_address_failed,
44 jboolean is_low_memory_device) { 44 jboolean is_low_memory_device) {
45 UMA_HISTOGRAM_BOOLEAN("ChromiumAndroidLinker.LoadedAtFixedAddressFailed", 45 UMA_HISTOGRAM_BOOLEAN("ChromiumAndroidLinker.LoadedAtFixedAddressFailed",
46 loaded_at_fixed_address_failed); 46 loaded_at_fixed_address_failed);
47 UMA_HISTOGRAM_BOOLEAN("ChromiumAndroidLinker.IsLowMemoryDevice", 47 UMA_HISTOGRAM_BOOLEAN("ChromiumAndroidLinker.IsLowMemoryDevice",
48 is_low_memory_device); 48 is_low_memory_device);
49 } 49 }
50 50
51 static void RecordChromiumAndroidLinkerLoadFromApkSucceededHistogram(
52 JNIEnv* env,
picksi1 2014/10/10 10:52:17 Is this the naming convention? If so fine, otherwi
petrcermak 2014/10/10 14:20:14 I moved the code to the existing RecordChromiumAnd
53 jclass clazz,
54 jboolean success) {
55 UMA_HISTOGRAM_BOOLEAN("ChromiumAndroidLinker.LoadFromApkSucceeded",
56 success);
57 }
58
51 void LibraryLoaderExitHook() { 59 void LibraryLoaderExitHook() {
52 if (g_at_exit_manager) { 60 if (g_at_exit_manager) {
53 delete g_at_exit_manager; 61 delete g_at_exit_manager;
54 g_at_exit_manager = NULL; 62 g_at_exit_manager = NULL;
55 } 63 }
56 } 64 }
57 65
58 bool RegisterLibraryLoaderEntryHook(JNIEnv* env) { 66 bool RegisterLibraryLoaderEntryHook(JNIEnv* env) {
59 // We need the AtExitManager to be created at the very beginning. 67 // We need the AtExitManager to be created at the very beginning.
60 g_at_exit_manager = new base::AtExitManager(); 68 g_at_exit_manager = new base::AtExitManager();
61 69
62 return RegisterNativesImpl(env); 70 return RegisterNativesImpl(env);
63 } 71 }
64 72
65 void SetVersionNumber(const char* version_number) { 73 void SetVersionNumber(const char* version_number) {
66 g_library_version_number = strdup(version_number); 74 g_library_version_number = strdup(version_number);
67 } 75 }
68 76
69 jstring GetVersionNumber(JNIEnv* env, jclass clazz) { 77 jstring GetVersionNumber(JNIEnv* env, jclass clazz) {
70 return ConvertUTF8ToJavaString(env, g_library_version_number).Release(); 78 return ConvertUTF8ToJavaString(env, g_library_version_number).Release();
71 } 79 }
72 80
73 static void RecordNativeLibraryHack(JNIEnv*, jclass, jboolean usedHack) { 81 static void RecordNativeLibraryHack(JNIEnv*, jclass, jboolean usedHack) {
74 UMA_HISTOGRAM_BOOLEAN("LibraryLoader.NativeLibraryHack", usedHack); 82 UMA_HISTOGRAM_BOOLEAN("LibraryLoader.NativeLibraryHack", usedHack);
75 } 83 }
76 84
77 } // namespace android 85 } // namespace android
78 } // namespace base 86 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698