Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0
commit
be8e6100a7
|
|
@ -37,6 +37,8 @@
|
|||
#include "llpluginclassmedia.h"
|
||||
#include "llpluginmessageclasses.h"
|
||||
|
||||
#include "llqtwebkit.h"
|
||||
|
||||
static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256;
|
||||
|
||||
static int nextPowerOf2( int value )
|
||||
|
|
@ -134,6 +136,9 @@ void LLPluginClassMedia::reset()
|
|||
mHistoryForwardAvailable = false;
|
||||
mStatusText.clear();
|
||||
mProgressPercent = 0;
|
||||
mClickURL.clear();
|
||||
mClickTarget.clear();
|
||||
mClickTargetType = TARGET_NONE;
|
||||
|
||||
// media_time class
|
||||
mCurrentTime = 0.0f;
|
||||
|
|
@ -669,6 +674,26 @@ void LLPluginClassMedia::paste()
|
|||
sendMessage(message);
|
||||
}
|
||||
|
||||
LLPluginClassMedia::ETargetType getTargetTypeFromLLQtWebkit(int target_type)
|
||||
{
|
||||
// convert a LinkTargetType value from llqtwebkit to an ETargetType
|
||||
// so that we don't expose the llqtwebkit header in viewer code
|
||||
switch (target_type)
|
||||
{
|
||||
case LinkTargetType::LTT_TARGET_NONE:
|
||||
return LLPluginClassMedia::TARGET_NONE;
|
||||
|
||||
case LinkTargetType::LTT_TARGET_BLANK:
|
||||
return LLPluginClassMedia::TARGET_BLANK;
|
||||
|
||||
case LinkTargetType::LTT_TARGET_EXTERNAL:
|
||||
return LLPluginClassMedia::TARGET_EXTERNAL;
|
||||
|
||||
default:
|
||||
return LLPluginClassMedia::TARGET_OTHER;
|
||||
}
|
||||
}
|
||||
|
||||
/* virtual */
|
||||
void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message)
|
||||
{
|
||||
|
|
@ -921,12 +946,15 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message)
|
|||
{
|
||||
mClickURL = message.getValue("uri");
|
||||
mClickTarget = message.getValue("target");
|
||||
U32 target_type = message.getValueU32("target_type");
|
||||
mClickTargetType = ::getTargetTypeFromLLQtWebkit(target_type);
|
||||
mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF);
|
||||
}
|
||||
else if(message_name == "click_nofollow")
|
||||
{
|
||||
mClickURL = message.getValue("uri");
|
||||
mClickTarget.clear();
|
||||
mClickTargetType = TARGET_NONE;
|
||||
mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_NOFOLLOW);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -214,6 +214,17 @@ public:
|
|||
// This is valid after MEDIA_EVENT_CLICK_LINK_HREF
|
||||
std::string getClickTarget() const { return mClickTarget; };
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TARGET_NONE, // empty href target string
|
||||
TARGET_BLANK, // target to open link in user's preferred browser
|
||||
TARGET_EXTERNAL, // target to open link in external browser
|
||||
TARGET_OTHER // nonempty and unsupported target type
|
||||
}ETargetType;
|
||||
|
||||
// This is valid after MEDIA_EVENT_CLICK_LINK_HREF
|
||||
ETargetType getClickTargetType() const { return mClickTargetType; };
|
||||
|
||||
std::string getMediaName() const { return mMediaName; };
|
||||
std::string getMediaDescription() const { return mMediaDescription; };
|
||||
|
||||
|
|
@ -344,6 +355,7 @@ protected:
|
|||
std::string mLocation;
|
||||
std::string mClickURL;
|
||||
std::string mClickTarget;
|
||||
ETargetType mClickTargetType;
|
||||
|
||||
/////////////////////////////////////////
|
||||
// media_time class
|
||||
|
|
|
|||
|
|
@ -429,6 +429,7 @@ private:
|
|||
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "click_href");
|
||||
message.setValue("uri", event.getStringValue());
|
||||
message.setValue("target", event.getStringValue2());
|
||||
message.setValueU32("target_type", event.getLinkType());
|
||||
sendMessage(message);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ LLSD LLFloaterAbout::getInfo()
|
|||
info["VIVOX_VERSION"] = gVoiceClient ? gVoiceClient->getAPIVersion() : LLTrans::getString("NotConnected");
|
||||
|
||||
// TODO: Implement media plugin version query
|
||||
info["QT_WEBKIT_VERSION"] = "4.5.2 (version number hard-coded)";
|
||||
info["QT_WEBKIT_VERSION"] = "4.6 (version number hard-coded)";
|
||||
|
||||
if (gPacketsIn > 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -84,7 +84,6 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :
|
|||
mHomePageUrl( "" ),
|
||||
mIgnoreUIScale( true ),
|
||||
mAlwaysRefresh( false ),
|
||||
mExternalUrl( "" ),
|
||||
mMediaSource( 0 ),
|
||||
mTakeFocusOnClick( true ),
|
||||
mCurrentNavUrl( "" ),
|
||||
|
|
@ -877,9 +876,27 @@ bool LLMediaCtrl::onClickLinkExternalTarget(const LLSD& notification, const LLSD
|
|||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
if ( 0 == option )
|
||||
{
|
||||
// open in external browser because we don't support
|
||||
// creation of our own secondary browser windows
|
||||
LLWeb::loadURLExternal( notification["payload"]["external_url"].asString() );
|
||||
LLSD payload = notification["payload"];
|
||||
std::string url = payload["url"].asString();
|
||||
S32 target_type = payload["target_type"].asInteger();
|
||||
|
||||
switch (target_type)
|
||||
{
|
||||
case LLPluginClassMedia::TARGET_EXTERNAL:
|
||||
// load target in an external browser
|
||||
LLWeb::loadURLExternal(url);
|
||||
break;
|
||||
|
||||
case LLPluginClassMedia::TARGET_BLANK:
|
||||
// load target in the user's preferred browser
|
||||
LLWeb::loadURL(url);
|
||||
break;
|
||||
|
||||
default:
|
||||
// unsupported link target - shouldn't happen
|
||||
LL_WARNS("LinkTarget") << "Unsupported link target type" << LL_ENDL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -993,20 +1010,18 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
|
|||
void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self )
|
||||
{
|
||||
// retrieve the event parameters
|
||||
std::string target = self->getClickTarget();
|
||||
std::string url = self->getClickURL();
|
||||
U32 target_type = self->getClickTargetType();
|
||||
|
||||
// if there is a value for the target
|
||||
if ( !target.empty() )
|
||||
// is there is a target specified for the link?
|
||||
if (target_type == LLPluginClassMedia::TARGET_EXTERNAL ||
|
||||
target_type == LLPluginClassMedia::TARGET_BLANK)
|
||||
{
|
||||
if ( target == "_external" )
|
||||
{
|
||||
mExternalUrl = url;
|
||||
LLSD payload;
|
||||
payload["external_url"] = mExternalUrl;
|
||||
LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget);
|
||||
return;
|
||||
}
|
||||
LLSD payload;
|
||||
payload["url"] = url;
|
||||
payload["target_type"] = LLSD::Integer(target_type);
|
||||
LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
const std::string protocol1( "http://" );
|
||||
|
|
|
|||
|
|
@ -182,7 +182,6 @@ public:
|
|||
bool mOpenLinksInInternalBrowser;
|
||||
bool mTrusted;
|
||||
std::string mHomePageUrl;
|
||||
std::string mExternalUrl;
|
||||
std::string mCurrentNavUrl;
|
||||
bool mIgnoreUIScale;
|
||||
bool mAlwaysRefresh;
|
||||
|
|
|
|||
12
install.xml
12
install.xml
|
|
@ -948,23 +948,23 @@ anguage Infrstructure (CLI) international standard</string>
|
|||
<key>darwin</key>
|
||||
<map>
|
||||
<key>md5sum</key>
|
||||
<string>5362a53488693f9bd7d9083758af25eb</string>
|
||||
<string>2eb58f544c0d912aa382de2c947be7f1</string>
|
||||
<key>url</key>
|
||||
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.6-darwin-20091218.tar.bz2</uri>
|
||||
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.6-darwin-20100104.tar.bz2</uri>
|
||||
</map>
|
||||
<key>linux</key>
|
||||
<map>
|
||||
<key>md5sum</key>
|
||||
<string>09674cbae982e7e7f6ebc7e1d06580e8</string>
|
||||
<string>c4c40fca14a8bd32096f8a27c75c526f</string>
|
||||
<key>url</key>
|
||||
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-20091216.tar.bz2</uri>
|
||||
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-20100105c.tar.bz2</uri>
|
||||
</map>
|
||||
<key>windows</key>
|
||||
<map>
|
||||
<key>md5sum</key>
|
||||
<string>4dd305f2ce38b2e55a2014ad3a2de34d</string>
|
||||
<string>b50db4fdb833111e1e679188e4cb5815</string>
|
||||
<key>url</key>
|
||||
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-windows-qt4.6-20091218.tar.bz2</uri>
|
||||
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-windows-qt4.6-20100104.tar.bz2</uri>
|
||||
</map>
|
||||
</map>
|
||||
</map>
|
||||
|
|
|
|||
Loading…
Reference in New Issue