FIX DEV-40877: ignore changes from "bad" objects which have an invalid media URL
parent
1658d77b86
commit
aba67da38b
|
|
@ -646,3 +646,9 @@ LLUUID LLTextureEntry::getAgentIDFromMediaVersionString(const std::string &versi
|
|||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
//static
|
||||
bool LLTextureEntry::isMediaVersionString(const std::string &version_string)
|
||||
{
|
||||
return std::string::npos != version_string.find(MEDIA_VERSION_STRING_PREFIX);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,7 +171,9 @@ public:
|
|||
static U32 getVersionFromMediaVersionString(const std::string &version_string);
|
||||
// Given a media version string, return the UUID of the agent
|
||||
static LLUUID getAgentIDFromMediaVersionString(const std::string &version_string);
|
||||
|
||||
// Return whether or not the given string is actually a media version
|
||||
static bool isMediaVersionString(const std::string &version_string);
|
||||
|
||||
// Media flags
|
||||
enum { MF_NONE = 0x0, MF_HAS_MEDIA = 0x1 };
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
<string>AppCache</string>
|
||||
<string>Window</string>
|
||||
<string>RenderInit</string>
|
||||
<string>MediaOnAPrim</string>
|
||||
</array>
|
||||
</map>
|
||||
<map>
|
||||
|
|
@ -34,12 +35,15 @@
|
|||
</array>
|
||||
<key>classes</key>
|
||||
<array>
|
||||
<string>LLMediaDataClient</string>
|
||||
</array>
|
||||
<key>files</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>tags</key>
|
||||
<array>
|
||||
<string>LLMediaDataClient</string>
|
||||
<string>MediaOnAPrim</string>
|
||||
</array>
|
||||
</map>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -618,6 +618,6 @@ void LLObjectMediaNavigateClient::Responder::bounceBack()
|
|||
|
||||
if (mep && impl)
|
||||
{
|
||||
// impl->navigateTo(mep->getCurrentURL());
|
||||
impl->navigateTo(mep->getCurrentURL(), "", false, true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -319,13 +319,23 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
}
|
||||
}
|
||||
}
|
||||
if (retval & (MEDIA_URL_REMOVED | MEDIA_URL_ADDED | MEDIA_URL_UPDATED | MEDIA_FLAGS_CHANGED)) {
|
||||
// If the media changed at all, request new media data
|
||||
if(mMedia)
|
||||
if (retval & (MEDIA_URL_REMOVED | MEDIA_URL_ADDED | MEDIA_URL_UPDATED | MEDIA_FLAGS_CHANGED))
|
||||
{
|
||||
// If only the media URL changed, and it isn't a media version URL,
|
||||
// ignore it
|
||||
if ( ! ( retval & (MEDIA_URL_ADDED | MEDIA_URL_UPDATED) &&
|
||||
mMedia && ! mMedia->mMediaURL.empty() &&
|
||||
! LLTextureEntry::isMediaVersionString(mMedia->mMediaURL) ) )
|
||||
{
|
||||
llinfos << "Media URL: " << mMedia->mMediaURL << llendl;
|
||||
// If the media changed at all, request new media data
|
||||
LL_DEBUGS("MediaOnAPrim") << "Media update: " << getID() << ": retval=" << retval << " Media URL: " <<
|
||||
((mMedia) ? mMedia->mMediaURL : std::string("")) << LL_ENDL;
|
||||
requestMediaDataUpdate();
|
||||
}
|
||||
requestMediaDataUpdate();
|
||||
else {
|
||||
LL_INFOS("MediaOnAPrim") << "Ignoring media update for: " << getID() << " Media URL: " <<
|
||||
((mMedia) ? mMedia->mMediaURL : std::string("")) << LL_ENDL;
|
||||
}
|
||||
}
|
||||
// ...and clean up any media impls
|
||||
cleanUpMediaImpls();
|
||||
|
|
|
|||
Loading…
Reference in New Issue