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);
 }