diff options
| author | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-01-22 02:29:55 +0200 | 
|---|---|---|
| committer | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-01-22 02:29:55 +0200 | 
| commit | e349ad63d8f87517b758aeefe4c2203d5baa6770 (patch) | |
| tree | 8ac1e2ee64be6e2cf47536ec0666500743ca2493 /indra | |
| parent | 1e682ef5cad1663779aa8a6919c1bcafddb1dcc4 (diff) | |
| parent | c41b94cd5ea43b5d3e2cc93bb76972c5ea147739 (diff) | |
Merged in callum_linden/vr-cef-fixes-1
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/media_plugins/cef/media_plugin_cef.cpp | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 9028f73e30..8d9d1dd975 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -69,6 +69,7 @@ private:  	bool onHTTPAuthCallback(const std::string host, const std::string realm, std::string& username, std::string& password);  	void onCursorChangedCallback(LLCEFLib::ECursorType type, unsigned int handle);  	void onFileDownloadCallback(std::string filename); +	const std::string onFileDialogCallback();  	void postDebugMessage(const std::string& msg);  	void authResponse(LLPluginMessage &message); @@ -95,6 +96,7 @@ private:  	bool mCanPaste;  	std::string mCachePath;  	std::string mCookiePath; +	std::string mPickedFile;  	LLCEFLib* mLLCEFLib;      VolumeCatcher mVolumeCatcher; @@ -123,6 +125,7 @@ MediaPluginBase(host_send_func, host_user_data)  	mCanPaste = false;  	mCachePath = "";  	mCookiePath = ""; +	mPickedFile = "";  	mLLCEFLib = new LLCEFLib();  } @@ -305,6 +308,20 @@ void MediaPluginCEF::onFileDownloadCallback(const std::string filename)  	sendMessage(message);  } +//////////////////////////////////////////////////////////////////////////////// +// +const std::string MediaPluginCEF::onFileDialogCallback() +{ +	mPickedFile.clear(); + +	LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file"); +	message.setValueBoolean("blocking_request", true); + +	sendMessage(message); + +	return mPickedFile; +} +  void MediaPluginCEF::onCursorChangedCallback(LLCEFLib::ECursorType type, unsigned int handle)  {  	std::string name = ""; @@ -439,6 +456,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  				mLLCEFLib->setOnNavigateURLCallback(boost::bind(&MediaPluginCEF::onNavigateURLCallback, this, _1, _2));  				mLLCEFLib->setOnHTTPAuthCallback(boost::bind(&MediaPluginCEF::onHTTPAuthCallback, this, _1, _2, _3, _4));  				mLLCEFLib->setOnFileDownloadCallback(boost::bind(&MediaPluginCEF::onFileDownloadCallback, this, _1)); +				mLLCEFLib->setOnFileDialogCallback(boost::bind(&MediaPluginCEF::onFileDialogCallback, this));  				mLLCEFLib->setOnCursorChangedCallback(boost::bind(&MediaPluginCEF::onCursorChangedCallback, this, _1, _2));  				mLLCEFLib->setOnRequestExitCallback(boost::bind(&MediaPluginCEF::onRequestExitCallback, this)); @@ -648,6 +666,10 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  			{  				mEnableMediaPluginDebugging = message_in.getValueBoolean("enable");  			} +			if (message_name == "pick_file_response") +			{ +				mPickedFile = message_in.getValue("file"); +			}  			if (message_name == "auth_response")  			{  				authResponse(message_in); | 
