Merge "Address API Feedback" into lmp-dev
diff --git a/api/current.txt b/api/current.txt
index 6769ff6..45c9afa 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -36572,15 +36572,14 @@
   public static abstract class WebChromeClient.FileChooserParams {
     ctor public WebChromeClient.FileChooserParams();
     method public abstract java.lang.String[] getAcceptTypes();
-    method public abstract java.lang.String getDefaultFilename();
+    method public abstract java.lang.String getFilenameHint();
     method public abstract int getMode();
     method public abstract java.lang.CharSequence getTitle();
     method public abstract android.webkit.WebChromeClient.UploadHelper getUploadHelper();
     method public abstract boolean isCaptureEnabled();
-    field public static final int OPEN = 0; // 0x0
-    field public static final int OPEN_FOLDER = 2; // 0x2
-    field public static final int OPEN_MULTIPLE = 1; // 0x1
-    field public static final int SAVE = 3; // 0x3
+    field public static final int MODE_OPEN = 0; // 0x0
+    field public static final int MODE_OPEN_MULTIPLE = 1; // 0x1
+    field public static final int MODE_SAVE = 3; // 0x3
   }
 
   public static abstract class WebChromeClient.UploadHelper {
diff --git a/core/java/android/webkit/PermissionRequest.java b/core/java/android/webkit/PermissionRequest.java
index 862e8c2..6ad639c 100644
--- a/core/java/android/webkit/PermissionRequest.java
+++ b/core/java/android/webkit/PermissionRequest.java
@@ -19,8 +19,10 @@
 import android.net.Uri;
 
 /**
- * This interface defines a permission request and is used when web content
- * requests access to protected resources.
+ * This class defines a permission request and is used when web content
+ * requests access to protected resources. The permission request related events
+ * are delivered via {@link WebChromeClient#onPermissionRequest} and
+ * {@link WebChromeClient#onPermissionRequestCanceled}.
  *
  * Either {@link #grant(String[]) grant()} or {@link #deny()} must be called in UI
  * thread to respond to the request.
diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java
index 35c9598..547acfa 100644
--- a/core/java/android/webkit/WebChromeClient.java
+++ b/core/java/android/webkit/WebChromeClient.java
@@ -452,14 +452,16 @@
      */
     public static abstract class FileChooserParams {
         /** Open single file. Requires that the file exists before allowing the user to pick it. */
-        public static final int OPEN = 0;
+        public static final int MODE_OPEN = 0;
         /** Like Open but allows multiple files to be selected. */
-        public static final int OPEN_MULTIPLE = 1;
+        public static final int MODE_OPEN_MULTIPLE = 1;
         /** Like Open but allows a folder to be selected. The implementation should enumerate
-            all files selected by this operation. */
-        public static final int OPEN_FOLDER = 2;
+            all files selected by this operation.
+            This feature is not supported at the moment.
+            @hide */
+        public static final int MODE_OPEN_FOLDER = 2;
         /**  Allows picking a nonexistent file and saving it. */
-        public static final int SAVE = 3;
+        public static final int MODE_SAVE = 3;
 
         /**
          * Returns a helper to simplify choosing and uploading files. The helper builds a default
@@ -474,7 +476,8 @@
         public abstract int getMode();
 
         /**
-         * Returns an array of acceptable MIME types. The array will be empty if no
+         * Returns an array of acceptable MIME types. The returned MIME type
+         * could be partial such as audio/*. The array will be empty if no
          * acceptable types are specified.
          */
         public abstract String[] getAcceptTypes();
@@ -494,9 +497,9 @@
         public abstract CharSequence getTitle();
 
         /**
-         * The file path of a default selection if specified, or null.
+         * The file name of a default selection if specified, or null.
          */
-        public abstract String getDefaultFilename();
+        public abstract String getFilenameHint();
     };
 
     /**
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 1b0cb3d..e1f19ee 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1624,10 +1624,18 @@
     }
 
     /**
-     * Enable drawing the entire HTML document at a significant performance
-     * cost. Call this to enable drawing and capturing HTML content outside of
-     * the WebView's viewport. This should be called before any WebViews are
-     * created.
+     * For apps targeting the L release, WebView has a new default behavior that reduces
+     * memory footprint and increases performance by intelligently choosing
+     * the portion of the HTML document that needs to be drawn. These
+     * optimizations are transparent to the developers. However, under certain
+     * circumstances, an App developer may want to disable them:
+     * 1. When an app uses {@link #onDraw} to do own drawing and accesses portions
+     * of the page that is way outside the visible portion of the page.
+     * 2. When an app uses {@link #capturePicture} to capture a very large HTML document.
+     * Note that capturePicture is a deprecated API.
+     *
+     * Enabling drawing the entire HTML document has a significant performance
+     * cost. This method should be called before any WebViews are created.
      */
     public static void enableSlowWholeDocumentDraw() {
         getFactory().getStatics().enableSlowWholeDocumentDraw();