From ec0a1f2599e6b254580a0e940f47a5653f491e3c Mon Sep 17 00:00:00 2001 From: Selim Gurun Date: Fri, 7 Apr 2017 18:21:46 -0700 Subject: [PATCH] Add an API to enable disable safebrowsing in WebView WebView safebrowsing can be opted in using a manifest value. However, we also need to control individual WebViews. Bug:37158813 Test: See change I71e813bccc2fab73d100384661128c7311dd396c Change-Id: I647dc304787d6406691b5cbadf1c9a4f13ac5604 --- api/current.txt | 2 ++ api/system-current.txt | 2 ++ api/test-current.txt | 2 ++ core/java/android/webkit/WebSettings.java | 30 +++++++++++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/api/current.txt b/api/current.txt index d93c268d574bf..3693662518426 100644 --- a/api/current.txt +++ b/api/current.txt @@ -48738,6 +48738,7 @@ package android.webkit { method public abstract int getMixedContentMode(); method public abstract boolean getOffscreenPreRaster(); method public abstract deprecated android.webkit.WebSettings.PluginState getPluginState(); + method public abstract boolean getSafeBrowsingEnabled(); method public abstract java.lang.String getSansSerifFontFamily(); method public abstract deprecated boolean getSaveFormData(); method public abstract deprecated boolean getSavePassword(); @@ -48787,6 +48788,7 @@ package android.webkit { method public abstract void setOffscreenPreRaster(boolean); method public abstract deprecated void setPluginState(android.webkit.WebSettings.PluginState); method public abstract deprecated void setRenderPriority(android.webkit.WebSettings.RenderPriority); + method public abstract void setSafeBrowsingEnabled(boolean); method public abstract void setSansSerifFontFamily(java.lang.String); method public abstract deprecated void setSaveFormData(boolean); method public abstract deprecated void setSavePassword(boolean); diff --git a/api/system-current.txt b/api/system-current.txt index b7400c6c53d7a..b12b81c3208dd 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -52372,6 +52372,7 @@ package android.webkit { method public abstract boolean getOffscreenPreRaster(); method public abstract deprecated android.webkit.WebSettings.PluginState getPluginState(); method public abstract deprecated boolean getPluginsEnabled(); + method public abstract boolean getSafeBrowsingEnabled(); method public abstract java.lang.String getSansSerifFontFamily(); method public abstract deprecated boolean getSaveFormData(); method public abstract deprecated boolean getSavePassword(); @@ -52427,6 +52428,7 @@ package android.webkit { method public abstract deprecated void setPluginState(android.webkit.WebSettings.PluginState); method public abstract deprecated void setPluginsEnabled(boolean); method public abstract deprecated void setRenderPriority(android.webkit.WebSettings.RenderPriority); + method public abstract void setSafeBrowsingEnabled(boolean); method public abstract void setSansSerifFontFamily(java.lang.String); method public abstract deprecated void setSaveFormData(boolean); method public abstract deprecated void setSavePassword(boolean); diff --git a/api/test-current.txt b/api/test-current.txt index 1024e285225d0..747520137d015 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -49120,6 +49120,7 @@ package android.webkit { method public abstract int getMixedContentMode(); method public abstract boolean getOffscreenPreRaster(); method public abstract deprecated android.webkit.WebSettings.PluginState getPluginState(); + method public abstract boolean getSafeBrowsingEnabled(); method public abstract java.lang.String getSansSerifFontFamily(); method public abstract deprecated boolean getSaveFormData(); method public abstract deprecated boolean getSavePassword(); @@ -49169,6 +49170,7 @@ package android.webkit { method public abstract void setOffscreenPreRaster(boolean); method public abstract deprecated void setPluginState(android.webkit.WebSettings.PluginState); method public abstract deprecated void setRenderPriority(android.webkit.WebSettings.RenderPriority); + method public abstract void setSafeBrowsingEnabled(boolean); method public abstract void setSansSerifFontFamily(java.lang.String); method public abstract deprecated void setSaveFormData(boolean); method public abstract deprecated void setSavePassword(boolean); diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java index 61920bd5cee42..3a6de9609b3c8 100644 --- a/core/java/android/webkit/WebSettings.java +++ b/core/java/android/webkit/WebSettings.java @@ -1385,6 +1385,36 @@ public abstract class WebSettings { */ public abstract boolean getOffscreenPreRaster(); + + /** + * Sets whether Safe Browsing is enabled. Safe browsing allows WebView to + * protect against malware and phishing attacks by verifying the links. + * + * Safe browsing is disabled by default. The recommended way to enable + * Safe browsing is using a manifest tag to change the default value to + * enabled for all WebViews. + *

+ *

+     * <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
+     *            android:value="true" />
+     * 
+ *

+ * + * This API overrides the manifest tag value for this WebView. + * + * @param enabled Whether Safe browsing is enabled. + */ + public abstract void setSafeBrowsingEnabled(boolean enabled); + + /** + * Gets whether Safe browsing is enabled. + * See {@link #setSafeBrowsingEnabled}. + * + * @return true if Safe browsing is enabled and false otherwise. + */ + public abstract boolean getSafeBrowsingEnabled(); + + /** * @hide */