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

Unified Diff: content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java

Issue 2795333002: [Merge m58] Abstracting parameters passed to child processes on Android. (Closed)
Patch Set: Created 3 years, 8 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: 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);
}
}

Powered by Google App Engine
This is Rietveld 408576698