Cronet Import: Tweak Android.extras.bp

Those are the following changes that happened here:
* JniProcessor plugin has been deleted so all java libraries won't compile anymore so I had to create manual ugly targets that generates XJni.java classes for those java_librares.
* added `asset_dirs` for unit-tests as Chrome recently added a CHECK for that https://chromium-review.googlesource.com/c/chromium/src/+/4611280. This was crashing the test and also failing some of the previously disabled tests, those can now be re-enabled.
* added missing javafiles manually such as Batch.java and DoNotBatch.java.
* added more test data for `net_unittests_data`.

Change-Id: I5f952bfcc77792e244d14414c89c29c365dda075
diff --git a/Android.extras.bp b/Android.extras.bp
index 44014a9..8add3e7 100644
--- a/Android.extras.bp
+++ b/Android.extras.bp
@@ -79,7 +79,7 @@
 // per dependency tree. It must include all dependent sources that contain JNI annotations
 // (non-exclusive).
 genrule_defaults {
-    name: "jni_registration_generator_defaults",
+    name: "gen_jni_registration_generator_defaults",
     cmd: "current_dir=`basename \\`pwd\\``; " +
          "for f in $(in); " +
          "do " +
@@ -93,6 +93,7 @@
          "--include-test-only " +
          "--use-proxy-hash " +
          "--manual-jni-registration " +
+         "--module-name=cronet_tests " +
          "--header-path " +
          "$(genDir)/components/cronet/android/cronet_jni_registration_generated.h",
     out: [
@@ -140,10 +141,15 @@
     defaults: [
         "mts-target-sdk-version-current",
     ],
+    asset_dirs: [
+        "third_party/icu/android",
+    ],
+    aaptflags: ["-0 .dat"],
     compile_multilib: "both",
     min_sdk_version: "31", // b/270049141
     srcs: [
         ":cronet_native_unittests_defaults_srcs",
+        ":cronet_aml_testing_android_native_test_native_test_jni__java__testing",
     ],
     static_libs: [
         "androidx.annotation_annotation",
@@ -178,6 +184,7 @@
 java_library {
     name: "cronet_for_testing_net_java",
     srcs: [
+        ":cronet_aml_net_test_files_jni_headers__java__testing",
         ":cronet_for_testing_net_java_srcs",
     ],
     aidl: {
@@ -201,7 +208,8 @@
     srcs: [
         "net/data/**/*",
         "net/third_party/nist-pkits/**/*",
-        "net/third_party/quiche/src/quiche/common/platform/api/testdir/**/*"
+        "net/third_party/quiche/src/quiche/common/platform/api/testdir/**/*",
+        "net/third_party/quiche/src/quiche/common/anonymous_tokens/testdata/**/*",
     ],
 }
 
@@ -313,6 +321,8 @@
         "base/test/android/javatests/**/TestFileUtil.java",
         "base/test/android/javatests/**/TimeoutTimer.java",
         "base/test/android/javatests/**/UrlUtils.java",
+        "base/test/android/javatests/**/Batch.java",
+        "base/test/android/javatests/**/DoNotBatch.java",
         "net/url_request/FailurePhase.java",
     ]
 }
@@ -336,12 +346,13 @@
         "components/cronet/android/test/**/QuicTestServer.java",
         "components/cronet/android/test/**/MockCertVerifier.java",
         "components/cronet/android/test/**/MockUrlRequestJobFactory.java",
+        "components/cronet/android/test/**/UrlResponseInfoSubject.java",
     ],
 }
 
 genrule {
-    name: "cronet_java_tests_jni",
-    defaults: ["jni_registration_generator_defaults"],
+    name: "cronet_java_tests_gen_jni",
+    defaults: ["gen_jni_registration_generator_defaults"],
     srcs: [
       ":cronet_aml_javatests_sources",
       ":cronet_testserver_utils_srcs",
@@ -358,8 +369,9 @@
     manifest: "components/cronet/android/test/src/org/chromium/net/AndroidManifest.xml",
     srcs: [
         ":cronet_aml_javatests_sources",
-        ":cronet_java_tests_jni",
+        ":cronet_java_tests_gen_jni",
         ":cronet_testserver_utils_srcs",
+        ":cronet_aml_test_files_jni_headers__java__testing",
     ],
     sdk_version: "module_current",
     min_sdk_version: "30",
@@ -388,3 +400,178 @@
     ],
 }
 
+// --------------------------- JNI MANUAL HACKS ------------------------
+
+// This is a horrible hack. Please do not replicate in gn2bp
+// Delete this once gn2bp has been tweaked to accommodate the JNI changes.
+// This is a replacement for the JNI java processor that was deleted.
+java_genrule {
+    name: "cronet_aml_net_test_files_jni_headers__java__testing",
+    srcs: [
+        "net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java",
+        "net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerImpl.java",
+    ],
+    cmd: "$(location third_party/jni_zero/jni_zero.py) from-source " +
+         "--output-dir " +
+         "$(genDir)/net/net_extra_jni " +
+         "--extra-include " +
+         "base/android/jni_generator/jni_generator_helper.h " +
+         "--srcjar-path " +
+         "$(genDir)/net/net_extra_jni.srcjar " +
+         "--use-proxy-hash " +
+         "--output-name " +
+         "DummySpnegoAuthenticator_jni.h " +
+         "--output-name " +
+         "EmbeddedTestServerImpl_jni.h " +
+         "--input-file " +
+         "$(location net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java) " +
+         "--input-file " +
+         "$(location net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerImpl.java) " +
+         "&& zipinfo -1 $(genDir)/net/net_extra_jni.srcjar | grep GEN_JNI.java | zip -d -@ $(genDir)/net/net_extra_jni.srcjar",
+    out: [
+        "net/net_extra_jni.srcjar",
+    ],
+    tool_files: [
+        "build/action_helpers.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "build/zip_helpers.py",
+        "third_party/jni_zero/codegen/placeholder_gen_jni_java.py",
+        "third_party/jni_zero/codegen/proxy_impl_java.py",
+        "third_party/jni_zero/common.py",
+        "third_party/jni_zero/java_lang_classes.py",
+        "third_party/jni_zero/java_types.py",
+        "third_party/jni_zero/jni_generator.py",
+        "third_party/jni_zero/jni_registration_generator.py",
+        "third_party/jni_zero/jni_zero.py",
+        "third_party/jni_zero/parse.py",
+        "third_party/jni_zero/proxy.py",
+    ],
+}
+
+// This is a horrible hack. Please do not replicate in gn2bp
+// Delete this once gn2bp has been tweaked to accommodate the JNI changes.
+// This is a replacement for the JNI java processor that was deleted.
+// GN: //testing/android/native_test:native_test_jni__testing
+java_genrule {
+    name: "cronet_aml_testing_android_native_test_native_test_jni__java__testing",
+    srcs: [
+        "testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java",
+    ],
+    cmd: "$(location third_party/jni_zero/jni_zero.py) from-source " +
+         "--output-dir " +
+         "$(genDir)/testing/android/native_test/native_test_jni " +
+         "--extra-include " +
+         "base/android/jni_generator/jni_generator_helper.h " +
+         "--srcjar-path " +
+         "$(genDir)/testing/android/native_test/native_test_jni.srcjar " +
+         "--use-proxy-hash " +
+         "--output-name " +
+         "NativeTest_jni.h " +
+         "--input-file " +
+         "$(location testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java) " +
+         "&& zipinfo -1 $(genDir)/testing/android/native_test/native_test_jni.srcjar | grep GEN_JNI.java | zip -d -@ $(genDir)/testing/android/native_test/native_test_jni.srcjar",
+    out: [
+        "testing/android/native_test/native_test_jni.srcjar",
+    ],
+    tool_files: [
+        "build/action_helpers.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "build/zip_helpers.py",
+        "third_party/jni_zero/codegen/placeholder_gen_jni_java.py",
+        "third_party/jni_zero/codegen/proxy_impl_java.py",
+        "third_party/jni_zero/common.py",
+        "third_party/jni_zero/java_lang_classes.py",
+        "third_party/jni_zero/java_types.py",
+        "third_party/jni_zero/jni_generator.py",
+        "third_party/jni_zero/jni_registration_generator.py",
+        "third_party/jni_zero/jni_zero.py",
+        "third_party/jni_zero/parse.py",
+        "third_party/jni_zero/proxy.py",
+    ],
+}
+
+// This is a horrible hack. Please do not replicate in gn2bp
+// Delete this once gn2bp has been tweaked to accommodate the JNI changes.
+java_genrule {
+    name: "cronet_aml_test_files_jni_headers__java__testing",
+    srcs: [
+        "components/cronet/android/test/src/org/chromium/net/CronetTestUtil.java",
+        "components/cronet/android/test/src/org/chromium/net/NativeTestServer.java",
+        "components/cronet/android/test/src/org/chromium/net/TestUploadDataStreamHandler.java",
+        "components/cronet/android/test/src/org/chromium/net/QuicTestServer.java",
+        "components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java",
+        "components/cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.java",
+        "components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java",
+        "components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java",
+        "components/cronet/android/test/src/org/chromium/net/MockCertVerifier.java",
+    ],
+    cmd: "$(location third_party/jni_zero/jni_zero.py) from-source " +
+         "--output-dir " +
+         "$(genDir)/components/cronet/android/cronet_extra_jni " +
+         "--extra-include " +
+         "base/android/jni_generator/jni_generator_helper.h " +
+         "--srcjar-path " +
+         "$(genDir)/components/cronet/android/cronet_extra_jni.srcjar " +
+         "--use-proxy-hash " +
+         "--output-name " +
+         "CronetTestUtil_jni.h " +
+         "--output-name " +
+         "NativeTestServer_jni.h " +
+         "--output-name " +
+         "TestUploadDataStreamHandler_jni.h " +
+         "--output-name " +
+         "QuicTestServer_jni.h " +
+         "--output-name " +
+         "CronetUrlRequestTest_jni.h " +
+         "--output-name " +
+         "MockUrlRequestJobFactory_jni.h " +
+         "--output-name " +
+         "CronetUrlRequestContextTest_jni.h " +
+         "--output-name " +
+         "ExperimentalOptionsTest_jni.h " +
+         "--output-name " +
+         "MockCertVerifier_jni.h " +
+         "--input-file " +
+         "$(location components/cronet/android/test/src/org/chromium/net/CronetTestUtil.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/src/org/chromium/net/NativeTestServer.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/src/org/chromium/net/TestUploadDataStreamHandler.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/src/org/chromium/net/QuicTestServer.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java) " +
+         "--input-file " +
+         "$(location components/cronet/android/test/src/org/chromium/net/MockCertVerifier.java) " +
+         "&& zipinfo -1 $(genDir)/components/cronet/android/cronet_extra_jni.srcjar | grep GEN_JNI.java | zip -d -@ $(genDir)/components/cronet/android/cronet_extra_jni.srcjar",
+    out: [
+        "components/cronet/android/cronet_extra_jni.srcjar",
+    ],
+    tool_files: [
+        "build/action_helpers.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "build/zip_helpers.py",
+        "third_party/jni_zero/codegen/placeholder_gen_jni_java.py",
+        "third_party/jni_zero/codegen/proxy_impl_java.py",
+        "third_party/jni_zero/common.py",
+        "third_party/jni_zero/java_lang_classes.py",
+        "third_party/jni_zero/java_types.py",
+        "third_party/jni_zero/jni_generator.py",
+        "third_party/jni_zero/jni_registration_generator.py",
+        "third_party/jni_zero/jni_zero.py",
+        "third_party/jni_zero/parse.py",
+        "third_party/jni_zero/proxy.py",
+    ],
+}