Index: chrome/browser/ui/android/ssl_client_certificate_request.cc |
diff --git a/chrome/browser/ui/android/ssl_client_certificate_request.cc b/chrome/browser/ui/android/ssl_client_certificate_request.cc |
index 468b53b21b3661e4ce8b0083ef20307604b4773d..f752dbb922fa01c54e20a0daee67aac2de04e48d 100644 |
--- a/chrome/browser/ui/android/ssl_client_certificate_request.cc |
+++ b/chrome/browser/ui/android/ssl_client_certificate_request.cc |
@@ -17,11 +17,13 @@ |
#include "jni/SSLClientCertificateRequest_jni.h" |
#include "net/android/keystore_openssl.h" |
#include "net/base/host_port_pair.h" |
+#include "net/cert/cert_database.h" |
#include "net/cert/x509_certificate.h" |
#include "net/ssl/openssl_client_key_store.h" |
#include "net/ssl/ssl_cert_request_info.h" |
#include "net/ssl/ssl_client_cert_type.h" |
+ |
namespace chrome { |
namespace { |
@@ -195,6 +197,21 @@ static void OnSystemRequestCompletion( |
base::Bind(*callback, client_cert)); |
} |
+static void NotifyClientCertificatesChanged() { |
+ net::CertDatabase::GetInstance()->OnAndroidKeyStoreChanged(); |
+} |
+ |
+static void NotifyClientCertificatesChangedOnIOThread(JNIEnv* env, jclass) { |
+ if (content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)) { |
+ NotifyClientCertificatesChanged(); |
+ } else { |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(&NotifyClientCertificatesChanged)); |
+ } |
+} |
+ |
bool RegisterSSLClientCertificateRequestAndroid(JNIEnv* env) { |
return RegisterNativesImpl(env); |
} |