Commit Graph

339 Commits (9edad026f4494de1a6f02ecc3f477faa27a361ef)

Author SHA1 Message Date
Ansariel ee34ea1f4b Merge viewer-bugsplat 2018-10-27 00:50:58 +02:00
Nat Goodspeed 05068186c3 DRTVWR-474: Make login coroutine sync with updater process on failure.
Specifically, introduce an LLEventMailDrop("LoginSync"). When the updater
detects that an update is required, it will post to that rendezvous point.

When login.cgi responds with login failure, make the login coroutine wait (a
few seconds) for that ping from the updater.

If we receive that ping and if it contains a "reply" key, make the fail.login
listener respond to the updater with an indication of whether to proceed with
update.

If both login.cgi and the updater concur that an update is required, produce a
new confirmation message for the user and then (once user responds) tell the
updater to proceed. Otherwise, produce the usual login-failure message and
tell the updater never mind.

Introduce LLCoro::OverrideConsuming to provide temporary save/restore of the
set_consuming() / get_consuming() flag. It's a good idea to set the consuming
flag when retrieving data from an LLEventMailDrop.
2018-10-04 16:35:38 -04:00
Oz Linden e044902aaf SL-702: refactor to make the viewer-manager easier for TPVs to integrate 2017-05-24 09:41:44 -04:00
coyot@coyot-sager-PC 3a3da6e4a7 merge 2017-02-28 22:56:30 +00:00
coyot@coyot-sager-PC 069c938eb6 pull from rev d22beb597e52ecbf1c98f25d4489ea0425eda4b0 of sl-321 2017-02-28 22:35:01 +00:00
Nat Goodspeed 4d10172d8b MAINT-5011: Catch unhandled exceptions in LLCoros coroutines.
Wrap coroutine call in try/catch in top-level coroutine wrapper function
LLCoros::toplevel(). Distinguish exception classes derived from
LLContinueError (log and continue) from all others (crash with LL_ERRS).

Enhance CRASH_ON_UNHANDLED_EXCEPTIONS() and LOG_UNHANDLED_EXCEPTIONS() macros
to accept a context string to supplement the log message. This lets us replace
many places that called boost::current_exception_diagnostic_information() with
LOG_UNHANDLED_EXCEPTIONS() instead, since the explicit calls were mostly to
log supplemental information.

Provide supplemental information (coroutine name, function parameters) for
some of the previous LOG_UNHANDLED_EXCEPTIONS() calls. This information
duplicates LL_DEBUGS() information at the top of these functions, but in a
typical log file we wouldn't see the LL_DEBUGS() message.

Eliminate a few catch (std::exception e) clauses: the information we get from
boost::current_exception_diagnostic_information() in a catch (...) clause
makes it unnecessary to distinguish.

In a few cases, add a final 'throw;' to a catch (...) clause: having logged
the local context info, propagate the exception to be caught by higher-level
try/catch.

In a couple places, couldn't resist reconciling indentation within a
particular function: tabs where the rest of the function uses tabs, spaces
where the rest of the function uses spaces.

In LLLogin::Impl::loginCoro(), eliminate some confusing comments about an
array of rewritten URIs that date back to a long-deleted implementation.
2016-08-18 17:33:44 -04:00
Glenn Glazer c8c143e774 SL-323: first pass at ripping out old updater 2016-08-18 13:05:30 -07:00
Nat Goodspeed 993f54f6e9 MAINT-5011: Try to enrich catch (...) logging throughout viewer.
Turns out we have a surprising number of catch (...) clauses in the viewer
code base. If all we currently do is

    LL_ERRS() << "unknown exception" << LL_ENDL;

then call CRASH_ON_UNHANDLED_EXCEPTION() instead. If what we do is

    LL_WARNS() << "unknown exception" << LL_ENDL;

then call LOG_UNHANDLED_EXCEPTION() instead.

Since many places need LOG_UNHANDLED_EXCEPTION() and nobody catches
LLContinueError yet, eliminate LLContinueError& parameter from
LOG_UNHANDLED_EXCEPTION(). This permits us to use the same log message as
CRASH_ON_UNHANDLED_EXCEPTION(), just with a different severity level.

Where a catch (...) clause actually provides contextual information, or makes
an error string, add boost::current_exception_diagnostic_information() to try
to figure out actual exception class and message.
2016-08-17 15:40:03 -04:00
Glenn Glazer 8ae320edf1 SL-323: remove vmp icons from viewer_components subtree 2016-08-17 08:50:43 -07:00
Nat Goodspeed 5e9d2f57c8 MAINT-5011: Use LLTHROW() instead of plain BOOST_THROW_EXCEPTION().
A level of preprocessor indirection lets us later change the implementation if
desired.
2016-08-17 11:36:24 -04:00
Glenn Glazer 3e55d8c77a SL-323: add icon support for macs, text flow in Tkinter windows 2016-08-17 08:20:12 -07:00
Glenn Glazer 4a124b8b9d SL-323: logging improvements 2016-08-16 09:17:07 -07:00
Glenn Glazer 5811b4721f SL-323: fixed update service redirect handling 2016-08-16 08:40:39 -07:00
Glenn Glazer 7ed9c85a1a SL-323: fixes to Tkinter race condition, post --channel and --settings testing, contains debugging statements to be removed after all testing complete 2016-08-15 14:48:09 -07:00
Glenn Glazer 2afcff5b01 SL-321: one more commithook issue in test file 2016-07-28 11:44:01 -07:00
Glenn Glazer 398fabf10c SL-321: fix commithook issues in test files 2016-07-28 11:38:13 -07:00
Glenn Glazer fc7c0645fa SL-321: add in resource files, more CLI handling fixes 2016-07-28 08:50:52 -07:00
Glenn Glazer f44829f2ae SL-321: basic launcher/updater integration test fixes 2016-07-27 15:44:56 -07:00
Glenn Glazer 4428ee77c2 SL-323: make changes to include llbase as an autobuild pkg, undelete files that will be deleted with MAINT-6585 and no need to copy local files in viewer-manifest. 2016-07-21 10:18:58 -07:00
Nat Goodspeed 9c49a6c91d MAINT-5011: Introduce LLException base class for viewer exceptions.
This also introduces LLContinueError for exceptions which should interrupt
some part of viewer processing (e.g. the current coroutine) but should attempt
to let the viewer session proceed.

Derive all existing viewer exception classes from LLException rather than from
std::runtime_error or std::logic_error.

Use BOOST_THROW_EXCEPTION() rather than plain 'throw' to enrich the thrown
exception with source file, line number and containing function.
2016-07-19 16:25:25 -04:00
Glenn Glazer 68832f56ba add dependent modules 2016-07-14 08:37:23 -07:00
Glenn Glazer 58d8b3a11e SL-323: add llsd python module 2016-07-13 17:31:14 -07:00
Glenn Glazer adc67912d0 include manager directory in viewer manifest, not CMake 2016-07-13 09:37:53 -07:00
Glenn Glazer 49b8a1c82d include manager directory in CMake list 2016-07-13 08:19:49 -07:00
Nat Goodspeed b031b1a625 MAINT-5011: Derive remaining exception classes from std::exception.
In particular:
NotImplemented in llhttpnode.cpp
RelocateError in llupdateinstaller.cpp
LLProtectedDataException, LLCertException and subclasses in llsecapi.h

Had to add no-throw destructor overrides to LLCertException and subclasses
because otherwise clang complains that the implicitly-generated destructor's
exception specification is more lax than the base class's.
2016-07-13 10:43:36 -04:00
Glenn Glazer 9c2633cba8 SL-323: adding in unit tests 2016-07-13 07:36:12 -07:00
Glenn Glazer 03bcad6111 SLS-323: integrate update manager with lanucher, various fixes, CMake changes 2016-07-11 11:24:45 -07:00
Glenn Glazer bb19a1e9cc SL-323: apply update code, v2 2016-07-05 13:44:43 -07:00
Glenn Glazer 7e120a61d1 remove first version of apply_update 2016-07-05 13:43:50 -07:00
Glenn Glazer 924e80142f SL-323: apply update code 2016-07-05 08:06:03 -07:00
Glenn Glazer 9bc49fb4bd SL-323: post review comments on downloader 2016-06-28 11:34:05 -07:00
Glenn Glazer cb90597b4e remove extraneous comments 2016-06-27 16:20:10 -07:00
Glenn Glazer e01f616899 SL-323: multithreaded downloader with progress bar 2016-06-27 15:30:57 -07:00
Glenn Glazer 5d900a4d8d SL-321 add trinary widget to InstallerUserMessage 2016-06-23 08:05:31 -07:00
Glenn Glazer e8785677cc SL-321 SL-407: merge InstallerUserMessage into VMP 2016-06-17 11:03:14 -07:00
Glenn Glazer eb9cc511de SL-321: retrofit launcher to use InstallerUserMessage 2016-06-17 11:01:36 -07:00
Glenn Glazer 53fe427e6f SL-407: remove kwargs 2016-06-17 09:58:28 -07:00
Glenn Glazer f38439f476 SL-407: post review change testing 2016-06-17 08:53:46 -07:00
Glenn Glazer dd18fb215f SL-407: post review 2016-06-17 08:49:26 -07:00
Glenn Glazer 8bee0a61a5 SL-407: create Tkinter UI 2016-06-16 09:04:19 -07:00
Glenn Glazer 67438c67ab pull from lynx 2016-05-25 08:12:47 -07:00
Glenn Glazer 23863db414 SL-321: move arg parsing past platform discovery 2016-04-08 10:26:33 -07:00
Glenn Glazer 369cefd5b3 pull from viewer-release 2016-04-07 12:10:13 -07:00
coyot@coyot-sager-PC c1951b49a6 SL-321: Changes for VMP Windows Prototype 2016-04-07 16:04:24 +01:00
Oz Linden 9be58e915a merge with 4.0.3-release 2016-04-04 15:53:09 -04:00
Glenn Glazer e48c70392c SL-321: prototype python launcher 2016-03-30 11:41:29 -07:00
Drake Arconis d253f48538 Add SSL support to update downloader to enable possibility of secure downloads 2016-02-25 15:02:32 -05:00
Drake Arconis e307a46bdd Update to modern curl progress reporting functionality in the update downloader 2016-02-25 15:01:46 -05:00
Rider Linden 3edc3c5554 CMake fixes for Linux build 2015-12-21 14:26:41 -08:00
Rider Linden b98469bd7d Disable unit test on Linux only 2015-12-18 13:53:03 -08:00