| Index: content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java b/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java
|
| index 7d7fe378e00433a2f9693e8adc4f679115dee617..ca110131dfb309f42bb04d4066ecff9793f3f37d 100644
|
| --- a/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java
|
| +++ b/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java
|
| @@ -4,16 +4,20 @@
|
|
|
| package org.chromium.content.app;
|
|
|
| -import android.content.Intent;
|
| +import android.os.Parcel;
|
| +import android.os.Parcelable;
|
|
|
| import java.util.Locale;
|
|
|
| +import javax.annotation.concurrent.Immutable;
|
| +
|
| /**
|
| * A class to hold information passed from the browser process to each
|
| * service one when using the chromium linker. For more information, read the
|
| * technical notes in Linker.java.
|
| */
|
| -public class ChromiumLinkerParams {
|
| +@Immutable
|
| +public class ChromiumLinkerParams implements Parcelable {
|
| // Use this base address to load native shared libraries. If 0, ignore other members.
|
| public final long mBaseLoadAddress;
|
|
|
| @@ -28,20 +32,7 @@ public class ChromiumLinkerParams {
|
| // to force for testing.
|
| public final int mLinkerImplementationForTesting;
|
|
|
| - private static final String EXTRA_LINKER_PARAMS_BASE_LOAD_ADDRESS =
|
| - "org.chromium.content.common.linker_params.base_load_address";
|
| -
|
| - private static final String EXTRA_LINKER_PARAMS_WAIT_FOR_SHARED_RELRO =
|
| - "org.chromium.content.common.linker_params.wait_for_shared_relro";
|
| -
|
| - private static final String EXTRA_LINKER_PARAMS_TEST_RUNNER_CLASS_NAME =
|
| - "org.chromium.content.common.linker_params.test_runner_class_name";
|
| -
|
| - private static final String EXTRA_LINKER_PARAMS_LINKER_IMPLEMENTATION =
|
| - "org.chromium.content.common.linker_params.linker_implementation";
|
| -
|
| - public ChromiumLinkerParams(long baseLoadAddress,
|
| - boolean waitForSharedRelro) {
|
| + public ChromiumLinkerParams(long baseLoadAddress, boolean waitForSharedRelro) {
|
| mBaseLoadAddress = baseLoadAddress;
|
| mWaitForSharedRelro = waitForSharedRelro;
|
| mTestRunnerClassNameForTesting = null;
|
| @@ -61,45 +52,46 @@ public class ChromiumLinkerParams {
|
| mLinkerImplementationForTesting = linkerImplementation;
|
| }
|
|
|
| - /**
|
| - * Use this constructor to recreate a LinkerParams instance from an Intent.
|
| - *
|
| - * @param intent An Intent, its content must have been populated by a previous
|
| - * call to addIntentExtras().
|
| - */
|
| - public ChromiumLinkerParams(Intent intent) {
|
| - mBaseLoadAddress =
|
| - intent.getLongExtra(EXTRA_LINKER_PARAMS_BASE_LOAD_ADDRESS, 0);
|
| - mWaitForSharedRelro =
|
| - intent.getBooleanExtra(EXTRA_LINKER_PARAMS_WAIT_FOR_SHARED_RELRO, false);
|
| - mTestRunnerClassNameForTesting =
|
| - intent.getStringExtra(EXTRA_LINKER_PARAMS_TEST_RUNNER_CLASS_NAME);
|
| - mLinkerImplementationForTesting =
|
| - intent.getIntExtra(EXTRA_LINKER_PARAMS_LINKER_IMPLEMENTATION, 0);
|
| + ChromiumLinkerParams(Parcel in) {
|
| + mBaseLoadAddress = in.readLong();
|
| + mWaitForSharedRelro = in.readInt() != 0;
|
| + mTestRunnerClassNameForTesting = in.readString();
|
| + mLinkerImplementationForTesting = in.readInt();
|
| }
|
|
|
| - /**
|
| - * Ensure this LinkerParams instance is sent to a service process by adding
|
| - * it to an intent's extras.
|
| - *
|
| - * @param intent An Intent use to start or connect to the child service process.
|
| - */
|
| - public void addIntentExtras(Intent intent) {
|
| - intent.putExtra(EXTRA_LINKER_PARAMS_BASE_LOAD_ADDRESS, mBaseLoadAddress);
|
| - intent.putExtra(EXTRA_LINKER_PARAMS_WAIT_FOR_SHARED_RELRO, mWaitForSharedRelro);
|
| - intent.putExtra(EXTRA_LINKER_PARAMS_TEST_RUNNER_CLASS_NAME, mTestRunnerClassNameForTesting);
|
| - intent.putExtra(EXTRA_LINKER_PARAMS_LINKER_IMPLEMENTATION, mLinkerImplementationForTesting);
|
| + @Override
|
| + public int describeContents() {
|
| + return 0;
|
| + }
|
| +
|
| + @Override
|
| + public void writeToParcel(Parcel dest, int flags) {
|
| + dest.writeLong(mBaseLoadAddress);
|
| + dest.writeInt(mWaitForSharedRelro ? 1 : 0);
|
| + dest.writeString(mTestRunnerClassNameForTesting);
|
| + dest.writeInt(mLinkerImplementationForTesting);
|
| }
|
|
|
| + public static final Parcelable.Creator<ChromiumLinkerParams> CREATOR =
|
| + new Parcelable.Creator<ChromiumLinkerParams>() {
|
| + @Override
|
| + public ChromiumLinkerParams createFromParcel(Parcel in) {
|
| + return new ChromiumLinkerParams(in);
|
| + }
|
| +
|
| + @Override
|
| + public ChromiumLinkerParams[] newArray(int size) {
|
| + return new ChromiumLinkerParams[size];
|
| + }
|
| + };
|
| +
|
| // For debugging traces only.
|
| @Override
|
| public String toString() {
|
| return String.format(Locale.US,
|
| "LinkerParams(baseLoadAddress:0x%x, waitForSharedRelro:%s, "
|
| + "testRunnerClassName:%s, linkerImplementation:%d",
|
| - mBaseLoadAddress,
|
| - mWaitForSharedRelro ? "true" : "false",
|
| - mTestRunnerClassNameForTesting,
|
| - mLinkerImplementationForTesting);
|
| + mBaseLoadAddress, Boolean.toString(mWaitForSharedRelro),
|
| + mTestRunnerClassNameForTesting, mLinkerImplementationForTesting);
|
| }
|
| }
|
|
|