New issue
Advanced search Search tips
Starred by 6 users

Issue metadata

Status: Invalid
Owner: ----
Closed: Feb 2013
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug

Restricted
  • Only users with Commit permission may comment.



Sign in to add a comment
link

Issue 35748: Flash Plugin for Linux does NOT honor the --proxy-server command line options

Reported by kyle.kwi...@gmail.com, Feb 15 2010

Issue description

Chrome Version       : 4.0.263.0 (Developer Build 33720) (Linux)
URLs (if applicable) : www.decloak.net
Other browsers tested:
       FF3.5: OK
       IE8:   OK

What steps will reproduce the problem?
1. Make sure Flash is installed and working.
2. Launch Chromium with --proxy-server=<IP:port>
3. Go to www.decloak.net and START TEST
4. Let the test run.
5. Look at the results.  Flash is NOT using the proxy server set at the 
time of launch.  This is a HUGE bug for any Flash applications that are 
behind a proxy server.  It would break any Flash app that is behind a 
corporate firewall that requires all your traffic to pass through the 
proxy.

What is the expected result?
The Flash app should report the same IP as the EXTERNAL address. 

What happens instead?
It showed the IP I was coming from and NOT the IP of the proxy server I'm 
using for protection.


Please provide any additional information below. Attach a screenshot if
possible.
 

Comment 1 by kyle.kwi...@gmail.com, Feb 15 2010

Flash Code in question that causes this behavior.
------------------------------------------------------------------------------------
class Decloak {
    static function main() {
		var myURL:String = flash.Lib._root._url;
		var myPos:Int = myURL.lastIndexOf("/");
		var myBase:String = myURL.substr(0,myPos+1);

		var mySession:String  = flash.Lib._root.cid;
		var myPort:Int        = flash.Lib._root.port;
		var myClient:String   = flash.Lib._root.client;
		var myCallback:String = flash.Lib._root.hook;

		var socket:flash.XMLSocket = new flash.XMLSocket(); 
		
		socket.onConnect = function(success:Bool):Void {
			if ( success ) {
				trace("FLASH: CONNECTED");
				socket.send(mySession + ':' + myClient + "\n");
			}
			else
				trace("FLASH: FAILED");
		}
		socket.onData = function(src:String):Void {
			if(myCallback.length > 0) {
				flash.Lib.getURL('javascript:'+myCallback+'("'+src+'");');
			}
		}
		
		socket.onClose = function():Void {
			trace("FLASH: CLOSED");
		}
		
		trace("FLASH: CONNECTING...");
		socket.connect( null, myPort );
    }
}

Comment 2 by stuartmorgan@chromium.org, Feb 15 2010

Labels: -Area-Undefined Area-Internals Internals-Plugins OS-Linux

Comment 3 by evan@chromium.org, Feb 16 2010

John, do you know what controls what proxy settings flash uses?  I wonder if this is 
due to flash making its own http requests on the side...

Comment 4 by jam@chromium.org, Feb 16 2010

No idea how they pick the proxy..

Comment 5 by eroman@chromium.org, Feb 16 2010

At least for the Java plugin, it was getting this information through the 
FindProxyForUrl extension:

[webkit/glue/plugins/mozilla_extensions.cc]
    MozillaExtensionApi::FindProxyForUrl()

Hmm, it looks like that stuff got deleted 4 months ago by 
<http://src.chromium.org/viewvc/chrome?view=rev&revision=28200>.

@jam, was that intentional? Is this a regression?

Comment 6 by jabdelmalek@google.com, Feb 16 2010

Eric: that code was only used by old versions of Java.  Newer versions get the proxy 
through NPAPI, which the above change also implemented.

Comment 7 by eroman@chromium.org, Feb 17 2010

My expectation is this affects all platforms, not just linux. (In other words, flash is not respecting Chrome's 
proxy settings.)

I am not setup to test flash and as such wasn't able to run your code sample.

I did however try the URL given in the first link.

On Windows, I set breakpoints in FindProxyForUrl() and loaded the site.

They only got reached by the java plugin. So assuming the setup is right, flash is calling neither of NPN_GetValueForURL(NPNURLVProxy) nor the older FindProxyForUrl extension that we used to support.

Does this work for you in other browsers?

Comment 8 by evan@chromium.org, Feb 22 2010

Status: Untriaged
I have reproduced this problem.

Note that you can force-proxy via LD_PRELOAD:
  http://community.livejournal.com/evan_tech/273224.html

From that post, it also seems that Flash may try to read Firefox settings directly.  
:(

Comment 9 by oritm@chromium.org, Feb 22 2010

Status: Invalid
There is nothing chrome can do about how Flash is dealing with cmdline params

Comment 10 by eroman@chromium.org, Feb 22 2010

> There is nothing chrome can do about how Flash is dealing with cmdline params

Well, in all fairness, flash *should* be asking the browser for its proxy settings (and 
hence respecting our command line flag overrides). Since NPAPI has a way for it to 
ask this question. For what its worth, the Java plugin does this and it works fine.

So the question here is whether flash is trying to do its own thing (i.e. fetch the 
settings directly) in which case we can't fix this. Or whether flash is trying to use 
some interface that we don't support.

Comment 11 by jam@chromium.org, Feb 23 2010

It was only recently that NPAPI got an API for getting the proxy settings (because Java 
plugin requested it).  There's no other way of getting it other than that.  We should 
ask the Flash team to use this new API.

Comment 12 by bugdroid1@chromium.org, Oct 12 2012

Project Member
Labels: Restrict-AddIssueComment-Commit
This issue has been closed for some time. No one will pay attention to new comments.
If you are seeing this bug or have new data, please click New Issue to start a new bug.

Comment 13 by bugdroid1@chromium.org, Mar 10 2013

Project Member
Labels: -Area-Internals Cr-Internals

Sign in to add a comment