This attempts to be pretty close to the 80-20 style guide (sizewise probably a bit closer than we were before) while remaining pragmatically close to what we've already been using in viewer2.
The main goal is to bring fonts to parity across all platforms to the extent that truncation issues and layout glitches need to be fixed and tested on only one platform, not 3+.
In the viewer-2 code base, the "tos" case is detected inline, a sibling of the
other types of login failure, and doesn't reach the notification. Our new
logic needs to detect "tos" as well.
Also, the case of process_login_success_response() returning false was
inconsistent, attempting a notification with an empty string.
secondlife:///app/classifieds URLs because we do not have handlers for
these SLAPPs in 2.0.
Added support for secondlife://<location/<x>/<y>/<z> URLs, in addition
to the http://slurl.com SLURLs.
Also optimized LLUrlRegistry:findUrl() so that it avoids lots of
expensive regex calls when there is no URL in the text.
following SLAPP URL types in an untrusted browser:
secondlife:///app/agent/...
secondlife:///app/group/...
secondlife:///app/parcel/...
In order to find a compromise between supporting these commands and
security concerns over potential griefing vectors, we use a throttling
solution when these commands are issued by untrusted web browsers.
That is, we only process one command per 15 seconds.
This applies to external browsers, like Firefox, as well as the
internal SL browser.
Notably, we continue to block secondlife:///app/teleport URLs.
Reviewed by james.
brings up a notification telling you this; rather than displaying
the Place side panel with N/A information.
Now, if you click on an Event or Classified SLURL, you get this
unsupported alert (2.0 does not have side panels for these types
of assets, instead they are integrated into Search).
LLFloater's destructor calls LLFloaterReg::removeInstance() with its own name
and key. But for the new LLFloaterTOS invocation, we pass a key that's an LLSD
map. removeInstance() critically depends on LLFloater::KeyCompare::equate() --
but equate() never considered a non-scalar LLSD key value. Fortunately
llsdutil.h already provides a deep-equality function for LLSD: llsd_equals().
Making equate() trivially call llsd_equals() fixes the crash on TOS cancel.