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.
Neither lllogininstance.cpp nor lllogininstance_test.cpp need llfloatertos.h
any more, since LLLoginInstance talks to LLFloaterTOS only via LLFloaterReg
and LLEventPumps. However, both sources depended on llfloatertos.h dragging in
llnotifications.h, so include that explicitly instead of llfloatertos.h.
* Bugs: EXT-888 EXT-866 EXT-861 EXT-858 EXT-864 EXT-875 EXT-884 EXT-718 EXT-786 EXT-885 EXT-910 EXT-845 EXT-312 EXT-823 EXT-868
* New Development: EXT-748 EXT-863 EXT-835
QA: Please test Recent List to verify it has no troubles.
DEV-30182 Tooltips lose their translucent background
DEV-30508 Chat bar changes from white to dark upon text entry
DEV-30830 Text color change after UI size change
DEV-30751 Create object Name text field is grey out
reviewed by Q.
fixed up viewer files that relied on this being included for them).
Also changed LLStringUtil::getSubstitution() to be a private method.
Reviewed by steve.
by over 50 times.
Looking at the usage, toHTTPDateStream is not called anywhere (except
internally by toHTTPDateString), and toHTTPDateString is called only
once outside of lldate.cpp, by LLStringUtil::formatDatetime. Also, the
method is most commonly called with a single two-character token, such
as "%Y" or "%A".
I therefore removed toHTTPDateStream and optimized toHTTPDateString.
Setting the locale was the most expensive operation, so I looked into
caching that, both in terms of std::ostream and strftime. The timings
for those implementations (averaged over 10 calls) is:
toHTTPDateString timings:
- with ostream (current) -> 0.314156 ms
- with ostream and std::locale caching -> 0.033999 ms
- with strftime and setlocale() caching -> 0.005985 ms
I therefore went with the standard C library strftime solution.
I also wrote a few unit tests to make sure that I didn't break any
existing functionality, and tested this under Windows and Linux.
Reviewed by steve.