Use proxy for downloads.
Use the new Proxy method getPreferredHttpHost to use proxy for
downloads.
Change-Id: I4224e29ba4b37bd570d84382764e08f9babe6530
diff --git a/src/com/android/browser/DownloadTouchIcon.java b/src/com/android/browser/DownloadTouchIcon.java
index b5369ae..14404ff 100644
--- a/src/com/android/browser/DownloadTouchIcon.java
+++ b/src/com/android/browser/DownloadTouchIcon.java
@@ -23,15 +23,18 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.http.AndroidHttpClient;
+import android.net.Proxy;
import android.os.AsyncTask;
import android.provider.Browser;
import android.webkit.WebView;
import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.params.HttpClientParams;
+import org.apache.http.conn.params.ConnRouteParams;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -43,10 +46,12 @@
private final String mOriginalUrl;
private final String mUrl;
private final String mUserAgent;
+ private final BrowserActivity mActivity;
/* package */ Tab mTab;
- public DownloadTouchIcon(Tab tab, ContentResolver cr, WebView view) {
+ public DownloadTouchIcon(Tab tab, BrowserActivity activity, ContentResolver cr, WebView view) {
mTab = tab;
+ mActivity = activity;
mContentResolver = cr;
// Store these in case they change.
mOriginalUrl = view.getOriginalUrl();
@@ -56,6 +61,7 @@
public DownloadTouchIcon(ContentResolver cr, String url) {
mTab = null;
+ mActivity = null;
mContentResolver = cr;
mOriginalUrl = null;
mUrl = url;
@@ -71,6 +77,11 @@
AndroidHttpClient client = AndroidHttpClient.newInstance(
mUserAgent);
+ HttpHost httpHost = Proxy.getPreferredHttpHost(mActivity, url);
+ if (httpHost != null) {
+ ConnRouteParams.setDefaultProxy(client.getParams(), httpHost);
+ }
+
HttpGet request = new HttpGet(url);
// Follow redirects