diff options
Diffstat (limited to 'core/java/android/webkit/WebViewClient.java')
| -rw-r--r-- | core/java/android/webkit/WebViewClient.java | 37 |
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); + } } |
