зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1442255 - 7. Switch the order of fd arguments; r=jchen
Switch the order of the IPC FD argument and the crash FD argument in e10s calls, because the IPC FD is the primary FD, and the crash FD should be grouped with the crash annotation FD. MozReview-Commit-ID: CAVyYAIIBPm --HG-- extra : rebase_source : 596f590443f727d1a79582202eed122f79ae85cf
This commit is contained in:
Родитель
8865f7185a
Коммит
5c88095f46
|
@ -1203,7 +1203,7 @@ GeckoChildProcessHost::LaunchAndroidService(const char* type,
|
|||
crashAnnotationFd = it->first;
|
||||
it++;
|
||||
}
|
||||
int32_t handle = java::GeckoProcessManager::Start(type, jargs, crashFd, ipcFd, crashAnnotationFd);
|
||||
int32_t handle = java::GeckoProcessManager::Start(type, jargs, ipcFd, crashFd, crashAnnotationFd);
|
||||
|
||||
if (process_handle) {
|
||||
*process_handle = handle;
|
||||
|
|
|
@ -441,8 +441,9 @@ public class GeckoThread extends Thread {
|
|||
GeckoLoader.setupGeckoEnvironment(context, context.getFilesDir().getPath(), mExtras);
|
||||
|
||||
// And go.
|
||||
GeckoLoader.nativeRun(args, mExtras.getInt(EXTRA_CRASH_FD, -1),
|
||||
GeckoLoader.nativeRun(args,
|
||||
mExtras.getInt(EXTRA_IPC_FD, -1),
|
||||
mExtras.getInt(EXTRA_CRASH_FD, -1),
|
||||
mExtras.getInt(EXTRA_CRASH_ANNOTATION_FD, -1));
|
||||
|
||||
// And... we're done.
|
||||
|
|
|
@ -463,7 +463,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 crashFd, int ipcFd, int crashAnnotationFd);
|
||||
public static native void nativeRun(String[] args, 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);
|
||||
|
|
|
@ -74,7 +74,7 @@ public class GeckoServiceChildProcess extends Service {
|
|||
sProcessManager = procMan;
|
||||
}
|
||||
|
||||
final int ipcFd = ipcPfd != null ? ipcPfd.detachFd() : -1;
|
||||
final int ipcFd = ipcPfd.detachFd();
|
||||
final int crashReporterFd = crashReporterPfd != null ?
|
||||
crashReporterPfd.detachFd() : -1;
|
||||
final int crashAnnotationFd = crashAnnotationPfd != null ?
|
||||
|
|
|
@ -392,7 +392,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 crashFd, int ipcFd, int crashAnnotationFd)
|
||||
Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv *jenv, jclass jc, jobjectArray jargs, int ipcFd, int crashFd, int crashAnnotationFd)
|
||||
{
|
||||
int argc = 0;
|
||||
char** argv = CreateArgvFromObjectArray(jenv, jargs, &argc);
|
||||
|
@ -407,7 +407,7 @@ Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv *jenv, jclass jc, jo
|
|||
gBootstrap->GeckoStart(jenv, argv, argc, sAppData);
|
||||
ElfLoader::Singleton.ExpectShutdown(true);
|
||||
} else {
|
||||
gBootstrap->XRE_SetAndroidChildFds(jenv, crashFd, ipcFd, crashAnnotationFd);
|
||||
gBootstrap->XRE_SetAndroidChildFds(jenv, ipcFd, crashFd, crashAnnotationFd);
|
||||
gBootstrap->XRE_SetProcessType(argv[argc - 1]);
|
||||
|
||||
XREChildData childData;
|
||||
|
|
|
@ -78,8 +78,8 @@ public:
|
|||
::GeckoStart(aEnv, argv, argc, aAppData);
|
||||
}
|
||||
|
||||
virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aCrashFd, int aIPCFd, int aCrashAnnotationFd) override {
|
||||
::XRE_SetAndroidChildFds(aEnv, aCrashFd, aIPCFd, aCrashAnnotationFd);
|
||||
virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) override {
|
||||
::XRE_SetAndroidChildFds(aEnv, aIPCFd, aCrashFd, aCrashAnnotationFd);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -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 aCrashFd, int aIPCFd, int aCrashAnnotationFd) = 0;
|
||||
virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) = 0;
|
||||
#endif
|
||||
|
||||
#ifdef LIBFUZZER
|
||||
|
|
|
@ -243,12 +243,12 @@ GeckoProcessType sChildProcessType = GeckoProcessType_Default;
|
|||
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
void
|
||||
XRE_SetAndroidChildFds (JNIEnv* env, int crashFd, int ipcFd, int crashAnnotationFd)
|
||||
XRE_SetAndroidChildFds (JNIEnv* env, int ipcFd, int crashFd, int crashAnnotationFd)
|
||||
{
|
||||
mozilla::jni::SetGeckoThreadEnv(env);
|
||||
IPC::Channel::SetClientChannelFd(ipcFd);
|
||||
CrashReporter::SetNotificationPipeForChild(crashFd);
|
||||
CrashReporter::SetCrashAnnotationPipeForChild(crashAnnotationFd);
|
||||
IPC::Channel::SetClientChannelFd(ipcFd);
|
||||
}
|
||||
#endif // defined(MOZ_WIDGET_ANDROID)
|
||||
|
||||
|
|
|
@ -398,7 +398,7 @@ XRE_API(const char*,
|
|||
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
XRE_API(void,
|
||||
XRE_SetAndroidChildFds, (JNIEnv* env, int crashFd, int ipcFd, int crashAnnotationFd))
|
||||
XRE_SetAndroidChildFds, (JNIEnv* env, int ipcFd, int crashFd, int crashAnnotationFd))
|
||||
#endif // defined(MOZ_WIDGET_ANDROID)
|
||||
|
||||
XRE_API(void,
|
||||
|
|
Загрузка…
Ссылка в новой задаче