Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b108d86 authored by Nate Fischer's avatar Nate Fischer
Browse files

WebView: rename initSafeBrowsing and remove shutdownSafeBrowsing

This renames the method as follows:

 * initSafeBrowsing -> startSafeBrowsing

This also updates documentation to fix javadoc references, and to
clarify that Safe Browsing checks are not guaranteed until after
startSafeBrowsing() invokes its callback.

This does not change the method name in WebViewFactoryProvider, because
changing this would break CTS tests (since the WebView APK implements
this under the old name).

This also removes shutdownSafeBrowsing, because we found there was no
good use for this (it's meaningless for AOSP, and we were recommended to
avoid calling the underlying GMSCore API for GoogleWebView). More
significantly, there's no good place for an application to call it from.

Bug: 64331900
Test: make update-api (docs are correct)
Change-Id: Idf2b9390306052f5c5dfb92909fca4cfeec74aef
parent 56891ed4
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -49073,7 +49073,6 @@ package android.webkit {
    method public void goBack();
    method public void goBackOrForward(int);
    method public void goForward();
    method public static void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
    method public void invokeZoomPicker();
    method public boolean isPrivateBrowsingEnabled();
    method public void loadData(java.lang.String, java.lang.String, java.lang.String);
@@ -49121,7 +49120,7 @@ package android.webkit {
    method public void setWebViewClient(android.webkit.WebViewClient);
    method public deprecated boolean shouldDelayChildPressedState();
    method public deprecated boolean showFindDialog(java.lang.String, boolean);
    method public static void shutdownSafeBrowsing();
    method public static void startSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
    method public void stopLoading();
    method public void zoomBy(float);
    method public boolean zoomIn();
+1 −3
Original line number Diff line number Diff line
@@ -52757,7 +52757,6 @@ package android.webkit {
    method public void goBack();
    method public void goBackOrForward(int);
    method public void goForward();
    method public static void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
    method public void invokeZoomPicker();
    method public boolean isPrivateBrowsingEnabled();
    method public void loadData(java.lang.String, java.lang.String, java.lang.String);
@@ -52805,7 +52804,7 @@ package android.webkit {
    method public void setWebViewClient(android.webkit.WebViewClient);
    method public deprecated boolean shouldDelayChildPressedState();
    method public deprecated boolean showFindDialog(java.lang.String, boolean);
    method public static void shutdownSafeBrowsing();
    method public static void startSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
    method public void stopLoading();
    method public void zoomBy(float);
    method public boolean zoomIn();
@@ -53002,7 +53001,6 @@ package android.webkit {
    method public abstract android.net.Uri[] parseFileChooserResult(int, android.content.Intent);
    method public abstract void setSafeBrowsingWhitelist(java.util.List<java.lang.String>, android.webkit.ValueCallback<java.lang.Boolean>);
    method public abstract void setWebContentsDebuggingEnabled(boolean);
    method public abstract void shutdownSafeBrowsing();
  }
  public class WebViewFragment extends android.app.Fragment {
+1 −2
Original line number Diff line number Diff line
@@ -49528,7 +49528,6 @@ package android.webkit {
    method public void goBack();
    method public void goBackOrForward(int);
    method public void goForward();
    method public static void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
    method public void invokeZoomPicker();
    method public boolean isPrivateBrowsingEnabled();
    method public void loadData(java.lang.String, java.lang.String, java.lang.String);
@@ -49576,7 +49575,7 @@ package android.webkit {
    method public void setWebViewClient(android.webkit.WebViewClient);
    method public deprecated boolean shouldDelayChildPressedState();
    method public deprecated boolean showFindDialog(java.lang.String, boolean);
    method public static void shutdownSafeBrowsing();
    method public static void startSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
    method public void stopLoading();
    method public void zoomBy(float);
    method public boolean zoomIn();
+12 −26
Original line number Diff line number Diff line
@@ -1628,41 +1628,27 @@ public class WebView extends AbsoluteLayout
    }

    /**
     * Starts Safe Browsing initialization. This should only be called once.
     *
     * Starts Safe Browsing initialization.
     * <p>
     * Because the Safe Browsing feature takes time to initialize, WebView may temporarily whitelist
     * URLs until the feature is ready. The callback will be invoked with true once initialization
     * is complete.
     * </p>
     *
     * URL loads are not guaranteed to be protected by Safe Browsing until after {@code callback} is
     * invoked with {@code true}. Safe Browsing is not fully supported on all devices. For those
     * devices {@code callback} will receive {@code false}.
     * <p>
     * This does not enable the Safe Browsing feature itself, and should only be used if the feature
     * is otherwise enabled.
     * </p>
     *
     * This does not enable the Safe Browsing feature itself, and should only be called if Safe
     * Browsing is enabled by the manifest tag or {@link WebSettings#setSafeBrowsingEnabled}. This
     * prepares resources used for Safe Browsing.
     * <p>
     * This does not require an Activity Context, and will always use the application Context to do
     * its work.
     * </p>
     * This should be called with the Application Context (and will always use the Application
     * context to do its work regardless).
     *
     * @param context Application Context.
     * @param callback will be called with the value true if initialization is
     * successful. The callback will be run on the UI thread.
     * @param callback will be called on the UI thread with {@code true} if initialization is
     * successful, {@code false} otherwise.
     */
    public static void initSafeBrowsing(Context context, ValueCallback<Boolean> callback) {
    public static void startSafeBrowsing(Context context, ValueCallback<Boolean> callback) {
        getFactory().getStatics().initSafeBrowsing(context, callback);
    }

    /**
     * Shuts down Safe Browsing. This should only be called once. This does not disable the feature,
     * it only frees resources used by Safe Browsing code. To disable Safe Browsing on an individual
     * WebView, see {@link WebSettings#setSafeBrowsingEnabled}
     */
    public static void shutdownSafeBrowsing() {
        getFactory().getStatics().shutdownSafeBrowsing();
    }

    /**
     * Sets the list of domains that are exempt from SafeBrowsing checks. The list is
     * global for all the WebViews.
+1 −7
Original line number Diff line number Diff line
@@ -80,16 +80,10 @@ public interface WebViewFactoryProvider {

        /**
         * Implement the API method
         * {@link android.webkit.WebView#initSafeBrowsing(Context , ValueCallback<Boolean>)}
         * {@link android.webkit.WebView#startSafeBrowsing(Context , ValueCallback<Boolean>)}
         */
        void initSafeBrowsing(Context context, ValueCallback<Boolean> callback);

        /**
         * Implement the API method
         * {@link android.webkit.WebView#shutdownSafeBrowsing()}
         */
        void shutdownSafeBrowsing();

        /**
        * Implement the API method
        * {@link android.webkit.WebView#setSafeBrowsingWhitelist(List<String>,