The SLE code makes any http://<host>/app, http://<host>/region,
or http://<host>/secondlife URL be treated as a SLurl rather than a
normal http URL. This seems to be overly general, and has bitten us
because http://secondlife.com/app is used as a redirect URL for server
release notes.
In the short-term, I've made an exception for hostnames that match
"secondlife.com", so that the server release notes work again.
In the long-term, we should assess whether treating any URL that starts
with a path of "app", "region", or "secondlife" should be treated as a
SLurl. What happens when google adds "http://www.google.com/app"?
On startup, a piece of code in llappviewer.cpp checks for the existence
and validity of a slurl entered on the command line. If there is a slurl,
then the slurl is sent to another instance of the viewer if one is running
(for windows and linux only.)
After the SLE refactor of slurls, the startup slurl was set to LAST
by default. As this is a valid slurl the call to pass the slurl to another
viewer was made, ignoring the codepath that checks for multiple viewer
launches.
The fix defaults the startup slurl to INVALID. Now, when no slurl is passed
in on the command line, the code that sends the slurl to another instance is
skipped and the 'multiple' flag is checked appropriately.
- Added new static method LLSLURL::isValidSLURL() whic uses LLUrlRegistry::isUrl() to validate SLURLs and not just chek prefixes as LLSLURL::isSLURL() does.
- Used it in slurl DnD check in LLViewerWindow.
- LLUrlEntrySLURL regexp was changed not to pass non-valid SLURLS (such as one from the bug description).
--HG--
branch : product-engine
Resolved conflicts in lltexteditor.cpp, llchatitemscontainerctrl.cpp, llchatmsgbox.cpp, llfloaterbuycurrency.cpp, llnearbychat.cpp, floater_buy_currency.xml, and ru/strings.xml
Merging revisions 134925-135157 of svn+ssh://svn.lindenlab.com/svn/linden/branches/gooey/gooey-4 into C:\source\viewer-2.0.0-3, respecting ancestry