From d9151bf1ccd9bc726ba2c252919503f8968649cc Mon Sep 17 00:00:00 2001 From: Kristian Monsen Date: Wed, 14 Sep 2011 16:29:23 +0100 Subject: [PATCH] Hook up WebView.clearSslPreferences() for the Chromium HTTP stack Note that this is an incomplete fix, as we do not clear the responses for connections currently in use, as they maintain their own cache. See http:/b/5324235. Bug: 5287216 Change-Id: I18f6638efeff0bee1e7ffed606be1444d683bebd --- core/java/android/webkit/SslCertLookupTable.java | 4 ++++ core/java/android/webkit/WebViewCore.java | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/java/android/webkit/SslCertLookupTable.java b/core/java/android/webkit/SslCertLookupTable.java index 048a3cfb0861f..052244f95f892 100644 --- a/core/java/android/webkit/SslCertLookupTable.java +++ b/core/java/android/webkit/SslCertLookupTable.java @@ -46,4 +46,8 @@ final class SslCertLookupTable { public boolean isAllowed(SslError sslError) { return table.getBoolean(sslError.toString()); } + + public void clear() { + table.clear(); + } } diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 470e843f5868c..deaf0f2713890 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -1349,8 +1349,14 @@ public final class WebViewCore { } case CLEAR_SSL_PREF_TABLE: - Network.getInstance(mContext) - .clearUserSslPrefTable(); + if (JniUtil.useChromiumHttpStack()) { + // FIXME: This will not work for connections currently in use, as + // they cache the certificate responses. See http://b/5324235. + SslCertLookupTable.getInstance().clear(); + nativeCloseIdleConnections(); + } else { + Network.getInstance(mContext).clearUserSslPrefTable(); + } break; case TOUCH_UP: