From 1e13fae31cc05baef8bbca641d5fe2cb4403dc09 Mon Sep 17 00:00:00 2001 From: Nate Fischer Date: Tue, 25 Sep 2018 18:27:25 -0700 Subject: [PATCH] WebView: deprecate accidentally-exposed constructors This deprecates public-exposed constructors. These constructors were exposed by accident. These classes shouldn't be instantiated by applications, but should only be instantiated by WebView. In some cases, the app should get a singleton instance using a #getInstance method. In these cases, we document this explicitly in the deprecation note. Bug: 110807530 Test: make docs, manually verify docs look good. Change-Id: Ibe73b3399c9ced0cf4fbb01e1df13564476df252 --- api/current.txt | 12 ++++++------ core/java/android/webkit/CookieManager.java | 7 +++++++ .../java/android/webkit/RenderProcessGoneDetail.java | 7 +++++++ core/java/android/webkit/SafeBrowsingResponse.java | 6 ++++++ .../java/android/webkit/ServiceWorkerController.java | 8 ++++++++ core/java/android/webkit/TracingController.java | 7 +++++++ core/java/android/webkit/WebViewDatabase.java | 8 ++++++++ 7 files changed, 49 insertions(+), 6 deletions(-) diff --git a/api/current.txt b/api/current.txt index bcd35d19ed1d2..b8c1d18de166d 100755 --- a/api/current.txt +++ b/api/current.txt @@ -51406,7 +51406,7 @@ package android.webkit { } public abstract class CookieManager { - ctor public CookieManager(); + ctor public deprecated CookieManager(); method public abstract boolean acceptCookie(); method public abstract boolean acceptThirdPartyCookies(android.webkit.WebView); method public static boolean allowFileSchemeCookies(); @@ -51506,13 +51506,13 @@ package android.webkit { } public abstract class RenderProcessGoneDetail { - ctor public RenderProcessGoneDetail(); + ctor public deprecated RenderProcessGoneDetail(); method public abstract boolean didCrash(); method public abstract int rendererPriorityAtExit(); } public abstract class SafeBrowsingResponse { - ctor public SafeBrowsingResponse(); + ctor public deprecated SafeBrowsingResponse(); method public abstract void backToSafety(boolean); method public abstract void proceed(boolean); method public abstract void showInterstitial(boolean); @@ -51524,7 +51524,7 @@ package android.webkit { } public abstract class ServiceWorkerController { - ctor public ServiceWorkerController(); + ctor public deprecated ServiceWorkerController(); method public static android.webkit.ServiceWorkerController getInstance(); method public abstract android.webkit.ServiceWorkerWebSettings getServiceWorkerWebSettings(); method public abstract void setServiceWorkerClient(android.webkit.ServiceWorkerClient); @@ -51573,7 +51573,7 @@ package android.webkit { } public abstract class TracingController { - ctor public TracingController(); + ctor public deprecated TracingController(); method public static android.webkit.TracingController getInstance(); method public abstract boolean isTracing(); method public abstract void start(android.webkit.TracingConfig); @@ -52113,7 +52113,7 @@ package android.webkit { } public abstract class WebViewDatabase { - ctor public WebViewDatabase(); + ctor public deprecated WebViewDatabase(); method public abstract deprecated void clearFormData(); method public abstract void clearHttpAuthUsernamePassword(); method public abstract deprecated void clearUsernamePassword(); diff --git a/core/java/android/webkit/CookieManager.java b/core/java/android/webkit/CookieManager.java index ae6a2fd787d78..23d12374453fd 100644 --- a/core/java/android/webkit/CookieManager.java +++ b/core/java/android/webkit/CookieManager.java @@ -25,6 +25,13 @@ import android.net.WebAddress; * Cookies are manipulated according to RFC2109. */ public abstract class CookieManager { + /** + * @deprecated This class should not be constructed by applications, use {@link #getInstance} + * instead to fetch the singleton instance. + */ + // TODO(ntfschr): mark this as @SystemApi after a year. + @Deprecated + public CookieManager() {} @Override protected Object clone() throws CloneNotSupportedException { diff --git a/core/java/android/webkit/RenderProcessGoneDetail.java b/core/java/android/webkit/RenderProcessGoneDetail.java index 0843e26ea19c8..9beeaa5c15242 100644 --- a/core/java/android/webkit/RenderProcessGoneDetail.java +++ b/core/java/android/webkit/RenderProcessGoneDetail.java @@ -21,6 +21,13 @@ package android.webkit; * exited. The application may use this to decide how to handle the situation. **/ public abstract class RenderProcessGoneDetail { + /** + * @deprecated This class should not be constructed by applications. + */ + // TODO(ntfschr): mark this as @SystemApi after a year. + @Deprecated + public RenderProcessGoneDetail() {} + /** * Indicates whether the render process was observed to crash, or whether * it was killed by the system. diff --git a/core/java/android/webkit/SafeBrowsingResponse.java b/core/java/android/webkit/SafeBrowsingResponse.java index 7839a00eff692..ca33a0c659af1 100644 --- a/core/java/android/webkit/SafeBrowsingResponse.java +++ b/core/java/android/webkit/SafeBrowsingResponse.java @@ -27,6 +27,12 @@ package android.webkit; * {@link android.webkit.WebView#getSafeBrowsingPrivacyPolicyUrl()}. */ public abstract class SafeBrowsingResponse { + /** + * @deprecated This class should not be constructed by applications. + */ + // TODO(ntfschr): mark this as @SystemApi after a year. + @Deprecated + public SafeBrowsingResponse() {} /** * Display the default interstitial. diff --git a/core/java/android/webkit/ServiceWorkerController.java b/core/java/android/webkit/ServiceWorkerController.java index 3517c74b680e9..d7e0715a37709 100644 --- a/core/java/android/webkit/ServiceWorkerController.java +++ b/core/java/android/webkit/ServiceWorkerController.java @@ -37,6 +37,14 @@ import android.annotation.Nullable; */ public abstract class ServiceWorkerController { + /** + * @deprecated This class should not be constructed by applications, use {@link #getInstance()} + * instead to fetch the singleton instance. + */ + // TODO(ntfschr): mark this as @SystemApi after a year. + @Deprecated + public ServiceWorkerController() {} + /** * Returns the default ServiceWorkerController instance. At present there is * only one ServiceWorkerController instance for all WebView instances, diff --git a/core/java/android/webkit/TracingController.java b/core/java/android/webkit/TracingController.java index 30f465cb42c6a..99081827658aa 100644 --- a/core/java/android/webkit/TracingController.java +++ b/core/java/android/webkit/TracingController.java @@ -43,6 +43,13 @@ import java.util.concurrent.Executor; *

*/ public abstract class TracingController { + /** + * @deprecated This class should not be constructed by applications, use {@link #getInstance} + * instead to fetch the singleton instance. + */ + // TODO(ntfschr): mark this as @SystemApi after a year. + @Deprecated + public TracingController() {} /** * Returns the default TracingController instance. At present there is diff --git a/core/java/android/webkit/WebViewDatabase.java b/core/java/android/webkit/WebViewDatabase.java index f6166c58a4c90..f346c602c3b6e 100644 --- a/core/java/android/webkit/WebViewDatabase.java +++ b/core/java/android/webkit/WebViewDatabase.java @@ -30,6 +30,14 @@ import android.content.Context; * */ public abstract class WebViewDatabase { + /** + * @deprecated This class should not be constructed by applications, use {@link + * #getInstance(Context)} instead to fetch the singleton instance. + */ + // TODO(ntfschr): mark this as @SystemApi after a year. + @Deprecated + public WebViewDatabase() {} + /** * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} */