diff --git a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js index 1ff7e89..e1b188c 100644 --- a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js +++ b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js @@ -135,7 +135,7 @@ class LinuxTargetHelper { exec += executableArgs.join(" "); } - exec += " %U"; + exec += " --no-sandbox %U"; } const desktopMeta = { diff --git a/node_modules/app-builder-lib/templates/linux/after-install.tpl b/node_modules/app-builder-lib/templates/linux/after-install.tpl index 16eab30..0077182 100644 --- a/node_modules/app-builder-lib/templates/linux/after-install.tpl +++ b/node_modules/app-builder-lib/templates/linux/after-install.tpl @@ -3,8 +3,5 @@ # Link to the binary ln -sf '/opt/${productFilename}/${executable}' '/usr/bin/${executable}' -# SUID chrome-sandbox for Electron 5+ -chmod 4755 '/opt/${productFilename}/chrome-sandbox' || true - update-mime-database /usr/share/mime || true update-desktop-database /usr/share/applications || true diff --git a/node_modules/app-builder-lib/templates/nsis/include/allowOnlyOneInstallerInstance.nsh b/node_modules/app-builder-lib/templates/nsis/include/allowOnlyOneInstallerInstance.nsh index b52822068..3824c785f 100644 --- a/node_modules/app-builder-lib/templates/nsis/include/allowOnlyOneInstallerInstance.nsh +++ b/node_modules/app-builder-lib/templates/nsis/include/allowOnlyOneInstallerInstance.nsh @@ -62,16 +62,34 @@ # to ensure that files are not "in-use" Sleep 300 - ${nsProcess::FindProcess} "${APP_EXECUTABLE_FILENAME}" $R0 - ${if} $R0 == 0 - # wait to give a chance to exit gracefully - Sleep 1000 - nsExec::Exec `taskkill /f /im "${APP_EXECUTABLE_FILENAME}" /fi "PID ne $pid"` $R0 - ${If} $R0 != 0 - DetailPrint `Waiting for "${PRODUCT_NAME}" to close (taskkill exit code $R0).` - Sleep 2000 + # Retry counter + StrCpy $R1 0 + + loop: + IntOp $R1 $R1 + 1 + + ${nsProcess::FindProcess} "${APP_EXECUTABLE_FILENAME}" $R0 + ${if} $R0 == 0 + # wait to give a chance to exit gracefully + Sleep 1000 + nsExec::Exec `taskkill /f /im "${APP_EXECUTABLE_FILENAME}" /fi "PID ne $pid"` $R0 + ${If} $R0 != 0 + DetailPrint `Waiting for "${PRODUCT_NAME}" to close (taskkill exit code $R0).` + Sleep 2000 + ${endIf} + ${else} + Goto not_running ${endIf} - ${endIf} + + # App likely running with elevated permissions. + # Ask user to close it manually + ${if} $R1 > 1 + MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "$(appCannotBeClosed)" /SD IDCANCEL IDRETRY loop + Quit + ${else} + Goto loop + ${endIf} + not_running: ${endIf} ${endIf} !macroend diff --git a/node_modules/app-builder-lib/templates/nsis/messages.yml b/node_modules/app-builder-lib/templates/nsis/messages.yml index c35df3573..94c8e9e0c 100644 --- a/node_modules/app-builder-lib/templates/nsis/messages.yml +++ b/node_modules/app-builder-lib/templates/nsis/messages.yml @@ -66,6 +66,8 @@ appRunning: fi: "${PRODUCT_NAME} on käynnissä. Napsauta OK sulkeaksesi sen." es: "${PRODUCT_NAME} se está ejecutando. Haz clic en Aceptar para cerrarlo." da: "${PRODUCT_NAME} er i gang. Klik OK for at lukke." +appCannotBeClosed: + en: "${PRODUCT_NAME} cannot be closed. \nPlease close it manually and click Retry to continue" installing: en: Installing, please wait... de: Installation läuft, bitte warten...