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); |
} |
} |