summaryrefslogtreecommitdiffstats
path: root/ipc/app/MozillaRuntimeMainAndroid.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:47:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:47:29 +0000
commit0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch)
treea31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /ipc/app/MozillaRuntimeMainAndroid.cpp
parentInitial commit. (diff)
downloadfirefox-esr-37a0381f8351b370577b65028ba1f6563ae23fdf.tar.xz
firefox-esr-37a0381f8351b370577b65028ba1f6563ae23fdf.zip
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ipc/app/MozillaRuntimeMainAndroid.cpp')
-rw-r--r--ipc/app/MozillaRuntimeMainAndroid.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/ipc/app/MozillaRuntimeMainAndroid.cpp b/ipc/app/MozillaRuntimeMainAndroid.cpp
new file mode 100644
index 0000000000..b70015018d
--- /dev/null
+++ b/ipc/app/MozillaRuntimeMainAndroid.cpp
@@ -0,0 +1,32 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ * vim: sw=2 ts=4 et :
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include <dlfcn.h>
+#include <android/log.h>
+
+int main(int argc, char* argv[]) {
+ // Check for the absolute minimum number of args we need to move
+ // forward here. We expect the last arg to be the child process type.
+ if (argc < 2) return 1;
+
+ void* mozloader_handle = dlopen("libmozglue.so", RTLD_LAZY);
+ if (!mozloader_handle) {
+ __android_log_print(ANDROID_LOG_ERROR, "GeckoChildLoad",
+ "Couldn't load mozloader because %s", dlerror());
+ return 1;
+ }
+
+ typedef int (*ChildProcessInit_t)(int, char**);
+ ChildProcessInit_t fChildProcessInit =
+ (ChildProcessInit_t)dlsym(mozloader_handle, "ChildProcessInit");
+ if (!fChildProcessInit) {
+ __android_log_print(ANDROID_LOG_ERROR, "GeckoChildLoad",
+ "Couldn't load cpi_t because %s", dlerror());
+ return 1;
+ }
+
+ return fChildProcessInit(argc, argv);
+}