firefox/D210159.1715685538.diff
2024-05-13 13:25:18 +02:00

50 lines
1.6 KiB
Diff

diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -2136,11 +2136,15 @@
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) || defined(XP_MACOSX)
printf(" --headless Run without a GUI.\n");
#endif
#if defined(MOZ_ENABLE_DBUS)
- printf(" --dbus-service Run as DBus service.\n");
+ printf(
+ " --dbus-service <launcher> Run as DBus service for "
+ "org.freedesktop.Application and\n"
+ " set a launcher (usually /usr/bin/appname "
+ "script) for it.");
#endif
// this works, but only after the components have registered. so if you drop
// in a new command line handler, --help won't not until the second run. out
// of the bug, because we ship a component.reg file, it works correctly.
@@ -4378,17 +4382,24 @@
*aExitFlag = true;
return 0;
}
#ifdef MOZ_ENABLE_DBUS
- if (CheckArg("dbus-service")) {
- UniquePtr<DBusService> dbusService = MakeUnique<DBusService>(gArgv[0]);
+ const char* dbusServiceLauncher = nullptr;
+ ar = CheckArg("dbus-service", &dbusServiceLauncher, CheckArgFlag::None);
+ if (ar == ARG_BAD) {
+ Output(true, "Missing launcher param for --dbus-service\n");
+ return 1;
+ }
+ if (ar == ARG_FOUND) {
+ UniquePtr<DBusService> dbusService =
+ MakeUnique<DBusService>(dbusServiceLauncher);
if (dbusService->Init()) {
dbusService->Run();
}
*aExitFlag = true;
- return 1;
+ return 0;
}
#endif
rv = XRE_InitCommandLine(gArgc, gArgv);
NS_ENSURE_SUCCESS(rv, 1);