Create the download dir if necessary.

issue:2905874
Change-Id: Ica70d8f425f893f4ab353758e2a96e87ad7d8e67
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 9dd801d..ca63305 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -1418,6 +1418,13 @@
                 if (Environment.MEDIA_MOUNTED.equals(state)) {
                     String directory = Environment.getExternalStoragePublicDirectory(
                             Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + File.separator;
+                    File dir = new File(directory);
+                    if (!dir.exists() && !dir.mkdirs()) {
+                      Log.e(LOGTAG, "Save as Web Archive: mkdirs for " + directory + " failed!");
+                      Toast.makeText(BrowserActivity.this, R.string.webarchive_failed,
+                          Toast.LENGTH_SHORT).show();
+                      break;
+                    }
                     getTopWindow().saveWebArchive(directory, true, new ValueCallback<String>() {
                         @Override
                         public void onReceiveValue(String value) {