summaryrefslogtreecommitdiff
path: root/core/java/android/webkit/CallbackProxy.java
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-03-25 15:38:04 +0000
committerSteve Block <steveblock@google.com>2010-03-25 18:18:36 +0000
commitc6a90a59b342114d760d899e09d8def672b49ca8 (patch)
tree771c08a6ed08246b0c257d1af91a78e3154b03b3 /core/java/android/webkit/CallbackProxy.java
parent6108af25996de29eea03205963be8994b6757116 (diff)
Provides ability to store HTTP authentication credentials supplied to an XHR from JavaScript
This change forwards to the WebViewClient HTTP authentication credentials that are supplied to an XHR from JavaScript. This allows the client to store these credentials for use with later requests. Currently, the browser only stores credentials that have been entered manually by the user through the authentication dialog. Bug: 2544330 Change-Id: I913e35d80b7ad41ff75586092408b86ea9f543d8
Diffstat (limited to 'core/java/android/webkit/CallbackProxy.java')
-rw-r--r--core/java/android/webkit/CallbackProxy.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/java/android/webkit/CallbackProxy.java b/core/java/android/webkit/CallbackProxy.java
index 1eb3fa4c9a2a..92ce4f037a06 100644
--- a/core/java/android/webkit/CallbackProxy.java
+++ b/core/java/android/webkit/CallbackProxy.java
@@ -111,6 +111,7 @@ class CallbackProxy extends Handler {
private static final int OPEN_FILE_CHOOSER = 134;
private static final int ADD_HISTORY_ITEM = 135;
private static final int HISTORY_INDEX_CHANGED = 136;
+ private static final int AUTH_CREDENTIALS = 137;
// Message triggered by the client to resume execution
private static final int NOTIFY = 200;
@@ -734,6 +735,16 @@ class CallbackProxy extends Handler {
(WebHistoryItem) msg.obj, msg.arg1);
}
break;
+ case AUTH_CREDENTIALS:
+ if (mWebViewClient != null) {
+ String host = msg.getData().getString("host");
+ String realm = msg.getData().getString("realm");
+ username = msg.getData().getString("username");
+ password = msg.getData().getString("password");
+ mWebViewClient.onReceivedHttpAuthCredentials(
+ mWebView, host, realm, username, password);
+ }
+ break;
}
}
@@ -917,6 +928,20 @@ class CallbackProxy extends Handler {
msg.getData().putString("realm", realmName);
sendMessage(msg);
}
+
+ public void onReceivedHttpAuthCredentials(String host, String realm,
+ String username, String password) {
+ if (mWebViewClient == null) {
+ return;
+ }
+ Message msg = obtainMessage(AUTH_CREDENTIALS);
+ msg.getData().putString("host", host);
+ msg.getData().putString("realm", realm);
+ msg.getData().putString("username", username);
+ msg.getData().putString("password", password);
+ sendMessage(msg);
+ }
+
/**
* @hide - hide this because it contains a parameter of type SslError.
* SslError is located in a hidden package.