summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorsgurun@chromium.org <sgurun@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-30 20:19:58 +0000
committersgurun@chromium.org <sgurun@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-30 20:19:58 +0000
commitdda20cf7d744030a2764d8359d2b348600df3652 (patch)
tree869c7b156f4562fd1ae6725ac198f9a62fe7e48f /net
parent09c1e73c0875f053fb97ca008b8eb1cc1723fc62 (diff)
downloadchromium_src-dda20cf7d744030a2764d8359d2b348600df3652.zip
chromium_src-dda20cf7d744030a2764d8359d2b348600df3652.tar.gz
chromium_src-dda20cf7d744030a2764d8359d2b348600df3652.tar.bz2
Start using L preview API for receiving proxy information.
BUG=398612 Android L preview API added a proxyinfo class for receiving proxy information. start using it. Review URL: https://codereview.chromium.org/426063006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286588 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/android/java/src/org/chromium/net/ProxyChangeListener.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/net/android/java/src/org/chromium/net/ProxyChangeListener.java b/net/android/java/src/org/chromium/net/ProxyChangeListener.java
index 634c379..7b57396 100644
--- a/net/android/java/src/org/chromium/net/ProxyChangeListener.java
+++ b/net/android/java/src/org/chromium/net/ProxyChangeListener.java
@@ -9,6 +9,8 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Proxy;
+import android.os.Build;
+import android.util.Log;
import org.chromium.base.CalledByNative;
import org.chromium.base.JNINamespace;
@@ -92,18 +94,23 @@ public class ProxyChangeListener {
// tne Android SDK, so we have to use reflection to get at it and invoke
// methods on it. If we fail, return an empty proxy config (meaning
// 'direct').
- // TODO(ellyjones): once android.net.ProxyProperties is exported,
- // rewrite this.
+ // TODO(sgurun): once android.net.ProxyInfo is public, rewrite this.
private ProxyConfig extractNewProxy(Intent intent) {
try {
- final String CLASS_NAME = "android.net.ProxyProperties";
final String GET_HOST_NAME = "getHost";
final String GET_PORT_NAME = "getPort";
Object props = intent.getExtras().get("proxy");
if (props == null) {
return null;
}
- Class<?> cls = Class.forName(CLASS_NAME);
+ String className;
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
+ className = "android.net.ProxyProperties";
+ } else {
+ className = "android.net.ProxyInfo";
+ }
+
+ Class<?> cls = Class.forName(className);
Method getHostMethod = cls.getDeclaredMethod(GET_HOST_NAME);
Method getPortMethod = cls.getDeclaredMethod(GET_PORT_NAME);
@@ -112,14 +119,19 @@ public class ProxyChangeListener {
return new ProxyConfig(host, port);
} catch (ClassNotFoundException ex) {
+ Log.e(TAG, "Using no proxy configuration due to exception:" + ex);
return null;
} catch (NoSuchMethodException ex) {
+ Log.e(TAG, "Using no proxy configuration due to exception:" + ex);
return null;
} catch (IllegalAccessException ex) {
+ Log.e(TAG, "Using no proxy configuration due to exception:" + ex);
return null;
} catch (InvocationTargetException ex) {
+ Log.e(TAG, "Using no proxy configuration due to exception:" + ex);
return null;
} catch (NullPointerException ex) {
+ Log.e(TAG, "Using no proxy configuration due to exception:" + ex);
return null;
}
}