From 13e5b0bb9718a1eca3a319898714f545ae10e6e2 Mon Sep 17 00:00:00 2001 From: Selim Gurun Date: Mon, 3 Apr 2017 14:29:14 -0700 Subject: [PATCH] Disable WebView autocomplete feature. Platform is now providing autofill feature. Disable WebView's simple form data save feature for platform O and above. Test: Removing the functionality and the test Bug: 36869838 Change-Id: If6b9fc12edbe4146fca99d9c6ef8fde36d61f852 --- api/current.txt | 8 ++++---- api/system-current.txt | 8 ++++---- api/test-current.txt | 8 ++++---- core/java/android/webkit/WebSettings.java | 11 ++++++++++- core/java/android/webkit/WebViewDatabase.java | 2 ++ 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/api/current.txt b/api/current.txt index af3ef9e1bf250..ff1d075f96e32 100644 --- a/api/current.txt +++ b/api/current.txt @@ -48661,7 +48661,7 @@ package android.webkit { method public abstract boolean getOffscreenPreRaster(); method public abstract deprecated android.webkit.WebSettings.PluginState getPluginState(); method public abstract java.lang.String getSansSerifFontFamily(); - method public abstract boolean getSaveFormData(); + method public abstract deprecated boolean getSaveFormData(); method public abstract deprecated boolean getSavePassword(); method public abstract java.lang.String getSerifFontFamily(); method public abstract java.lang.String getStandardFontFamily(); @@ -48710,7 +48710,7 @@ package android.webkit { method public abstract deprecated void setPluginState(android.webkit.WebSettings.PluginState); method public abstract deprecated void setRenderPriority(android.webkit.WebSettings.RenderPriority); method public abstract void setSansSerifFontFamily(java.lang.String); - method public abstract void setSaveFormData(boolean); + method public abstract deprecated void setSaveFormData(boolean); method public abstract deprecated void setSavePassword(boolean); method public abstract void setSerifFontFamily(java.lang.String); method public abstract void setStandardFontFamily(java.lang.String); @@ -49001,12 +49001,12 @@ package android.webkit { public abstract class WebViewDatabase { ctor public WebViewDatabase(); - method public abstract void clearFormData(); + method public abstract deprecated 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 deprecated 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); diff --git a/api/system-current.txt b/api/system-current.txt index 73cf776343554..942668ce392b9 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -52205,7 +52205,7 @@ package android.webkit { method public abstract deprecated android.webkit.WebSettings.PluginState getPluginState(); method public abstract deprecated boolean getPluginsEnabled(); method public abstract java.lang.String getSansSerifFontFamily(); - method public abstract boolean getSaveFormData(); + method public abstract deprecated boolean getSaveFormData(); method public abstract deprecated boolean getSavePassword(); method public abstract java.lang.String getSerifFontFamily(); method public abstract java.lang.String getStandardFontFamily(); @@ -52260,7 +52260,7 @@ package android.webkit { method public abstract deprecated void setPluginsEnabled(boolean); method public abstract deprecated void setRenderPriority(android.webkit.WebSettings.RenderPriority); method public abstract void setSansSerifFontFamily(java.lang.String); - method public abstract void setSaveFormData(boolean); + method public abstract deprecated void setSaveFormData(boolean); method public abstract deprecated void setSavePassword(boolean); method public abstract void setSerifFontFamily(java.lang.String); method public abstract void setStandardFontFamily(java.lang.String); @@ -52588,12 +52588,12 @@ package android.webkit { public abstract class WebViewDatabase { ctor public WebViewDatabase(); - method public abstract void clearFormData(); + method public abstract deprecated 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 deprecated 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); diff --git a/api/test-current.txt b/api/test-current.txt index 382f5fe0cf231..16b3e50446333 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -49045,7 +49045,7 @@ package android.webkit { method public abstract boolean getOffscreenPreRaster(); method public abstract deprecated android.webkit.WebSettings.PluginState getPluginState(); method public abstract java.lang.String getSansSerifFontFamily(); - method public abstract boolean getSaveFormData(); + method public abstract deprecated boolean getSaveFormData(); method public abstract deprecated boolean getSavePassword(); method public abstract java.lang.String getSerifFontFamily(); method public abstract java.lang.String getStandardFontFamily(); @@ -49094,7 +49094,7 @@ package android.webkit { method public abstract deprecated void setPluginState(android.webkit.WebSettings.PluginState); method public abstract deprecated void setRenderPriority(android.webkit.WebSettings.RenderPriority); method public abstract void setSansSerifFontFamily(java.lang.String); - method public abstract void setSaveFormData(boolean); + method public abstract deprecated void setSaveFormData(boolean); method public abstract deprecated void setSavePassword(boolean); method public abstract void setSerifFontFamily(java.lang.String); method public abstract void setStandardFontFamily(java.lang.String); @@ -49385,12 +49385,12 @@ package android.webkit { public abstract class WebViewDatabase { ctor public WebViewDatabase(); - method public abstract void clearFormData(); + method public abstract deprecated 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 deprecated 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); diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java index 636fa7de98f08..61920bd5cee42 100644 --- a/core/java/android/webkit/WebSettings.java +++ b/core/java/android/webkit/WebSettings.java @@ -411,8 +411,16 @@ public abstract class WebSettings { public abstract boolean getUseWebViewBackgroundForOverscrollBackground(); /** - * Sets whether the WebView should save form data. The default is true. + * Sets whether the WebView should save form data. In Android O, the + * platform has implemented a fully functional Autofill feature to store + * form data. Therefore, the Webview form data save feature is disabled. + * + * Note that the feature will continue to be supported on older versions of + * Android as before. + * + * This function does not have any effect. */ + @Deprecated public abstract void setSaveFormData(boolean save); /** @@ -421,6 +429,7 @@ public abstract class WebSettings { * @return whether the WebView saves form data * @see #setSaveFormData */ + @Deprecated public abstract boolean getSaveFormData(); /** diff --git a/core/java/android/webkit/WebViewDatabase.java b/core/java/android/webkit/WebViewDatabase.java index 87d3c7b32abbb..982c57b76b518 100644 --- a/core/java/android/webkit/WebViewDatabase.java +++ b/core/java/android/webkit/WebViewDatabase.java @@ -143,6 +143,7 @@ public abstract class WebViewDatabase { * @return whether there is any saved data for web forms * @see #clearFormData */ + @Deprecated public abstract boolean hasFormData(); /** @@ -150,5 +151,6 @@ public abstract class WebViewDatabase { * * @see #hasFormData */ + @Deprecated public abstract void clearFormData(); }