Created
July 4, 2018 05:07
-
-
Save kmaglione/baffeb98c9a38260cf334a2c243a8637 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
changeset: 491683:d925c6ac67d2 | |
user: Kris Maglione <maglione.k@gmail.com> | |
date: Mon Jul 02 15:01:25 2018 -0700 | |
files: mozglue/android/APKOpen.cpp toolkit/xre/Bootstrap.cpp toolkit/xre/Bootstrap.h toolkit/xre/nsEmbedFunctions.cpp xpcom/build/nsXULAppAPI.h | |
description: | |
Bug 1471025: Part 3a - Refactor Android shared FD API to require fewer modifications per change. r?jld | |
Adding or removing an FD from this API currently requires changes in about a | |
half dozen places. Ignoring the Java side of things. This patch changes the | |
API to pass a struct, rather than additional arguments for each FD, so that | |
adding and removing FDs only requires changing one declaration, and the two | |
call sites that add and comsume the FDs. | |
diff -r e4b1db36c845 -r d925c6ac67d2 mozglue/android/APKOpen.cpp | |
--- mozglue/android/APKOpen.cpp Sun Jul 01 18:28:31 2018 -0700 | |
+++ mozglue/android/APKOpen.cpp Mon Jul 02 15:01:25 2018 -0700 | |
@@ -408,7 +408,7 @@ Java_org_mozilla_gecko_mozglue_GeckoLoad | |
gBootstrap->GeckoStart(jenv, argv, argc, sAppData); | |
ElfLoader::Singleton.ExpectShutdown(true); | |
} else { | |
- gBootstrap->XRE_SetAndroidChildFds(jenv, prefsFd, ipcFd, crashFd, crashAnnotationFd); | |
+ gBootstrap->XRE_SetAndroidChildFds(jenv, { prefsFd, ipcFd, crashFd, crashAnnotationFd }); | |
gBootstrap->XRE_SetProcessType(argv[argc - 1]); | |
XREChildData childData; | |
diff -r e4b1db36c845 -r d925c6ac67d2 toolkit/xre/Bootstrap.cpp | |
--- toolkit/xre/Bootstrap.cpp Sun Jul 01 18:28:31 2018 -0700 | |
+++ toolkit/xre/Bootstrap.cpp Mon Jul 02 15:01:25 2018 -0700 | |
@@ -78,8 +78,8 @@ public: | |
::GeckoStart(aEnv, argv, argc, aAppData); | |
} | |
- virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aPrefsFd, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) override { | |
- ::XRE_SetAndroidChildFds(aEnv, aPrefsFd, aIPCFd, aCrashFd, aCrashAnnotationFd); | |
+ virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, const XRE_AndroidChildFds& aFds) override { | |
+ ::XRE_SetAndroidChildFds(aEnv, aFds); | |
} | |
#endif | |
diff -r e4b1db36c845 -r d925c6ac67d2 toolkit/xre/Bootstrap.h | |
--- toolkit/xre/Bootstrap.h Sun Jul 01 18:28:31 2018 -0700 | |
+++ toolkit/xre/Bootstrap.h Mon Jul 02 15:01:25 2018 -0700 | |
@@ -113,7 +113,7 @@ public: | |
#ifdef MOZ_WIDGET_ANDROID | |
virtual void GeckoStart(JNIEnv* aEnv, char** argv, int argc, const StaticXREAppData& aAppData) = 0; | |
- virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aPrefsFd, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) = 0; | |
+ virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, const XRE_AndroidChildFds& fds) = 0; | |
#endif | |
#ifdef LIBFUZZER | |
diff -r e4b1db36c845 -r d925c6ac67d2 toolkit/xre/nsEmbedFunctions.cpp | |
--- toolkit/xre/nsEmbedFunctions.cpp Sun Jul 01 18:28:31 2018 -0700 | |
+++ toolkit/xre/nsEmbedFunctions.cpp Mon Jul 02 15:01:25 2018 -0700 | |
@@ -244,13 +244,13 @@ GeckoProcessType sChildProcessType = Gec | |
#if defined(MOZ_WIDGET_ANDROID) | |
void | |
-XRE_SetAndroidChildFds (JNIEnv* env, int prefsFd, int ipcFd, int crashFd, int crashAnnotationFd) | |
+XRE_SetAndroidChildFds (JNIEnv* env, const XRE_AndroidChildFds& fds) | |
{ | |
mozilla::jni::SetGeckoThreadEnv(env); | |
- mozilla::dom::SetPrefsFd(prefsFd); | |
- IPC::Channel::SetClientChannelFd(ipcFd); | |
- CrashReporter::SetNotificationPipeForChild(crashFd); | |
- CrashReporter::SetCrashAnnotationPipeForChild(crashAnnotationFd); | |
+ mozilla::dom::SetPrefsFd(fds.mPrefsFd); | |
+ IPC::Channel::SetClientChannelFd(fds.mIpcFd); | |
+ CrashReporter::SetNotificationPipeForChild(fds.mCrashFd); | |
+ CrashReporter::SetCrashAnnotationPipeForChild(fds.mCrashAnnotationFd); | |
} | |
#endif // defined(MOZ_WIDGET_ANDROID) | |
diff -r e4b1db36c845 -r d925c6ac67d2 xpcom/build/nsXULAppAPI.h | |
--- xpcom/build/nsXULAppAPI.h Sun Jul 01 18:28:31 2018 -0700 | |
+++ xpcom/build/nsXULAppAPI.h Mon Jul 02 15:01:25 2018 -0700 | |
@@ -397,8 +397,16 @@ XRE_API(const char*, | |
XRE_ChildProcessTypeToString, (GeckoProcessType aProcessType)) | |
#if defined(MOZ_WIDGET_ANDROID) | |
+struct XRE_AndroidChildFds | |
+{ | |
+ int mPrefsFd; | |
+ int mIpcFd; | |
+ int mCrashFd; | |
+ int mCrashAnnotationFd; | |
+}; | |
+ | |
XRE_API(void, | |
- XRE_SetAndroidChildFds, (JNIEnv* env, int prefsFd, int ipcFd, int crashFd, int crashAnnotationFd)) | |
+ XRE_SetAndroidChildFds, (JNIEnv* env, const XRE_AndroidChildFds& fds)) | |
#endif // defined(MOZ_WIDGET_ANDROID) | |
XRE_API(void, | |
changeset: 491685:f76a12de3579 | |
user: Kris Maglione <maglione.k@gmail.com> | |
date: Mon Jul 02 15:17:48 2018 -0700 | |
files: dom/ipc/ContentProcess.cpp dom/ipc/ContentProcess.h ipc/glue/GeckoChildProcessHost.cpp mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/process/IChildProcess.aidl mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/GeckoLoader.java mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoServiceChildProcess.java mozglue/android/APKOpen.cpp toolkit/xre/nsEmbedFunctions.cpp xpcom/build/nsXULAppAPI.h | |
description: | |
Bug 1471025: Part 3c - Also pass the shared preference map handle to Android content processes. r?jld | |
diff -r 65258f43e3a1 -r f76a12de3579 dom/ipc/ContentProcess.cpp | |
--- dom/ipc/ContentProcess.cpp Mon Jul 02 15:40:38 2018 -0700 | |
+++ dom/ipc/ContentProcess.cpp Mon Jul 02 15:17:48 2018 -0700 | |
@@ -83,12 +83,19 @@ SetUpSandboxEnvironment() | |
#ifdef ANDROID | |
static int gPrefsFd = -1; | |
+static int gPrefMapFd = -1; | |
void | |
SetPrefsFd(int aFd) | |
{ | |
gPrefsFd = aFd; | |
} | |
+ | |
+void | |
+SetPrefMapFd(int aFd) | |
+{ | |
+ gPrefMapFd = aFd; | |
+} | |
#endif | |
bool | |
@@ -229,6 +236,9 @@ ContentProcess::Init(int aArgc, char* aA | |
// Android is different; get the FD via gPrefsFd instead of a fixed fd. | |
MOZ_RELEASE_ASSERT(gPrefsFd != -1); | |
prefsHandle = Some(base::FileDescriptor(gPrefsFd, /* auto_close */ true)); | |
+ | |
+ FileDescriptor::UniquePlatformHandle handle(gPrefMapFd); | |
+ prefMapHandle.emplace(handle.get()); | |
#elif XP_UNIX | |
prefsHandle = Some(base::FileDescriptor(kPrefsFileDescriptor, | |
/* auto_close */ true)); | |
diff -r 65258f43e3a1 -r f76a12de3579 dom/ipc/ContentProcess.h | |
--- dom/ipc/ContentProcess.h Mon Jul 02 15:40:38 2018 -0700 | |
+++ dom/ipc/ContentProcess.h Mon Jul 02 15:17:48 2018 -0700 | |
@@ -50,8 +50,9 @@ private: | |
}; | |
#ifdef ANDROID | |
-// Android doesn't use -prefsHandle, it gets that FD another way. | |
+// Android doesn't use -prefsHandle, it gets that FDs another way. | |
void SetPrefsFd(int aFd); | |
+void SetPrefMapFd(int aFd); | |
#endif | |
} // namespace dom | |
diff -r 65258f43e3a1 -r f76a12de3579 ipc/glue/GeckoChildProcessHost.cpp | |
--- ipc/glue/GeckoChildProcessHost.cpp Mon Jul 02 15:40:38 2018 -0700 | |
+++ ipc/glue/GeckoChildProcessHost.cpp Mon Jul 02 15:17:48 2018 -0700 | |
@@ -1253,18 +1253,19 @@ GeckoChildProcessHost::LaunchAndroidServ | |
// which they append to fds_to_remap. There must be a better way to do it. | |
// See bug 1440207. | |
int32_t prefsFd = fds_to_remap[0].first; | |
- int32_t ipcFd = fds_to_remap[1].first; | |
+ int32_t prefMapFd = fds_to_remap[1].first; | |
+ int32_t ipcFd = fds_to_remap[2].first; | |
int32_t crashFd = -1; | |
int32_t crashAnnotationFd = -1; | |
- if (fds_to_remap.size() == 3) { | |
- crashAnnotationFd = fds_to_remap[2].first; | |
- } | |
if (fds_to_remap.size() == 4) { | |
- crashFd = fds_to_remap[2].first; | |
crashAnnotationFd = fds_to_remap[3].first; | |
} | |
+ if (fds_to_remap.size() == 5) { | |
+ crashFd = fds_to_remap[3].first; | |
+ crashAnnotationFd = fds_to_remap[4].first; | |
+ } | |
- int32_t handle = java::GeckoProcessManager::Start(type, jargs, prefsFd, ipcFd, crashFd, crashAnnotationFd); | |
+ int32_t handle = java::GeckoProcessManager::Start(type, jargs, prefsFd, prefMapFd, ipcFd, crashFd, crashAnnotationFd); | |
if (process_handle) { | |
*process_handle = handle; | |
diff -r 65258f43e3a1 -r f76a12de3579 mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/process/IChildProcess.aidl | |
--- mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/process/IChildProcess.aidl Mon Jul 02 15:40:38 2018 -0700 | |
+++ mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/process/IChildProcess.aidl Mon Jul 02 15:17:48 2018 -0700 | |
@@ -12,7 +12,8 @@ import android.os.ParcelFileDescriptor; | |
interface IChildProcess { | |
int getPid(); | |
boolean start(in IProcessManager procMan, in String[] args, in Bundle extras, int flags, | |
- in ParcelFileDescriptor prefsPfd, in ParcelFileDescriptor ipcPfd, | |
+ in ParcelFileDescriptor prefsPfd, in ParcelFileDescriptor prefMapPfd, | |
+ in ParcelFileDescriptor ipcPfd, | |
in ParcelFileDescriptor crashReporterPfd, | |
in ParcelFileDescriptor crashAnnotationPfd); | |
diff -r 65258f43e3a1 -r f76a12de3579 mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java | |
--- mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java Mon Jul 02 15:40:38 2018 -0700 | |
+++ mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java Mon Jul 02 15:17:48 2018 -0700 | |
@@ -132,6 +132,7 @@ public class GeckoThread extends Thread | |
/* package */ static final String EXTRA_ARGS = "args"; | |
private static final String EXTRA_PREFS_FD = "prefsFd"; | |
+ private static final String EXTRA_PREF_MAP_FD = "prefMapFd"; | |
private static final String EXTRA_IPC_FD = "ipcFd"; | |
private static final String EXTRA_CRASH_FD = "crashFd"; | |
private static final String EXTRA_CRASH_ANNOTATION_FD = "crashAnnotationFd"; | |
@@ -153,7 +154,8 @@ public class GeckoThread extends Thread | |
private synchronized boolean init(final GeckoProfile profile, final String[] args, | |
final Bundle extras, final int flags, | |
- final int prefsFd, final int ipcFd, | |
+ final int prefsFd, final int prefMapFd, | |
+ final int ipcFd, | |
final int crashFd, | |
final int crashAnnotationFd) { | |
ThreadUtils.assertOnUiThread(); | |
@@ -169,6 +171,7 @@ public class GeckoThread extends Thread | |
mExtras = (extras != null) ? new Bundle(extras) : new Bundle(3); | |
mExtras.putInt(EXTRA_PREFS_FD, prefsFd); | |
+ mExtras.putInt(EXTRA_PREF_MAP_FD, prefMapFd); | |
mExtras.putInt(EXTRA_IPC_FD, ipcFd); | |
mExtras.putInt(EXTRA_CRASH_FD, crashFd); | |
mExtras.putInt(EXTRA_CRASH_ANNOTATION_FD, crashAnnotationFd); | |
@@ -181,18 +184,20 @@ public class GeckoThread extends Thread | |
public static boolean initMainProcess(final GeckoProfile profile, final String[] args, | |
final Bundle extras, final int flags) { | |
return INSTANCE.init(profile, args, extras, flags, /* fd */ -1, | |
- /* fd */ -1, /* fd */ -1, /* fd */ -1); | |
+ /* fd */ -1, /* fd */ -1, /* fd */ -1, | |
+ /* fd */ -1); | |
} | |
public static boolean initChildProcess(final String[] args, | |
final Bundle extras, | |
final int flags, | |
final int prefsFd, | |
+ final int prefMapFd, | |
final int ipcFd, | |
final int crashFd, | |
final int crashAnnotationFd) { | |
return INSTANCE.init(/* profile */ null, args, extras, flags, | |
- prefsFd, ipcFd, crashFd, crashAnnotationFd); | |
+ prefsFd, prefMapFd, ipcFd, crashFd, crashAnnotationFd); | |
} | |
private static boolean canUseProfile(final Context context, final GeckoProfile profile, | |
@@ -497,6 +502,7 @@ public class GeckoThread extends Thread | |
// And go. | |
GeckoLoader.nativeRun(args, | |
mExtras.getInt(EXTRA_PREFS_FD, -1), | |
+ mExtras.getInt(EXTRA_PREF_MAP_FD, -1), | |
mExtras.getInt(EXTRA_IPC_FD, -1), | |
mExtras.getInt(EXTRA_CRASH_FD, -1), | |
mExtras.getInt(EXTRA_CRASH_ANNOTATION_FD, -1)); | |
diff -r 65258f43e3a1 -r f76a12de3579 mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/GeckoLoader.java | |
--- mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/GeckoLoader.java Mon Jul 02 15:40:38 2018 -0700 | |
+++ mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/GeckoLoader.java Mon Jul 02 15:17:48 2018 -0700 | |
@@ -456,7 +456,7 @@ public final class GeckoLoader { | |
public static native boolean verifyCRCs(String apkName); | |
// These methods are implemented in mozglue/android/APKOpen.cpp | |
- public static native void nativeRun(String[] args, int prefsFd, int ipcFd, int crashFd, int crashAnnotationFd); | |
+ public static native void nativeRun(String[] args, int prefsFd, int prefMapFd, int ipcFd, int crashFd, int crashAnnotationFd); | |
private static native void loadGeckoLibsNative(String apkName); | |
private static native void loadSQLiteLibsNative(String apkName); | |
private static native void loadNSSLibsNative(String apkName); | |
diff -r 65258f43e3a1 -r f76a12de3579 mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java | |
--- mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java Mon Jul 02 15:40:38 2018 -0700 | |
+++ mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java Mon Jul 02 15:17:48 2018 -0700 | |
@@ -180,9 +180,10 @@ public final class GeckoProcessManager e | |
@WrapForJNI | |
private static int start(final String type, final String[] args, | |
- final int prefsFd, final int ipcFd, | |
+ final int prefsFd, final int prefMapFd, | |
+ final int ipcFd, | |
final int crashFd, final int crashAnnotationFd) { | |
- return INSTANCE.start(type, args, prefsFd, ipcFd, crashFd, crashAnnotationFd, /* retry */ false); | |
+ return INSTANCE.start(type, args, prefsFd, prefMapFd, ipcFd, crashFd, crashAnnotationFd, /* retry */ false); | |
} | |
private int filterFlagsForChild(int flags) { | |
@@ -190,7 +191,8 @@ public final class GeckoProcessManager e | |
GeckoThread.FLAG_ENABLE_NATIVE_CRASHREPORTER); | |
} | |
- private int start(final String type, final String[] args, final int prefsFd, | |
+ private int start(final String type, final String[] args, | |
+ final int prefsFd, final int prefMapFd, | |
final int ipcFd, final int crashFd, | |
final int crashAnnotationFd, final boolean retry) { | |
final ChildConnection connection = getConnection(type); | |
@@ -201,11 +203,13 @@ public final class GeckoProcessManager e | |
final Bundle extras = GeckoThread.getActiveExtras(); | |
final ParcelFileDescriptor prefsPfd; | |
+ final ParcelFileDescriptor prefMapPfd; | |
final ParcelFileDescriptor ipcPfd; | |
final ParcelFileDescriptor crashPfd; | |
final ParcelFileDescriptor crashAnnotationPfd; | |
try { | |
prefsPfd = ParcelFileDescriptor.fromFd(prefsFd); | |
+ prefMapPfd = ParcelFileDescriptor.fromFd(prefMapFd); | |
ipcPfd = ParcelFileDescriptor.fromFd(ipcFd); | |
crashPfd = (crashFd >= 0) ? ParcelFileDescriptor.fromFd(crashFd) : null; | |
crashAnnotationPfd = (crashAnnotationFd >= 0) ? ParcelFileDescriptor.fromFd(crashAnnotationFd) : null; | |
@@ -218,8 +222,8 @@ public final class GeckoProcessManager e | |
boolean started = false; | |
try { | |
- started = child.start(this, args, extras, flags, prefsPfd, ipcPfd, crashPfd, | |
- crashAnnotationPfd); | |
+ started = child.start(this, args, extras, flags, prefsPfd, prefMapPfd, | |
+ ipcPfd, crashPfd, crashAnnotationPfd); | |
} catch (final RemoteException e) { | |
} | |
@@ -230,7 +234,7 @@ public final class GeckoProcessManager e | |
} | |
Log.w(LOGTAG, "Attempting to kill running child " + type); | |
connection.unbind(); | |
- return start(type, args, prefsFd, ipcFd, crashFd, crashAnnotationFd, /* retry */ true); | |
+ return start(type, args, prefsFd, prefMapFd, ipcFd, crashFd, crashAnnotationFd, /* retry */ true); | |
} | |
try { | |
diff -r 65258f43e3a1 -r f76a12de3579 mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoServiceChildProcess.java | |
--- mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoServiceChildProcess.java Mon Jul 02 15:40:38 2018 -0700 | |
+++ mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoServiceChildProcess.java Mon Jul 02 15:17:48 2018 -0700 | |
@@ -62,6 +62,7 @@ public class GeckoServiceChildProcess ex | |
final Bundle extras, | |
final int flags, | |
final ParcelFileDescriptor prefsPfd, | |
+ final ParcelFileDescriptor prefMapPfd, | |
final ParcelFileDescriptor ipcPfd, | |
final ParcelFileDescriptor crashReporterPfd, | |
final ParcelFileDescriptor crashAnnotationPfd) { | |
@@ -74,6 +75,7 @@ public class GeckoServiceChildProcess ex | |
} | |
final int prefsFd = prefsPfd.detachFd(); | |
+ final int prefMapFd = prefMapPfd.detachFd(); | |
final int ipcFd = ipcPfd.detachFd(); | |
final int crashReporterFd = crashReporterPfd != null ? | |
crashReporterPfd.detachFd() : -1; | |
@@ -83,8 +85,8 @@ public class GeckoServiceChildProcess ex | |
ThreadUtils.postToUiThread(new Runnable() { | |
@Override | |
public void run() { | |
- if (GeckoThread.initChildProcess(args, extras, flags, prefsFd, ipcFd, crashReporterFd, | |
- crashAnnotationFd)) { | |
+ if (GeckoThread.initChildProcess(args, extras, flags, prefsFd, prefMapFd, ipcFd, | |
+ crashReporterFd, crashAnnotationFd)) { | |
GeckoThread.launch(); | |
} | |
} | |
diff -r 65258f43e3a1 -r f76a12de3579 mozglue/android/APKOpen.cpp | |
--- mozglue/android/APKOpen.cpp Mon Jul 02 15:40:38 2018 -0700 | |
+++ mozglue/android/APKOpen.cpp Mon Jul 02 15:17:48 2018 -0700 | |
@@ -393,7 +393,7 @@ FreeArgv(char** argv, int argc) | |
} | |
extern "C" APKOPEN_EXPORT void MOZ_JNICALL | |
-Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv *jenv, jclass jc, jobjectArray jargs, int prefsFd, int ipcFd, int crashFd, int crashAnnotationFd) | |
+Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv *jenv, jclass jc, jobjectArray jargs, int prefsFd, int prefMapFd, int ipcFd, int crashFd, int crashAnnotationFd) | |
{ | |
int argc = 0; | |
char** argv = CreateArgvFromObjectArray(jenv, jargs, &argc); | |
@@ -408,7 +408,7 @@ Java_org_mozilla_gecko_mozglue_GeckoLoad | |
gBootstrap->GeckoStart(jenv, argv, argc, sAppData); | |
ElfLoader::Singleton.ExpectShutdown(true); | |
} else { | |
- gBootstrap->XRE_SetAndroidChildFds(jenv, { prefsFd, ipcFd, crashFd, crashAnnotationFd }); | |
+ gBootstrap->XRE_SetAndroidChildFds(jenv, { prefsFd, prefsMapFd, ipcFd, crashFd, crashAnnotationFd }); | |
gBootstrap->XRE_SetProcessType(argv[argc - 1]); | |
XREChildData childData; | |
diff -r 65258f43e3a1 -r f76a12de3579 toolkit/xre/nsEmbedFunctions.cpp | |
--- toolkit/xre/nsEmbedFunctions.cpp Mon Jul 02 15:40:38 2018 -0700 | |
+++ toolkit/xre/nsEmbedFunctions.cpp Mon Jul 02 15:17:48 2018 -0700 | |
@@ -248,6 +248,7 @@ XRE_SetAndroidChildFds (JNIEnv* env, con | |
{ | |
mozilla::jni::SetGeckoThreadEnv(env); | |
mozilla::dom::SetPrefsFd(fds.mPrefsFd); | |
+ mozilla::dom::SetPrefMapFd(fds.mPrefMapFd); | |
IPC::Channel::SetClientChannelFd(fds.mIpcFd); | |
CrashReporter::SetNotificationPipeForChild(fds.mCrashFd); | |
CrashReporter::SetCrashAnnotationPipeForChild(fds.mCrashAnnotationFd); | |
diff -r 65258f43e3a1 -r f76a12de3579 xpcom/build/nsXULAppAPI.h | |
--- xpcom/build/nsXULAppAPI.h Mon Jul 02 15:40:38 2018 -0700 | |
+++ xpcom/build/nsXULAppAPI.h Mon Jul 02 15:17:48 2018 -0700 | |
@@ -400,6 +400,7 @@ XRE_API(const char*, | |
struct XRE_AndroidChildFds | |
{ | |
int mPrefsFd; | |
+ int mPrefMapFd; | |
int mIpcFd; | |
int mCrashFd; | |
int mCrashAnnotationFd; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment