summaryrefslogtreecommitdiffstats
path: root/Source/WebKit
diff options
context:
space:
mode:
authorSelim Gurun <sgurun@google.com>2012-02-15 17:47:40 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-02-15 17:47:40 -0800
commit80ec17f6451f55bcadd789d4c4b4c6444171d10f (patch)
tree5438c31a3a144d2bb67898055ffeec80e3928dce /Source/WebKit
parent3410ffc0890f04ba9ca38573ab37c309b4aff5bd (diff)
parentd61e19d1adc4e5fd664a3a5e5c0fd1141e697345 (diff)
downloadexternal_webkit-80ec17f6451f55bcadd789d4c4b4c6444171d10f.zip
external_webkit-80ec17f6451f55bcadd789d4c4b4c6444171d10f.tar.gz
external_webkit-80ec17f6451f55bcadd789d4c4b4c6444171d10f.tar.bz2
Merge "Clean cached trust state on system storage update."
Diffstat (limited to 'Source/WebKit')
-rw-r--r--Source/WebKit/android/WebCoreSupport/WebCache.cpp17
-rw-r--r--Source/WebKit/android/WebCoreSupport/WebCache.h3
-rw-r--r--Source/WebKit/android/jni/WebViewCore.cpp10
3 files changed, 28 insertions, 2 deletions
diff --git a/Source/WebKit/android/WebCoreSupport/WebCache.cpp b/Source/WebKit/android/WebCoreSupport/WebCache.cpp
index 9b505ee..82e3b27 100644
--- a/Source/WebKit/android/WebCoreSupport/WebCache.cpp
+++ b/Source/WebKit/android/WebCoreSupport/WebCache.cpp
@@ -30,7 +30,7 @@
#include "WebCoreJni.h"
#include "WebRequestContext.h"
#include "WebUrlLoaderClient.h"
-
+#include "net/http/http_network_session.h"
#include <wtf/text/CString.h>
using namespace WTF;
@@ -131,6 +131,21 @@ void WebCache::clear()
thread->message_loop()->PostTask(FROM_HERE, NewRunnableMethod(this, &WebCache::clearImpl));
}
+void WebCache::certTrustChanged()
+{
+ base::Thread* thread = WebUrlLoaderClient::ioThread();
+ if (thread)
+ thread->message_loop()->PostTask(FROM_HERE, NewRunnableMethod(this, &WebCache::certTrustChangedImpl));
+}
+
+void WebCache::certTrustChangedImpl()
+{
+ net::HttpNetworkSession* session = m_cache->GetSession();
+ if (session)
+ session->cert_verifier()->ClearCache();
+ m_cache->CloseAllConnections();
+}
+
void WebCache::closeIdleConnections()
{
base::Thread* thread = WebUrlLoaderClient::ioThread();
diff --git a/Source/WebKit/android/WebCoreSupport/WebCache.h b/Source/WebKit/android/WebCoreSupport/WebCache.h
index c3b623d..ad57d88 100644
--- a/Source/WebKit/android/WebCoreSupport/WebCache.h
+++ b/Source/WebKit/android/WebCoreSupport/WebCache.h
@@ -48,7 +48,7 @@ public:
net::HttpCache* cache() { return m_cache.get(); }
net::ProxyConfigServiceAndroid* proxy() { return m_proxyConfigService; }
void closeIdleConnections();
-
+ void certTrustChanged();
private:
WebCache(bool isPrivateBrowsing);
@@ -60,6 +60,7 @@ private:
// For closeIdleConnections
void closeIdleImpl();
+ void certTrustChangedImpl();
// For getEntry()
void getEntryImpl();
diff --git a/Source/WebKit/android/jni/WebViewCore.cpp b/Source/WebKit/android/jni/WebViewCore.cpp
index dab5ed5..a9778c9 100644
--- a/Source/WebKit/android/jni/WebViewCore.cpp
+++ b/Source/WebKit/android/jni/WebViewCore.cpp
@@ -4965,6 +4965,14 @@ static void CloseIdleConnections(JNIEnv* env, jobject obj, jint nativeClass)
#endif
}
+static void nativeCertTrustChanged(JNIEnv *env, jobject obj)
+{
+#if USE(CHROME_NETWORK_STACK)
+ WebCache::get(true)->certTrustChanged();
+ WebCache::get(false)->certTrustChanged();
+#endif
+}
+
static void ScrollRenderLayer(JNIEnv* env, jobject obj, jint nativeClass,
jint layer, jobject jRect)
{
@@ -5151,6 +5159,8 @@ static JNINativeMethod gJavaWebViewCoreMethods[] = {
(void*) SelectWordAt },
{ "nativeSelectAll", "(I)V",
(void*) SelectAll },
+ { "nativeCertTrustChanged","()V",
+ (void*) nativeCertTrustChanged },
};
int registerWebViewCore(JNIEnv* env)