Sync
Includes: MAINT-3541 (crash in std::vector >::reserve) MAINT-3364 FIXED Call clearSelection() from root_folder MAINT-3621 FIXED Set name to "Unnamed" if object's name consists of whitespaces. MAINT-3412 add gpu_table line with distinct Intel Iris Pro OpenGL regex to match new MBP with forced Intel graphics MAINT-3119 FIXED Return common chars for triggers that matches the prefix. MAINT-3661 Fix for crash when uploading corrupt .dae file. MAINT-3671 FIXED Rename title when new tab is added. MAINT-3465 FIXED Add check mark to selected entry. BUG-5537 FIX reverting breaking changes to pectorals and belly. MAINT-535 FIXED The teleport SLAPP is changed to UNTRUSTED_THROTTLE. Confirmation dialog for teleporting via slapp is added.
This commit is contained in:
@@ -269,7 +269,7 @@ public:
|
||||
// Teleport requests *must* come from a trusted browser
|
||||
// inside the app, otherwise a malicious web page could
|
||||
// cause a constant teleport loop. JC
|
||||
LLTeleportHandler() : LLCommandHandler("teleport", UNTRUSTED_BLOCK) { }
|
||||
LLTeleportHandler() : LLCommandHandler("teleport", UNTRUSTED_THROTTLE) { }
|
||||
|
||||
bool handle(const LLSD& tokens, const LLSD& query_map,
|
||||
LLMediaCtrl* web)
|
||||
@@ -285,19 +285,52 @@ public:
|
||||
tokens[2].asReal(),
|
||||
tokens[3].asReal());
|
||||
}
|
||||
|
||||
|
||||
LLSD args;
|
||||
args["LOCATION"] = tokens[0];
|
||||
|
||||
// Region names may be %20 escaped.
|
||||
|
||||
std::string region_name = LLURI::unescape(tokens[0]);
|
||||
|
||||
|
||||
LLSD payload;
|
||||
payload["region_name"] = region_name;
|
||||
payload["callback_url"] = LLSLURL(region_name, coords).getSLURLString();
|
||||
|
||||
LLNotificationsUtil::add("TeleportViaSLAPP", args, payload);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void teleport_via_slapp(std::string region_name, std::string callback_url)
|
||||
{
|
||||
|
||||
LLWorldMapMessage::getInstance()->sendNamedRegionRequest(region_name,
|
||||
LLURLDispatcherImpl::regionHandleCallback,
|
||||
LLSLURL(region_name, coords).getSLURLString(),
|
||||
callback_url,
|
||||
true); // teleport
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool teleport_via_slapp_callback(const LLSD& notification, const LLSD& response)
|
||||
{
|
||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
|
||||
std::string region_name = notification["payload"]["region_name"].asString();
|
||||
std::string callback_url = notification["payload"]["callback_url"].asString();
|
||||
|
||||
if (option == 0)
|
||||
{
|
||||
teleport_via_slapp(region_name, callback_url);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
};
|
||||
LLTeleportHandler gTeleportHandler;
|
||||
static LLNotificationFunctorRegistration open_landmark_callback_reg("TeleportViaSLAPP", LLTeleportHandler::teleport_via_slapp_callback);
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user