From a00e9d6cb180d85ad20ddce162ce6cf181b816e7 Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Fri, 3 Apr 2020 14:31:01 -0400 Subject: [PATCH] processes: close Jami and QWebEngineProcess using WiX Quiet Execution Custom Action Change-Id: I64cb7e86e2ff418c03ea374e05e14d43c8597acc --- JamiInstaller/Product.wxs | 8 ++++++++ src/utils.cpp | 14 ++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/JamiInstaller/Product.wxs b/JamiInstaller/Product.wxs index b8a9f11..fe6a02b 100644 --- a/JamiInstaller/Product.wxs +++ b/JamiInstaller/Product.wxs @@ -40,6 +40,12 @@ <CustomAction Id="removeOldJamiFiles" Directory="APPLICATIONFOLDER" ExeCommand="cmd /c "del vc_redist.x64.exe; del uninstall.exe; del WinSparkle.dll;"" Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" /> + <Property Id="QtExecCmdLine" Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM QtWebEngineProcess.exe /IM Jami.exe'/> + <CustomAction Id="JamiProcesses.TaskKill" + BinaryKey="WixCA" + DllEntry="CAQuietExec" + Execute="immediate" + Return="ignore"/> </Product> <Fragment Id="DirectoryStructure"> @@ -51,6 +57,7 @@ <Directory Id="ProgramMenuFolder"> <Directory Id="ApplicationProgramsFolder" /> </Directory> + <Directory Id="WindowsFolder" Name="WINDOWS"/> </Directory> </Fragment> @@ -104,6 +111,7 @@ </InstallUISequence> </UI> <InstallExecuteSequence> + <Custom Action='JamiProcesses.TaskKill' Before='InstallValidate'/> <Custom Action="removeOldJamiFiles" After="RemoveFiles" /> <Custom Action="LaunchApplication_nonUI" After="InstallFinalize"> WIXNONUILAUNCH </Custom> <Custom Action="Overwrite_WixSetDefaultPerMachineFolder" After="WixSetDefaultPerMachineFolder" /> diff --git a/src/utils.cpp b/src/utils.cpp index c432201..66e9311 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -35,6 +35,7 @@ #include "networkmanager.h" #include "updateconfirmdialog.h" #include "version.h" +#include "mainwindow.h" #include <globalinstances.h> #include <qrencode.h> @@ -439,12 +440,13 @@ Utils::applyUpdates(bool updateToBeta, QWidget* parent) } auto args = QString(" /passive /norestart WIXNONUILAUNCH=1"); auto dir = Utils::WinGetEnv("TEMP"); - auto cmd = "powershell " + QString(dir) + "\\" + downloadPath.fileName() - + " /L*V " + QString(dir) + "\\jami_x64_install.log" + args; - auto retq = QProcess::startDetached(cmd); - if (retq) { - QCoreApplication::exit(); - } + auto cmdStartInstaller = "powershell " + QString(dir) + "\\" + downloadPath.fileName() + + " /L*V " + QString(dir) + "\\jami_x64_install.log" + args; + + MainWindow::instance().close(); + LRCInstance::instance().reset(); + + QProcess::startDetached(cmdStartInstaller); }); } -- GitLab