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/viewer_components | |
| 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/viewer_components')
| -rw-r--r-- | indra/viewer_components/login/lllogin.cpp | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp index 37b70964c3..144f807852 100644 --- a/indra/viewer_components/login/lllogin.cpp +++ b/indra/viewer_components/login/lllogin.cpp @@ -34,7 +34,6 @@ #include "llcoros.h" #include "llevents.h" -#include "lleventfilter.h" #include "lleventcoro.h" #include "llexception.h" #include "stringize.h" @@ -133,16 +132,6 @@ void LLLogin::Impl::connect(const std::string& uri, const LLSD& login_params) LL_DEBUGS("LLLogin") << " connected with uri '" << uri << "', login_params " << login_params << LL_ENDL; } -namespace -{ -// Instantiate this rendezvous point at namespace scope so it's already -// present no matter how early the updater might post to it. -// Use an LLEventMailDrop, which has future-like semantics: regardless of the -// relative order in which post() or listen() are called, it delivers each -// post() event to its listener(s) until one of them consumes that event. -static LLEventMailDrop sSyncPoint("LoginSync"); -} - void LLLogin::Impl::loginCoro(std::string uri, LLSD login_params) { LLSD printable_params = hidePasswd(login_params); @@ -225,58 +214,7 @@ void LLLogin::Impl::loginCoro(std::string uri, LLSD login_params) } else { - // Synchronize here with the updater. We synchronize here rather - // than in the fail.login handler, which actually examines the - // response from login.cgi, because here we are definitely in a - // coroutine and can definitely use suspendUntilBlah(). Whoever's - // listening for fail.login might not be. - - // If the reason for login failure is that we must install a - // required update, we definitely want to pass control to the - // updater to manage that for us. We'll handle any other login - // failure ourselves, as usual. We figure that no matter where you - // are in the world, or what kind of network you're on, we can - // reasonably expect the Viewer Version Manager to respond more or - // less as quickly as login.cgi. This synchronization is only - // intended to smooth out minor races between the two services. - // But what if the updater crashes? Use a timeout so that - // eventually we'll tire of waiting for it and carry on as usual. - // Given the above, it can be a fairly short timeout, at least - // from a human point of view. - - // Since sSyncPoint is an LLEventMailDrop, we DEFINITELY want to - // consume the posted event. - LLCoros::OverrideConsuming oc(true); LLSD responses(mAuthResponse["responses"]); - LLSD updater; - - if (printable_params["wait_for_updater"].asBoolean()) - { - std::string reason_response = responses["data"]["reason"].asString(); - // Timeout should produce the isUndefined() object passed here. - if (reason_response == "update") - { - LL_INFOS("LLLogin") << "Login failure, waiting for sync from updater" << LL_ENDL; - updater = llcoro::suspendUntilEventOnWithTimeout(sSyncPoint, 10, LLSD()); - } - else - { - LL_DEBUGS("LLLogin") << "Login failure, waiting for sync from updater" << LL_ENDL; - updater = llcoro::suspendUntilEventOnWithTimeout(sSyncPoint, 3, LLSD()); - } - if (updater.isUndefined()) - { - LL_WARNS("LLLogin") << "Failed to hear from updater, proceeding with fail.login" - << LL_ENDL; - } - else - { - LL_DEBUGS("LLLogin") << "Got responses from updater and login.cgi" << LL_ENDL; - } - } - - // Let the fail.login handler deal with empty updater response. - responses["updater"] = updater; sendProgressEvent("offline", "fail.login", responses); } return; // Done! |
