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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java

Issue 23717023: Android: Add chrome-specific dynamic linker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove findbugs issues. Created 7 years, 3 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/browser/ChildProcessConnection.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java b/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
index 9715f6368742f364525ceefd0af6e26262dc1dd6..78519f1c1e9b5c94adc4e9b0884c9dcaeab402cf 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java
@@ -21,9 +21,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.chromium.base.CalledByNative;
import org.chromium.base.CpuFeatures;
+import org.chromium.base.Linker;
import org.chromium.base.SysUtils;
import org.chromium.base.ThreadUtils;
import org.chromium.content.app.ChildProcessService;
+import org.chromium.content.app.LibraryLoader;
import org.chromium.content.common.CommandLine;
import org.chromium.content.common.IChildProcessCallback;
import org.chromium.content.common.IChildProcessService;
@@ -87,6 +89,9 @@ public class ChildProcessConnection {
public static final String EXTRA_CPU_FEATURES =
"com.google.android.apps.chrome.extra.cpu_features";
+ public static final String EXTRA_CHROME_LINKER_ADDRESS =
+ "com.google.android.apps.chrome.extra.crazy_linker_address";
+
private final Context mContext;
private final int mServiceNumber;
private final boolean mInSandbox;
@@ -160,6 +165,9 @@ public class ChildProcessConnection {
if (commandLine != null) {
intent.putExtra(EXTRA_COMMAND_LINE, commandLine);
}
+ if (LibraryLoader.useCrazyLinker()) {
+ intent.putExtra(EXTRA_CHROME_LINKER_ADDRESS, Linker.getBaseLoadAddress());
+ }
mBound = mContext.bindService(intent, this, mBindFlags);
if (mBound && mProtectsFromOom && mConnectionCallbacks != null) {
mConnectionCallbacks.onOomBindingAdded(getPid());
@@ -413,6 +421,14 @@ public class ChildProcessConnection {
TraceEvent.end();
}
+ public void applyRelro(Bundle relroBundle) {
+ if (mService != null && relroBundle != null)
+ try {
+ mService.applyRelro(relroBundle);
+ } catch (Exception e) {
bulach 2013/09/09 16:14:15 is there a more specific Exception to catch? perha
digit1 2013/09/10 09:23:30 Yes, it's RemoteException (any Binder service func
+ }
+ }
+
private static final long REMOVE_INITIAL_BINDING_DELAY_MILLIS = 1 * 1000; // One second.
/**

Powered by Google App Engine
This is Rietveld 408576698