summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-11-06 19:13:09 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-11-06 19:14:47 +0200
commit3310fa573fb520a55a48ee461c6b539abf447f67 (patch)
tree3986272dfa7bd175e42e01ce234875a6112f199b /indra/newview
parent5b023c8ae66001485a0bb472d62f7de5f5778953 (diff)
Reapplied SL-11215: Add release notes URLs to update-related notifications.
In scope of SL-13740 work, this reverts commit 1935d25c78bf46f0fdc8758b6f215f53d17fd94a.
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/lllogininstance.cpp26
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml5
2 files changed, 27 insertions, 4 deletions
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 0f846c152a..9d54c8c9c5 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -332,7 +332,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
{
data["certificate"] = response["certificate"];
}
-
+
if (gViewerWindow)
gViewerWindow->setShowProgress(FALSE);
@@ -349,13 +349,31 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
// login.cgi is insisting on a required update. We were called with an
// event that bundles both the login.cgi 'response' and the
// synchronization event from the 'updater'.
- std::string required_version = response["message_args"]["VERSION"];
- LL_WARNS("LLLogin") << "Login failed because an update to version " << required_version << " is required." << LL_ENDL;
+ std::string login_version = response["message_args"]["VERSION"];
+ std::string vvm_version = updater["VERSION"];
+ std::string relnotes = updater["URL"];
+ LL_WARNS("LLLogin") << "Login failed because an update to version " << login_version << " is required." << LL_ENDL;
+ // vvm_version might be empty because we might not have gotten
+ // SLVersionChecker's LoginSync handshake. But if it IS populated, it
+ // should (!) be the same as the version we got from login.cgi.
+ if ((! vvm_version.empty()) && vvm_version != login_version)
+ {
+ LL_WARNS("LLLogin") << "VVM update version " << vvm_version
+ << " differs from login version " << login_version
+ << "; presenting VVM version to match release notes URL"
+ << LL_ENDL;
+ login_version = vvm_version;
+ }
+ if (relnotes.empty())
+ {
+ // I thought this would be available in strings.xml or some such
+ relnotes = "https://secondlife.com/support/downloads/";
+ }
if (gViewerWindow)
gViewerWindow->setShowProgress(FALSE);
- LLSD args(LLSDMap("VERSION", required_version));
+ LLSD args(LLSDMap("VERSION", login_version)("URL", relnotes));
if (updater.isUndefined())
{
// If the updater failed to shake hands, better advise the user to
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index a0d56a0d08..b6fabd2bc4 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4039,6 +4039,8 @@ Finished download of raw terrain file to:
[DOWNLOAD_PATH].
</notification>
+ <!-- RequiredUpdate does not display release notes URL because we don't get
+ that from login.cgi's login failure message. -->
<notification
icon="alertmodal.tga"
name="RequiredUpdate"
@@ -4056,6 +4058,7 @@ Please download from https://secondlife.com/support/downloads/
name="PauseForUpdate"
type="alertmodal">
Version [VERSION] is required for login.
+Release notes: [URL]
Click OK to download and install.
<tag>confirm</tag>
<usetemplate
@@ -4068,6 +4071,7 @@ Click OK to download and install.
name="OptionalUpdateReady"
type="alertmodal">
Version [VERSION] has been downloaded and is ready to install.
+Release notes: [URL]
Click OK to install.
<tag>confirm</tag>
<usetemplate
@@ -4080,6 +4084,7 @@ Click OK to install.
name="PromptOptionalUpdate"
type="alertmodal">
Version [VERSION] has been downloaded and is ready to install.
+Release notes: [URL]
Proceed?
<tag>confirm</tag>
<usetemplate