Skip to content
Snippets Groups Projects
Commit 1660cac8 authored by Andrey Kleshchev's avatar Andrey Kleshchev
Browse files

SL-20243 Make viewer notice 403 from release-notes URL and handle it

parent ce4ff7b5
No related branches found
No related tags found
No related merge requests found
...@@ -2419,6 +2419,34 @@ void login_callback(S32 option, void *userdata) ...@@ -2419,6 +2419,34 @@ void login_callback(S32 option, void *userdata)
} }
} }
void release_notes_coro(const std::string url)
{
if (url.empty())
{
return;
}
LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID);
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("releaseNotesCoro", httpPolicy));
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
LLCore::HttpOptions::ptr_t httpOpts = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions);
httpOpts->setHeadersOnly(true); // only making sure it isn't 404 or something like that
LLSD result = httpAdapter->getAndSuspend(httpRequest, url, httpOpts);
LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
if (!status)
{
return;
}
LLWeb::loadURLInternal(url);
}
/** /**
* Check if user is running a new version of the viewer. * Check if user is running a new version of the viewer.
* Display the Release Notes if it's not overriden by the "UpdaterShowReleaseNotes" setting. * Display the Release Notes if it's not overriden by the "UpdaterShowReleaseNotes" setting.
...@@ -2451,7 +2479,8 @@ void show_release_notes_if_required() ...@@ -2451,7 +2479,8 @@ void show_release_notes_if_required()
LLEventPumps::instance().obtain("relnotes").listen( LLEventPumps::instance().obtain("relnotes").listen(
"showrelnotes", "showrelnotes",
[](const LLSD& url) { [](const LLSD& url) {
LLWeb::loadURLInternal(url.asString()); LLCoros::instance().launch("releaseNotesCoro",
boost::bind(&release_notes_coro, url.asString()));
return false; return false;
}); });
} }
...@@ -2459,7 +2488,9 @@ void show_release_notes_if_required() ...@@ -2459,7 +2488,9 @@ void show_release_notes_if_required()
#endif // LL_RELEASE_FOR_DOWNLOAD #endif // LL_RELEASE_FOR_DOWNLOAD
{ {
LLSD info(LLAppViewer::instance()->getViewerInfo()); LLSD info(LLAppViewer::instance()->getViewerInfo());
LLWeb::loadURLInternal(info["VIEWER_RELEASE_NOTES_URL"]); std::string url = info["VIEWER_RELEASE_NOTES_URL"].asString();
LLCoros::instance().launch("releaseNotesCoro",
boost::bind(&release_notes_coro, url));
} }
release_notes_shown = true; release_notes_shown = true;
} }
......
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