summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSelim Gurun <sgurun@google.com>2012-06-14 10:33:37 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-06-14 10:33:37 -0700
commit7bdd187c26e5eb304aaa71d0812d33804408a7e5 (patch)
tree081e637e2388e2859e545b04562b3831ae8ceb0d /src
parent170b2a9d197c5597cf7a4e163eaabf9c4e0a800c (diff)
parent17e3ba9b808c0ca3b4a06c3964437204e76f9d30 (diff)
downloadpackages_apps_browser-7bdd187c26e5eb304aaa71d0812d33804408a7e5.zip
packages_apps_browser-7bdd187c26e5eb304aaa71d0812d33804408a7e5.tar.gz
packages_apps_browser-7bdd187c26e5eb304aaa71d0812d33804408a7e5.tar.bz2
am 17e3ba9b: am a770f8d4: Encode characters that java.net.URI rejects
* commit '17e3ba9b808c0ca3b4a06c3964437204e76f9d30': Encode characters that java.net.URI rejects
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/DownloadHandler.java4
-rw-r--r--src/com/android/browser/FetchUrlMimeType.java16
2 files changed, 15 insertions, 5 deletions
diff --git a/src/com/android/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
index 2fc8631..2292716 100644
--- a/src/com/android/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -106,7 +106,7 @@ public class DownloadHandler {
boolean needed = false;
for (char c : chars) {
- if (c == '[' || c == ']') {
+ if (c == '[' || c == ']' || c == '|') {
needed = true;
break;
}
@@ -117,7 +117,7 @@ public class DownloadHandler {
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.content.Context;
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 @@ import java.io.IOException;
*/
class FetchUrlMimeType extends Thread {
+ private final static String LOGTAG = "FetchUrlMimeType";
+
private Context mContext;
private DownloadManager.Request mRequest;
private String mUri;
@@ -64,9 +67,16 @@ class FetchUrlMimeType extends Thread {
// 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);