diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llmediactrl.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llmediactrl.h | 5 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.h | 3 | 
4 files changed, 16 insertions, 9 deletions
| diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 7a4ed74c4c..d6d128eb29 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -67,7 +67,8 @@ LLMediaCtrl::Params::Params()  	decouple_texture_size("decouple_texture_size", false),  	texture_width("texture_width", 1024),  	texture_height("texture_height", 1024), -	caret_color("caret_color") +	caret_color("caret_color"), +	initial_mime_type("initial_mime_type")  {  	tab_stop(false);  } @@ -92,7 +93,8 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :  	mDecoupleTextureSize ( false ),  	mTextureWidth ( 1024 ),  	mTextureHeight ( 1024 ), -	mClearCache(false) +	mClearCache(false), +	mHomePageMimeType(p.initial_mime_type)  {  	{  		LLColor4 color = p.caret_color().get(); @@ -101,7 +103,7 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :  	setIgnoreUIScale(p.ignore_ui_scale); -	setHomePageUrl(p.start_url); +	setHomePageUrl(p.start_url, p.initial_mime_type);  	setBorderVisible(p.border_visible); @@ -567,12 +569,12 @@ void LLMediaCtrl::navigateHome()  ////////////////////////////////////////////////////////////////////////////////  // -void LLMediaCtrl::setHomePageUrl( const std::string urlIn ) +void LLMediaCtrl::setHomePageUrl( const std::string& urlIn, const std::string& mime_type )  {  	mHomePageUrl = urlIn;  	if (mMediaSource)  	{ -		mMediaSource->setHomeURL(mHomePageUrl); +		mMediaSource->setHomeURL(mHomePageUrl, mime_type);  	}  } @@ -616,7 +618,7 @@ bool LLMediaCtrl::ensureMediaSourceExists()  		if ( mMediaSource )  		{  			mMediaSource->setUsedInUI(true); -			mMediaSource->setHomeURL(mHomePageUrl); +			mMediaSource->setHomeURL(mHomePageUrl, mHomePageMimeType);  			mMediaSource->setVisible( getVisible() );  			mMediaSource->addObserver( this );  			mMediaSource->setBackgroundColor( getBackgroundColor() ); diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 310492fe02..784b266d1f 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -63,6 +63,8 @@ public:  								texture_height;  		Optional<LLUIColor>		caret_color; + +		Optional<std::string>	initial_mime_type;  		Params();  	}; @@ -109,7 +111,7 @@ public:  		// because we control the page content.  See DEV-9530.  JC.  		void setTrusted( bool valIn ); -		void setHomePageUrl( const std::string urlIn ); +		void setHomePageUrl( const std::string& urlIn, const std::string& mime_type = LLStringUtil::null );  		std::string getHomePageUrl();  		// set/clear URL to visit when a 404 page is reached @@ -173,6 +175,7 @@ public:  		bool mForceUpdate;  		bool mTrusted;  		std::string mHomePageUrl; +		std::string mHomePageMimeType;  		std::string mCurrentNavUrl;  		bool mIgnoreUIScale;  		bool mAlwaysRefresh; diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 99220e288c..77f7740449 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -2196,7 +2196,8 @@ void LLViewerMediaImpl::navigateReload()  //////////////////////////////////////////////////////////////////////////////////////////  void LLViewerMediaImpl::navigateHome()  { -	navigateTo(mHomeURL, "", true, false); +	bool rediscover_mimetype = mHomeMimeType.empty(); +	navigateTo(mHomeURL, mHomeMimeType, rediscover_mimetype, false);  }  ////////////////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index f75f24fbf5..01063aae06 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -237,7 +237,7 @@ public:  	std::string getCurrentMediaURL();  	std::string getHomeURL() { return mHomeURL; }  	std::string getMediaEntryURL() { return mMediaEntryURL; } -    void setHomeURL(const std::string& home_url) { mHomeURL = home_url; }; +	void setHomeURL(const std::string& home_url, const std::string& mime_type = LLStringUtil::null) { mHomeURL = home_url; mHomeMimeType = mime_type;};  	void clearCache();  	std::string getMimeType() { return mMimeType; }  	void scaleMouse(S32 *mouse_x, S32 *mouse_y); @@ -401,6 +401,7 @@ private:  	bool  mMovieImageHasMips;  	std::string mMediaURL;			// The last media url set with NavigateTo  	std::string mHomeURL; +	std::string mHomeMimeType;		// forced mime type for home url  	std::string mMimeType;  	std::string mCurrentMediaURL;	// The most current media url from the plugin (via the "location changed" or "navigate complete" events).  	std::string mCurrentMimeType;	// The MIME type that caused the currently loaded plugin to be loaded. | 
