resolved conflicts for merge of 8adc828f to master

Change-Id: I55678d34730df191d541762d4b2025bff2f2460b
diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
index 4e2733f..89ac13d 100644
--- a/src/com/android/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -48,7 +48,7 @@
  * android.os.webkit.LoadListener rather than handling it here.
  *
  */
-class FetchUrlMimeType extends AsyncTask<ContentValues, String, String> {
+class FetchUrlMimeType extends AsyncTask<ContentValues, String, ContentValues> {
 
     public static final String URI = "uri";
     public static final String USER_AGENT = "user_agent";
@@ -64,7 +64,7 @@
     }
 
     @Override
-    public String doInBackground(ContentValues... values) {
+    public ContentValues doInBackground(ContentValues... values) {
         mValues = values[0];
 
         // Check to make sure we have a URI to download
@@ -89,7 +89,7 @@
         }
 
         HttpResponse response;
-        String mimeType = null;
+        ContentValues result = new ContentValues();
         try {
             response = client.execute(request);
             // We could get a redirect here, but if we do lets let
@@ -98,11 +98,16 @@
             if (response.getStatusLine().getStatusCode() == 200) {
                 Header header = response.getFirstHeader("Content-Type");
                 if (header != null) {
-                    mimeType = header.getValue();
+                    String mimeType = header.getValue();
                     final int semicolonIndex = mimeType.indexOf(';');
                     if (semicolonIndex != -1) {
                         mimeType = mimeType.substring(0, semicolonIndex);
                     }
+                    result.put("Content-Type", mimeType);
+                }
+                Header contentDispositionHeader = response.getFirstHeader("Content-Disposition");
+                if (contentDispositionHeader != null) {
+                    result.put("Content-Disposition", contentDispositionHeader.getValue());
                 }
             }
         } catch (IllegalArgumentException ex) {
@@ -113,11 +118,13 @@
             client.close();
         }
 
-        return mimeType;
+        return result;
     }
 
    @Override
-    public void onPostExecute(String mimeType) {
+    public void onPostExecute(ContentValues values) {
+       final String mimeType = values.getAsString("Content-Type");
+       final String contentDisposition = values.getAsString("Content-Disposition");
        if (mimeType != null) {
            String url = mValues.getAsString(URI);
            if (mimeType.equalsIgnoreCase("text/plain") ||
@@ -130,7 +137,7 @@
                }
            }
            String filename = URLUtil.guessFileName(url,
-                   null, mimeType);
+                   contentDisposition, mimeType);
            mRequest.setDestinationInExternalFilesDir(mActivity, null, filename);
        }