From c9275743d1337275701d5c0d1a2e1c183f2ec00f Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Thu, 23 Feb 2023 15:03:51 +0100 Subject: [PATCH] Only instantiate sparkle updater if autoupdating is available Signed-off-by: Claudio Cambra --- src/gui/updater/sparkleupdater.h | 2 ++ src/gui/updater/sparkleupdater_mac.mm | 3 +-- src/gui/updater/updater.cpp | 10 ++++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/gui/updater/sparkleupdater.h b/src/gui/updater/sparkleupdater.h index fab3050baa..c3ccc5f016 100644 --- a/src/gui/updater/sparkleupdater.h +++ b/src/gui/updater/sparkleupdater.h @@ -36,6 +36,8 @@ public: SparkleUpdater(const QUrl &appCastUrl); ~SparkleUpdater(); + static bool autoUpdaterAllowed(); + void setUpdateUrl(const QUrl &url); // unused in this updater diff --git a/src/gui/updater/sparkleupdater_mac.mm b/src/gui/updater/sparkleupdater_mac.mm index 71650454cf..57dd04a1ca 100644 --- a/src/gui/updater/sparkleupdater_mac.mm +++ b/src/gui/updater/sparkleupdater_mac.mm @@ -260,8 +260,7 @@ void SparkleUpdater::setUpdateUrl(const QUrl &url) [_interface->updater setFeedURL: nsurl]; } -// FIXME: Should be changed to not instantiate the SparkleUpdater at all in this case -bool autoUpdaterAllowed() +bool SparkleUpdater::autoUpdaterAllowed() { // See https://github.com/owncloud/client/issues/2931 NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; diff --git a/src/gui/updater/updater.cpp b/src/gui/updater/updater.cpp index cb3dd31073..46393fcfb9 100644 --- a/src/gui/updater/updater.cpp +++ b/src/gui/updater/updater.cpp @@ -57,7 +57,9 @@ QUrl Updater::updateUrl() auto urlQuery = getQueryParams(); #if defined(Q_OS_MAC) && defined(HAVE_SPARKLE) - urlQuery.addQueryItem(QLatin1String("sparkle"), QLatin1String("true")); + if (SparkleUpdater::autoUpdaterAllowed()) { + urlQuery.addQueryItem(QLatin1String("sparkle"), QLatin1String("true")); + } #endif #if defined(Q_OS_WIN) @@ -142,7 +144,11 @@ Updater *Updater::create() } #if defined(Q_OS_MACOS) && defined(HAVE_SPARKLE) && defined(BUILD_OWNCLOUD_OSX_BUNDLE) - return new SparkleUpdater(url); + if (SparkleUpdater::autoUpdaterAllowed()) { + return new SparkleUpdater(url); + } + + return new PassiveUpdateNotifier(url); #elif defined(Q_OS_WIN32) // Also for MSI return new NSISUpdater(url);