diff --git a/api/current.txt b/api/current.txt index dc8125a313b19..31bc4abba26f7 100644 --- a/api/current.txt +++ b/api/current.txt @@ -54719,8 +54719,8 @@ package android.webkit { method @NonNull public static ClassLoader getWebViewClassLoader(); method public android.webkit.WebViewClient getWebViewClient(); method @NonNull public android.os.Looper getWebViewLooper(); - method @Nullable public android.webkit.WebViewRenderer getWebViewRenderer(); - method @Nullable public android.webkit.WebViewRendererClient getWebViewRendererClient(); + method @Nullable public android.webkit.WebViewRenderProcess getWebViewRenderProcess(); + method @Nullable public android.webkit.WebViewRenderProcessClient getWebViewRenderProcessClient(); method public void goBack(); method public void goBackOrForward(int); method public void goForward(); @@ -54770,8 +54770,8 @@ package android.webkit { method public void setWebChromeClient(android.webkit.WebChromeClient); method public static void setWebContentsDebuggingEnabled(boolean); method public void setWebViewClient(android.webkit.WebViewClient); - method public void setWebViewRendererClient(@NonNull java.util.concurrent.Executor, @NonNull android.webkit.WebViewRendererClient); - method public void setWebViewRendererClient(@Nullable android.webkit.WebViewRendererClient); + method public void setWebViewRenderProcessClient(@NonNull java.util.concurrent.Executor, @NonNull android.webkit.WebViewRenderProcessClient); + method public void setWebViewRenderProcessClient(@Nullable android.webkit.WebViewRenderProcessClient); method @Deprecated public boolean shouldDelayChildPressedState(); method @Deprecated public boolean showFindDialog(@Nullable String, boolean); method public static void startSafeBrowsing(@NonNull android.content.Context, @Nullable android.webkit.ValueCallback); @@ -54887,14 +54887,15 @@ package android.webkit { method @Deprecated public android.webkit.WebView getWebView(); } - public abstract class WebViewRenderer { + public abstract class WebViewRenderProcess { + ctor public WebViewRenderProcess(); method public abstract boolean terminate(); } - public abstract class WebViewRendererClient { - ctor public WebViewRendererClient(); - method public abstract void onRendererResponsive(@NonNull android.webkit.WebView, @Nullable android.webkit.WebViewRenderer); - method public abstract void onRendererUnresponsive(@NonNull android.webkit.WebView, @Nullable android.webkit.WebViewRenderer); + public abstract class WebViewRenderProcessClient { + ctor public WebViewRenderProcessClient(); + method public abstract void onRenderProcessResponsive(@NonNull android.webkit.WebView, @Nullable android.webkit.WebViewRenderProcess); + method public abstract void onRenderProcessUnresponsive(@NonNull android.webkit.WebView, @Nullable android.webkit.WebViewRenderProcess); } } diff --git a/api/system-current.txt b/api/system-current.txt index deb2284c7376d..beacace402a68 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -9848,8 +9848,8 @@ package android.webkit { method public int getVisibleTitleHeight(); method public android.webkit.WebChromeClient getWebChromeClient(); method public android.webkit.WebViewClient getWebViewClient(); - method public android.webkit.WebViewRenderer getWebViewRenderer(); - method public android.webkit.WebViewRendererClient getWebViewRendererClient(); + method @Nullable public android.webkit.WebViewRenderProcess getWebViewRenderProcess(); + method @Nullable public android.webkit.WebViewRenderProcessClient getWebViewRenderProcessClient(); method public android.view.View getZoomControls(); method public void goBack(); method public void goBackOrForward(int); @@ -9899,7 +9899,7 @@ package android.webkit { method public void setVerticalScrollbarOverlay(boolean); method public void setWebChromeClient(android.webkit.WebChromeClient); method public void setWebViewClient(android.webkit.WebViewClient); - method public void setWebViewRendererClient(@Nullable java.util.concurrent.Executor, @Nullable android.webkit.WebViewRendererClient); + method public void setWebViewRenderProcessClient(@Nullable java.util.concurrent.Executor, @Nullable android.webkit.WebViewRenderProcessClient); method public boolean showFindDialog(String, boolean); method public void stopLoading(); method public boolean zoomBy(float); @@ -9981,10 +9981,6 @@ package android.webkit { field public final android.content.pm.Signature[] signatures; } - public abstract class WebViewRenderer { - ctor public WebViewRenderer(); - } - public final class WebViewUpdateService { method public static android.webkit.WebViewProviderInfo[] getAllWebViewPackages(); method public static String getCurrentWebViewPackageName(); diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 3555822b1f1fa..034cabd5702e2 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1704,7 +1704,7 @@ public class WebView extends AbsoluteLayout /** - * Gets the WebView renderer associated with this WebView. + * Gets a handle to the WebView renderer process associated with this WebView. * *

In {@link android.os.Build.VERSION_CODES#O} and above, WebView may * run in "multiprocess" mode. In multiprocess mode, rendering of web @@ -1717,67 +1717,70 @@ public class WebView extends AbsoluteLayout * handle to the renderer process associated with the WebView, which can * be used to control the renderer process. * - * @return the {@link WebViewRenderer} renderer handle associated + * @return the {@link WebViewRenderProcess} renderer handle associated * with this {@link WebView}, or {@code null} if * WebView is not runing in multiprocess mode. */ @Nullable - public WebViewRenderer getWebViewRenderer() { + public WebViewRenderProcess getWebViewRenderProcess() { checkThread(); - return mProvider.getWebViewRenderer(); + return mProvider.getWebViewRenderProcess(); } /** * Sets the renderer client object associated with this WebView. * *

The renderer client encapsulates callbacks relevant to WebView renderer - * state. See {@link WebViewRendererClient} for details. + * state. See {@link WebViewRenderProcessClient} for details. * *

Although many WebView instances may share a single underlying * renderer, and renderers may live either in the application * process, or in a sandboxed process that is isolated from the - * application process, instances of {@link WebViewRendererClient} + * application process, instances of {@link WebViewRenderProcessClient} * are set per-WebView. Callbacks represent renderer events from * the perspective of this WebView, and may or may not be correlated * with renderer events affecting other WebViews. * - * @param executor the Executor on which {@link WebViewRendererClient} callbacks will execute. - * @param webViewRendererClient the {@link WebViewRendererClient} object. + * @param executor the Executor on which {@link WebViewRenderProcessClient} + * callbacks will execute. + * @param webViewRenderProcessClient the {@link WebViewRenderProcessClient} + * object. */ - public void setWebViewRendererClient( + public void setWebViewRenderProcessClient( @NonNull @CallbackExecutor Executor executor, - @NonNull WebViewRendererClient webViewRendererClient) { + @NonNull WebViewRenderProcessClient webViewRenderProcessClient) { checkThread(); - mProvider.setWebViewRendererClient(executor, webViewRendererClient); + mProvider.setWebViewRenderProcessClient( + executor, webViewRenderProcessClient); } /** * Sets the renderer client object associated with this WebView. * - * See {@link #setWebViewRendererClient(Executor,WebViewRendererClient)} for details. + * See {@link #setWebViewRenderProcessClient(Executor,WebViewRenderProcessClient)} for details. * - *

{@link WebViewRendererClient} callbacks will run on the thread that this WebView was + *

{@link WebViewRenderProcessClient} callbacks will run on the thread that this WebView was * initialized on. * - * @param webViewRendererClient the {@link WebViewRendererClient} object. + * @param webViewRenderProcessClient the {@link WebViewRenderProcessClient} object. */ - public void setWebViewRendererClient( - @Nullable WebViewRendererClient webViewRendererClient) { + public void setWebViewRenderProcessClient( + @Nullable WebViewRenderProcessClient webViewRenderProcessClient) { checkThread(); - mProvider.setWebViewRendererClient(null, webViewRendererClient); + mProvider.setWebViewRenderProcessClient(null, webViewRenderProcessClient); } /** * Gets the renderer client object associated with this WebView. * - * @return the {@link WebViewRendererClient} object associated with this WebView, if one has - * been set via {@link #setWebViewRendererClient(WebViewRendererClient)} or {@code null} - * otherwise. + * @return the {@link WebViewRenderProcessClient} object associated with this WebView, if one + * has been set via {@link #setWebViewRenderProcessClient(WebViewRenderProcessClient)} + * or {@code null} otherwise. */ @Nullable - public WebViewRendererClient getWebViewRendererClient() { + public WebViewRenderProcessClient getWebViewRenderProcessClient() { checkThread(); - return mProvider.getWebViewRendererClient(); + return mProvider.getWebViewRenderProcessClient(); } /** diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java index 4c8f72aa77eb2..010c0b7bd4abc 100644 --- a/core/java/android/webkit/WebViewProvider.java +++ b/core/java/android/webkit/WebViewProvider.java @@ -238,13 +238,15 @@ public interface WebViewProvider { public WebViewClient getWebViewClient(); - public WebViewRenderer getWebViewRenderer(); + @Nullable + public WebViewRenderProcess getWebViewRenderProcess(); - public void setWebViewRendererClient( + public void setWebViewRenderProcessClient( @Nullable Executor executor, - @Nullable WebViewRendererClient client); + @Nullable WebViewRenderProcessClient client); - public WebViewRendererClient getWebViewRendererClient(); + @Nullable + public WebViewRenderProcessClient getWebViewRenderProcessClient(); public void setDownloadListener(DownloadListener listener); diff --git a/core/java/android/webkit/WebViewRenderer.java b/core/java/android/webkit/WebViewRenderProcess.java similarity index 82% rename from core/java/android/webkit/WebViewRenderer.java rename to core/java/android/webkit/WebViewRenderProcess.java index fc38cd9bd4a21..1be2210baa681 100644 --- a/core/java/android/webkit/WebViewRenderer.java +++ b/core/java/android/webkit/WebViewRenderProcess.java @@ -16,12 +16,10 @@ package android.webkit; -import android.annotation.SystemApi; - /** - * WebViewRenderer provides an opaque handle to a {@link WebView} renderer. + * WebViewRenderProcess provides an opaque handle to a {@link WebView} renderer. */ -public abstract class WebViewRenderer { +public abstract class WebViewRenderProcess { /** * Cause this renderer to terminate. * @@ -38,11 +36,6 @@ public abstract class WebViewRenderer { */ public abstract boolean terminate(); - /** - * This class cannot be created by applications. - * @hide - */ - @SystemApi - public WebViewRenderer() { + public WebViewRenderProcess() { } } diff --git a/core/java/android/webkit/WebViewRendererClient.java b/core/java/android/webkit/WebViewRenderProcessClient.java similarity index 66% rename from core/java/android/webkit/WebViewRendererClient.java rename to core/java/android/webkit/WebViewRenderProcessClient.java index 2fadf54fd434f..24b8fb5dd6371 100644 --- a/core/java/android/webkit/WebViewRendererClient.java +++ b/core/java/android/webkit/WebViewRenderProcessClient.java @@ -22,14 +22,14 @@ import android.annotation.Nullable; /** * Used to receive callbacks on {@link WebView} renderer events. * - * WebViewRendererClient instances may be set or retrieved via {@link - * WebView#setWebViewRendererClient(WebViewRendererClient)} and {@link - * WebView#getWebViewRendererClient()}. + * WebViewRenderProcessClient instances may be set or retrieved via {@link + * WebView#setWebViewRenderProcessClient(WebViewRenderProcessClient)} and {@link + * WebView#getWebViewRenderProcessClient()}. * * Instances may be attached to multiple WebViews, and thus a single renderer event may cause * a callback to be called multiple times with different WebView parameters. */ -public abstract class WebViewRendererClient { +public abstract class WebViewRenderProcessClient { /** * Called when the renderer currently associated with {@code view} becomes unresponsive as a * result of a long running blocking task such as the execution of JavaScript. @@ -40,8 +40,11 @@ public abstract class WebViewRendererClient { * *

This callback will continue to be called at regular intervals as long as the renderer * remains unresponsive. If the renderer becomes responsive again, {@link - * WebViewRendererClient#onRendererResponsive} will be called once, and this method will not - * subsequently be called unless another period of unresponsiveness is detected. + * WebViewRenderProcessClient#onRenderProcessResponsive} will be called once, and this method + * will not subsequently be called unless another period of unresponsiveness is detected. + * + *

The minimum interval between successive calls to {@code onRenderProcessUnresponsive} is 5 + * seconds. * *

No action is taken by WebView as a result of this method call. Applications may * choose to terminate the associated renderer via the object that is passed to this callback, @@ -50,28 +53,28 @@ public abstract class WebViewRendererClient { * with the same renderer. Failure to do so will result in application termination. * * @param view The {@link WebView} for which unresponsiveness was detected. - * @param renderer The {@link WebViewRenderer} that has become unresponsive, + * @param renderer The {@link WebViewRenderProcess} that has become unresponsive, * or {@code null} if WebView is running in single process mode. */ - public abstract void onRendererUnresponsive( - @NonNull WebView view, @Nullable WebViewRenderer renderer); + public abstract void onRenderProcessUnresponsive( + @NonNull WebView view, @Nullable WebViewRenderProcess renderer); /** * Called once when an unresponsive renderer currently associated with {@code view} becomes * responsive. * *

After a WebView renderer becomes unresponsive, which is notified to the application by - * {@link WebViewRendererClient#onRendererUnresponsive}, it is possible for the blocking - * renderer task to complete, returning the renderer to a responsive state. In that case, - * this method is called once to indicate responsiveness. + * {@link WebViewRenderProcessClient#onRenderProcessUnresponsive}, it is possible for the + * blocking renderer task to complete, returning the renderer to a responsive state. In that + * case, this method is called once to indicate responsiveness. * *

No action is taken by WebView as a result of this method call. * * @param view The {@link WebView} for which responsiveness was detected. * - * @param renderer The {@link WebViewRenderer} that has become responsive, or {@code null} if - * WebView is running in single process mode. + * @param renderer The {@link WebViewRenderProcess} that has become responsive, or {@code null} + * if WebView is running in single process mode. */ - public abstract void onRendererResponsive( - @NonNull WebView view, @Nullable WebViewRenderer renderer); + public abstract void onRenderProcessResponsive( + @NonNull WebView view, @Nullable WebViewRenderProcess renderer); }