diff options
author | Kristian Monsen <kristianm@google.com> | 2011-05-23 14:25:27 +0100 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2011-05-24 18:58:51 +0100 |
commit | f147b5f2a61ab0842adaa430d9a8bbe98a83e4a4 (patch) | |
tree | 20f92879c58209dbae9b59df0d05c36d4ab1083a /core | |
parent | 2c7906eb392c6349e6f75fd2681310b934d6e262 (diff) | |
download | frameworks_base-f147b5f2a61ab0842adaa430d9a8bbe98a83e4a4.zip frameworks_base-f147b5f2a61ab0842adaa430d9a8bbe98a83e4a4.tar.gz frameworks_base-f147b5f2a61ab0842adaa430d9a8bbe98a83e4a4.tar.bz2 |
Fix for bug 4144936: [Proxy setting]: traffic to a bypass domain doesn't bypass proxy DO NOT MERGE
This is the WebView part, passing the bypass list to
the native side.
Moved some code to JWebCoreJavaBridge.java because
because sendStaticMessage only takes one argument.
Needs CL in external/webkit:
https://android-git.corp.google.com/g/#change,111108
Needs following CL in external/chromium:
https://android-git.corp.google.com/g/#change,111107
Change-Id: Ib548bdcbc9eb22bbb8f2754808840052bd3ec80e
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/webkit/JWebCoreJavaBridge.java | 17 | ||||
-rw-r--r-- | core/java/android/webkit/WebView.java | 14 | ||||
-rw-r--r-- | core/java/android/webkit/WebViewCore.java | 3 |
3 files changed, 20 insertions, 14 deletions
diff --git a/core/java/android/webkit/JWebCoreJavaBridge.java b/core/java/android/webkit/JWebCoreJavaBridge.java index 976e786..053d3c8 100644 --- a/core/java/android/webkit/JWebCoreJavaBridge.java +++ b/core/java/android/webkit/JWebCoreJavaBridge.java @@ -16,6 +16,7 @@ package android.webkit; +import android.net.ProxyProperties; import android.net.Uri; import android.os.Handler; import android.os.Message; @@ -297,6 +298,20 @@ final class JWebCoreJavaBridge extends Handler { mContentUriToFilePathMap.put(contentUri, path); } + public void updateProxy(ProxyProperties proxyProperties) { + if (proxyProperties == null) { + nativeUpdateProxy("", ""); + return; + } + + String host = proxyProperties.getHost(); + int port = proxyProperties.getPort(); + if (port != 0) + host += ":" + port; + + nativeUpdateProxy(host, proxyProperties.getExclusionList()); + } + private native void nativeConstructor(); private native void nativeFinalize(); private native void sharedTimerFired(); @@ -307,5 +322,5 @@ final class JWebCoreJavaBridge extends Handler { public native void addPackageNames(Set<String> packageNames); public native void addPackageName(String packageName); public native void removePackageName(String packageName); - public native void updateProxy(String newProxy); + public native void nativeUpdateProxy(String newProxy, String exclusionList); } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index cf83456..0d34ff6 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1045,20 +1045,10 @@ public class WebView extends AbsoluteLayout private static void handleProxyBroadcast(Intent intent) { ProxyProperties proxyProperties = (ProxyProperties)intent.getExtra(Proxy.EXTRA_PROXY_INFO); if (proxyProperties == null || proxyProperties.getHost() == null) { - WebViewCore.sendStaticMessage(EventHub.PROXY_CHANGED, ""); + WebViewCore.sendStaticMessage(EventHub.PROXY_CHANGED, null); return; } - - String host = proxyProperties.getHost(); - int port = proxyProperties.getPort(); - if (port != 0) - host += ":" + port; - - // TODO: Handle exclusion list - // The plan is to make an AndroidProxyResolver, and handle the blacklist - // there - String exclusionList = proxyProperties.getExclusionList(); - WebViewCore.sendStaticMessage(EventHub.PROXY_CHANGED, host); + WebViewCore.sendStaticMessage(EventHub.PROXY_CHANGED, proxyProperties); } /* diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 0271695..5d53554 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -24,6 +24,7 @@ import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.media.MediaFile; +import android.net.ProxyProperties; import android.net.Uri; import android.os.Handler; import android.os.Looper; @@ -705,7 +706,7 @@ final class WebViewCore { throw new IllegalStateException( "No WebView has been created in this process!"); } - BrowserFrame.sJavaBridge.updateProxy((String) msg.obj); + BrowserFrame.sJavaBridge.updateProxy((ProxyProperties)msg.obj); break; } } |