summaryrefslogtreecommitdiff
path: root/indra/newview/llvelopack.cpp
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2026-05-20 12:05:18 -0400
committerGitHub <noreply@github.com>2026-05-20 12:05:18 -0400
commit40cd1617a6a663fb921265101307454b490ec4ba (patch)
tree2f13741295c385172364e3fa940d7591f32fac4e /indra/newview/llvelopack.cpp
parent9c2ee024bef564ebb6e2e8942b43ffae1d99232c (diff)
parentdf844170600608b37c2725f7a263f1de3b055618 (diff)
Merge branch 'develop' into geenz/26.3-to-develop
Diffstat (limited to 'indra/newview/llvelopack.cpp')
-rw-r--r--indra/newview/llvelopack.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/indra/newview/llvelopack.cpp b/indra/newview/llvelopack.cpp
index 90eb977bba..26f3f41db6 100644
--- a/indra/newview/llvelopack.cpp
+++ b/indra/newview/llvelopack.cpp
@@ -43,6 +43,7 @@
#include "Velopack.h"
#if LL_WINDOWS
+#include "llappviewerwin32.h"
#include <windows.h>
#include <shlobj.h>
#include <shobjidl.h>
@@ -238,7 +239,7 @@ static bool custom_download_asset(void* user_data,
{
// The asset has already been downloaded at the coroutine level (before vpkc_download_updates).
// This callback just copies the pre-downloaded file to where Velopack expects it.
- // We cannot use getRawAndSuspend here — coroutine context is lost through the Rust FFI boundary.
+ // We cannot use getRawAndSuspend here - coroutine context is lost through the Rust FFI boundary.
if (sPreDownloadedAssetPath.empty())
{
LL_WARNS("Velopack") << "No pre-downloaded asset available" << LL_ENDL;
@@ -878,8 +879,12 @@ static void on_before_uninstall(void* user_data, const char* app_version)
unregister_protocol_handler(PROTOCOL_SECONDLIFE);
unregister_protocol_handler(PROTOCOL_GRID_INFO);
- unregister_uninstall_info();
remove_shortcuts(app_name);
+
+ std::wstring install_dir = get_install_dir();
+ LLAppViewerWin32::sendShutdownToOtherInstances(install_dir);
+
+ unregister_uninstall_info();
}
static void on_log_message(void* user_data, const char* level, const char* message)
@@ -998,7 +1003,7 @@ static void ensure_update_manager(bool allow_downgrade)
LL_INFOS("Velopack") << "Auto-detect failed (" << ll_safe_string(err)
<< "), falling back to explicit locator" << LL_ENDL;
- // Auto-detection failed — construct an explicit locator.
+ // Auto-detection failed - construct an explicit locator.
// This handles legacy DMG installs that don't have Velopack's
// install state (UpdateMac, sq.version) in the bundle.
vpkc_locator_config_t locator = {};
@@ -1166,7 +1171,7 @@ static void on_downloading_closed(const LLSD& notification, const LLSD& response
sDownloadingNotification = nullptr;
if (sIsRequired)
{
- // User closed the downloading dialog during a required update — re-show it
+ // User closed the downloading dialog during a required update - re-show it
show_downloading_notification(sTargetVersion);
}
}
@@ -1255,12 +1260,12 @@ void velopack_check_for_updates(const std::string& required_version, const std::
// strictly lower than what we're running (e.g., a retracted build).
bool has_required = !required_version.empty();
int ver_cmp = has_required ? compare_running_version(required_version) : 0;
- bool allow_downgrade = ver_cmp > 0; // running > required → rollback scenario
+ bool allow_downgrade = ver_cmp > 0; // running > required -> rollback scenario
ensure_update_manager(allow_downgrade);
if (!sUpdateManager)
return;
- // Ask Velopack to check its feed — this is the source of truth
+ // Ask Velopack to check its feed - this is the source of truth
vpkc_update_info_t* update_info = nullptr;
vpkc_update_check_t result = vpkc_check_for_updates(sUpdateManager, &update_info);
@@ -1286,7 +1291,7 @@ void velopack_check_for_updates(const std::string& required_version, const std::
sPendingCheckInfo = update_info;
// Determine if this is mandatory: running version is below VVM's required floor
- bool is_required = ver_cmp < 0; // running < required → must update
+ bool is_required = ver_cmp < 0; // running < required -> must update
sIsRequired = is_required;
if (is_required)
@@ -1297,12 +1302,12 @@ void velopack_check_for_updates(const std::string& required_version, const std::
return;
}
- // Optional update — check user preference
+ // Optional update - check user preference
U32 updater_setting = gSavedSettings.getU32("UpdaterServiceSetting");
if (updater_setting == 3)
{
- // "Install each update automatically" — download silently, apply on quit
+ // "Install each update automatically" - download silently, apply on quit
LL_INFOS("Velopack") << "Optional update to " << target_version
<< ", downloading automatically (UpdaterServiceSetting=3)" << LL_ENDL;
velopack_download_pending_update();