From 6bafe47e5cd6694c092dfc7cafc97c83046ebd55 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Thu, 30 Jul 2020 14:34:58 +0300
Subject: Revert part of SL-11216 due to reverting VVM

This reverts commit 31d9930a0ff7da5a6312a8f47037052cd2d06bdb.
---
 indra/newview/llstartup.cpp | 20 ++------------------
 1 file changed, 2 insertions(+), 18 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 4b65ead236..38ed022c44 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2301,29 +2301,13 @@ void login_callback(S32 option, void *userdata)
 void show_release_notes_if_required()
 {
     static bool release_notes_shown = false;
-    // We happen to know that instantiating LLVersionInfo implicitly
-    // instantiates the LLEventMailDrop named "relnotes", which we (might) use
-    // below. If viewer release notes stop working, might be because that
-    // LLEventMailDrop got moved out of LLVersionInfo and hasn't yet been
-    // instantiated.
     if (!release_notes_shown && (LLVersionInfo::instance().getChannelAndVersion() != gLastRunVersion)
         && LLVersionInfo::instance().getViewerMaturity() != LLVersionInfo::TEST_VIEWER // don't show Release Notes for the test builds
         && gSavedSettings.getBOOL("UpdaterShowReleaseNotes")
         && !gSavedSettings.getBOOL("FirstLoginThisInstall"))
     {
-        // Instantiate a "relnotes" listener which assumes any arriving event
-        // is the release notes URL string. Since "relnotes" is an
-        // LLEventMailDrop, this listener will be invoked whether or not the
-        // URL has already been posted. If so, it will fire immediately;
-        // otherwise it will fire whenever the URL is (later) posted. Either
-        // way, it will display the release notes as soon as the URL becomes
-        // available.
-        LLEventPumps::instance().obtain("relnotes").listen(
-            "showrelnotes",
-            [](const LLSD& url){
-                LLWeb::loadURLInternal(url.asString());
-                return false;
-            });
+        LLSD info(LLAppViewer::instance()->getViewerInfo());
+        LLWeb::loadURLInternal(info["VIEWER_RELEASE_NOTES_URL"]);
         release_notes_shown = true;
     }
 }
-- 
cgit v1.2.3


From 8103d13047da4d196c7542843807a25098f1ecda Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Thu, 30 Jul 2020 12:38:00 +0300
Subject: SL-13704 Release notes link not loading in ToolsUpdate2 release

---
 indra/newview/llappviewer.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index c1fd09a17b..9401481e8c 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -3098,8 +3098,15 @@ LLSD LLAppViewer::getViewerInfo() const
 
 	// return a URL to the release notes for this viewer, such as:
 	// https://releasenotes.secondlife.com/viewer/2.1.0.123456.html
-	std::string url = versionInfo.getReleaseNotes();
-	info["VIEWER_RELEASE_NOTES_URL"] = url.empty()? LLTrans::getString("RetrievingData") : url;
+	std::string url = versionInfo.getReleaseNotes(); // VVM supplied
+    if (url.empty())
+    {
+        url = LLTrans::getString("RELEASE_NOTES_BASE_URL");
+        if (!LLStringUtil::endsWith(url, "/"))
+            url += "/";
+        url += LLURI::escape(versionInfo.getVersion()) + ".html";
+    }
+	info["VIEWER_RELEASE_NOTES_URL"] = url;
 
 	// Position
 	LLViewerRegion* region = gAgent.getRegion();
-- 
cgit v1.2.3


From 135a85ec62d1bf437ec2d6f485e33e9ceb0c71ab Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Thu, 30 Jul 2020 21:07:35 +0300
Subject: SL-13626 Fix asset storage coroutine shutdown

---
 indra/newview/llviewerassetstorage.cpp | 13 ++++++++++++-
 indra/newview/llviewerassetstorage.h   |  2 ++
 2 files changed, 14 insertions(+), 1 deletion(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp
index e0b64403ef..22269a9208 100644
--- a/indra/newview/llviewerassetstorage.cpp
+++ b/indra/newview/llviewerassetstorage.cpp
@@ -49,6 +49,8 @@
 /// LLViewerAssetRequest
 ///----------------------------------------------------------------------------
 
+static const std::string VIEWER_ASSET_STROTRAGE_CORO_POOL = "VAssetStorage";
+
 /**
  * @brief Local class to encapsulate asset fetch requests with a timestamp.
  *
@@ -127,6 +129,15 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *
 {
 }
 
+LLViewerAssetStorage::~LLViewerAssetStorage()
+{
+    if (!LLCoprocedureManager::wasDeleted())
+    {
+        // This class has dedicated coroutine pool, clean it up, otherwise coroutines will crash later. 
+        LLCoprocedureManager::instance().close(VIEWER_ASSET_STROTRAGE_CORO_POOL);
+    }
+}
+
 // virtual 
 void LLViewerAssetStorage::storeAssetData(
     const LLTransactionID& tid,
@@ -399,7 +410,7 @@ void LLViewerAssetStorage::queueRequestHttp(
         bool is_temp = false;
         LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp);
 
-        LLCoprocedureManager::instance().enqueueCoprocedure("AssetStorage","LLViewerAssetStorage::assetRequestCoro",
+        LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STROTRAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro",
             boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, req, uuid, atype, callback, user_data));
     }
 }
diff --git a/indra/newview/llviewerassetstorage.h b/indra/newview/llviewerassetstorage.h
index cefe215431..ef01d179b7 100644
--- a/indra/newview/llviewerassetstorage.h
+++ b/indra/newview/llviewerassetstorage.h
@@ -43,6 +43,8 @@ public:
 	LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *xfer,
 				   LLVFS *vfs, LLVFS *static_vfs);
 
+	~LLViewerAssetStorage();
+
 	virtual void storeAssetData(
 		const LLTransactionID& tid,
 		LLAssetType::EType atype,
-- 
cgit v1.2.3


From e8422ec9d74e06ca7d2405a89d0e50adab1a36b0 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Fri, 31 Jul 2020 00:14:14 +0300
Subject: SL-13626 Fixed spelling error

---
 indra/newview/llviewerassetstorage.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp
index 22269a9208..b295fa2977 100644
--- a/indra/newview/llviewerassetstorage.cpp
+++ b/indra/newview/llviewerassetstorage.cpp
@@ -49,7 +49,7 @@
 /// LLViewerAssetRequest
 ///----------------------------------------------------------------------------
 
-static const std::string VIEWER_ASSET_STROTRAGE_CORO_POOL = "VAssetStorage";
+static const std::string VIEWER_ASSET_STORAGE_CORO_POOL = "VAssetStorage";
 
 /**
  * @brief Local class to encapsulate asset fetch requests with a timestamp.
@@ -134,7 +134,7 @@ LLViewerAssetStorage::~LLViewerAssetStorage()
     if (!LLCoprocedureManager::wasDeleted())
     {
         // This class has dedicated coroutine pool, clean it up, otherwise coroutines will crash later. 
-        LLCoprocedureManager::instance().close(VIEWER_ASSET_STROTRAGE_CORO_POOL);
+        LLCoprocedureManager::instance().close(VIEWER_ASSET_STORAGE_CORO_POOL);
     }
 }
 
@@ -410,7 +410,7 @@ void LLViewerAssetStorage::queueRequestHttp(
         bool is_temp = false;
         LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp);
 
-        LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STROTRAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro",
+        LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STORAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro",
             boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, req, uuid, atype, callback, user_data));
     }
 }
-- 
cgit v1.2.3


From 89cde15fb8c52071805af78e61848e743f2ab2f1 Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Mon, 10 Aug 2020 16:51:50 -0400
Subject: Increment viewer version to 6.4.7 following promotion of DRTVWR-476

---
 indra/newview/VIEWER_VERSION.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra/newview')

diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index 3d05e8cfb4..3c43d71599 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-6.4.6
+6.4.7
-- 
cgit v1.2.3