Implement file downloads for Chrome HTTP stack (Java side)

This just adds an extra entrypoint to BrowserFrame. It delegates
directly to the identical method in CallbackProxy, and from there
downloads are handled in the same way as before.

See matching C++ change in external/webkit (I81300400)

Change-Id: I87e71debe475d0d24e13a5763fbe803e3cd78cf5
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java
index ad5765b..6e588b9 100644
--- a/core/java/android/webkit/BrowserFrame.java
+++ b/core/java/android/webkit/BrowserFrame.java
@@ -1079,6 +1079,20 @@
         mCallbackProxy.onReceivedHttpAuthRequest(handler, host, realm);
     }
 
+    /**
+     * Called by JNI when the native HTTP stack needs to download a file.
+     *
+     * We delegate the request to CallbackProxy, which owns the current app's
+     * DownloadListener.
+     */
+    private void downloadStart(String url, String userAgent,
+            String contentDisposition, String mimeType, long contentLength) {
+        mimeType = MimeTypeMap.getSingleton().remapGenericMimeType(
+                mimeType, url, contentDisposition);
+        mCallbackProxy.onDownloadStart(url, userAgent,
+                contentDisposition, mimeType, contentLength);
+    }
+
     //==========================================================================
     // native functions
     //==========================================================================