Roll base to ec59756cc1ad02cc835bcca10056a621c9eb346c.

TBR=jamesr@chromium.org

Review URL: https://codereview.chromium.org/2053413002 .
diff --git a/DEPS b/DEPS
index d160d42..9107191 100644
--- a/DEPS
+++ b/DEPS
@@ -19,7 +19,7 @@
 
 vars = {
   'chromium_git': 'https://chromium.googlesource.com',
-  'base_revision': '3ed5621c3408ce7109597b81faa0c27f1085a2cb',
+  'base_revision': 'ec59756cc1ad02cc835bcca10056a621c9eb346c',
   'boringssl_revision': '2deb984187ce8f6c739c780e7fe95e859e93b3da',
   'buildtools_revision': '222bd42ce39d1bd8f08fe089b066f49c469e1cdf',
   'gurl_revision': '718eee97ed6a4df41d14726eb2eddc871d9eaaa3',
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index aa5fe9e..b530f5a 100644
--- a/build/config/android/rules.gni
+++ b/build/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/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn
index c674d9a..2b806f4 100644
--- a/build/secondary/third_party/android_tools/BUILD.gn
+++ b/build/secondary/third_party/android_tools/BUILD.gn
@@ -29,6 +29,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"
@@ -60,8 +65,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"
 }
diff --git a/net/android/gurl_utils.cc b/net/android/gurl_utils.cc
index c8cb1e4..8fcfe0d 100644
--- a/net/android/gurl_utils.cc
+++ b/net/android/gurl_utils.cc
@@ -10,18 +10,16 @@
 
 namespace net {
 
-jstring GetOrigin(JNIEnv* env, jclass clazz, jstring url) {
+ScopedJavaLocalRef<jstring> GetOrigin(JNIEnv* env, jclass clazz, jstring url) {
   GURL host(base::android::ConvertJavaStringToUTF16(env, url));
 
-  return base::android::ConvertUTF8ToJavaString(env,
-      host.GetOrigin().spec()).Release();
+  return base::android::ConvertUTF8ToJavaString(env, host.GetOrigin().spec());
 }
 
-jstring GetScheme(JNIEnv* env, jclass clazz, jstring url) {
+ScopedJavaLocalRef<jstring> GetScheme(JNIEnv* env, jclass clazz, jstring url) {
   GURL host(base::android::ConvertJavaStringToUTF16(env, url));
 
-  return base::android::ConvertUTF8ToJavaString(env,
-      host.scheme()).Release();
+  return base::android::ConvertUTF8ToJavaString(env, host.scheme());
 }
 
 bool RegisterGURLUtils(JNIEnv* env) {
diff --git a/net/cert/x509_util_android.cc b/net/cert/x509_util_android.cc
index e3496b2..9648ffb 100644
--- a/net/cert/x509_util_android.cc
+++ b/net/cert/x509_util_android.cc
@@ -27,8 +27,12 @@
   }
 }
 
-jobject GetApplicationContext(JNIEnv* env, jclass clazz) {
-  return base::android::GetApplicationContext();
+ScopedJavaLocalRef<jobject> GetApplicationContext(JNIEnv* env, jclass clazz) {
+  ScopedJavaLocalRef<jobject> r;
+  // Must use Reset to force creation of a new local ref, instead of trying to
+  // adopt the global-ref'ed jobject as a local ref as the constructor would.
+  r.Reset(env, base::android::GetApplicationContext());
+  return r;
 }
 
 bool RegisterX509Util(JNIEnv* env) {