aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden
diff options
context:
space:
mode:
authorArmin Weatherwax2011-03-21 00:15:28 +0100
committerArmin Weatherwax2011-03-21 00:15:28 +0100
commit36b31c11bc6dea2e3a6a25b6e74df703afdfca7e (patch)
treeb071649e89750e964612e0285da355d90ce335d6 /linden
parentfix: voice always on, even if told not to be (diff)
downloadmeta-impy-36b31c11bc6dea2e3a6a25b6e74df703afdfca7e.zip
meta-impy-36b31c11bc6dea2e3a6a25b6e74df703afdfca7e.tar.gz
meta-impy-36b31c11bc6dea2e3a6a25b6e74df703afdfca7e.tar.bz2
meta-impy-36b31c11bc6dea2e3a6a25b6e74df703afdfca7e.tar.xz
several embedded browser proxy fixes and one small cookie fix
* split xmlrpc and web browser proxy setting into 2 settings (because the login service might refuse to let you in using TOR) * fix web proxy to be used not only for the browser floater but also for login screen and parcel media. Backported for that the setProxyConfig method from Viewer-external(last gpl+floss version) * fix: no clear cookies button * todo: cookies need work note to devs of other viewers: if you find this useful feel free to apply my part to "lgpl v2.1 only" code without need to ask (thats all but setProxyConfig, which is anyway also released under lgpl by LL ).
Diffstat (limited to 'linden')
-rw-r--r--linden/indra/newview/app_settings/settings.xml35
-rw-r--r--linden/indra/newview/llpanelnetwork.cpp24
-rw-r--r--linden/indra/newview/llpanelnetwork.h1
-rw-r--r--linden/indra/newview/llpanelweb.cpp13
-rw-r--r--linden/indra/newview/llviewermedia.cpp38
-rw-r--r--linden/indra/newview/llviewermedia.h5
-rw-r--r--linden/indra/newview/llxmlrpctransaction.cpp6
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml27
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml4
9 files changed, 147 insertions, 6 deletions
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 2a508ee..c381d99 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -2311,6 +2311,41 @@
2311 <key>Value</key> 2311 <key>Value</key>
2312 <integer>0</integer> 2312 <integer>0</integer>
2313 </map> 2313 </map>
2314
2315 <key>XMLRPCProxyAddress</key>
2316 <map>
2317 <key>Comment</key>
2318 <string>Address for the XMLRPC Web Proxy</string>
2319 <key>Persist</key>
2320 <integer>1</integer>
2321 <key>Type</key>
2322 <string>String</string>
2323 <key>Value</key>
2324 <string />
2325 </map>
2326 <key>XMLRPCProxyEnabled</key>
2327 <map>
2328 <key>Comment</key>
2329 <string>Use XMLRPC Proxy</string>
2330 <key>Persist</key>
2331 <integer>1</integer>
2332 <key>Type</key>
2333 <string>Boolean</string>
2334 <key>Value</key>
2335 <integer>0</integer>
2336 </map>
2337 <key>XMLRPCProxyPort</key>
2338 <map>
2339 <key>Comment</key>
2340 <string>Port of the XMLRPC Proxy</string>
2341 <key>Persist</key>
2342 <integer>1</integer>
2343 <key>Type</key>
2344 <string>S32</string>
2345 <key>Value</key>
2346 <integer>3128</integer>
2347 </map>
2348
2314 <key>AllowIdleAFK</key> 2349 <key>AllowIdleAFK</key>
2315 <map> 2350 <map>
2316 <key>Comment</key> 2351 <key>Comment</key>
diff --git a/linden/indra/newview/llpanelnetwork.cpp b/linden/indra/newview/llpanelnetwork.cpp
index 2edd1a1..16b9a76 100644
--- a/linden/indra/newview/llpanelnetwork.cpp
+++ b/linden/indra/newview/llpanelnetwork.cpp
@@ -64,6 +64,14 @@ BOOL LLPanelNetwork::postBuild()
64 childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled")); 64 childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled"));
65 childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort")); 65 childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort"));
66 66
67 childSetCommitCallback("xmlrpc_proxy_enabled", onCommitXMLRPCProxyEnabled, this);
68 childSetValue("xmlrpc_proxy_enabled", gSavedSettings.getBOOL("XMLRPCProxyEnabled"));
69 childSetValue("xmlrpc_proxy_editor", gSavedSettings.getString("XMLRPCProxyAddress"));
70 childSetValue("xmlrpc_proxy_port", gSavedSettings.getS32("XMLRPCProxyPort"));
71 childSetEnabled("xmlrpc_proxy_text_label", gSavedSettings.getBOOL("XMLRPCProxyEnabled"));
72 childSetEnabled("xmlrpc_proxy_editor", gSavedSettings.getBOOL("XMLRPCProxyEnabled"));
73 childSetEnabled("xmlrpc_proxy_port", gSavedSettings.getBOOL("XMLRPCProxyEnabled"));
74
67 return TRUE; 75 return TRUE;
68} 76}
69 77
@@ -79,6 +87,10 @@ void LLPanelNetwork::apply()
79 gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal()); 87 gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal());
80 gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled")); 88 gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled"));
81 gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger()); 89 gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger());
90
91 gSavedSettings.setBOOL("XMLRPCProxyEnabled", childGetValue("xmlrpc_proxy_enabled"));
92 gSavedSettings.setString("XMLRPCProxyAddress", childGetValue("xmlrpc_proxy_editor"));
93 gSavedSettings.setS32("XMLRPCProxyPort", childGetValue("xmlrpc_proxy_port"));
82} 94}
83 95
84void LLPanelNetwork::cancel() 96void LLPanelNetwork::cancel()
@@ -144,3 +156,15 @@ void LLPanelNetwork::onCommitPort(LLUICtrl* ctrl, void* data)
144 self->childSetEnabled("connection_port", check->get()); 156 self->childSetEnabled("connection_port", check->get());
145 LLNotifications::instance().add("ChangeConnectionPort"); 157 LLNotifications::instance().add("ChangeConnectionPort");
146} 158}
159
160// static
161void LLPanelNetwork::onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data)
162{
163 LLPanelNetwork* self = (LLPanelNetwork*)data;
164 LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl;
165
166 if (!self || !check) return;
167 self->childSetEnabled("xmlrpc_proxy_editor", check->get());
168 self->childSetEnabled("xmlrpc_proxy_port", check->get());
169 self->childSetEnabled("xmlrpc_proxy_text_label", check->get());
170} \ No newline at end of file
diff --git a/linden/indra/newview/llpanelnetwork.h b/linden/indra/newview/llpanelnetwork.h
index 3a3d857..900158a 100644
--- a/linden/indra/newview/llpanelnetwork.h
+++ b/linden/indra/newview/llpanelnetwork.h
@@ -51,6 +51,7 @@ private:
51 static void onClickSetCache(void*); 51 static void onClickSetCache(void*);
52 static void onClickResetCache(void*); 52 static void onClickResetCache(void*);
53 static void onCommitPort(LLUICtrl* ctrl, void*); 53 static void onCommitPort(LLUICtrl* ctrl, void*);
54 static void onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data);
54}; 55};
55 56
56#endif 57#endif
diff --git a/linden/indra/newview/llpanelweb.cpp b/linden/indra/newview/llpanelweb.cpp
index 6f9bd7a..93441dd 100644
--- a/linden/indra/newview/llpanelweb.cpp
+++ b/linden/indra/newview/llpanelweb.cpp
@@ -69,6 +69,7 @@ BOOL LLPanelWeb::postBuild()
69 childSetValue("use_external_browser", value); 69 childSetValue("use_external_browser", value);
70 70
71 childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled")); 71 childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled"));
72 childSetAction("clear_cookies", onClickClearCookies,this);
72 73
73 childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled")); 74 childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled"));
74 childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress")); 75 childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress"));
@@ -102,9 +103,15 @@ LLPanelWeb::~LLPanelWeb()
102void LLPanelWeb::apply() 103void LLPanelWeb::apply()
103{ 104{
104 gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled")); 105 gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled"));
105 gSavedSettings.setBOOL("BrowserProxyEnabled", childGetValue("web_proxy_enabled")); 106
106 gSavedSettings.setString("BrowserProxyAddress", childGetValue("web_proxy_editor")); 107 bool proxy_enable = childGetValue("web_proxy_enabled");
107 gSavedSettings.setS32("BrowserProxyPort", childGetValue("web_proxy_port")); 108 std::string proxy_address = childGetValue("web_proxy_editor");
109 int proxy_port = childGetValue("web_proxy_port");
110 gSavedSettings.setBOOL("BrowserProxyEnabled", proxy_enable);
111 gSavedSettings.setString("BrowserProxyAddress", proxy_address);
112 gSavedSettings.setS32("BrowserProxyPort", proxy_port);
113 LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port);
114
108 if (gHippoGridManager->getConnectedGrid()->isSecondLife()) 115 if (gHippoGridManager->getConnectedGrid()->isSecondLife())
109 { 116 {
110 gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor")); 117 gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor"));
diff --git a/linden/indra/newview/llviewermedia.cpp b/linden/indra/newview/llviewermedia.cpp
index f0faedf..c228468 100644
--- a/linden/indra/newview/llviewermedia.cpp
+++ b/linden/indra/newview/llviewermedia.cpp
@@ -267,6 +267,23 @@ std::string LLViewerMedia::getCurrentUserAgent()
267 267
268 return codec.str(); 268 return codec.str();
269} 269}
270
271/////////////////////////////////////////////////////////////////////////////////////////
272// static
273void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int port)
274{
275 // Set the proxy config for all loaded plugins
276 impl_list::iterator iter = sViewerMediaImplList.begin();
277 impl_list::iterator end = sViewerMediaImplList.end();
278 for (; iter != end; iter++)
279 {
280 LLViewerMediaImpl* pimpl = *iter;
281 if(pimpl->mMediaSource)
282 {
283 pimpl->mMediaSource->proxy_setup(enable, host, port);
284 }
285 }
286}
270 287
271////////////////////////////////////////////////////////////////////////////////////////// 288//////////////////////////////////////////////////////////////////////////////////////////
272// static 289// static
@@ -395,6 +412,19 @@ LLViewerMediaImpl::~LLViewerMediaImpl()
395 LLViewerMedia::removeMedia(this); 412 LLViewerMedia::removeMedia(this);
396} 413}
397 414
415//static
416void LLViewerMediaImpl::setProxy(LLPluginClassMedia* media_source)
417{
418 // pass proxy settings to browser
419 bool proxy_enabled = gSavedSettings.getBOOL( "BrowserProxyEnabled" );
420 std::string proxy_address = gSavedSettings.getString("BrowserProxyAddress");
421 S32 proxy_port = gSavedSettings.getS32("BrowserProxyPort");
422 media_source->proxy_setup(proxy_enabled, proxy_address, proxy_port);
423 LL_DEBUGS("Media") << "Proxy: " << (proxy_enabled ? "enabled" : "not enabled")
424 << " Address: " << proxy_address
425 << " Port: " << proxy_port << LL_ENDL;
426}
427
398////////////////////////////////////////////////////////////////////////////////////////// 428//////////////////////////////////////////////////////////////////////////////////////////
399bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type) 429bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type)
400{ 430{
@@ -411,6 +441,11 @@ bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type)
411 } 441 }
412 } 442 }
413 443
444 if(mMediaSource)
445 {
446 setProxy(mMediaSource);
447 }
448
414 // play(); 449 // play();
415 return (mMediaSource != NULL); 450 return (mMediaSource != NULL);
416} 451}
@@ -508,6 +543,8 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
508 bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" ); 543 bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" );
509 media_source->setJavascriptEnabled( javascript_enabled ); 544 media_source->setJavascriptEnabled( javascript_enabled );
510 545
546 setProxy(media_source);
547
511 if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) 548 if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")))
512 { 549 {
513 return media_source; 550 return media_source;
@@ -741,6 +778,7 @@ void LLViewerMediaImpl::navigateHome()
741////////////////////////////////////////////////////////////////////////////////////////// 778//////////////////////////////////////////////////////////////////////////////////////////
742void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type) 779void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type)
743{ 780{
781
744 if(rediscover_type) 782 if(rediscover_type)
745 { 783 {
746 784
diff --git a/linden/indra/newview/llviewermedia.h b/linden/indra/newview/llviewermedia.h
index afda426..ee5fef4 100644
--- a/linden/indra/newview/llviewermedia.h
+++ b/linden/indra/newview/llviewermedia.h
@@ -79,6 +79,10 @@ class LLViewerMedia
79 static void removeMedia(LLViewerMediaImpl* media); 79 static void removeMedia(LLViewerMediaImpl* media);
80 static LLViewerMediaImpl* getMediaImplFromTextureID(const LLUUID& texture_id); 80 static LLViewerMediaImpl* getMediaImplFromTextureID(const LLUUID& texture_id);
81 static std::string getCurrentUserAgent(); 81 static std::string getCurrentUserAgent();
82
83 // Set the proxy config for all loaded plugins
84 static void setProxyConfig(bool enable, const std::string &host, int port);
85
82 static void updateBrowserUserAgent(); 86 static void updateBrowserUserAgent();
83 static bool handleSkinCurrentChanged(const LLSD& /*newvalue*/); 87 static bool handleSkinCurrentChanged(const LLSD& /*newvalue*/);
84 static bool textureHasMedia(const LLUUID& texture_id); 88 static bool textureHasMedia(const LLUUID& texture_id);
@@ -109,6 +113,7 @@ public:
109 void createMediaSource(); 113 void createMediaSource();
110 void destroyMediaSource(); 114 void destroyMediaSource();
111 void setMediaType(const std::string& media_type); 115 void setMediaType(const std::string& media_type);
116 static void setProxy(LLPluginClassMedia* media_source);
112 bool initializeMedia(const std::string& mime_type); 117 bool initializeMedia(const std::string& mime_type);
113 bool initializePlugin(const std::string& media_type); 118 bool initializePlugin(const std::string& media_type);
114 LLPluginClassMedia* getMediaPlugin() { return mMediaSource; } 119 LLPluginClassMedia* getMediaPlugin() { return mMediaSource; }
diff --git a/linden/indra/newview/llxmlrpctransaction.cpp b/linden/indra/newview/llxmlrpctransaction.cpp
index 058946e..675ba42 100644
--- a/linden/indra/newview/llxmlrpctransaction.cpp
+++ b/linden/indra/newview/llxmlrpctransaction.cpp
@@ -226,10 +226,10 @@ void LLXMLRPCTransaction::Impl::init(XMLRPC_REQUEST request, bool useGzip)
226 mCurlRequest = new LLCurlEasyRequest(); 226 mCurlRequest = new LLCurlEasyRequest();
227 } 227 }
228 228
229 if (gSavedSettings.getBOOL("BrowserProxyEnabled")) 229 if (gSavedSettings.getBOOL("XMLRPCProxyEnabled"))
230 { 230 {
231 mProxyAddress = gSavedSettings.getString("BrowserProxyAddress"); 231 mProxyAddress = gSavedSettings.getString("XMLRPCProxyAddress");
232 S32 port = gSavedSettings.getS32 ( "BrowserProxyPort" ); 232 S32 port = gSavedSettings.getS32 ( "XMLRPCProxyPort" );
233 233
234 // tell curl about the settings 234 // tell curl about the settings
235 mCurlRequest->setoptString(CURLOPT_PROXY, mProxyAddress); 235 mCurlRequest->setoptString(CURLOPT_PROXY, mProxyAddress);
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml
index 1e4ded6..86aa353 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml
@@ -64,4 +64,31 @@
64 increment="1" initial_val="13000" label="Port number:" label_width="75" 64 increment="1" initial_val="13000" label="Port number:" label_width="75"
65 left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true" 65 left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true"
66 name="connection_port" width="150" /> 66 name="connection_port" width="150" />
67 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
68 bottom_delta="-24" drop_shadow_visible="true" enabled="true"
69 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"
70 height="10" left="15" mouse_opaque="false" name="proxy_label" v_pad="0"
71 width="250">
72 XMLRPC Proxy (Login, Land- and Money purchase):
73 </text>
74 <check_box bottom_delta="-25" enabled="true"
75 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
76 label="Enable XMLRPC proxy" left_delta="199" mouse_opaque="true"
77 name="xmlrpc_proxy_enabled" radio_style="false" width="256" />
78 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
79 bottom_delta="-25" drop_shadow_visible="true" enabled="true"
80 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"
81 height="10" left="140" mouse_opaque="false" name="xmlrpc_proxy_text_label"
82 v_pad="0" width="128">
83 Address:
84 </text>
85 <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif"
86 height="20" left="217" name="xmlrpc_proxy_editor"
87 tool_tip="The name or IP address of the proxy you would like to use"
88 width="200" />
89 <spinner bottom_delta="-25" decimal_digits="0"
90 enabled="true" follows="left|top" height="16" increment="1"
91 initial_val="80" label="Port number:" label_width="75" left="140"
92 max_val="12000" min_val="10" mouse_opaque="true" name="xmlrpc_proxy_port"
93 width="140" />
67</panel> 94</panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml
index 46283bb..727b142 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml
@@ -34,6 +34,10 @@
34 font="SansSerifSmall" height="16" initial_value="false" 34 font="SansSerifSmall" height="16" initial_value="false"
35 label="Accept cookies from sites" left="140" mouse_opaque="true" 35 label="Accept cookies from sites" left="140" mouse_opaque="true"
36 name="cookies_enabled" radio_style="false" width="256" /> 36 name="cookies_enabled" radio_style="false" width="256" />
37 <button bottom_delta="-20" enabled="true" follows="left|top" font="SansSerif"
38 halign="center" height="18" label="Clear Cookies" left_delta="0"
39 tool_tip="Clear Cookies"
40 mouse_opaque="true" name="clear_ookies" scale_image="true" width="110" />
37 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 41 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
38 bottom_delta="-24" drop_shadow_visible="true" enabled="true" 42 bottom_delta="-24" drop_shadow_visible="true" enabled="true"
39 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" 43 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"