diff --git a/api/current.txt b/api/current.txt index 0b56c1d27261f..bf549bfdbca65 100644 --- a/api/current.txt +++ b/api/current.txt @@ -45848,7 +45848,7 @@ package android.webkit { method public int getContentHeight(); method public android.graphics.Bitmap getFavicon(); method public android.webkit.WebView.HitTestResult getHitTestResult(); - method public java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); + method public deprecated java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); method public java.lang.String getOriginalUrl(); method public int getProgress(); method public deprecated float getScale(); @@ -45891,7 +45891,7 @@ package android.webkit { method public void setDownloadListener(android.webkit.DownloadListener); method public void setFindListener(android.webkit.WebView.FindListener); method public deprecated void setHorizontalScrollbarOverlay(boolean); - method public void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); + method public deprecated void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); method public void setInitialScale(int); method public deprecated void setMapTrackballToArrowKeys(boolean); method public void setNetworkAvailable(boolean); @@ -45989,10 +45989,12 @@ package android.webkit { method public abstract void clearFormData(); method public abstract void clearHttpAuthUsernamePassword(); method public abstract deprecated void clearUsernamePassword(); + method public abstract java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); method public static android.webkit.WebViewDatabase getInstance(android.content.Context); method public abstract boolean hasFormData(); method public abstract boolean hasHttpAuthUsernamePassword(); method public abstract deprecated boolean hasUsernamePassword(); + method public abstract void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); } public class WebViewFragment extends android.app.Fragment { diff --git a/api/system-current.txt b/api/system-current.txt index 8866f1c487521..382afa5f901ed 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -49124,7 +49124,7 @@ package android.webkit { method public int getContentHeight(); method public android.graphics.Bitmap getFavicon(); method public android.webkit.WebView.HitTestResult getHitTestResult(); - method public java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); + method public deprecated java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); method public java.lang.String getOriginalUrl(); method public int getProgress(); method public deprecated float getScale(); @@ -49168,7 +49168,7 @@ package android.webkit { method public void setDownloadListener(android.webkit.DownloadListener); method public void setFindListener(android.webkit.WebView.FindListener); method public deprecated void setHorizontalScrollbarOverlay(boolean); - method public void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); + method public deprecated void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); method public void setInitialScale(int); method public deprecated void setMapTrackballToArrowKeys(boolean); method public void setNetworkAvailable(boolean); @@ -49297,10 +49297,12 @@ package android.webkit { method public abstract void clearFormData(); method public abstract void clearHttpAuthUsernamePassword(); method public abstract deprecated void clearUsernamePassword(); + method public abstract java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); method public static android.webkit.WebViewDatabase getInstance(android.content.Context); method public abstract boolean hasFormData(); method public abstract boolean hasHttpAuthUsernamePassword(); method public abstract deprecated boolean hasUsernamePassword(); + method public abstract void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); } public final class WebViewDelegate { diff --git a/api/test-current.txt b/api/test-current.txt index 1bd9b7b309210..e94df765a6e57 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -45936,7 +45936,7 @@ package android.webkit { method public int getContentHeight(); method public android.graphics.Bitmap getFavicon(); method public android.webkit.WebView.HitTestResult getHitTestResult(); - method public java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); + method public deprecated java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); method public java.lang.String getOriginalUrl(); method public int getProgress(); method public deprecated float getScale(); @@ -45979,7 +45979,7 @@ package android.webkit { method public void setDownloadListener(android.webkit.DownloadListener); method public void setFindListener(android.webkit.WebView.FindListener); method public deprecated void setHorizontalScrollbarOverlay(boolean); - method public void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); + method public deprecated void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); method public void setInitialScale(int); method public deprecated void setMapTrackballToArrowKeys(boolean); method public void setNetworkAvailable(boolean); @@ -46077,10 +46077,12 @@ package android.webkit { method public abstract void clearFormData(); method public abstract void clearHttpAuthUsernamePassword(); method public abstract deprecated void clearUsernamePassword(); + method public abstract java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String); method public static android.webkit.WebViewDatabase getInstance(android.content.Context); method public abstract boolean hasFormData(); method public abstract boolean hasHttpAuthUsernamePassword(); method public abstract deprecated boolean hasUsernamePassword(); + method public abstract void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String); } public class WebViewFragment extends android.app.Fragment { diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 05d8e21784aa9..aaa7b2662c7ed 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -743,33 +743,14 @@ public class WebView extends AbsoluteLayout /** * Stores HTTP authentication credentials for a given host and realm to the {@link WebViewDatabase} * instance. - *

- * To use HTTP authentication, the embedder application has to implement - * {@link WebViewClient#onReceivedHttpAuthRequest}, and call {@link HttpAuthHandler#proceed} - * with the correct username and password. - *

- * The embedder app can get the username and password any way it chooses, and does not have to - * use {@link WebViewDatabase}. - *

- * Notes: - *

  • - * {@link WebViewDatabase} is provided only as a convenience to store and retrieve http - * authentication credentials. WebView does not read from it during HTTP authentication. - *
  • - *
  • - * WebView does not provide a special mechanism to clear HTTP authentication credentials for - * implementing client logout. The client logout mechanism should be implemented by the Web site - * designer (such as server sending a HTTP 401 for invalidating credentials). - *
  • * * @param host the host to which the credentials apply * @param realm the realm to which the credentials apply * @param username the username * @param password the password - * @see #getHttpAuthUsernamePassword - * @see WebViewDatabase#hasHttpAuthUsernamePassword - * @see WebViewDatabase#clearHttpAuthUsernamePassword + * @deprecated Use {@link WebViewDatabase#setHttpAuthUsernamePassword} instead */ + @Deprecated public void setHttpAuthUsernamePassword(String host, String realm, String username, String password) { checkThread(); @@ -779,16 +760,14 @@ public class WebView extends AbsoluteLayout /** * Retrieves HTTP authentication credentials for a given host and realm from the {@link * WebViewDatabase} instance. - * * @param host the host to which the credentials apply * @param realm the realm to which the credentials apply * @return the credentials as a String array, if found. The first element * is the username and the second element is the password. Null if * no credentials are found. - * @see #setHttpAuthUsernamePassword - * @see WebViewDatabase#hasHttpAuthUsernamePassword - * @see WebViewDatabase#clearHttpAuthUsernamePassword + * @deprecated Use {@link WebViewDatabase#getHttpAuthUsernamePassword} instead */ + @Deprecated public String[] getHttpAuthUsernamePassword(String host, String realm) { checkThread(); return mProvider.getHttpAuthUsernamePassword(host, realm); diff --git a/core/java/android/webkit/WebViewDatabase.java b/core/java/android/webkit/WebViewDatabase.java index cc2c6cc348033..87d3c7b32abbb 100644 --- a/core/java/android/webkit/WebViewDatabase.java +++ b/core/java/android/webkit/WebViewDatabase.java @@ -65,8 +65,8 @@ public abstract class WebViewDatabase { * Gets whether there are any saved credentials for HTTP authentication. * * @return whether there are any saved credentials - * @see WebView#getHttpAuthUsernamePassword - * @see WebView#setHttpAuthUsernamePassword + * @see #getHttpAuthUsernamePassword + * @see #setHttpAuthUsernamePassword * @see #clearHttpAuthUsernamePassword */ public abstract boolean hasHttpAuthUsernamePassword(); @@ -83,12 +83,60 @@ public abstract class WebViewDatabase { * mechanism should be implemented by the Web site designer (such as server sending a HTTP 401 * for invalidating credentials). * - * @see WebView#getHttpAuthUsernamePassword - * @see WebView#setHttpAuthUsernamePassword + * @see #getHttpAuthUsernamePassword + * @see #setHttpAuthUsernamePassword * @see #hasHttpAuthUsernamePassword */ public abstract void clearHttpAuthUsernamePassword(); + /** + * Stores HTTP authentication credentials for a given host and realm to the {@link WebViewDatabase} + * instance. + *

    + * To use HTTP authentication, the embedder application has to implement + * {@link WebViewClient#onReceivedHttpAuthRequest}, and call {@link HttpAuthHandler#proceed} + * with the correct username and password. + *

    + * The embedder app can get the username and password any way it chooses, and does not have to + * use {@link WebViewDatabase}. + *

    + * Notes: + *

  • + * {@link WebViewDatabase} is provided only as a convenience to store and retrieve http + * authentication credentials. WebView does not read from it during HTTP authentication. + *
  • + *
  • + * WebView does not provide a special mechanism to clear HTTP authentication credentials for + * implementing client logout. The client logout mechanism should be implemented by the Web site + * designer (such as server sending a HTTP 401 for invalidating credentials). + *
  • + * + * @param host the host to which the credentials apply + * @param realm the realm to which the credentials apply + * @param username the username + * @param password the password + * @see #getHttpAuthUsernamePassword + * @see #hasHttpAuthUsernamePassword + * @see #clearHttpAuthUsernamePassword + */ + public abstract void setHttpAuthUsernamePassword(String host, String realm, + String username, String password); + + /** + * Retrieves HTTP authentication credentials for a given host and realm from the {@link + * WebViewDatabase} instance. + * + * @param host the host to which the credentials apply + * @param realm the realm to which the credentials apply + * @return the credentials as a String array, if found. The first element + * is the username and the second element is the password. Null if + * no credentials are found. + * @see #setHttpAuthUsernamePassword + * @see #hasHttpAuthUsernamePassword + * @see #clearHttpAuthUsernamePassword + */ + public abstract String[] getHttpAuthUsernamePassword(String host, String realm); + /** * Gets whether there is any saved data for web forms. *