From fc8022f8cfffded3d94baef3ba5e5ce936799b06 Mon Sep 17 00:00:00 2001 From: Paul Jensen Date: Tue, 9 Dec 2014 15:18:40 -0500 Subject: Show broken lock image when SSL errors are encountered in CaptivePortalLogin. The WebView cancels the page load by default, so showing an indicative image at least informs users that there is a security problem. bug:18505835 bug:18570703 Change-Id: Ie6dd9294eec9ca25d27e95a1cd2c95e3065de469 --- packages/CaptivePortalLogin/assets/locked_page.png | Bin 0 -> 7864 bytes .../captiveportallogin/CaptivePortalLoginActivity.java | 15 +++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 packages/CaptivePortalLogin/assets/locked_page.png diff --git a/packages/CaptivePortalLogin/assets/locked_page.png b/packages/CaptivePortalLogin/assets/locked_page.png new file mode 100644 index 0000000..91e1291 Binary files /dev/null and b/packages/CaptivePortalLogin/assets/locked_page.png differ diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java index 1c7b033..b8acb45 100644 --- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java +++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java @@ -30,6 +30,7 @@ import android.net.NetworkRequest; import android.net.Proxy; import android.net.ProxyInfo; import android.net.Uri; +import android.net.http.SslError; import android.os.Bundle; import android.provider.Settings; import android.provider.Settings.Global; @@ -39,6 +40,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.Window; +import android.webkit.SslErrorHandler; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; @@ -270,6 +272,19 @@ public class CaptivePortalLoginActivity extends Activity { } testForCaptivePortal(); } + + // A web page consisting of a large broken lock icon to indicate SSL failure. + final static String SSL_ERROR_HTML = ""; + + @Override + public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { + Log.w(TAG, "SSL error; displaying broken lock icon."); + view.loadDataWithBaseURL("file:///android_asset/", SSL_ERROR_HTML, "text/HTML", + "UTF-8", null); + } } private class MyWebChromeClient extends WebChromeClient { -- cgit v1.1