[AUTO UPDATE] Copying from upstream Mojo Repository.
a8014a10e13208df505403406f293ed325a0178a
  Fri, 10 Jun 2016 09:41:17 -0700, viettrungluu@chromium.org
  Some Android-related gn build rule changes, taken from monet b4d999ca962c3df144e2158b22e88017c2cceedd.

62806213fa9dea7cb0c4bfc83c139f29ce1f6b2c
  Wed, 8 Jun 2016 16:21:26 -0700, viettrungluu@chromium.org
  Roll base to 0032c8e1a72eb85d947d8df8de503caa62b4d0a8.

ca4a174589ba9e4c171f88a25ee84558bcda14d2
  Wed, 8 Jun 2016 08:56:37 -0700, viettrungluu@chromium.org
  Roll base to ec59756cc1ad02cc835bcca10056a621c9eb346c.
diff --git a/config/android/internal_rules.gni b/config/android/internal_rules.gni
index 08fe1e5..1552bc2 100644
--- a/config/android/internal_rules.gni
+++ b/config/android/internal_rules.gni
@@ -490,8 +490,8 @@
       visibility = invoker.visibility
     }
     public_deps = [
-      ":${target_name}__jar_toc",
       ":$_output_jar_target",
+      ":${target_name}__jar_toc",
     ]
   }
 }
@@ -1084,9 +1084,7 @@
   }
 
   _java_files = []
-  if (defined(invoker.java_files)) {
-    _java_files = invoker.java_files
-  } else if (defined(invoker.DEPRECATED_java_in_dir)) {
+  if (defined(invoker.DEPRECATED_java_in_dir)) {
     _src_dir = invoker.DEPRECATED_java_in_dir + "/src"
     _src_dir_exists = exec_script("//build/dir_exists.py",
                                   [ rebase_path(_src_dir, root_build_dir) ],
@@ -1095,16 +1093,20 @@
            "In GN, java_in_dir should be the fully specified java directory " +
                "(i.e. including the trailing \"/src\")")
 
-    _java_files_build_rel = exec_script(
-            "//build/android/gyp/find.py",
-            [
-              "--pattern",
-              "*.java",
-              rebase_path(invoker.DEPRECATED_java_in_dir, root_build_dir),
-            ],
-            "list lines")
+    _java_files_build_rel =
+        exec_script("//build/android/gyp/find.py",
+                    [
+                      "--pattern",
+                      "*.java",
+                      rebase_path(invoker.DEPRECATED_java_in_dir,
+                                  root_build_dir),
+                    ],
+                    "list lines")
     _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir)
   }
+  if (defined(invoker.java_files)) {
+    _java_files += invoker.java_files
+  }
   assert(_java_files != [] || _srcjar_deps != [] || _srcjars != [])
 
   _compile_java_target = "${_template_name}__compile_java"
diff --git a/config/android/rules.gni b/config/android/rules.gni
index aa5fe9e..b530f5a 100644
--- a/config/android/rules.gni
+++ b/config/android/rules.gni
@@ -885,8 +885,8 @@
       "//testing/android/junit:junit_test_support",
       "//third_party/junit",
       "//third_party/mockito:mockito_java",
-      "//third_party/robolectric:robolectric_java",
       "//third_party/robolectric:android-all-4.3_r2-robolectric-0",
+      "//third_party/robolectric:robolectric_java",
     ]
     if (defined(invoker.deps)) {
       deps += invoker.deps
@@ -1022,19 +1022,7 @@
 template("java_prebuilt") {
   set_sources_assignment_filter([])
   java_prebuilt_impl(target_name) {
-    jar_path = invoker.jar_path
-    if (defined(invoker.testonly)) {
-      testonly = invoker.testonly
-    }
-    if (defined(invoker.deps)) {
-      deps = invoker.deps
-    }
-    if (defined(invoker.proguard_config)) {
-      proguard_config = invoker.proguard_config
-    }
-    if (defined(invoker.proguard_preprocess)) {
-      proguard_preprocess = invoker.proguard_preprocess
-    }
+    forward_variables_from(invoker, "*")
   }
 }
 
@@ -1619,8 +1607,8 @@
 
     # This target generates the input file _all_resources_zip_path.
     deps = [
-      ":$process_resources_target",
       ":$final_dex_target_name",
+      ":$process_resources_target",
     ]
     if (defined(invoker.deps)) {
       deps += invoker.deps
diff --git a/secondary/third_party/android_tools/BUILD.gn b/secondary/third_party/android_tools/BUILD.gn
index dc934cb..6dc2583 100644
--- a/secondary/third_party/android_tools/BUILD.gn
+++ b/secondary/third_party/android_tools/BUILD.gn
@@ -28,6 +28,11 @@
   jar_path = "$android_sdk/uiautomator.jar"
 }
 
+java_prebuilt("android_support_multidex_java") {
+  supports_android = true
+  jar_path = "$android_sdk_root/extras/android/support/multidex/library/libs/android-support-multidex.jar"
+}
+
 android_java_prebuilt("android_support_v13_java") {
   jar_path =
       "$android_sdk_root/extras/android/support/v13/android-support-v13.jar"
@@ -59,8 +64,8 @@
 
 android_java_prebuilt("android_support_v7_mediarouter_java") {
   deps = [
-    ":android_support_v7_mediarouter_resources",
     ":android_support_v7_appcompat_java",
+    ":android_support_v7_mediarouter_resources",
   ]
   jar_path = "$android_sdk_root/extras/android/support/v7/mediarouter/libs/android-support-v7-mediarouter.jar"
 }