merge in lmp-mr1-release history after reset to lmp-mr1-dev
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromium.java b/chromium/java/com/android/webview/chromium/WebViewChromium.java
index b347103..d1d037b 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromium.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromium.java
@@ -250,9 +250,9 @@
                 mWebView.getContext(), isAccessFromFileURLsGrantedByDefault,
                 areLegacyQuirksEnabled));
 
-        if (mAppTargetSdkVersion <= Build.VERSION_CODES.KITKAT) {
+        if (mAppTargetSdkVersion < Build.VERSION_CODES.LOLLIPOP) {
+            // Prior to Lollipop we always allowed third party cookies and mixed content.
             mWebSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
-            // On KK and older versions we always allowed third party cookies.
             mWebSettings.setAcceptThirdPartyCookies(true);
             mWebSettings.getAwSettings().setZeroLayoutHeightDisablesViewportQuirk(true);
         }
@@ -321,8 +321,8 @@
         AwContentsStatics.setRecordFullDocument(sRecordWholeDocumentEnabledByApi ||
                 mAppTargetSdkVersion < Build.VERSION_CODES.LOLLIPOP);
 
-        if (mAppTargetSdkVersion <= Build.VERSION_CODES.KITKAT) {
-            // On KK and older versions, JavaScript objects injected via addJavascriptInterface
+        if (mAppTargetSdkVersion < Build.VERSION_CODES.LOLLIPOP) {
+            // Prior to Lollipop, JavaScript objects injected via addJavascriptInterface
             // were not inspectable.
             mAwContents.disableJavascriptInterfacesInspection();
         }
diff --git a/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java b/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
index 6b4b894..f3351c5 100644
--- a/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
+++ b/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
@@ -911,14 +911,23 @@
                 uploadFileCallback.onReceiveValue(s);
             }
         };
+
+        // Invoke the new callback introduced in Lollipop. If the app handles
+        // it, we're done here.
         if (mWebChromeClient.onShowFileChooser(mWebView, callbackAdapter, adapter)) {
             return;
         }
-        if (mWebView.getContext().getApplicationInfo().targetSdkVersion >
-                Build.VERSION_CODES.KITKAT) {
+
+        // If the app did not handle it and we are running on Lollipop or newer, then
+        // abort.
+        if (mWebView.getContext().getApplicationInfo().targetSdkVersion >=
+                Build.VERSION_CODES.LOLLIPOP) {
             uploadFileCallback.onReceiveValue(null);
             return;
         }
+
+        // Otherwise, for older apps, attempt to invoke the legacy (hidden) API for
+        // backwards compatibility.
         ValueCallback<Uri> innerCallback = new ValueCallback<Uri>() {
             private boolean mCompleted;
             @Override