diff options
| author | Jonathan "Geenz" Goodman <geenz@lindenlab.com> | 2026-04-07 19:12:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-07 19:12:59 -0400 |
| commit | 5c500ccf407f0b5a0b253b98dd4bd3f33f643aba (patch) | |
| tree | f4948905ec8f90190e6ea05353d0c57cf5fd93eb /indra/newview/llappviewerwin32.cpp | |
| parent | 18db816ef7552785ffa26d6d0397efbb341a999f (diff) | |
Release/26.1.1 (#5530)
* Integrate Velopack installer and update framework
* Add Velopack update support for macOS and VVM integration
* Update Velopack version and dependencies
* Improve Velopack packaging for macOS
* #5346 Uninstall older non-velopack viewer (#5363)
* #5335 Fix silent uninstall asking about registry
* #5346 Uninstall older non-velopack viewer
* Use runtime viewer exe name, handle Velopack URL
* Velopack download failure diagnostic (#5520)
* Velopack download failure diagnostic
* Fix up velopack downloading updates. Handle updates internally then hand them off to velopack. (#5524)
* More velopack changes. Should download updates properly now.
* Don't include NSI files
* Restore optional updates, refine viewer restart behavior. (#5527)
* Add support for optional updates.
* Don't restart the viewer after the update unless it was optional.
* Setup UpdaterServiceSetting with velopack properly.
* Refine the restart behavior a bit - readd the old "the viewer must update" UX.
* If the update is still downloading, close should just reopen the downloading dialog.
---------
Co-authored-by: Jonathan "Geenz" Goodman <geenz@lindenlab.com>
* Remove SLVersionChecker from the viewer with velopack. (#5528)
* Remove SLVersionChecker updater integration
* Ensure that the portable install has the correct version number.
* Don't produce shortcuts with VPK - we do this with our post install.
* Bump viewer version from 26.1.0 to 26.1.1
* Potential fix for uninstaller not being functional.
* Fix for UpdaterServiceSetting being ignored.
* Filter for release channel when generating shortcuts.
* Add some more logging for icons on Windows builds.
* More VPK logging.
* Move velopack packaging in CI to the sign and package step.
* Enable velopack downgrade and skip older updates
* Move the version required checking into velopack's checks.
* Potential fix for downgrade prompts.
* Make sure our macOS flow mirrors Windows.
* Make sure to use the dev version of the mac sign and package.
* p#553 Only one of two uninstallers displayed
* #5346 Don't force user to shutdown velopack build for NSIS uninstall
* #5346 Ignore option for the uninstall dialog
* #5346 Fix early exit crash
* #5346 Properly reset version flag.
* Add some autodetect logic on macOS.
* p#564 Clear legacy links
* p#553 Handle uninstall records
* p#549 Permit testing release notes on a test build
* p#564 Remake nsis to velopack update flow
* p#564 Remake nsis to velopack update flow #2
* p#564 Fix incorrect value type
* p#553 Clear velopack's own registry entry in favor of a custom one
* #5346 Resolve duplicated window class name
* Bump to 2.1.0 of sign and package.
---------
Co-authored-by: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com>
Diffstat (limited to 'indra/newview/llappviewerwin32.cpp')
| -rw-r--r-- | indra/newview/llappviewerwin32.cpp | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 0620b625d9..94a5f7951e 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -72,6 +72,11 @@ #include <fstream> #include <exception> +// Velopack installer and update framework +#if LL_VELOPACK +#include "llvelopack.h" +#endif + // Bugsplat (http://bugsplat.com) crash reporting tool #ifdef LL_BUGSPLAT #include "BugSplat.h" @@ -220,7 +225,6 @@ LONG WINAPI catchallCrashHandler(EXCEPTION_POINTERS * /*ExceptionInfo*/) return 0; } -const std::string LLAppViewerWin32::sWindowClass = "Second Life"; /* This function is used to print to the command line a text message @@ -424,6 +428,31 @@ int APIENTRY WINMAIN(HINSTANCE hInstance, PWSTR pCmdLine, int nCmdShow) { +#if LL_VELOPACK + // Velopack MUST be initialized first - it may handle install/uninstall + // commands and exit the process before we do anything else. + if (!velopack_initialize()) + { + // Velopack handled the invocation (install/uninstall hook) + + // Drop install related settings + gDirUtilp->initAppDirs("SecondLife"); + + std::string user_settings_path = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings.xml"); + LLControlGroup settings("global"); + if (settings.loadFromFile(user_settings_path)) + { + // If user reinstalls or updates, we want to recheck for nsis leftovers. + if (settings.controlExists("PreviousInstallChecked")) + { + settings.setBOOL("PreviousInstallChecked", false); + } + settings.saveToFile(user_settings_path, true); + } + return 0; + } +#endif + // Call Tracy first thing to have it allocate memory // https://github.com/wolfpld/tracy/issues/196 LL_PROFILER_FRAME_END; @@ -933,7 +962,7 @@ bool LLAppViewerWin32::restoreErrorTrap() bool LLAppViewerWin32::sendURLToOtherInstance(const std::string& url) { wchar_t window_class[256]; /* Flawfinder: ignore */ // Assume max length < 255 chars. - mbstowcs(window_class, sWindowClass.c_str(), 255); + mbstowcs(window_class, sWindowClass, 255); window_class[255] = 0; // Use the class instead of the window name. HWND other_window = FindWindow(window_class, NULL); |
