am a770f8d4: Encode characters that java.net.URI rejects
* commit 'a770f8d4bd583e9a719af6ce314838db12003b33':
Encode characters that java.net.URI rejects
diff --git a/src/com/android/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
index 31212b4..1da6795 100644
--- a/src/com/android/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -107,7 +107,7 @@
boolean needed = false;
for (char c : chars) {
- if (c == '[' || c == ']') {
+ if (c == '[' || c == ']' || c == '|') {
needed = true;
break;
}
@@ -118,7 +118,7 @@
StringBuilder sb = new StringBuilder("");
for (char c : chars) {
- if (c == '[' || c == ']') {
+ if (c == '[' || c == ']' || c == '|') {
sb.append('%');
sb.append(Integer.toHexString(c));
} else {
diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
index 845bcc7..07c9b93 100644
--- a/src/com/android/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -27,6 +27,7 @@
import android.net.Proxy;
import android.net.http.AndroidHttpClient;
import android.os.Environment;
+import android.util.Log;
import android.webkit.MimeTypeMap;
import android.webkit.URLUtil;
@@ -44,6 +45,8 @@
*/
class FetchUrlMimeType extends Thread {
+ private final static String LOGTAG = "FetchUrlMimeType";
+
private Context mContext;
private DownloadManager.Request mRequest;
private String mUri;
@@ -64,9 +67,16 @@
// User agent is likely to be null, though the AndroidHttpClient
// seems ok with that.
AndroidHttpClient client = AndroidHttpClient.newInstance(mUserAgent);
- HttpHost httpHost = Proxy.getPreferredHttpHost(mContext, mUri);
- if (httpHost != null) {
- ConnRouteParams.setDefaultProxy(client.getParams(), httpHost);
+ HttpHost httpHost;
+ try {
+ httpHost = Proxy.getPreferredHttpHost(mContext, mUri);
+ if (httpHost != null) {
+ ConnRouteParams.setDefaultProxy(client.getParams(), httpHost);
+ }
+ } catch (IllegalArgumentException ex) {
+ Log.e(LOGTAG,"Download failed: " + ex);
+ client.close();
+ return;
}
HttpHead request = new HttpHead(mUri);