diff --git a/src/pimuniqueapplication.cpp b/src/pimuniqueapplication.cpp --- a/src/pimuniqueapplication.cpp +++ b/src/pimuniqueapplication.cpp @@ -39,6 +39,13 @@ using namespace KontactInterface; +namespace { + +const char kChromiumFlagsEnv[] = "QTWEBENGINE_CHROMIUM_FLAGS"; +const char kDisableInProcessStackTraces[] = "--disable-in-process-stack-traces"; + +} + //@cond PRIVATE class Q_DECL_HIDDEN KontactInterface::PimUniqueApplication::Private { @@ -52,6 +59,15 @@ delete cmdArgs; } + static void disableChromiumCrashHandler() + { + // Disable Chromium's own crash handler, which overrides DrKonqi. + auto flags = qgetenv(kChromiumFlagsEnv); + if (!flags.contains(kDisableInProcessStackTraces)) { + qputenv(kChromiumFlagsEnv, flags + " " + kDisableInProcessStackTraces); + } + } + QCommandLineParser *const cmdArgs; }; //@endcond @@ -132,6 +148,9 @@ QDBusConnection::sessionBus().registerService(serviceName); } + // Make sure we have DrKonqi + Private::disableChromiumCrashHandler(); + static_cast(qApp)->activate(arguments, QDir::currentPath()); return true; }