merge changes for STORM-2113
commit
034fb74d05
|
|
@ -327,6 +327,7 @@ Cinder Roxley
|
|||
STORM-2036
|
||||
STORM-2037
|
||||
STORM-2053
|
||||
STORM-2113
|
||||
Clara Young
|
||||
Coaldust Numbers
|
||||
VWR-1095
|
||||
|
|
@ -1231,6 +1232,7 @@ Sovereign Engineer
|
|||
MAINT-2334
|
||||
OPEN-189
|
||||
STORM-1972
|
||||
STORM-2113
|
||||
OPEN-195
|
||||
OPEN-217
|
||||
OPEN-295
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class LL_COMMON_API LLUriParser
|
|||
{
|
||||
public:
|
||||
LLUriParser(const std::string& u);
|
||||
virtual ~LLUriParser();
|
||||
~LLUriParser();
|
||||
|
||||
const char * scheme() const;
|
||||
void sheme (const std::string& s);
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
#include "lltextutil.h"
|
||||
#include "lltooltip.h"
|
||||
#include "lluictrl.h"
|
||||
#include "lluriparser.h"
|
||||
#include "llurlaction.h"
|
||||
#include "llurlregistry.h"
|
||||
#include "llview.h"
|
||||
|
|
|
|||
|
|
@ -39,8 +39,6 @@
|
|||
#include "lluicolortable.h"
|
||||
#include "message.h"
|
||||
|
||||
#include "uriparser/Uri.h"
|
||||
|
||||
#define APP_HEADER_REGEX "((x-grid-location-info://[-\\w\\.]+/app)|(secondlife:///app))"
|
||||
|
||||
// Utility functions
|
||||
|
|
@ -495,6 +493,17 @@ LLUrlEntrySecondlifeURL::LLUrlEntrySecondlifeURL()
|
|||
|
||||
mIcon = "Hand";
|
||||
mMenuName = "menu_url_http.xml";
|
||||
mTooltip = LLTrans::getString("TooltipHttpUrl");
|
||||
}
|
||||
|
||||
/// Return the url from a string that matched the regex
|
||||
std::string LLUrlEntrySecondlifeURL::getUrl(const std::string &string) const
|
||||
{
|
||||
if (string.find("://") == std::string::npos)
|
||||
{
|
||||
return "https://" + escapeUrl(string);
|
||||
}
|
||||
return escapeUrl(string);
|
||||
}
|
||||
|
||||
std::string LLUrlEntrySecondlifeURL::getLabel(const std::string &url, const LLUrlLabelCallback &cb)
|
||||
|
|
@ -512,15 +521,6 @@ std::string LLUrlEntrySecondlifeURL::getTooltip(const std::string &url) const
|
|||
return url;
|
||||
}
|
||||
|
||||
std::string LLUrlEntrySecondlifeURL::getUrl(const std::string &string) const
|
||||
{
|
||||
if (string.find("://") == std::string::npos)
|
||||
{
|
||||
return "http://" + escapeUrl(string);
|
||||
}
|
||||
return escapeUrl(string);
|
||||
}
|
||||
|
||||
//
|
||||
// LLUrlEntrySimpleSecondlifeURL Describes *secondlife.com and *lindenlab.com urls to substitute icon 'hand.png' before link
|
||||
//
|
||||
|
|
|
|||
|
|
@ -199,11 +199,11 @@ class LLUrlEntrySecondlifeURL : public LLUrlEntryBase
|
|||
{
|
||||
public:
|
||||
LLUrlEntrySecondlifeURL();
|
||||
bool isTrusted() const { return true; }
|
||||
/*virtual*/ bool isTrusted() const { return true; }
|
||||
/*virtual*/ std::string getUrl(const std::string &string) const;
|
||||
/*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb);
|
||||
/*virtual*/ std::string getQuery(const std::string &url) const;
|
||||
/*virtual*/ std::string getTooltip(const std::string &url) const;
|
||||
/*virtual*/ std::string getUrl(const std::string &string) const;
|
||||
};
|
||||
|
||||
///
|
||||
|
|
|
|||
|
|
@ -220,9 +220,12 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL
|
|||
// fill in the LLUrlMatch object and return it
|
||||
std::string url = text.substr(match_start, match_end - match_start + 1);
|
||||
|
||||
LLUriParser up(url);
|
||||
up.normalize();
|
||||
url = up.normalizedUri();
|
||||
if (match_entry == mUrlEntryTrusted)
|
||||
{
|
||||
LLUriParser up(url);
|
||||
up.normalize();
|
||||
url = up.normalizedUri();
|
||||
}
|
||||
|
||||
match.setValues(match_start, match_end,
|
||||
match_entry->getUrl(url),
|
||||
|
|
@ -255,7 +258,7 @@ bool LLUrlRegistry::findUrl(const LLWString &text, LLUrlMatch &match, const LLUr
|
|||
// character encoding, so we need to update the start
|
||||
// and end values to be correct for the wide string.
|
||||
LLWString wurl = utf8str_to_wstring(match.getUrl());
|
||||
S32 start = text.find(wurl);
|
||||
size_t start = text.find(wurl);
|
||||
if (start == std::string::npos)
|
||||
{
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ private:
|
|||
friend class LLSingleton<LLUrlRegistry>;
|
||||
|
||||
std::vector<LLUrlEntryBase *> mUrlEntry;
|
||||
LLUrlEntryBase* mUrlEntryTrusted;
|
||||
LLUrlEntryBase* mUrlEntryIcon;
|
||||
LLUrlEntryBase* mLLUrlEntryInvalidSLURL;
|
||||
LLUrlEntryBase* mUrlEntryHTTPLabel;
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
#include "llviewerregion.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
||||
#include "lluriparser.h"
|
||||
#include "uriparser/Uri.h"
|
||||
|
||||
#include <boost/regex.hpp>
|
||||
|
|
@ -240,19 +240,10 @@ bool LLWeb::useExternalBrowser(const std::string &url)
|
|||
}
|
||||
else if (gSavedSettings.getU32("PreferredBrowserBehavior") == BROWSER_INT_LL_EXT_OTHERS)
|
||||
{
|
||||
UriParserStateA state;
|
||||
UriUriA uri;
|
||||
state.uri = &uri;
|
||||
|
||||
std::string uri_string = url;
|
||||
uriParseUriA(&state, uri_string.c_str());
|
||||
if (uri.hostText.first)
|
||||
{
|
||||
S32 length = uri.hostText.afterLast - uri.hostText.first;
|
||||
std::string buf = uri.hostText.first;
|
||||
uri_string = buf.substr(0,length);
|
||||
}
|
||||
uriFreeUriMembersA(&uri);
|
||||
LLUriParser up(url);
|
||||
up.normalize();
|
||||
up.extractParts();
|
||||
std::string uri_string = up.host();
|
||||
|
||||
boost::regex pattern = boost::regex("\\b(lindenlab.com|secondlife.com)$", boost::regex::perl|boost::regex::icase);
|
||||
boost::match_results<std::string::const_iterator> matches;
|
||||
|
|
|
|||
Loading…
Reference in New Issue