Merge "[webview] rename unresponsive renderer APIs"
diff --git a/api/current.txt b/api/current.txt
index dc8125a31..31bc4ab 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -54719,8 +54719,8 @@
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 @@
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<java.lang.Boolean>);
@@ -54887,14 +54887,15 @@
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 deb2284..beacace 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -9848,8 +9848,8 @@
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 @@
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 @@
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 3555822..034cabd 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1704,7 +1704,7 @@
/**
- * Gets the WebView renderer associated with this WebView.
+ * Gets a handle to the WebView renderer process associated with this WebView.
*
* <p>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 @@
* 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.
*
* <p>The renderer client encapsulates callbacks relevant to WebView renderer
- * state. See {@link WebViewRendererClient} for details.
+ * state. See {@link WebViewRenderProcessClient} for details.
*
* <p>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.
*
- * <p> {@link WebViewRendererClient} callbacks will run on the thread that this WebView was
+ * <p> {@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 4c8f72a..010c0b7 100644
--- a/core/java/android/webkit/WebViewProvider.java
+++ b/core/java/android/webkit/WebViewProvider.java
@@ -238,13 +238,15 @@
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 fc38cd9..1be2210 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 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 2fadf54..24b8fb5 100644
--- a/core/java/android/webkit/WebViewRendererClient.java
+++ b/core/java/android/webkit/WebViewRenderProcessClient.java
@@ -22,14 +22,14 @@
/**
* 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 @@
*
* <p>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.
+ *
+ * <p>The minimum interval between successive calls to {@code onRenderProcessUnresponsive} is 5
+ * seconds.
*
* <p>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 @@
* 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.
*
* <p>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.
*
* <p>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);
}