Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / android / ssl_client_certificate_request.cc
index 468b53b..f752dbb 100644 (file)
 #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);
 }