summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Tab.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/Tab.java')
-rw-r--r--src/com/android/browser/Tab.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 5d564a1fa..ed20e6708 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -47,6 +47,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewStub;
import android.webkit.BrowserDownloadListener;
+import android.webkit.ClientCertRequest;
import android.webkit.ConsoleMessage;
import android.webkit.GeolocationPermissions;
import android.webkit.HttpAuthHandler;
@@ -75,6 +76,7 @@ import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
+import java.security.Principal;
import java.util.LinkedList;
import java.util.Map;
import java.util.UUID;
@@ -560,6 +562,29 @@ class Tab implements PictureListener {
}
}
+ /**
+ * Displays client certificate request to the user.
+ */
+ @Override
+ public void onReceivedClientCertRequest(final WebView view,
+ final ClientCertRequest request) {
+ if (!mInForeground) {
+ request.ignore();
+ return;
+ }
+ KeyChain.choosePrivateKeyAlias(
+ mWebViewController.getActivity(), new KeyChainAliasCallback() {
+ @Override public void alias(String alias) {
+ if (alias == null) {
+ request.cancel();
+ return;
+ }
+ new KeyChainLookup(mContext, request, alias).execute();
+ }
+ }, request.getKeyTypes(), request.getPrincipals(), request.getHost(),
+ request.getPort(), null);
+ }
+
/**
* Handles an HTTP authentication request.
*
@@ -1015,6 +1040,10 @@ class Tab implements PictureListener {
mClient.onReceivedSslError(view, handler, error);
}
@Override
+ public void onReceivedClientCertRequest(WebView view, ClientCertRequest request) {
+ mClient.onReceivedClientCertRequest(view, request);
+ }
+ @Override
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler, String host, String realm) {
mClient.onReceivedHttpAuthRequest(view, handler, host, realm);