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

Unified Diff: base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java

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: Update for review feedback 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 side-by-side diff with in-line comments
Download patch
Index: base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
index fc6d46fb99771f26383d788fbe41a2254caafc76..155cbffe00af938a6b64cf1421283cae6b5aca5a 100644
--- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
+++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
@@ -50,6 +50,10 @@ public class LibraryLoader {
private static boolean sIsUsingBrowserSharedRelros = false;
private static boolean sLoadAtFixedAddressFailed = false;
+ // One-way switch recording whether the device supports memory mapping
+ // APK files with executable permissions.
rmcilroy 2014/10/10 16:26:08 add: Only used in the browser.
petrcermak 2014/10/10 17:13:23 Done.
+ private static boolean sApkMemoryMappingSupported = false;
rmcilroy 2014/10/10 16:26:08 Can we make this a bit more generic (in case we ad
petrcermak 2014/10/10 17:13:24 Done.
+
// One-way switch becomes true if the system library loading failed,
// and the right native library was found and loaded by the hack.
// The flag is used to report UMA stats later.
@@ -160,6 +164,13 @@ public class LibraryLoader {
// Load libraries using the Chromium linker.
Linker.prepareLibraryLoad();
+ // Check if the device supports memory mapping APK files with executable
+ // permissions.
rmcilroy 2014/10/10 16:26:08 nit - "Check if the device supports loading a libr
petrcermak 2014/10/10 17:13:24 Done.
+ if (Linker.isInBrowserProcess()) {
+ sApkMemoryMappingSupported = Linker.checkApkMemoryMappingSupport(
+ context.getApplicationInfo().sourceDir);
rmcilroy 2014/10/10 16:26:07 nit - pull out "context.getApplicationInfo().sourc
petrcermak 2014/10/10 17:13:23 Done.
+ }
+
for (String library : NativeLibraries.LIBRARIES) {
String zipfile = null;
if (Linker.isInZipFile()) {
@@ -305,8 +316,10 @@ public class LibraryLoader {
// onNativeInitializationComplete().
private static void recordBrowserProcessHistogram() {
if (Linker.isUsed()) {
+ assert Linker.isInBrowserProcess();
nativeRecordChromiumAndroidLinkerBrowserHistogram(sIsUsingBrowserSharedRelros,
- sLoadAtFixedAddressFailed);
+ sLoadAtFixedAddressFailed,
+ sApkMemoryMappingSupported);
}
}
@@ -334,10 +347,12 @@ public class LibraryLoader {
// Method called to record statistics about the Chromium linker operation for the main
// browser process. Indicates whether the linker attempted relro sharing for the browser,
- // and if it did, whether the library failed to load at a fixed address.
+ // and if it did, whether the library failed to load at a fixed address. Also records
+ // support for memory mapping APK files with executable permissions.
private static native void nativeRecordChromiumAndroidLinkerBrowserHistogram(
boolean isUsingBrowserSharedRelros,
- boolean loadAtFixedAddressFailed);
+ boolean loadAtFixedAddressFailed,
+ boolean apkMemoryMappingSupported);
// Method called to register (for later recording) statistics about the Chromium linker
// operation for a renderer process. Indicates whether the linker attempted relro sharing,
« no previous file with comments | « no previous file | base/android/java/src/org/chromium/base/library_loader/Linker.java » ('j') | base/android/linker/linker_jni.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698