diff options
| author | AndreyL ProductEngine <alihatskiy@productengine.com> | 2018-04-12 21:22:22 +0300 | 
|---|---|---|
| committer | AndreyL ProductEngine <alihatskiy@productengine.com> | 2018-04-12 21:22:22 +0300 | 
| commit | 8c67f588da1031ef6e468a7ab5eeb19020b0298c (patch) | |
| tree | e1777144cae762eb9543f4d63875cb2b2646d295 /indra/newview | |
| parent | b5d72cf657d2530025fa7b946077153736a27e46 (diff) | |
| parent | 41f4e854732a7c75a813b2e99285cc41bde13e5e (diff) | |
Merged in lindenlab/viewer-release
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/VIEWER_VERSION.txt | 2 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llfloaterfacebook.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llfloaterflickr.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llfloatertwitter.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llmediactrl.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 276 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.h | 10 | ||||
| -rw-r--r-- | indra/newview/llwebprofile.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_about.xml | 12 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_web_content.xml | 103 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_login.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_privacy.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_setup.xml | 56 | 
17 files changed, 72 insertions, 442 deletions
| diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index cdb98d26e4..76e9e619d6 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -5.1.3 +5.1.4 diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 756e4b6616..bbd7f65383 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -16167,6 +16167,17 @@        <key>Value</key>        <integer>0</integer>      </map> +    <key>CefVerboseLog</key> +    <map> +      <key>Comment</key> +      <string>Enable/disable CEF verbose loggingk</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>0</integer> +    </map>  </map>  </llsd> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index c33c0d5684..ce4aab20c7 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1930,8 +1930,6 @@ bool LLAppViewer::cleanup()  	LLAvatarIconIDCache::getInstance()->save(); -	LLViewerMedia::saveCookieFile(); -  	// Stop the plugin read thread if it's running.  	LLPluginProcessParent::setUseReadThread(false); @@ -3166,8 +3164,14 @@ LLSD LLAppViewer::getViewerInfo() const  	cef_ver_codec << " / CEF: ";  	cef_ver_codec << CEF_VERSION; -	cef_ver_codec << " / Chrome: "; +	cef_ver_codec << " / Chromium: ";  	cef_ver_codec << CHROME_VERSION_MAJOR; +	cef_ver_codec << "."; +	cef_ver_codec << CHROME_VERSION_MINOR; +	cef_ver_codec << "."; +	cef_ver_codec << CHROME_VERSION_BUILD; +	cef_ver_codec << "."; +	cef_ver_codec << CHROME_VERSION_PATCH;  	info["LIBCEF_VERSION"] = cef_ver_codec.str();  #else diff --git a/indra/newview/llfloaterfacebook.cpp b/indra/newview/llfloaterfacebook.cpp index b1d6d8be82..e84cbc289f 100644 --- a/indra/newview/llfloaterfacebook.cpp +++ b/indra/newview/llfloaterfacebook.cpp @@ -1,4 +1,4 @@ -/**  +/**  * @file llfloaterfacebook.cpp  * @brief Implementation of llfloaterfacebook  * @author Gilbert@lindenlab.com @@ -41,7 +41,6 @@  #include "llresmgr.h"		// LLLocale  #include "llsdserialize.h"  #include "llloadingindicator.h" -#include "llplugincookiestore.h"  #include "llslurl.h"  #include "lltrans.h"  #include "llsnapshotlivepreview.h" @@ -296,16 +295,11 @@ void LLFacebookStatusPanel::showConnectedLayout()  void LLFacebookStatusPanel::onConnect()  {      LLFacebookConnect::instance().checkConnectionToFacebook(true); - -    //Clear only the facebook browser cookies so that the facebook login screen appears -    LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com");  }  void LLFacebookStatusPanel::onDisconnect()  {      LLFacebookConnect::instance().disconnectFromFacebook(); - -    LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com");  }  void LLFacebookStatusPanel::clearAndClose() @@ -810,7 +804,7 @@ void LLFacebookCheckinPanel::sendCheckin()      LLAgentUI::buildSLURL(slurl);      std::string slurl_string = slurl.getSLURLString(); -    // Use a valid http:// URL if the scheme is secondlife://  +    // Use a valid http:// URL if the scheme is secondlife://      LLURI slurl_uri(slurl_string);      if (slurl_uri.scheme() == LLSLURL::SLURL_SECONDLIFE_SCHEME)      { diff --git a/indra/newview/llfloaterflickr.cpp b/indra/newview/llfloaterflickr.cpp index 15b7c7fafa..69a92b2b54 100644 --- a/indra/newview/llfloaterflickr.cpp +++ b/indra/newview/llfloaterflickr.cpp @@ -40,7 +40,6 @@  #include "llresmgr.h"		// LLLocale  #include "llsdserialize.h"  #include "llloadingindicator.h" -#include "llplugincookiestore.h"  #include "llslurl.h"  #include "lltrans.h"  #include "llsnapshotlivepreview.h" @@ -660,16 +659,11 @@ void LLFlickrAccountPanel::showConnectedLayout()  void LLFlickrAccountPanel::onConnect()  {  	LLFlickrConnect::instance().checkConnectionToFlickr(true); - -	//Clear only the flickr browser cookies so that the flickr login screen appears -	LLViewerMedia::getCookieStore()->removeCookiesByDomain(".flickr.com");   }  void LLFlickrAccountPanel::onDisconnect()  {  	LLFlickrConnect::instance().disconnectFromFlickr(); - -	LLViewerMedia::getCookieStore()->removeCookiesByDomain(".flickr.com");   }  //////////////////////// diff --git a/indra/newview/llfloatertwitter.cpp b/indra/newview/llfloatertwitter.cpp index 803c80ac1a..2b33bc6935 100644 --- a/indra/newview/llfloatertwitter.cpp +++ b/indra/newview/llfloatertwitter.cpp @@ -41,7 +41,6 @@  #include "llresmgr.h"		// LLLocale  #include "llsdserialize.h"  #include "llloadingindicator.h" -#include "llplugincookiestore.h"  #include "llslurl.h"  #include "lltrans.h"  #include "llsnapshotlivepreview.h" @@ -683,16 +682,11 @@ void LLTwitterAccountPanel::showConnectedLayout()  void LLTwitterAccountPanel::onConnect()  {  	LLTwitterConnect::instance().checkConnectionToTwitter(true); - -	//Clear only the twitter browser cookies so that the twitter login screen appears -	LLViewerMedia::getCookieStore()->removeCookiesByDomain(".twitter.com");   }  void LLTwitterAccountPanel::onDisconnect()  {  	LLTwitterConnect::instance().disconnectFromTwitter(); - -	LLViewerMedia::getCookieStore()->removeCookiesByDomain(".twitter.com");   }  //////////////////////// diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index a8025906c7..7f6955d08c 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -1022,7 +1022,7 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)  			// try as slurl first  			if (!LLURLDispatcher::dispatch(url, "clicked", NULL, mTrusted))  			{ -				LLWeb::loadURL(url, target, std::string()); +				LLWeb::loadURL(url, target, uuid);  			}  			// CP: removing this code because we no longer support popups so this breaks the flow. diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 2ed2f8644e..62560a2fc8 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -972,9 +972,6 @@ bool idle_startup()  		// Load Avatars icons cache  		LLAvatarIconIDCache::getInstance()->load(); -		// Load media plugin cookies -		LLViewerMedia::loadCookieFile(); -  		LLRenderMuteList::getInstance()->loadFromFile();  		//------------------------------------------------- diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index f4b5055cd9..75108b3ef0 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -50,7 +50,6 @@  #include "llpanelprofile.h"  #include "llparcel.h"  #include "llpluginclassmedia.h" -#include "llplugincookiestore.h"  #include "llurldispatcher.h"  #include "lluuid.h"  #include "llversioninfo.h" @@ -154,7 +153,6 @@ LLViewerMediaObserver::~LLViewerMediaObserver()  } -LLPluginCookieStore *LLViewerMedia::sCookieStore = NULL;  LLURL LLViewerMedia::sOpenIDURL;  std::string LLViewerMedia::sOpenIDCookie;  LLPluginClassMedia* LLViewerMedia::sSpareBrowserMediaSource = NULL; @@ -169,8 +167,6 @@ static F64 sLowestLoadableImplInterest = 0.0f;  static bool sAnyMediaShowing = false;  static bool sAnyMediaPlaying = false;  static boost::signals2::connection sTeleportFinishConnection; -static std::string sUpdatedCookies; -static const char *PLUGIN_COOKIE_FILE_NAME = "plugin_cookies.txt";  //////////////////////////////////////////////////////////////////////////////////////////  static void add_media_impl(LLViewerMediaImpl* media) @@ -610,12 +606,6 @@ void LLViewerMedia::updateMedia(void *dummy_arg)  	sAnyMediaShowing = false;  	sAnyMediaPlaying = false; -	sUpdatedCookies = getCookieStore()->getChangedCookies(); -	if(!sUpdatedCookies.empty()) -	{ -		LL_DEBUGS() << "updated cookies will be sent to all loaded plugins: " << LL_ENDL; -		LL_DEBUGS() << sUpdatedCookies << LL_ENDL; -	}  	impl_list::iterator iter = sViewerMediaImplList.begin();  	impl_list::iterator end = sViewerMediaImplList.end(); @@ -1059,64 +1049,6 @@ void LLViewerMedia::clearAllCookies()  			pimpl->mMediaSource->clear_cookies();  		}  	} - -	// Clear all cookies from the cookie store -	getCookieStore()->setAllCookies(""); - -	// FIXME: this may not be sufficient, since the on-disk cookie file won't get written until some browser instance exits cleanly. -	// It also won't clear cookies for other accounts, or for any account if we're not logged in, and won't do anything at all if there are no webkit plugins loaded. -	// Until such time as we can centralize cookie storage, the following hack should cover these cases: - -	// HACK: Look for cookie files in all possible places and delete them. -	// NOTE: this assumes knowledge of what happens inside the webkit plugin (it's what adds 'browser_profile' to the path and names the cookie file) - -	// Places that cookie files can be: -	// <getOSUserAppDir>/browser_profile/cookies -	// <getOSUserAppDir>/first_last/browser_profile/cookies  (note that there may be any number of these!) -	// <getOSUserAppDir>/first_last/plugin_cookies.txt  (note that there may be any number of these!) - -	std::string base_dir = gDirUtilp->getOSUserAppDir() + gDirUtilp->getDirDelimiter(); -	std::string target; -	std::string filename; - -	LL_DEBUGS() << "base dir = " << base_dir << LL_ENDL; - -	// The non-logged-in version is easy -	target = base_dir; -	target += "browser_profile"; -	target += gDirUtilp->getDirDelimiter(); -	target += "cookies"; -	LL_DEBUGS() << "target = " << target << LL_ENDL; -	if(LLFile::isfile(target)) -	{ -		LLFile::remove(target); -	} - -	// the hard part: iterate over all user directories and delete the cookie file from each one -	LLDirIterator dir_iter(base_dir, "*_*"); -	while (dir_iter.next(filename)) -	{ -		target = gDirUtilp->add(base_dir, filename); -		gDirUtilp->append(target, "browser_profile"); -		gDirUtilp->append(target, "cookies"); -		LL_DEBUGS() << "target = " << target << LL_ENDL; -		if(LLFile::isfile(target)) -		{ -			LLFile::remove(target); -		} - -		// Other accounts may have new-style cookie files too -- delete them as well -		target = gDirUtilp->add(base_dir, filename); -		gDirUtilp->append(target, PLUGIN_COOKIE_FILE_NAME); -		LL_DEBUGS() << "target = " << target << LL_ENDL; -		if(LLFile::isfile(target)) -		{ -			LLFile::remove(target); -		} -	} - -	// If we have an OpenID cookie, re-add it to the cookie store. -	setOpenIDCookie(std::string());  }  ///////////////////////////////////////////////////////////////////////////////////////// @@ -1145,7 +1077,7 @@ void LLViewerMedia::setCookiesEnabled(bool enabled)  		LLViewerMediaImpl* pimpl = *iter;  		if(pimpl->mMediaSource)  		{ -			pimpl->mMediaSource->enable_cookies(enabled); +			pimpl->mMediaSource->cookies_enabled(enabled);  		}  	}  } @@ -1170,127 +1102,7 @@ void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int por  /////////////////////////////////////////////////////////////////////////////////////////  // static  ///////////////////////////////////////////////////////////////////////////////////////// -// static -LLPluginCookieStore *LLViewerMedia::getCookieStore() -{ -	if(sCookieStore == NULL) -	{ -		sCookieStore = new LLPluginCookieStore; -	} - -	return sCookieStore; -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::loadCookieFile() -{ -	// build filename for each user -	std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PLUGIN_COOKIE_FILE_NAME); - -	if (resolved_filename.empty()) -	{ -		LL_INFOS() << "can't get path to plugin cookie file - probably not logged in yet." << LL_ENDL; -		return; -	} - -	// open the file for reading -	llifstream file(resolved_filename.c_str()); -	if (!file.is_open()) -	{ -		LL_WARNS() << "can't load plugin cookies from file \"" << PLUGIN_COOKIE_FILE_NAME << "\"" << LL_ENDL; -		return; -	} - -	getCookieStore()->readAllCookies(file, true); - -	file.close(); - -	// send the clear_cookies message to all loaded plugins -	impl_list::iterator iter = sViewerMediaImplList.begin(); -	impl_list::iterator end = sViewerMediaImplList.end(); -	for (; iter != end; iter++) -	{ -		LLViewerMediaImpl* pimpl = *iter; -		if(pimpl->mMediaSource) -		{ -			pimpl->mMediaSource->clear_cookies(); -		} -	} - -	// If we have an OpenID cookie, re-add it to the cookie store. -	setOpenIDCookie(std::string()); -} - - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::saveCookieFile() -{ -	// build filename for each user -	std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PLUGIN_COOKIE_FILE_NAME); - -	if (resolved_filename.empty()) -	{ -		LL_INFOS() << "can't get path to plugin cookie file - probably not logged in yet." << LL_ENDL; -		return; -	} - -	// open a file for writing -	llofstream file(resolved_filename.c_str()); -	if (!file.is_open()) -	{ -		LL_WARNS() << "can't open plugin cookie file \"" << PLUGIN_COOKIE_FILE_NAME << "\" for writing" << LL_ENDL; -		return; -	} - -	getCookieStore()->writePersistentCookies(file); - -	file.close(); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::addCookie(const std::string &name, const std::string &value, const std::string &domain, const LLDate &expires, const std::string &path, bool secure) -{ -	std::stringstream cookie; - -	cookie << name << "=" << LLPluginCookieStore::quoteString(value); - -	if(expires.notNull()) -	{ -		cookie << "; expires=" << expires.asRFC1123(); -	} - -	cookie << "; domain=" << domain; - -	cookie << "; path=" << path; - -	if(secure) -	{ -		cookie << "; secure"; -	} - -	getCookieStore()->setCookies(cookie.str()); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::addSessionCookie(const std::string &name, const std::string &value, const std::string &domain, const std::string &path, bool secure) -{ -	// A session cookie just has a NULL date. -	addCookie(name, value, domain, LLDate(), path, secure); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::removeCookie(const std::string &name, const std::string &domain, const std::string &path ) -{ -	// To remove a cookie, add one with the same name, domain, and path that expires in the past. - -	addCookie(name, "", domain, LLDate(LLDate::now().secondsSinceEpoch() - 1.0), path); -} - +//// static  LLSD LLViewerMedia::getHeaders()  { @@ -1395,8 +1207,6 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)          hostEnd = authority.size();      } -    getCookieStore()->setCookiesFromHost(sOpenIDCookie, authority.substr(hostStart, hostEnd - hostStart)); -  	if (url.length())  	{  		LLMediaCtrl* media_instance = LLFloaterReg::getInstance("destinations")->getChild<LLMediaCtrl>("destination_guide_contents"); @@ -1434,7 +1244,6 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)      httpHeaders->append(HTTP_OUT_HEADER_COOKIE, sOpenIDCookie);      httpHeaders->append(HTTP_OUT_HEADER_USER_AGENT, getCurrentUserAgent()); -      LL_DEBUGS("MediaAuth") << "Requesting " << url << LL_ENDL;      LL_DEBUGS("MediaAuth") << "sOpenIDCookie = [" << sOpenIDCookie << "]" << LL_ENDL; @@ -1459,13 +1268,9 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)      const std::string& cookie = resultHeaders[HTTP_IN_HEADER_SET_COOKIE].asStringRef();      LL_DEBUGS("MediaAuth") << "cookie = " << cookie << LL_ENDL; -    // *TODO: What about bad status codes?  Does this destroy previous cookies? -    LLViewerMedia::getCookieStore()->setCookiesFromHost(cookie, hostAuth); -      // Set cookie for snapshot publishing.      std::string authCookie = cookie.substr(0, cookie.find(";")); // strip path      LLWebProfile::setAuthCookie(authCookie); -  }  ///////////////////////////////////////////////////////////////////////////////////////// @@ -1660,12 +1465,6 @@ void LLViewerMedia::cleanupClass()  		delete sSpareBrowserMediaSource;  		sSpareBrowserMediaSource = NULL;  	} - -	if (sCookieStore != NULL) -	{ -		delete sCookieStore; -		sCookieStore = NULL; -	}  }  ////////////////////////////////////////////////////////////////////////////////////////// @@ -1898,6 +1697,8 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_  		std::string user_data_path_cookies = gDirUtilp->getOSUserAppDir();  		user_data_path_cookies += gDirUtilp->getDirDelimiter(); +		std::string user_data_path_cef_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "cef_log.txt"); +  		// Fix for EXT-5960 - make browser profile specific to user (cache, cookies etc.)  		// If the linden username returned is blank, that can only mean we are  		// at the login page displaying login Web page or Web browser test via Develop menu. @@ -1906,7 +1707,6 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_  		std::string linden_user_dir = gDirUtilp->getLindenUserDir();  		if ( ! linden_user_dir.empty() )  		{ -			// gDirUtilp->getLindenUserDir() is whole path, not just Linden name  			user_data_path_cookies = linden_user_dir;  			user_data_path_cookies += gDirUtilp->getDirDelimiter();  		}; @@ -1927,13 +1727,13 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_  		{  			media_source = new LLPluginClassMedia(owner);  			media_source->setSize(default_width, default_height); -			media_source->setUserDataPath(user_data_path_cache, user_data_path_cookies); +			media_source->setUserDataPath(user_data_path_cache, user_data_path_cookies, user_data_path_cef_log);  			media_source->setLanguageCode(LLUI::getLanguage());  			media_source->setZoomFactor(zoom_factor);  			// collect 'cookies enabled' setting from prefs and send to embedded browser  			bool cookies_enabled = gSavedSettings.getBOOL( "CookiesEnabled" ); -			media_source->enable_cookies( cookies_enabled || clean_browser); +			media_source->cookies_enabled( cookies_enabled || clean_browser);  			// collect 'plugins enabled' setting from prefs and send to embedded browser  			bool plugins_enabled = gSavedSettings.getBOOL( "BrowserPluginsEnabled" ); @@ -2040,17 +1840,6 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)  			media_source->clear_cache();  		} -		// TODO: Only send cookies to plugins that need them -		//  Ideally, the plugin should tell us whether it handles cookies or not -- either via the init response or through a separate message. -		//  Due to the ordering of messages, it's possible we wouldn't get that information back in time to send cookies before sending a navigate message, -		//  which could cause odd race conditions. -		std::string all_cookies = LLViewerMedia::getCookieStore()->getAllCookies(); -		LL_DEBUGS() << "setting cookies: " << all_cookies << LL_ENDL; -		if(!all_cookies.empty()) -		{ -			media_source->set_cookies(all_cookies); -		} -  		mMediaSource = media_source;  		mMediaSource->setDeleteOK(false) ;  		updateVolume(); @@ -2992,14 +2781,10 @@ void LLViewerMediaImpl::update()  		updateVolume();  		// TODO: this is updated every frame - is this bad? -		updateJavascriptObject(); - -		// If we didn't just create the impl, it may need to get cookie updates. -		if(!sUpdatedCookies.empty()) -		{ -			// TODO: Only send cookies to plugins that need them -			mMediaSource->set_cookies(sUpdatedCookies); -		} +		// Removing this as part of the post viewer64 media update +		// Removed as not implemented in CEF embedded browser +		// See MAINT-8194 for a more fuller description +		// updateJavascriptObject();  	} @@ -3489,22 +3274,40 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla  		case LLViewerMediaObserver::MEDIA_EVENT_PICK_FILE_REQUEST:  		{ -			// Display a file picker -			std::string response; -  			LLFilePicker& picker = LLFilePicker::instance(); -			if (!picker.getOpenFile(LLFilePicker::FFLOAD_ALL)) +			std::vector<std::string> responses; + +			bool pick_multiple_files = plugin->getIsMultipleFilePick(); +			if (pick_multiple_files == false)  			{ -				// The user didn't pick a file -- the empty response string will indicate this. +				picker.getOpenFile(LLFilePicker::FFLOAD_ALL); + +				std::string filename = picker.getFirstFile(); +				responses.push_back(filename);  			} +			else +			{ +				if (picker.getMultipleOpenFiles()) +				{ +					std::string filename = picker.getFirstFile(); -			response = picker.getFirstFile(); +					responses.push_back(filename); -			plugin->sendPickFileResponse(response); +					while (!filename.empty()) +					{ +						filename = picker.getNextFile(); + +						if (!filename.empty()) +						{ +							responses.push_back(filename); +						} +					} +				} +			} +			plugin->sendPickFileResponse(responses);  		}  		break; -  		case LLViewerMediaObserver::MEDIA_EVENT_AUTH_REQUEST:  		{  			LLNotification::Params auth_request_params; @@ -3574,13 +3377,6 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla  ////////////////////////////////////////////////////////////////////////////////  // virtual -void LLViewerMediaImpl::handleCookieSet(LLPluginClassMedia* self, const std::string &cookie) -{ -	LLViewerMedia::getCookieStore()->setCookies(cookie); -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual  void  LLViewerMediaImpl::cut()  { diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 0212bf88bf..6e18c4fecb 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -50,7 +50,6 @@ class LLViewerMediaTexture;  class LLMediaEntry;  class LLVOVolume;  class LLMimeDiscoveryResponder; -class LLPluginCookieStore;  typedef LLPointer<LLViewerMediaImpl> viewer_media_t;  /////////////////////////////////////////////////////////////////////////////// @@ -149,13 +148,6 @@ public:  	// Set the proxy config for all loaded plugins  	static void setProxyConfig(bool enable, const std::string &host, int port); -	static LLPluginCookieStore *getCookieStore(); -	static void loadCookieFile(); -	static void saveCookieFile(); -	static void addCookie(const std::string &name, const std::string &value, const std::string &domain, const LLDate &expires, const std::string &path = std::string("/"), bool secure = false ); -	static void addSessionCookie(const std::string &name, const std::string &value, const std::string &domain, const std::string &path = std::string("/"), bool secure = false ); -	static void removeCookie(const std::string &name, const std::string &domain, const std::string &path = std::string("/") ); -  	static void openIDSetup(const std::string &openid_url, const std::string &openid_token);  	static void openIDCookieResponse(const std::string& url, const std::string &cookie); @@ -178,7 +170,6 @@ private:      static void openIDSetupCoro(std::string openidUrl, std::string openidToken);      static void getOpenIDCookieCoro(std::string url); -	static LLPluginCookieStore *sCookieStore;  	static LLURL sOpenIDURL;  	static std::string sOpenIDCookie;  	static LLPluginClassMedia* sSpareBrowserMediaSource; @@ -337,7 +328,6 @@ public:  	// Inherited from LLPluginClassMediaOwner  	/*virtual*/ void handleMediaEvent(LLPluginClassMedia* plugin, LLPluginClassMediaOwner::EMediaEvent); -	/*virtual*/ void handleCookieSet(LLPluginClassMedia* self, const std::string &cookie);  	// LLEditMenuHandler overrides  	/*virtual*/ void	cut(); diff --git a/indra/newview/llwebprofile.cpp b/indra/newview/llwebprofile.cpp index 06ce497510..81d4e30a7a 100644 --- a/indra/newview/llwebprofile.cpp +++ b/indra/newview/llwebprofile.cpp @@ -31,7 +31,6 @@  // libs  #include "llbufferstream.h"  #include "llimagepng.h" -#include "llplugincookiestore.h"  #include "llsdserialize.h" diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index 60f36770bb..71f4d81195 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -8,14 +8,14 @@   help_topic="floater_about"   save_rect="true"   title="ABOUT [CAPITALIZED_APP_NAME]" - width="470"> + width="500">    <tab_container      follows="all"       top="25"      left="10"      height="405"  -    width="450"  +    width="480"       name="about_tab"      tab_position="top">      <panel @@ -33,7 +33,7 @@         max_length="65536"         name="support_editor"         top="5" -       width="435" +       width="465"         word_wrap="true" />        <button          follows="left|top"  @@ -56,7 +56,7 @@            left="5"            name="linden_intro"            top="10" -          width="435" +          width="465"            wrap="true">  Second Life is brought to you by the Lindens,   with open source contributions from: @@ -71,7 +71,7 @@ with open source contributions from:         max_length="65536"         name="contrib_names"         top_pad="10" -       width="435" +       width="465"         word_wrap="true">  Dummy Name replaced at run time        </text_editor> @@ -91,7 +91,7 @@ Dummy Name replaced at run time         max_length="65536"         name="licenses_editor"         top="5" -       width="435" +       width="465"         word_wrap="true">          3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion          APR Copyright (C) 2011 The Apache Software Foundation diff --git a/indra/newview/skins/default/xui/en/floater_web_content.xml b/indra/newview/skins/default/xui/en/floater_web_content.xml index fe9ffba6cd..9a097d933b 100644 --- a/indra/newview/skins/default/xui/en/floater_web_content.xml +++ b/indra/newview/skins/default/xui/en/floater_web_content.xml @@ -178,108 +178,7 @@          width="22">          <button.commit_callback            function="WebContent.TestURL" -          parameter="https://callum-linden.s3.amazonaws.com/ceftests.html"/> -      </button> - -      <button -        image_overlay="Video_URL_Off" -            image_disabled="PushButton_Disabled" -            image_disabled_selected="PushButton_Disabled" -            image_selected="PushButton_Selected" -            image_unselected="PushButton_Off" -        chrome="true" -        tool_tip="MPEG4 Video Test" -        enabled="true" -        follows="left|top" -        height="22" -        layout="topleft" -        left="27" -        name="VLC Plugin Test" -        top="0" -        width="22"> -        <button.commit_callback -          function="WebContent.TestURL" -          parameter="https://callum-linden.s3.amazonaws.com/sample_media/ss.mp4"/> -      </button> -      <button -        image_overlay="Video_URL_Off" -            image_disabled="PushButton_Disabled" -            image_disabled_selected="PushButton_Disabled" -            image_selected="PushButton_Selected" -            image_unselected="PushButton_Off" -        chrome="true" -        tool_tip="MKV Video Test" -        enabled="true" -        follows="left|top" -        height="22" -        layout="topleft" -        left="51" -        name="VLC Plugin Test" -        top="0" -        width="22"> -        <button.commit_callback -          function="WebContent.TestURL" -          parameter="https://callum-linden.s3.amazonaws.com/sample_media/jellyfish.mkv"/> -      </button> -      <button -        image_overlay="Video_URL_Off" -            image_disabled="PushButton_Disabled" -            image_disabled_selected="PushButton_Disabled" -            image_selected="PushButton_Selected" -            image_unselected="PushButton_Off" -        chrome="true" -        tool_tip="WebM Video Test" -        enabled="true" -        follows="left|top" -        height="22" -        layout="topleft" -        left="75" -        name="VLC Plugin Test" -        top="0" -        width="22"> -        <button.commit_callback -          function="WebContent.TestURL" -          parameter="https://callum-linden.s3.amazonaws.com/sample_media/jumprope.webm"/> -      </button> -      <button -        image_overlay="Video_URL_Off" -            image_disabled="PushButton_Disabled" -            image_disabled_selected="PushButton_Disabled" -            image_selected="PushButton_Selected" -            image_unselected="PushButton_Off" -        chrome="true" -        tool_tip="MP3 audio Test" -        enabled="true" -        follows="left|top" -        height="22" -        layout="topleft" -        left="99" -        name="VLC Plugin Test" -        top="0" -        width="22"> -        <button.commit_callback -          function="WebContent.TestURL" -          parameter="https://callum-linden.s3.amazonaws.com/alegria.mp3"/> -      </button> -      <button -        image_overlay="Video_URL_Off" -            image_disabled="PushButton_Disabled" -            image_disabled_selected="PushButton_Disabled" -            image_selected="PushButton_Selected" -            image_unselected="PushButton_Off" -        chrome="true" -        tool_tip="FLV Test" -        enabled="true" -        follows="left|top" -        height="22" -        layout="topleft" -        left="123" -        name="VLC Plugin Test" -        top="0" -        width="22"> -        <button.commit_callback -          function="WebContent.TestURL" -          parameter="https://callum-linden.s3.amazonaws.com/sample_media/vandal.flv"/> +          parameter="https://sl-viewer-media-system.s3.amazonaws.com/index.html"/>        </button>      </layout_panel>      <layout_panel diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 4e2f819023..07b3cc3bd8 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -245,7 +245,7 @@         name="Media Browser">          <menu_item_call.on_click           function="Advanced.WebContentTest" -         parameter="http://google.com"/> +         parameter="http://duckduckgo.com"/>        </menu_item_call>        <menu         create_jump_keys="true" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index fa15fb0657..dcd8f0b495 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -3163,7 +3163,7 @@             shortcut="control|alt|shift|Z">              <menu_item_call.on_click               function="Advanced.WebContentTest" -             parameter="http://google.com"/> +             parameter="http://duckduckgo.com"/>            </menu_item_call>            <menu_item_call             label="FB Connect Test" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml index 284688d4d1..2ec5cef640 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml @@ -19,7 +19,7 @@        follows="left|top"        height="23"        label="Clear History" -      tool_tip="Clear login image, last location, teleport history, web, and texture cache" +      tool_tip="Clear login image, last location, teleport history, web and texture cache"        layout="topleft"        left="30"        name="clear_cache" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index 1d4cbca1a5..6732f4ff1c 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -106,38 +106,6 @@           width="300">      Web:    </text> - <!-- <radio_group -   control_name="UseExternalBrowser" -   draw_border="false" -   follows="top|left" -   height="40" -   layout="topleft" -   left_delta="50" -   name="use_external_browser" -   top_pad="-2" -   width="480"> -    <radio_item -      height="20" -      label="Use my browser (IE, Firefox, Safari)" -      layout="topleft" -      left_delta="0" -      name="external" -      value="true" -      top="0" -      tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen." -      width="480" /> -    <radio_item -      height="20" -      label="Use built-in browser" -      layout="topleft" -      left="0" -      name="internal" -      value="" -      tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside [APP_NAME]." -      top_delta="20" -      width="480" /> -  </radio_group> --> -    <radio_group     control_name="PreferredBrowserBehavior"     follows="left|top" @@ -149,7 +117,7 @@     width="480">      <radio_item        height="20" -      label="Use my browser (Chrome, Firefox, IE) for all links" +      label="Use the default system browser for all links"        layout="topleft"        left="0"        name="internal" @@ -159,17 +127,17 @@        width="480" />      <radio_item        height="20" -      label="Use built-in browser for Second Life links only" +      label="Use the built-in browser for Second Life links only"        layout="topleft"        left_delta="0"        name="external"        value="1"       -      tool_tip="Use the default system web browser for help, web links, etc. Builtin browser will be used only for LindenLab/SecondLife links." +      tool_tip="Use the default system web browser for help, web links, etc. The built-in browser will be used only for LindenLab/Second Life links."        top_delta="20"        width="480" />      <radio_item        height="20" -      label="Use built-in browser for all links" +      label="Use the built-in browser for all links"        layout="topleft"        left="0"        name="external_all" @@ -193,22 +161,6 @@      radio_style="false"      width="400"      top_pad="5"/> - -  <check_box -   top_delta="4" -   enabled="true" -   follows="left|top" -   height="14" -   initial_value="true" -   control_name="CookiesEnabled" -   label="Accept cookies" -   left_delta="0" -   mouse_opaque="true"  -   name="cookies_enabled" -   radio_style="false" -   width="400" -   top_pad="5"/> -      <check_box      top_delta="4"      enabled="true" | 
