From d159ec534823b87f9896843e95912b0df8c27e16 Mon Sep 17 00:00:00 2001 From: Andreas Sandblad Date: Wed, 16 Jun 2010 13:10:39 +0200 Subject: Use proxy for downloads. Use the new Proxy method getPreferredHttpHost to use proxy for downloads. Change-Id: I4224e29ba4b37bd570d84382764e08f9babe6530 --- src/com/android/browser/DownloadTouchIcon.java | 13 ++++++++++++- src/com/android/browser/FetchUrlMimeType.java | 7 +++++++ src/com/android/browser/Tab.java | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/com/android/browser/DownloadTouchIcon.java b/src/com/android/browser/DownloadTouchIcon.java index b5369aeb..14404ff0 100644 --- a/src/com/android/browser/DownloadTouchIcon.java +++ b/src/com/android/browser/DownloadTouchIcon.java @@ -23,15 +23,18 @@ import android.database.Cursor; 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 @@ class DownloadTouchIcon extends AsyncTask { 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 @@ class DownloadTouchIcon extends AsyncTask { public DownloadTouchIcon(ContentResolver cr, String url) { mTab = null; + mActivity = null; mContentResolver = cr; mOriginalUrl = null; mUrl = url; @@ -71,6 +77,11 @@ class DownloadTouchIcon extends AsyncTask { 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 diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java index 1e4debff..9bd0cf91 100644 --- a/src/com/android/browser/FetchUrlMimeType.java +++ b/src/com/android/browser/FetchUrlMimeType.java @@ -17,12 +17,15 @@ package com.android.browser; import android.content.ContentValues; +import android.net.Proxy; import android.net.Uri; import android.net.http.AndroidHttpClient; +import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.Header; import org.apache.http.client.methods.HttpHead; +import org.apache.http.conn.params.ConnRouteParams; import java.io.IOException; @@ -67,6 +70,10 @@ class FetchUrlMimeType extends AsyncTask { // seems ok with that. AndroidHttpClient client = AndroidHttpClient.newInstance( mValues.getAsString(Downloads.Impl.COLUMN_USER_AGENT)); + HttpHost httpHost = Proxy.getPreferredHttpHost(mActivity, uri); + if (httpHost != null) { + ConnRouteParams.setDefaultProxy(client.getParams(), httpHost); + } HttpHead request = new HttpHead(uri); String cookie = mValues.getAsString(Downloads.Impl.COLUMN_COOKIE_DATA); diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java index 5350a184..b31abc24 100644 --- a/src/com/android/browser/Tab.java +++ b/src/com/android/browser/Tab.java @@ -1023,7 +1023,7 @@ class Tab { } // Have only one async task at a time. if (mTouchIconLoader == null) { - mTouchIconLoader = new DownloadTouchIcon(Tab.this, cr, view); + mTouchIconLoader = new DownloadTouchIcon(Tab.this, mActivity, cr, view); mTouchIconLoader.execute(url); } } -- cgit v1.2.3