Skip to content
Snippets Groups Projects
Commit 1641bdd5 authored by Rider Linden's avatar Rider Linden
Browse files

MAINT-5788: Do not call set active if TOS window closed before site alive test returns.

parent f0034557
No related branches found
No related tags found
No related merge requests found
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include "message.h" #include "message.h"
#include "llstartup.h" // login_alert_done #include "llstartup.h" // login_alert_done
#include "llcorehttputil.h" #include "llcorehttputil.h"
#include "llfloaterreg.h"
LLFloaterTOS::LLFloaterTOS(const LLSD& data) LLFloaterTOS::LLFloaterTOS(const LLSD& data)
: LLModalDialog( data["message"].asString() ), : LLModalDialog( data["message"].asString() ),
...@@ -196,7 +197,7 @@ void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev ...@@ -196,7 +197,7 @@ void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev
std::string url(getString("real_url")); std::string url(getString("real_url"));
LLCoros::instance().launch("LLFloaterTOS::testSiteIsAliveCoro", LLCoros::instance().launch("LLFloaterTOS::testSiteIsAliveCoro",
boost::bind(&LLFloaterTOS::testSiteIsAliveCoro, this, url)); boost::bind(&LLFloaterTOS::testSiteIsAliveCoro, url));
} }
else if(mRealNavigateBegun) else if(mRealNavigateBegun)
{ {
...@@ -216,18 +217,25 @@ void LLFloaterTOS::testSiteIsAliveCoro(std::string url) ...@@ -216,18 +217,25 @@ void LLFloaterTOS::testSiteIsAliveCoro(std::string url)
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
LLCore::HttpOptions::ptr_t httpOpts = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions); LLCore::HttpOptions::ptr_t httpOpts = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions);
httpOpts->setWantHeaders(true); httpOpts->setWantHeaders(true);
LL_INFOS("HttpCoroutineAdapter", "genericPostCoro") << "Generic POST for " << url << LL_ENDL;
LL_INFOS("testSiteIsAliveCoro") << "Generic POST for " << url << LL_ENDL;
LLSD result = httpAdapter->getAndSuspend(httpRequest, url); LLSD result = httpAdapter->getAndSuspend(httpRequest, url);
LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS]; LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
LLFloaterTOS *that = LLFloaterReg::findTypedInstance<LLFloaterTOS>("message_tos");
// double not. // double not.
// First ! returns a boolean error status, second ! is true if success result. if (that)
setSiteIsAlive(!!status); that->setSiteIsAlive(static_cast<bool>(status));
else
{
LL_WARNS("testSiteIsAliveCoro") << "Dialog canceled before response." << LL_ENDL;
}
} }
...@@ -62,7 +62,7 @@ class LLFloaterTOS : ...@@ -62,7 +62,7 @@ class LLFloaterTOS :
/*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event); /*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
private: private:
void testSiteIsAliveCoro(std::string url); static void testSiteIsAliveCoro(std::string url);
std::string mMessage; std::string mMessage;
bool mLoadingScreenLoaded; bool mLoadingScreenLoaded;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment