| 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 cfc508c05853a767d0062702c954c978386713af..b17b1a11b6c3607aa93661b75f00677ac88ce922 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
|
| @@ -11,11 +11,11 @@ import android.content.pm.PackageInfo;
|
| import android.os.AsyncTask;
|
| import android.os.Build;
|
| import android.os.SystemClock;
|
| -import android.util.Log;
|
|
|
| import org.chromium.base.CalledByNative;
|
| import org.chromium.base.CommandLine;
|
| import org.chromium.base.JNINamespace;
|
| +import org.chromium.base.Log;
|
| import org.chromium.base.PackageUtils;
|
| import org.chromium.base.TraceEvent;
|
| import org.chromium.base.metrics.RecordHistogram;
|
| @@ -40,7 +40,7 @@ import javax.annotation.Nullable;
|
| */
|
| @JNINamespace("base::android")
|
| public class LibraryLoader {
|
| - private static final String TAG = "LibraryLoader";
|
| + private static final String TAG = "cr.library_loader";
|
|
|
| // Set to true to enable debug logs.
|
| private static final boolean DEBUG = false;
|
| @@ -193,19 +193,20 @@ public class LibraryLoader {
|
| assert !mInitialized;
|
|
|
| long startTime = SystemClock.uptimeMillis();
|
| - boolean useChromiumLinker = Linker.isUsed();
|
| + Linker linker = Linker.getInstance();
|
| + boolean useChromiumLinker = linker.isUsed();
|
|
|
| if (useChromiumLinker) {
|
| // Determine the APK file path.
|
| String apkFilePath = getLibraryApkPath(context);
|
| // Load libraries using the Chromium linker.
|
| - Linker.prepareLibraryLoad();
|
| + linker.prepareLibraryLoad();
|
|
|
| for (String library : NativeLibraries.LIBRARIES) {
|
| // Don't self-load the linker. This is because the build system is
|
| // not clever enough to understand that all the libraries packaged
|
| // in the final .apk don't need to be explicitly loaded.
|
| - if (Linker.isChromiumLinkerLibrary(library)) {
|
| + if (linker.isChromiumLinkerLibrary(library)) {
|
| if (DEBUG) Log.i(TAG, "ignoring self-linker load");
|
| continue;
|
| }
|
| @@ -213,7 +214,7 @@ public class LibraryLoader {
|
| // Determine where the library should be loaded from.
|
| String zipFilePath = null;
|
| String libFilePath = System.mapLibraryName(library);
|
| - if (Linker.isInZipFile()) {
|
| + if (linker.isInZipFile()) {
|
| // Load directly from the APK.
|
| zipFilePath = apkFilePath;
|
| Log.i(TAG,
|
| @@ -225,7 +226,7 @@ public class LibraryLoader {
|
|
|
| // Load the library.
|
| boolean isLoaded = false;
|
| - if (Linker.isUsingBrowserSharedRelros()) {
|
| + if (linker.isUsingBrowserSharedRelros()) {
|
| mIsUsingBrowserSharedRelros = true;
|
| try {
|
| loadLibrary(zipFilePath, libFilePath);
|
| @@ -233,7 +234,7 @@ public class LibraryLoader {
|
| } catch (UnsatisfiedLinkError e) {
|
| Log.w(TAG, "Failed to load native library with shared RELRO, "
|
| + "retrying without");
|
| - Linker.disableSharedRelros();
|
| + linker.disableSharedRelros();
|
| mLoadAtFixedAddressFailed = true;
|
| }
|
| }
|
| @@ -242,7 +243,7 @@ public class LibraryLoader {
|
| }
|
| }
|
|
|
| - Linker.finishLibraryLoad();
|
| + linker.finishLibraryLoad();
|
| } else {
|
| // Load libraries using the system linker.
|
| for (String library : NativeLibraries.LIBRARIES) {
|
| @@ -264,7 +265,7 @@ public class LibraryLoader {
|
| }
|
| // Check that the version of the library we have loaded matches the version we expect
|
| Log.i(TAG, String.format(
|
| - "Expected native library version number \"%s\","
|
| + "Expected native library version number \"%s\", "
|
| + "actual native library version number \"%s\"",
|
| NativeLibraries.sVersionNumber,
|
| nativeGetVersionNumber()));
|
| @@ -301,7 +302,7 @@ public class LibraryLoader {
|
| // Load a native shared library with the Chromium linker. If the zip file
|
| // path is not null, the library is loaded directly from the zip file.
|
| private void loadLibrary(@Nullable String zipFilePath, String libFilePath) {
|
| - Linker.loadLibrary(zipFilePath, libFilePath);
|
| + Linker.getInstance().loadLibrary(zipFilePath, libFilePath);
|
| if (zipFilePath != null) {
|
| mLibraryWasLoadedFromApk = true;
|
| }
|
| @@ -371,7 +372,7 @@ public class LibraryLoader {
|
| // Record Chromium linker histogram state for the main browser process. Called from
|
| // onNativeInitializationComplete().
|
| private void recordBrowserProcessHistogram(Context context) {
|
| - if (Linker.isUsed()) {
|
| + if (Linker.getInstance().isUsed()) {
|
| nativeRecordChromiumAndroidLinkerBrowserHistogram(mIsUsingBrowserSharedRelros,
|
| mLoadAtFixedAddressFailed,
|
| getLibraryLoadFromApkStatus(context),
|
| @@ -382,7 +383,7 @@ public class LibraryLoader {
|
| // Returns the device's status for loading a library directly from the APK file.
|
| // This method can only be called when the Chromium linker is used.
|
| private int getLibraryLoadFromApkStatus(Context context) {
|
| - assert Linker.isUsed();
|
| + assert Linker.getInstance().isUsed();
|
|
|
| if (mLibraryWasLoadedFromApk) {
|
| return LibraryLoadFromApkStatusCodes.SUCCESSFUL;
|
| @@ -398,7 +399,7 @@ public class LibraryLoader {
|
| // RecordChromiumAndroidLinkerRendererHistogram() will record it correctly.
|
| public void registerRendererProcessHistogram(boolean requestedSharedRelro,
|
| boolean loadAtFixedAddressFailed) {
|
| - if (Linker.isUsed()) {
|
| + if (Linker.getInstance().isUsed()) {
|
| nativeRegisterChromiumAndroidLinkerRendererHistogram(requestedSharedRelro,
|
| loadAtFixedAddressFailed,
|
| mLibraryLoadTimeMs);
|
|
|