summaryrefslogtreecommitdiff
path: root/core/java/android/webkit/WebViewClient.java
diff options
context:
space:
mode:
authorNate Fischer <ntfschr@google.com>2017-06-16 15:32:50 -0700
committerNate Fischer <ntfschr@google.com>2017-06-16 16:53:44 -0700
commit0c3043622e7c391426ab36c1684b341df7ea9dea (patch)
tree87e3917e4ba1ffd049d01ab6b11363b67163fa95 /core/java/android/webkit/WebViewClient.java
parent09c2b2345b420381f72656ec2f12f016db3b041d (diff)
Add WebViewClient#onSafeBrowsingHit() API
This adds the WebViewClient#onSafeBrowsingHit() API and its default implementation. This also adds the relevant constants. This includes SAFE_BROWSING_THREAT_UNKNOWN, in case we expose new threat types in the future. Bug: 62723291 Test: N/A Change-Id: I0b424a952466b23db4cf296573680a0a6c61b981
Diffstat (limited to 'core/java/android/webkit/WebViewClient.java')
-rw-r--r--core/java/android/webkit/WebViewClient.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/core/java/android/webkit/WebViewClient.java b/core/java/android/webkit/WebViewClient.java
index 788908ad9468..b490f2754cd3 100644
--- a/core/java/android/webkit/WebViewClient.java
+++ b/core/java/android/webkit/WebViewClient.java
@@ -237,6 +237,22 @@ public class WebViewClient {
/** Resource load was cancelled by Safe Browsing */
public static final int ERROR_UNSAFE_RESOURCE = -16;
+ /** The resource was blocked for an unknown reason */
+ public static final int SAFE_BROWSING_THREAT_UNKNOWN = 0;
+ /** The resource was blocked because it contains malware */
+ public static final int SAFE_BROWSING_THREAT_MALWARE = 1;
+ /** The resource was blocked because it contains deceptive content */
+ public static final int SAFE_BROWSING_THREAT_PHISHING = 2;
+ /** The resource was blocked because it contains unwanted software */
+ public static final int SAFE_BROWSING_THREAT_UNWANTED_SOFTWARE = 3;
+
+ /** Display the default interstitial */
+ public static final int SAFE_BROWSING_ACTION_SHOW_INTERSTITIAL = 0;
+ /** Act as if the user clicked "visit this unsafe site" */
+ public static final int SAFE_BROWSING_ACTION_PROCEED = 1;
+ /** Act as if the user clicked "Back to safety" */
+ public static final int SAFE_BROWSING_ACTION_BACK_TO_SAFETY = 2;
+
/**
* Report an error to the host application. These errors are unrecoverable
* (i.e. the main resource is unavailable). The errorCode parameter
@@ -496,4 +512,25 @@ public class WebViewClient {
public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) {
return false;
}
+
+ /**
+ * Notify the host application that a loading URL has been flagged by Safe Browsing.
+ *
+ * The application must invoke the callback to indicate the preferred response. The default
+ * behavior is to show an interstitial to the user (SAFE_BROWSING_ACTION_SHOW_INTERSTITIAL).
+ *
+ * If the application needs to show its own custom interstitial UI, the callback can be invoked
+ * asynchronously with SAFE_BROWSING_ACTION_BACK_TO_SAFETY or SAFE_BROWSING_ACTION_PROCEED,
+ * depending on user response.
+ *
+ * @param view The WebView that hit the malicious resource.
+ * @param request Object containing the details of the request.
+ * @param threatType The reason the resource was caught by Safe Browsing, corresponding to a
+ * SAFE_BROWSING_THREAT_* value.
+ * @param callback Applications must invoke this callback with one of SAFE_BROWSING_ACTION_*.
+ */
+ public void onSafeBrowsingHit(WebView view, WebResourceRequest request, int threatType,
+ ValueCallback<Integer> callback) {
+ callback.onReceiveValue(SAFE_BROWSING_ACTION_SHOW_INTERSTITIAL);
+ }
}