Merge "Update APIs for the Chromium WebView" into klp-dev
diff --git a/api/current.txt b/api/current.txt
index d31a38dc..3c21165 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -30010,7 +30010,7 @@
method public deprecated void onConsoleMessage(java.lang.String, int, java.lang.String);
method public boolean onConsoleMessage(android.webkit.ConsoleMessage);
method public boolean onCreateWindow(android.webkit.WebView, boolean, boolean, android.os.Message);
- method public void onExceededDatabaseQuota(java.lang.String, java.lang.String, long, long, long, android.webkit.WebStorage.QuotaUpdater);
+ method public deprecated void onExceededDatabaseQuota(java.lang.String, java.lang.String, long, long, long, android.webkit.WebStorage.QuotaUpdater);
method public void onGeolocationPermissionsHidePrompt();
method public void onGeolocationPermissionsShowPrompt(java.lang.String, android.webkit.GeolocationPermissions.Callback);
method public void onHideCustomView();
@@ -30020,7 +30020,7 @@
method public boolean onJsPrompt(android.webkit.WebView, java.lang.String, java.lang.String, java.lang.String, android.webkit.JsPromptResult);
method public deprecated boolean onJsTimeout();
method public void onProgressChanged(android.webkit.WebView, int);
- method public void onReachedMaxAppCacheSize(long, long, android.webkit.WebStorage.QuotaUpdater);
+ method public deprecated void onReachedMaxAppCacheSize(long, long, android.webkit.WebStorage.QuotaUpdater);
method public void onReceivedIcon(android.webkit.WebView, android.graphics.Bitmap);
method public void onReceivedTitle(android.webkit.WebView, java.lang.String);
method public void onReceivedTouchIconUrl(android.webkit.WebView, java.lang.String, boolean);
@@ -30076,12 +30076,12 @@
method public int getCacheMode();
method public synchronized java.lang.String getCursiveFontFamily();
method public synchronized boolean getDatabaseEnabled();
- method public synchronized java.lang.String getDatabasePath();
+ method public deprecated synchronized java.lang.String getDatabasePath();
method public synchronized int getDefaultFixedFontSize();
method public synchronized int getDefaultFontSize();
method public synchronized java.lang.String getDefaultTextEncodingName();
method public static java.lang.String getDefaultUserAgent(android.content.Context);
- method public android.webkit.WebSettings.ZoomDensity getDefaultZoom();
+ method public deprecated android.webkit.WebSettings.ZoomDensity getDefaultZoom();
method public boolean getDisplayZoomControls();
method public synchronized boolean getDomStorageEnabled();
method public synchronized java.lang.String getFantasyFontFamily();
@@ -30118,11 +30118,11 @@
method public void setCacheMode(int);
method public synchronized void setCursiveFontFamily(java.lang.String);
method public synchronized void setDatabaseEnabled(boolean);
- method public synchronized void setDatabasePath(java.lang.String);
+ method public deprecated synchronized void setDatabasePath(java.lang.String);
method public synchronized void setDefaultFixedFontSize(int);
method public synchronized void setDefaultFontSize(int);
method public synchronized void setDefaultTextEncodingName(java.lang.String);
- method public void setDefaultZoom(android.webkit.WebSettings.ZoomDensity);
+ method public deprecated void setDefaultZoom(android.webkit.WebSettings.ZoomDensity);
method public void setDisplayZoomControls(boolean);
method public synchronized void setDomStorageEnabled(boolean);
method public deprecated void setEnableSmoothTransition(boolean);
@@ -30165,9 +30165,10 @@
public static final class WebSettings.LayoutAlgorithm extends java.lang.Enum {
method public static android.webkit.WebSettings.LayoutAlgorithm valueOf(java.lang.String);
method public static final android.webkit.WebSettings.LayoutAlgorithm[] values();
- enum_constant public static final android.webkit.WebSettings.LayoutAlgorithm NARROW_COLUMNS;
+ enum_constant public static final deprecated android.webkit.WebSettings.LayoutAlgorithm NARROW_COLUMNS;
enum_constant public static final android.webkit.WebSettings.LayoutAlgorithm NORMAL;
enum_constant public static final deprecated android.webkit.WebSettings.LayoutAlgorithm SINGLE_COLUMN;
+ enum_constant public static final android.webkit.WebSettings.LayoutAlgorithm TEXT_AUTOSIZING;
}
public static final class WebSettings.PluginState extends java.lang.Enum {
@@ -30220,7 +30221,7 @@
method public long getUsage();
}
- public static abstract interface WebStorage.QuotaUpdater {
+ public static abstract deprecated interface WebStorage.QuotaUpdater {
method public abstract void updateQuota(long);
}
@@ -30248,7 +30249,7 @@
method public boolean canGoForward();
method public deprecated boolean canZoomIn();
method public deprecated boolean canZoomOut();
- method public android.graphics.Picture capturePicture();
+ method public deprecated android.graphics.Picture capturePicture();
method public void clearCache(boolean);
method public void clearFormData();
method public void clearHistory();
@@ -30265,7 +30266,7 @@
method public void findAllAsync(java.lang.String);
method public void findNext(boolean);
method public void flingScroll(int, int);
- method public void freeMemory();
+ method public deprecated void freeMemory();
method public android.net.http.SslCertificate getCertificate();
method public int getContentHeight();
method public android.graphics.Bitmap getFavicon();
diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java
index 21b0578..aa57423 100644
--- a/core/java/android/webkit/WebChromeClient.java
+++ b/core/java/android/webkit/WebChromeClient.java
@@ -238,9 +238,10 @@
* @param totalQuota The total quota for all origins, in bytes
* @param quotaUpdater An instance of {@link WebStorage.QuotaUpdater} which
* must be used to inform the WebView of the new quota.
+ * @deprecated This method is no longer called; WebView now uses the HTML5 / JavaScript Quota
+ * Management API.
*/
- // Note that the callback must always be executed at some point to ensure
- // that the sleeping WebCore thread is woken up.
+ @Deprecated
public void onExceededDatabaseQuota(String url, String databaseIdentifier,
long quota, long estimatedDatabaseSize, long totalQuota,
WebStorage.QuotaUpdater quotaUpdater) {
@@ -263,9 +264,10 @@
* @param quota the current maximum Application Cache size, in bytes
* @param quotaUpdater An instance of {@link WebStorage.QuotaUpdater} which
* must be used to inform the WebView of the new quota.
+ * @deprecated This method is no longer called; WebView now uses the HTML5 / JavaScript Quota
+ * Management API.
*/
- // Note that the callback must always be executed at some point to ensure
- // that the sleeping WebCore thread is woken up.
+ @Deprecated
public void onReachedMaxAppCacheSize(long requiredStorage, long quota,
WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(quota);
diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java
index 7a38a16..98ef66e 100644
--- a/core/java/android/webkit/WebSettings.java
+++ b/core/java/android/webkit/WebSettings.java
@@ -33,14 +33,17 @@
/**
* Enum for controlling the layout of html.
* <ul>
- * <li>NORMAL means no rendering changes.</li>
+ * <li>NORMAL means no rendering changes. This is the recommended choice for maximum
+ * compatibility across different platforms and Android versions.</li>
* <li>SINGLE_COLUMN moves all content into one column that is the width of the
* view.</li>
- * <li>NARROW_COLUMNS makes all columns no wider than the screen if possible.</li>
+ * <li>NARROW_COLUMNS makes all columns no wider than the screen if possible. Only use
+ * this for API levels prior to {@link android.os.Build.VERSION_CODES#KITKAT}.</li>
* <li>TEXT_AUTOSIZING boosts font size of paragraphs based on heuristics to make
* the text readable when viewing a wide-viewport layout in the overview mode.
* It is recommended to enable zoom support {@link #setSupportZoom} when
- * using this mode.</li>
+ * using this mode. Supported from API level
+ * {@link android.os.Build.VERSION_CODES#KITKAT}</li>
* </ul>
*/
// XXX: These must match LayoutAlgorithm in Settings.h in WebCore.
@@ -51,10 +54,11 @@
*/
@Deprecated
SINGLE_COLUMN,
- NARROW_COLUMNS,
/**
- * @hide
+ * @deprecated This algorithm is now obsolete.
*/
+ @Deprecated
+ NARROW_COLUMNS,
TEXT_AUTOSIZING
}
@@ -510,7 +514,10 @@
* and {@link #setUseWideViewPort} can be used.
*
* @param zoom the zoom density
+ * @deprecated This method is no longer supported, see the function documentation for
+ * recommended alternatives.
*/
+ @Deprecated
public void setDefaultZoom(ZoomDensity zoom) {
throw new MustOverrideException();
}
@@ -523,6 +530,7 @@
*
* @return the zoom density
* @see #setDefaultZoom
+ * @deprecated Will only return the default value.
*/
public ZoomDensity getDefaultZoom() {
throw new MustOverrideException();
@@ -1059,10 +1067,13 @@
*
* @param databasePath a path to the directory where databases should be
* saved.
+ * @deprecated Database paths are managed by the implementation and calling this method
+ * will have no effect.
*/
// This will update WebCore when the Sync runs in the C++ side.
// Note that the WebCore Database Tracker only allows the path to be set
// once.
+ @Deprecated
public synchronized void setDatabasePath(String databasePath) {
throw new MustOverrideException();
}
@@ -1161,7 +1172,9 @@
*
* @return the String path to the database storage API databases
* @see #setDatabasePath
+ * @deprecated Database paths are managed by the implementation this method is obsolete.
*/
+ @Deprecated
public synchronized String getDatabasePath() {
throw new MustOverrideException();
}
diff --git a/core/java/android/webkit/WebStorage.java b/core/java/android/webkit/WebStorage.java
index 7d9373c..3bfe9cf 100644
--- a/core/java/android/webkit/WebStorage.java
+++ b/core/java/android/webkit/WebStorage.java
@@ -41,12 +41,9 @@
* See
* {@link WebChromeClient#onExceededDatabaseQuota} and
* {@link WebChromeClient#onReachedMaxAppCacheSize}.
+ * @deprecated This class is obsolete and no longer used.
*/
- // We primarily want this to allow us to call back the sleeping WebCore
- // thread from outside the WebViewCore class (as the native call is
- // private). It is imperative that the setDatabaseQuota method is
- // executed after a decision to either allow or deny new quota is made,
- // otherwise the WebCore thread will remain asleep.
+ @Deprecated
public interface QuotaUpdater {
/**
* Provides a new quota, specified in bytes.
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 15331dc..d05bba7 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1058,9 +1058,20 @@
* {@link android.os.Build.VERSION_CODES#HONEYCOMB} and
* {@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH} inclusive, the
* picture does not include fixed position elements or scrollable divs.
+ * <p>
+ * Note that from {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} the returned picture
+ * should only be drawn into bitmap-backed Canvas - using any other type of Canvas will involve
+ * additional conversion at a cost in memory and performance. Also the
+ * {@link android.graphics.Picture#createFromStream} and
+ * {@link android.graphics.Picture#writeToStream} methods are not supported on the
+ * returned object.
+ *
+ * @deprecated Use {@link #onDraw} to obtain a bitmap snapshot of the WebView, or
+ * {@link #saveWebArchive} or {@link #exportToPdf} to save the content to a file.
*
* @return a picture that captures the current contents of this WebView
*/
+ @Deprecated
public Picture capturePicture() {
checkThread();
if (DebugFlags.TRACE_API) Log.d(LOGTAG, "capturePicture");
@@ -1342,7 +1353,10 @@
/**
* Informs this WebView that memory is low so that it can free any available
* memory.
+ * @deprecated Memory caches are automatically dropped when no longer needed, and in response
+ * to system memory pressure.
*/
+ @Deprecated
public void freeMemory() {
checkThread();
if (DebugFlags.TRACE_API) Log.d(LOGTAG, "freeMemory");