[go: nahoru, domu]

jni_zero: move all python and test code into //third_party/jni_zero

This is as close to a pure `mv` as I could do. No functional changes,
and I haven't brought over anything else from the
//base/android/jni_generator folder.

We plan to develop the re-branded jni_generator from within
//third_party for now.

Bug: 1377351, 1456762
Change-Id: I71a9afe0d62c09003e9afa24582eae5f36f09ccf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4722028
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Auto-Submit: Sam Maier <smaier@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Sam Maier <smaier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1181106}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index bc45fa3..682a6c2 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1677,7 +1677,6 @@
 _GENERIC_PYDEPS_FILES = [
     'android_webview/test/components/run_webview_component_smoketest.pydeps',
     'android_webview/tools/run_cts.pydeps',
-    'base/android/jni_generator/jni_zero.pydeps',
     'build/android/apk_operations.pydeps',
     'build/android/devil_chromium.pydeps',
     'build/android/gyp/aar.pydeps',
@@ -1760,6 +1759,7 @@
     'third_party/blink/renderer/bindings/scripts/validate_web_idl.pydeps',
     'third_party/blink/tools/blinkpy/web_tests/merge_results.pydeps',
     'third_party/blink/tools/merge_web_test_results.pydeps',
+    'third_party/jni_zero/jni_zero.pydeps',
     'tools/binary_size/sizes.pydeps',
     'tools/binary_size/supersize.pydeps',
     'tools/perf/process_perf_results.pydeps',
@@ -6087,7 +6087,7 @@
         if sha1_path not in new_or_added_paths:
             missing_sha1.append(sha1_path)
         elif not _CheckValidSha1(sha1_path):
-          invalid_sha1.append(sha1_path)
+            invalid_sha1.append(sha1_path)
 
     def _CheckScreenshotModified(screenshots_dir, message_id):
         sha1_path = input_api.os_path.join(screenshots_dir,
@@ -6095,16 +6095,12 @@
         if sha1_path not in new_or_added_paths:
             missing_sha1_modified.append(sha1_path)
         elif not _CheckValidSha1(sha1_path):
-          invalid_sha1.append(sha1_path)
+            invalid_sha1.append(sha1_path)
 
     def _CheckValidSha1(sha1_path):
-      return sha1_pattern.search(
-          next(
-                "\n".join(f.NewContents())
-                for f in input_api.AffectedFiles()
-                if f.LocalPath() == sha1_path
-          )
-      )
+        return sha1_pattern.search(
+            next("\n".join(f.NewContents()) for f in input_api.AffectedFiles()
+                 if f.LocalPath() == sha1_path))
 
     def _CheckScreenshotRemoved(screenshots_dir, message_id):
         sha1_path = input_api.os_path.join(screenshots_dir,
@@ -6948,7 +6944,7 @@
     """Check to make sure the libc++ version matches across deps files."""
     # Disable check for changes to sub-repositories.
     if input_api.PresubmitLocalPath() != input_api.change.RepositoryRoot():
-      return []
+        return []
 
     DEPS_FILES = [ 'DEPS', 'buildtools/deps_revisions.gni' ]
 
diff --git a/base/android/jni_generator/BUILD.gn b/base/android/jni_generator/BUILD.gn
index add50e7..ca97c24 100644
--- a/base/android/jni_generator/BUILD.gn
+++ b/base/android/jni_generator/BUILD.gn
@@ -7,16 +7,16 @@
 
 generate_jni("jni_sample_header") {
   sources = [
-    "java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java",
-    "java/src/org/chromium/example/jni_generator/SampleForTests.java",
+    "//third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java",
+    "//third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForTests.java",
   ]
 }
 
 android_library("jni_sample_java") {
   srcjar_deps = [ ":jni_sample_header" ]
   sources = [
-    "java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java",
-    "java/src/org/chromium/example/jni_generator/SampleForTests.java",
+    "//third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java",
+    "//third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForTests.java",
   ]
 
   deps = [
diff --git a/base/android/jni_generator/golden/testForTestingRemoved-Final-GEN_JNI.java.golden b/base/android/jni_generator/golden/testForTestingRemoved-Final-GEN_JNI.java.golden
deleted file mode 100644
index 134633a..0000000
--- a/base/android/jni_generator/golden/testForTestingRemoved-Final-GEN_JNI.java.golden
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.base.natives;
-
-// This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
-// Please do not change its content.
-
-public class GEN_JNI {
-    public static final boolean TESTING_ENABLED = false;
-    public static final boolean REQUIRE_MOCK = false;
-
-
-    public static int org_chromium_example_jni_1generator_SampleProxyEdgeCases_addStructB(Object caller, Object b) {
-        return J.N.MyOkSBQ0(caller, b);
-    }
-
-    public static String[][] org_chromium_example_jni_1generator_SampleProxyEdgeCases_arrayTypes1(int[] a, Object[][] b) {
-        return J.N.MrisBOFT(a, b);
-    }
-
-    public static int[] org_chromium_example_jni_1generator_SampleProxyEdgeCases_arrayTypes2(int[] a, Throwable[][] b) {
-        return J.N.ML5jr$Tu(a, b);
-    }
-
-    public static void org_chromium_example_jni_1generator_SampleProxyEdgeCases_fooForTest() {
-        J.N.M3dXOemX_ForTesting();
-    }
-
-    public static void org_chromium_example_jni_1generator_SampleProxyEdgeCases_fooForTesting() {
-        J.N.MCNruAwI_ForTesting();
-    }
-
-    public static void org_chromium_example_jni_1generator_SampleProxyEdgeCases_fooForTests() {
-        J.N.MpToXM8I_ForTesting();
-    }
-
-    public static void org_chromium_example_jni_1generator_SampleProxyEdgeCases_foo_1_1weirdly_1_1escaped_1name1() {
-        J.N.MV9YSTxh();
-    }
-
-    public static Object[] org_chromium_example_jni_1generator_SampleProxyEdgeCases_genericsWithNestedClassArray(Object[] arg) {
-        return J.N.MfODWEgT(arg);
-    }
-
-    public static void org_chromium_example_jni_1generator_SampleProxyEdgeCases_setBool(Object b, Object i) {
-        J.N.MPgXV$mN(b, i);
-    }
-
-    public static boolean org_chromium_example_jni_1generator_SampleProxyEdgeCases_setStringBuilder(Object sb) {
-        return J.N.MD8PmkAP(sb);
-    }
-
-    public static int org_chromium_example_jni_1generator_SampleProxyEdgeCases_setStringBuilder(int sb) {
-        return J.N.MD8PmkAP(sb);
-    }
-}
diff --git a/base/android/jni_generator/golden/testForTestingRemoved-Final-N.java.golden b/base/android/jni_generator/golden/testForTestingRemoved-Final-N.java.golden
deleted file mode 100644
index d9edaf3..0000000
--- a/base/android/jni_generator/golden/testForTestingRemoved-Final-N.java.golden
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package J;
-
-// This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
-// Please do not change its content.
-
-public class N {
-
-
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_addStructB
-    public static native int MyOkSBQ0(Object caller, Object b);
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_arrayTypes1
-    public static native String[][] MrisBOFT(int[] a, Object[][] b);
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_arrayTypes2
-    public static native int[] ML5jr$Tu(int[] a, Throwable[][] b);
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_fooForTest
-    public static native void M3dXOemX_ForTesting();
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_fooForTesting
-    public static native void MCNruAwI_ForTesting();
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_fooForTests
-    public static native void MpToXM8I_ForTesting();
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_foo_1_1weirdly_1_1escaped_1name1
-    public static native void MV9YSTxh();
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_genericsWithNestedClassArray
-    public static native Object[] MfODWEgT(Object[] arg);
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_setBool
-    public static native void MPgXV$mN(Object b, Object i);
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_setStringBuilder
-    public static native boolean MD8PmkAP(Object sb);
-      // Original name: org_chromium_example_jni_1generator_SampleProxyEdgeCases_setStringBuilder
-    public static native int MD8PmkAP(int sb);
-}
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Final-N.java.golden b/base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Final-N.java.golden
deleted file mode 100644
index aefd0b4..0000000
--- a/base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Final-N.java.golden
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package this.is.a.package.prefix.J;
-
-// This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
-// Please do not change its content.
-
-public class N {
-
-
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_bar
-    public static native Object M5EfCheU(Object sample);
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_foo
-    public static native void MGfHLNVl();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_hasPhalange
-    public static native boolean MM2Yz6XD();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnClass
-    public static native Class MyxAHj2Y();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnClasses
-    public static native Class[] MNGv55Cm();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnObject
-    public static native Object MIs8T9aQ();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnObjects
-    public static native Object[] MtkQGyRy();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnString
-    public static native String Mysjo$pl();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnStrings
-    public static native String[] M3B287zk();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnStruct
-    public static native Object M8UGsyhL();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnStructs
-    public static native Object[] MtYMX5wX();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnThrowable
-    public static native Throwable Mehs9t7u();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_returnThrowables
-    public static native Throwable[] MQH82FhP();
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_revString
-    public static native String MXQefv1w(String stringToReverse);
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_sendSamplesToNative
-    public static native Object[] MaV5G8K8(Object[] strs);
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_sendToNative
-    public static native String[] MSYtnUBS(String[] strs);
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_testAllPrimitives
-    public static native int[] MMy4dcxH(int zint, int[] ints, long zlong, long[] longs, short zshort, short[] shorts, char zchar, char[] chars, byte zbyte, byte[] bytes, double zdouble, double[] doubles, float zfloat, float[] floats, boolean zbool, boolean[] bools);
-      // Original name: this_is_a_package_prefix_org_chromium_example_jni_1generator_SampleForAnnotationProcessor_testSpecialTypes
-    public static native void MSslZIsy(Class clazz, Class[] classes, Throwable throwable, Throwable[] throwables, String string, String[] strings, Object tStruct, Object[] structs, Object obj, Object[] objects);
-}
diff --git a/base/android/jni_generator/jni_zero.pydeps b/base/android/jni_generator/jni_zero.pydeps
deleted file mode 100644
index ae29ed8..0000000
--- a/base/android/jni_generator/jni_zero.pydeps
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generated by running:
-#   build/print_python_deps.py --root base/android/jni_generator --output base/android/jni_generator/jni_zero.pydeps base/android/jni_generator/jni_zero.py
-../../../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
-codegen/placeholder_gen_jni_java.py
-codegen/proxy_impl_java.py
-common.py
-java_lang_classes.py
-java_types.py
-jni_generator.py
-jni_registration_generator.py
-jni_zero.py
-parse.py
-proxy.py
diff --git a/build/config/android/jni.gni b/build/config/android/jni.gni
index a9e98f3..0b97fa9 100644
--- a/build/config/android/jni.gni
+++ b/build/config/android/jni.gni
@@ -52,7 +52,7 @@
 # within root_build_dir). This could be fixed by adding deps & logic to scan
 # .srcjars, but isn't currently needed.
 #
-# See base/android/jni_generator/jni_registration_generator.py for more info
+# See third_party/jni_zero/jni_registration_generator.py for more info
 # about the format of the header file.
 #
 # Variables
@@ -94,7 +94,7 @@
   }
 
   action_with_pydeps(target_name) {
-    script = "//base/android/jni_generator/jni_zero.py"
+    script = "//third_party/jni_zero/jni_zero.py"
     inputs = []
 
     # Cannot depend on jni_sources_list targets since they likely depend on
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 82c118f..758dbe2a 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -165,7 +165,7 @@
 
         # The sources aren't compiled so don't check their dependencies.
         check_includes = false
-        script = "//base/android/jni_generator/jni_zero.py"
+        script = "//third_party/jni_zero/jni_zero.py"
         forward_variables_from(invoker,
                                [
                                  "deps",
@@ -277,7 +277,7 @@
   #
   # This target generates the native jni bindings for a set of .java files.
   #
-  # See base/android/jni_generator/jni_generator.py for more info about the
+  # See third_party/jni_zero/jni_generator.py for more info about the
   # format of generating JNI bindings.
   #
   # Variables
@@ -309,7 +309,7 @@
   #
   # This target generates the native jni bindings for a set of classes in a .jar.
   #
-  # See base/android/jni_generator/jni_generator.py for more info about the
+  # See third_party/jni_zero/jni_generator.py for more info about the
   # format of generating JNI bindings.
   #
   # Variables
diff --git a/base/android/jni_generator/.style.yapf b/third_party/jni_zero/.style.yapf
similarity index 100%
rename from base/android/jni_generator/.style.yapf
rename to third_party/jni_zero/.style.yapf
diff --git a/third_party/jni_zero/DEPS b/third_party/jni_zero/DEPS
new file mode 100644
index 0000000..d53c32b
--- /dev/null
+++ b/third_party/jni_zero/DEPS
@@ -0,0 +1,7 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+  # This project has always depended on //base, but we are trying to break this
+  # dependency. See crbug.com/1377351.
+  '+base'
+]
diff --git a/third_party/jni_zero/LICENSE b/third_party/jni_zero/LICENSE
new file mode 100644
index 0000000..3e34df6
--- /dev/null
+++ b/third_party/jni_zero/LICENSE
@@ -0,0 +1,27 @@
+Copyright 2023 The Chromium Authors
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google LLC nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/third_party/jni_zero/OWNERS b/third_party/jni_zero/OWNERS
new file mode 100644
index 0000000..215dac4
--- /dev/null
+++ b/third_party/jni_zero/OWNERS
@@ -0,0 +1,2 @@
+agrieve@chromium.org
+smaier@chromium.org
diff --git a/base/android/jni_generator/PRESUBMIT.py b/third_party/jni_zero/PRESUBMIT.py
similarity index 99%
rename from base/android/jni_generator/PRESUBMIT.py
rename to third_party/jni_zero/PRESUBMIT.py
index ab1f369..274f7a60 100644
--- a/base/android/jni_generator/PRESUBMIT.py
+++ b/third_party/jni_zero/PRESUBMIT.py
@@ -1,13 +1,13 @@
 # Copyright 2018 The Chromium Authors
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
-
 """Presubmit script for android buildbot.
 
 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
 details on the presubmit API built into depot_tools.
 """
 
+
 def CommonChecks(input_api, output_api):
   base_android_jni_generator_dir = input_api.PresubmitLocalPath()
 
diff --git a/third_party/jni_zero/README.chromium b/third_party/jni_zero/README.chromium
new file mode 100644
index 0000000..5dce81c
--- /dev/null
+++ b/third_party/jni_zero/README.chromium
@@ -0,0 +1,16 @@
+Name: JNI Zero
+Short Name: jni_zero
+URL: https://chromium.googlesource.com/chromium/src/+/master/third_party/jni_zero
+Version: 0
+License: BSD
+License File: LICENSE
+Security Critical: yes
+Shipped: yes
+
+Description:
+A Chromium-developed JNI middleware, that is designed to provide a zero cost
+(or better!) abstraction when used with R8.
+
+Local Modifications:
+This entire project is developed in //third_party/jni_zero to make it more
+easily usable outside of Chromium.
diff --git a/base/android/jni_generator/codegen/placeholder_gen_jni_java.py b/third_party/jni_zero/codegen/placeholder_gen_jni_java.py
similarity index 100%
rename from base/android/jni_generator/codegen/placeholder_gen_jni_java.py
rename to third_party/jni_zero/codegen/placeholder_gen_jni_java.py
diff --git a/base/android/jni_generator/codegen/proxy_impl_java.py b/third_party/jni_zero/codegen/proxy_impl_java.py
similarity index 100%
rename from base/android/jni_generator/codegen/proxy_impl_java.py
rename to third_party/jni_zero/codegen/proxy_impl_java.py
diff --git a/base/android/jni_generator/common.py b/third_party/jni_zero/common.py
similarity index 100%
rename from base/android/jni_generator/common.py
rename to third_party/jni_zero/common.py
diff --git a/base/android/jni_generator/golden/testBidirectionalClass-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testBidirectionalClass-Final-GEN_JNI.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testBidirectionalClass-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testBidirectionalClass-Final-GEN_JNI.java.golden
index 901f9015f..63fce20 100644
--- a/base/android/jni_generator/golden/testBidirectionalClass-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testBidirectionalClass-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testBidirectionalClass-Placeholder-GEN_JNI.java.golden b/third_party/jni_zero/golden/testBidirectionalClass-Placeholder-GEN_JNI.java.golden
similarity index 94%
rename from base/android/jni_generator/golden/testBidirectionalClass-Placeholder-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testBidirectionalClass-Placeholder-GEN_JNI.java.golden
index 1f9c7ed1..fa6ce80 100644
--- a/base/android/jni_generator/golden/testBidirectionalClass-Placeholder-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testBidirectionalClass-Placeholder-GEN_JNI.java.golden
@@ -1,5 +1,5 @@
 //
-// This file is a placeholder. It was generated by base/android/jni_generator/jni_generator.py
+// This file is a placeholder. It was generated by third_party/jni_zero/jni_generator.py
 //
 
 package org.chromium.base.natives;
diff --git a/base/android/jni_generator/golden/testBidirectionalClass-SampleForTestsJni.java.golden b/third_party/jni_zero/golden/testBidirectionalClass-SampleForTestsJni.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testBidirectionalClass-SampleForTestsJni.java.golden
rename to third_party/jni_zero/golden/testBidirectionalClass-SampleForTestsJni.java.golden
index db55a9b2..96860a1 100644
--- a/base/android/jni_generator/golden/testBidirectionalClass-SampleForTestsJni.java.golden
+++ b/third_party/jni_zero/golden/testBidirectionalClass-SampleForTestsJni.java.golden
@@ -1,5 +1,5 @@
 //
-// This file was generated by base/android/jni_generator/jni_generator.py
+// This file was generated by third_party/jni_zero/jni_generator.py
 //
 package org.chromium.example.jni_generator;
 
diff --git a/base/android/jni_generator/golden/testBidirectionalClass-SampleForTests_jni.h.golden b/third_party/jni_zero/golden/testBidirectionalClass-SampleForTests_jni.h.golden
similarity index 99%
rename from base/android/jni_generator/golden/testBidirectionalClass-SampleForTests_jni.h.golden
rename to third_party/jni_zero/golden/testBidirectionalClass-SampleForTests_jni.h.golden
index 4b3c73a..81a1a20 100644
--- a/base/android/jni_generator/golden/testBidirectionalClass-SampleForTests_jni.h.golden
+++ b/third_party/jni_zero/golden/testBidirectionalClass-SampleForTests_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     org/chromium/example/jni_generator/SampleForTests
 
diff --git a/base/android/jni_generator/golden/testBirectionalNonProxy-SampleBidirectionalNonProxy_jni.h.golden b/third_party/jni_zero/golden/testBirectionalNonProxy-SampleBidirectionalNonProxy_jni.h.golden
similarity index 99%
rename from base/android/jni_generator/golden/testBirectionalNonProxy-SampleBidirectionalNonProxy_jni.h.golden
rename to third_party/jni_zero/golden/testBirectionalNonProxy-SampleBidirectionalNonProxy_jni.h.golden
index d7ec916..0a21b781 100644
--- a/base/android/jni_generator/golden/testBirectionalNonProxy-SampleBidirectionalNonProxy_jni.h.golden
+++ b/third_party/jni_zero/golden/testBirectionalNonProxy-SampleBidirectionalNonProxy_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     org/chromium/example/jni_generator/SampleBidirectionalNonProxy
 
diff --git a/base/android/jni_generator/golden/testEndToEndManualRegistration-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testEndToEndManualRegistration-Final-GEN_JNI.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testEndToEndManualRegistration-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testEndToEndManualRegistration-Final-GEN_JNI.java.golden
index 01cdd8c39..6e7a5fd 100644
--- a/base/android/jni_generator/golden/testEndToEndManualRegistration-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testEndToEndManualRegistration-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testEndToEndManualRegistration-Registration.h.golden b/third_party/jni_zero/golden/testEndToEndManualRegistration-Registration.h.golden
similarity index 98%
rename from base/android/jni_generator/golden/testEndToEndManualRegistration-Registration.h.golden
rename to third_party/jni_zero/golden/testEndToEndManualRegistration-Registration.h.golden
index 05b7f26..956f854b 100644
--- a/base/android/jni_generator/golden/testEndToEndManualRegistration-Registration.h.golden
+++ b/third_party/jni_zero/golden/testEndToEndManualRegistration-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testEndToEndProxyHashed-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testEndToEndProxyHashed-Final-GEN_JNI.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testEndToEndProxyHashed-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testEndToEndProxyHashed-Final-GEN_JNI.java.golden
index 4a7de1f..d532821 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyHashed-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyHashed-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testEndToEndProxyHashed-Final-N.java.golden b/third_party/jni_zero/golden/testEndToEndProxyHashed-Final-N.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testEndToEndProxyHashed-Final-N.java.golden
rename to third_party/jni_zero/golden/testEndToEndProxyHashed-Final-N.java.golden
index 2cab339..b36115d 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyHashed-Final-N.java.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyHashed-Final-N.java.golden
@@ -5,7 +5,7 @@
 package J;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class N {
diff --git a/base/android/jni_generator/golden/testEndToEndProxyHashed-Registration.h.golden b/third_party/jni_zero/golden/testEndToEndProxyHashed-Registration.h.golden
similarity index 97%
rename from base/android/jni_generator/golden/testEndToEndProxyHashed-Registration.h.golden
rename to third_party/jni_zero/golden/testEndToEndProxyHashed-Registration.h.golden
index c2986d0..57b69bf 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyHashed-Registration.h.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyHashed-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Final-GEN_JNI.java.golden
similarity index 90%
rename from base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Final-GEN_JNI.java.golden
index dc56f55..3af3421 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class module_GEN_JNI {
diff --git a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Final-N.java.golden b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Final-N.java.golden
similarity index 88%
rename from base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Final-N.java.golden
rename to third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Final-N.java.golden
index 9145e9f..27230ac1 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Final-N.java.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Final-N.java.golden
@@ -5,7 +5,7 @@
 package J;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class module_N {
diff --git a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Placeholder-GEN_JNI.java.golden b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Placeholder-GEN_JNI.java.golden
similarity index 77%
rename from base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Placeholder-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Placeholder-GEN_JNI.java.golden
index c2e9317..5b14da1 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Placeholder-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Placeholder-GEN_JNI.java.golden
@@ -1,5 +1,5 @@
 //
-// This file is a placeholder. It was generated by base/android/jni_generator/jni_generator.py
+// This file is a placeholder. It was generated by third_party/jni_zero/jni_generator.py
 //
 
 package org.chromium.base.natives;
diff --git a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Registration.h.golden b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Registration.h.golden
similarity index 91%
rename from base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Registration.h.golden
rename to third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Registration.h.golden
index 293dad46..9d14b7f 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-Registration.h.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-SampleModuleJni.java.golden b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-SampleModuleJni.java.golden
similarity index 95%
rename from base/android/jni_generator/golden/testEndToEndProxyJniWithModules-SampleModuleJni.java.golden
rename to third_party/jni_zero/golden/testEndToEndProxyJniWithModules-SampleModuleJni.java.golden
index 1f93bd4..b1a40075 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-SampleModuleJni.java.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-SampleModuleJni.java.golden
@@ -1,5 +1,5 @@
 //
-// This file was generated by base/android/jni_generator/jni_generator.py
+// This file was generated by third_party/jni_zero/jni_generator.py
 //
 package org.chromium.example.jni_generator;
 
diff --git a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-SampleModule_jni.h.golden b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-SampleModule_jni.h.golden
similarity index 94%
rename from base/android/jni_generator/golden/testEndToEndProxyJniWithModules-SampleModule_jni.h.golden
rename to third_party/jni_zero/golden/testEndToEndProxyJniWithModules-SampleModule_jni.h.golden
index 0edb78aa..9aa1c24 100644
--- a/base/android/jni_generator/golden/testEndToEndProxyJniWithModules-SampleModule_jni.h.golden
+++ b/third_party/jni_zero/golden/testEndToEndProxyJniWithModules-SampleModule_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     org/chromium/example/jni_generator/SampleModule
 
diff --git a/base/android/jni_generator/golden/testForTestingKept-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testForTestingKept-Final-GEN_JNI.java.golden
similarity index 96%
rename from base/android/jni_generator/golden/testForTestingKept-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testForTestingKept-Final-GEN_JNI.java.golden
index 134633a..b66ffac 100644
--- a/base/android/jni_generator/golden/testForTestingKept-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testForTestingKept-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testForTestingKept-Final-N.java.golden b/third_party/jni_zero/golden/testForTestingKept-Final-N.java.golden
similarity index 96%
rename from base/android/jni_generator/golden/testForTestingKept-Final-N.java.golden
rename to third_party/jni_zero/golden/testForTestingKept-Final-N.java.golden
index d9edaf3..28a6deb 100644
--- a/base/android/jni_generator/golden/testForTestingKept-Final-N.java.golden
+++ b/third_party/jni_zero/golden/testForTestingKept-Final-N.java.golden
@@ -5,7 +5,7 @@
 package J;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class N {
diff --git a/base/android/jni_generator/golden/testForTestingKept-Placeholder-GEN_JNI.java.golden b/third_party/jni_zero/golden/testForTestingKept-Placeholder-GEN_JNI.java.golden
similarity index 93%
rename from base/android/jni_generator/golden/testForTestingKept-Placeholder-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testForTestingKept-Placeholder-GEN_JNI.java.golden
index 9814bda1..c2b1a82 100644
--- a/base/android/jni_generator/golden/testForTestingKept-Placeholder-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testForTestingKept-Placeholder-GEN_JNI.java.golden
@@ -1,5 +1,5 @@
 //
-// This file is a placeholder. It was generated by base/android/jni_generator/jni_generator.py
+// This file is a placeholder. It was generated by third_party/jni_zero/jni_generator.py
 //
 
 package org.chromium.base.natives;
diff --git a/base/android/jni_generator/golden/testForTestingKept-Registration.h.golden b/third_party/jni_zero/golden/testForTestingKept-Registration.h.golden
similarity index 97%
rename from base/android/jni_generator/golden/testForTestingKept-Registration.h.golden
rename to third_party/jni_zero/golden/testForTestingKept-Registration.h.golden
index 50cc5cf..0ee2eced2 100644
--- a/base/android/jni_generator/golden/testForTestingKept-Registration.h.golden
+++ b/third_party/jni_zero/golden/testForTestingKept-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testForTestingKept-SampleProxyEdgeCasesJni.java.golden b/third_party/jni_zero/golden/testForTestingKept-SampleProxyEdgeCasesJni.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testForTestingKept-SampleProxyEdgeCasesJni.java.golden
rename to third_party/jni_zero/golden/testForTestingKept-SampleProxyEdgeCasesJni.java.golden
index 931f0b6..25024f94 100644
--- a/base/android/jni_generator/golden/testForTestingKept-SampleProxyEdgeCasesJni.java.golden
+++ b/third_party/jni_zero/golden/testForTestingKept-SampleProxyEdgeCasesJni.java.golden
@@ -1,5 +1,5 @@
 //
-// This file was generated by base/android/jni_generator/jni_generator.py
+// This file was generated by third_party/jni_zero/jni_generator.py
 //
 package org.chromium.example.jni_generator;
 
diff --git a/base/android/jni_generator/golden/testForTestingKept-SampleProxyEdgeCases_jni.h.golden b/third_party/jni_zero/golden/testForTestingKept-SampleProxyEdgeCases_jni.h.golden
similarity index 98%
rename from base/android/jni_generator/golden/testForTestingKept-SampleProxyEdgeCases_jni.h.golden
rename to third_party/jni_zero/golden/testForTestingKept-SampleProxyEdgeCases_jni.h.golden
index 692e3db2..08f0d63 100644
--- a/base/android/jni_generator/golden/testForTestingKept-SampleProxyEdgeCases_jni.h.golden
+++ b/third_party/jni_zero/golden/testForTestingKept-SampleProxyEdgeCases_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     org/chromium/example/jni_generator/SampleProxyEdgeCases
 
diff --git a/base/android/jni_generator/golden/testForTestingKept-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testForTestingRemoved-Final-GEN_JNI.java.golden
similarity index 96%
copy from base/android/jni_generator/golden/testForTestingKept-Final-GEN_JNI.java.golden
copy to third_party/jni_zero/golden/testForTestingRemoved-Final-GEN_JNI.java.golden
index 134633a..b66ffac 100644
--- a/base/android/jni_generator/golden/testForTestingKept-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testForTestingRemoved-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testForTestingKept-Final-N.java.golden b/third_party/jni_zero/golden/testForTestingRemoved-Final-N.java.golden
similarity index 96%
copy from base/android/jni_generator/golden/testForTestingKept-Final-N.java.golden
copy to third_party/jni_zero/golden/testForTestingRemoved-Final-N.java.golden
index d9edaf3..28a6deb 100644
--- a/base/android/jni_generator/golden/testForTestingKept-Final-N.java.golden
+++ b/third_party/jni_zero/golden/testForTestingRemoved-Final-N.java.golden
@@ -5,7 +5,7 @@
 package J;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class N {
diff --git a/base/android/jni_generator/golden/testForTestingRemoved-Registration.h.golden b/third_party/jni_zero/golden/testForTestingRemoved-Registration.h.golden
similarity index 97%
rename from base/android/jni_generator/golden/testForTestingRemoved-Registration.h.golden
rename to third_party/jni_zero/golden/testForTestingRemoved-Registration.h.golden
index 50cc5cf..0ee2eced2 100644
--- a/base/android/jni_generator/golden/testForTestingRemoved-Registration.h.golden
+++ b/third_party/jni_zero/golden/testForTestingRemoved-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testFromClassFile-JavapClass_jni.h.golden b/third_party/jni_zero/golden/testFromClassFile-JavapClass_jni.h.golden
similarity index 99%
rename from base/android/jni_generator/golden/testFromClassFile-JavapClass_jni.h.golden
rename to third_party/jni_zero/golden/testFromClassFile-JavapClass_jni.h.golden
index b3a9414..6294faaa 100644
--- a/base/android/jni_generator/golden/testFromClassFile-JavapClass_jni.h.golden
+++ b/third_party/jni_zero/golden/testFromClassFile-JavapClass_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     org/chromium/example/jni_generator/JavapClass
 
diff --git a/base/android/jni_generator/golden/testFullStubs-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testFullStubs-Final-GEN_JNI.java.golden
similarity index 91%
rename from base/android/jni_generator/golden/testFullStubs-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testFullStubs-Final-GEN_JNI.java.golden
index d7bd936c..fe043b3 100644
--- a/base/android/jni_generator/golden/testFullStubs-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testFullStubs-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testMultiplexing-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testMultiplexing-Final-GEN_JNI.java.golden
similarity index 98%
rename from base/android/jni_generator/golden/testMultiplexing-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testMultiplexing-Final-GEN_JNI.java.golden
index 60b1e402..f70a19d 100644
--- a/base/android/jni_generator/golden/testMultiplexing-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testMultiplexing-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testMultiplexing-Final-N.java.golden b/third_party/jni_zero/golden/testMultiplexing-Final-N.java.golden
similarity index 96%
rename from base/android/jni_generator/golden/testMultiplexing-Final-N.java.golden
rename to third_party/jni_zero/golden/testMultiplexing-Final-N.java.golden
index a31a0d9..432091a 100644
--- a/base/android/jni_generator/golden/testMultiplexing-Final-N.java.golden
+++ b/third_party/jni_zero/golden/testMultiplexing-Final-N.java.golden
@@ -5,7 +5,7 @@
 package J;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class N {
diff --git a/base/android/jni_generator/golden/testMultiplexing-Registration.h.golden b/third_party/jni_zero/golden/testMultiplexing-Registration.h.golden
similarity index 99%
rename from base/android/jni_generator/golden/testMultiplexing-Registration.h.golden
rename to third_party/jni_zero/golden/testMultiplexing-Registration.h.golden
index 22a5d64..9c1bf4a 100644
--- a/base/android/jni_generator/golden/testMultiplexing-Registration.h.golden
+++ b/third_party/jni_zero/golden/testMultiplexing-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testNonProxy-SampleNonProxy_jni.h.golden b/third_party/jni_zero/golden/testNonProxy-SampleNonProxy_jni.h.golden
similarity index 99%
rename from base/android/jni_generator/golden/testNonProxy-SampleNonProxy_jni.h.golden
rename to third_party/jni_zero/golden/testNonProxy-SampleNonProxy_jni.h.golden
index 0f2fe542..4f75d925 100644
--- a/base/android/jni_generator/golden/testNonProxy-SampleNonProxy_jni.h.golden
+++ b/third_party/jni_zero/golden/testNonProxy-SampleNonProxy_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     org/chromium/example/jni_generator/SampleNonProxy
 
diff --git a/base/android/jni_generator/golden/testPackagePrefixGenerator-Placeholder-GEN_JNI.java.golden b/third_party/jni_zero/golden/testPackagePrefixGenerator-Placeholder-GEN_JNI.java.golden
similarity index 95%
rename from base/android/jni_generator/golden/testPackagePrefixGenerator-Placeholder-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testPackagePrefixGenerator-Placeholder-GEN_JNI.java.golden
index e7064e7..8e8b7680 100644
--- a/base/android/jni_generator/golden/testPackagePrefixGenerator-Placeholder-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixGenerator-Placeholder-GEN_JNI.java.golden
@@ -1,5 +1,5 @@
 //
-// This file is a placeholder. It was generated by base/android/jni_generator/jni_generator.py
+// This file is a placeholder. It was generated by third_party/jni_zero/jni_generator.py
 //
 
 package this.is.a.package.prefix.org.chromium.base.natives;
diff --git a/base/android/jni_generator/golden/testPackagePrefixGenerator-SampleForTestsJni.java.golden b/third_party/jni_zero/golden/testPackagePrefixGenerator-SampleForTestsJni.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testPackagePrefixGenerator-SampleForTestsJni.java.golden
rename to third_party/jni_zero/golden/testPackagePrefixGenerator-SampleForTestsJni.java.golden
index 289f7bb1..c8474d19 100644
--- a/base/android/jni_generator/golden/testPackagePrefixGenerator-SampleForTestsJni.java.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixGenerator-SampleForTestsJni.java.golden
@@ -1,5 +1,5 @@
 //
-// This file was generated by base/android/jni_generator/jni_generator.py
+// This file was generated by third_party/jni_zero/jni_generator.py
 //
 package this.is.a.package.prefix.org.chromium.example.jni_generator;
 
diff --git a/base/android/jni_generator/golden/testPackagePrefixGenerator-SampleForTests_jni.h.golden b/third_party/jni_zero/golden/testPackagePrefixGenerator-SampleForTests_jni.h.golden
similarity index 99%
rename from base/android/jni_generator/golden/testPackagePrefixGenerator-SampleForTests_jni.h.golden
rename to third_party/jni_zero/golden/testPackagePrefixGenerator-SampleForTests_jni.h.golden
index ec4b8cc..81d0a62b 100644
--- a/base/android/jni_generator/golden/testPackagePrefixGenerator-SampleForTests_jni.h.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixGenerator-SampleForTests_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     this/is/a/package/prefix/org/chromium/example/jni_generator/SampleForTests
 
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistration-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistration-Final-GEN_JNI.java.golden
similarity index 98%
rename from base/android/jni_generator/golden/testPackagePrefixWithManualRegistration-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testPackagePrefixWithManualRegistration-Final-GEN_JNI.java.golden
index 23bd133..d2b0bcc 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistration-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistration-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package this.is.a.package.prefix.org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistration-Registration.h.golden b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistration-Registration.h.golden
similarity index 99%
rename from base/android/jni_generator/golden/testPackagePrefixWithManualRegistration-Registration.h.golden
rename to third_party/jni_zero/golden/testPackagePrefixWithManualRegistration-Registration.h.golden
index 8470462..4344636 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistration-Registration.h.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistration-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-GEN_JNI.java.golden
similarity index 98%
rename from base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-GEN_JNI.java.golden
index a7095fe..e3b96381 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package this.is.a.package.prefix.org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden
similarity index 97%
rename from base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden
rename to third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden
index aefd0b4..bd29fab 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden
@@ -5,7 +5,7 @@
 package this.is.a.package.prefix.J;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class N {
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Registration.h.golden b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Registration.h.golden
similarity index 98%
rename from base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Registration.h.golden
rename to third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Registration.h.golden
index 91f300ac..e4f694f 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Registration.h.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Final-GEN_JNI.java.golden
similarity index 98%
rename from base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Final-GEN_JNI.java.golden
index a7095fe..e3b96381 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package this.is.a.package.prefix.org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden b/third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Final-N.java.golden
similarity index 97%
copy from base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden
copy to third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Final-N.java.golden
index aefd0b4..bd29fab 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithManualRegistrationWithProxyHash-Final-N.java.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Final-N.java.golden
@@ -5,7 +5,7 @@
 package this.is.a.package.prefix.J;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class N {
diff --git a/base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Registration.h.golden b/third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Registration.h.golden
similarity index 97%
rename from base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Registration.h.golden
rename to third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Registration.h.golden
index 1693e09..7abab44 100644
--- a/base/android/jni_generator/golden/testPackagePrefixWithProxyHash-Registration.h.golden
+++ b/third_party/jni_zero/golden/testPackagePrefixWithProxyHash-Registration.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef TEMP_DIR_HEADER_
diff --git a/base/android/jni_generator/golden/testProxyMocks-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testProxyMocks-Final-GEN_JNI.java.golden
similarity index 90%
rename from base/android/jni_generator/golden/testProxyMocks-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testProxyMocks-Final-GEN_JNI.java.golden
index 3bcd4b81..daab580 100644
--- a/base/android/jni_generator/golden/testProxyMocks-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testProxyMocks-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testRequireProxyMocks-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testRequireProxyMocks-Final-GEN_JNI.java.golden
similarity index 90%
rename from base/android/jni_generator/golden/testRequireProxyMocks-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testRequireProxyMocks-Final-GEN_JNI.java.golden
index ee0a756..1cd36ce 100644
--- a/base/android/jni_generator/golden/testRequireProxyMocks-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testRequireProxyMocks-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testStubRegistration-Final-GEN_JNI.java.golden b/third_party/jni_zero/golden/testStubRegistration-Final-GEN_JNI.java.golden
similarity index 98%
rename from base/android/jni_generator/golden/testStubRegistration-Final-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testStubRegistration-Final-GEN_JNI.java.golden
index 34354adc..14cfefd0 100644
--- a/base/android/jni_generator/golden/testStubRegistration-Final-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testStubRegistration-Final-GEN_JNI.java.golden
@@ -5,7 +5,7 @@
 package org.chromium.base.natives;
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class GEN_JNI {
diff --git a/base/android/jni_generator/golden/testUniqueAnnotations-Placeholder-GEN_JNI.java.golden b/third_party/jni_zero/golden/testUniqueAnnotations-Placeholder-GEN_JNI.java.golden
similarity index 79%
rename from base/android/jni_generator/golden/testUniqueAnnotations-Placeholder-GEN_JNI.java.golden
rename to third_party/jni_zero/golden/testUniqueAnnotations-Placeholder-GEN_JNI.java.golden
index 9512b22..9c3f1e1 100644
--- a/base/android/jni_generator/golden/testUniqueAnnotations-Placeholder-GEN_JNI.java.golden
+++ b/third_party/jni_zero/golden/testUniqueAnnotations-Placeholder-GEN_JNI.java.golden
@@ -1,5 +1,5 @@
 //
-// This file is a placeholder. It was generated by base/android/jni_generator/jni_generator.py
+// This file is a placeholder. It was generated by third_party/jni_zero/jni_generator.py
 //
 
 package org.chromium.base.natives;
diff --git a/base/android/jni_generator/golden/testUniqueAnnotations-SampleUniqueAnnotationsJni.java.golden b/third_party/jni_zero/golden/testUniqueAnnotations-SampleUniqueAnnotationsJni.java.golden
similarity index 95%
rename from base/android/jni_generator/golden/testUniqueAnnotations-SampleUniqueAnnotationsJni.java.golden
rename to third_party/jni_zero/golden/testUniqueAnnotations-SampleUniqueAnnotationsJni.java.golden
index 69b7759..652440c4 100644
--- a/base/android/jni_generator/golden/testUniqueAnnotations-SampleUniqueAnnotationsJni.java.golden
+++ b/third_party/jni_zero/golden/testUniqueAnnotations-SampleUniqueAnnotationsJni.java.golden
@@ -1,5 +1,5 @@
 //
-// This file was generated by base/android/jni_generator/jni_generator.py
+// This file was generated by third_party/jni_zero/jni_generator.py
 //
 package org.chromium.example.jni_generator;
 
diff --git a/base/android/jni_generator/golden/testUniqueAnnotations-SampleUniqueAnnotations_jni.h.golden b/third_party/jni_zero/golden/testUniqueAnnotations-SampleUniqueAnnotations_jni.h.golden
similarity index 98%
rename from base/android/jni_generator/golden/testUniqueAnnotations-SampleUniqueAnnotations_jni.h.golden
rename to third_party/jni_zero/golden/testUniqueAnnotations-SampleUniqueAnnotations_jni.h.golden
index 8fb56bf8..d57e4c1 100644
--- a/base/android/jni_generator/golden/testUniqueAnnotations-SampleUniqueAnnotations_jni.h.golden
+++ b/third_party/jni_zero/golden/testUniqueAnnotations-SampleUniqueAnnotations_jni.h.golden
@@ -4,7 +4,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_generator.py
+//     third_party/jni_zero/jni_generator.py
 // For
 //     org/chromium/example/jni_generator/SampleUniqueAnnotations
 
diff --git a/base/android/jni_generator/integration_tests.py b/third_party/jni_zero/integration_tests.py
similarity index 100%
rename from base/android/jni_generator/integration_tests.py
rename to third_party/jni_zero/integration_tests.py
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/.gitignore b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/.gitignore
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/.gitignore
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/.gitignore
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/JavapClass.class b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/JavapClass.class
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/JavapClass.class
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/JavapClass.class
Binary files differ
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/JavapClass.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/JavapClass.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/JavapClass.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/JavapClass.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleBidirectionalNonProxy.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleBidirectionalNonProxy.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleBidirectionalNonProxy.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleBidirectionalNonProxy.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleForTests.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForTests.java
similarity index 99%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleForTests.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForTests.java
index 56a07d3..b2ead6c 100644
--- a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleForTests.java
+++ b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleForTests.java
@@ -42,8 +42,7 @@
 
     // You can define methods and attributes on the java class just like any other.
     // Methods without the @CalledByNative annotation won't be exposed to JNI.
-    public SampleForTests() {
-    }
+    public SampleForTests() {}
 
     public void startExample() {
         // Calls C++ Init(...) method and holds a pointer to the C++ class.
@@ -89,8 +88,7 @@
 
     // No prefix, so this method is package private. It will still be exported.
     @CalledByNative
-    void packagePrivateJavaMethod() {
-    }
+    void packagePrivateJavaMethod() {}
 
     // Method signature with generics in params.
     @CalledByNative
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleModule.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleModule.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleModule.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleModule.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleNonProxy.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleNonProxy.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleNonProxy.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleNonProxy.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleProxyEdgeCases.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleProxyEdgeCases.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleProxyEdgeCases.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleProxyEdgeCases.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleUniqueAnnotations.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleUniqueAnnotations.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/SampleUniqueAnnotations.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/SampleUniqueAnnotations.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/TinySample.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/TinySample.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/TinySample.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/TinySample.java
diff --git a/base/android/jni_generator/java/src/org/chromium/example/jni_generator/TinySample2.java b/third_party/jni_zero/java/src/org/chromium/example/jni_generator/TinySample2.java
similarity index 100%
rename from base/android/jni_generator/java/src/org/chromium/example/jni_generator/TinySample2.java
rename to third_party/jni_zero/java/src/org/chromium/example/jni_generator/TinySample2.java
diff --git a/base/android/jni_generator/java_lang_classes.py b/third_party/jni_zero/java_lang_classes.py
similarity index 100%
rename from base/android/jni_generator/java_lang_classes.py
rename to third_party/jni_zero/java_lang_classes.py
diff --git a/base/android/jni_generator/java_types.py b/third_party/jni_zero/java_types.py
similarity index 100%
rename from base/android/jni_generator/java_types.py
rename to third_party/jni_zero/java_types.py
diff --git a/base/android/jni_generator/jni_generator.py b/third_party/jni_zero/jni_generator.py
similarity index 98%
rename from base/android/jni_generator/jni_generator.py
rename to third_party/jni_zero/jni_generator.py
index 5c4cc58..7b1733b 100644
--- a/base/android/jni_generator/jni_generator.py
+++ b/third_party/jni_zero/jni_generator.py
@@ -1,7 +1,6 @@
 # Copyright 2012 The Chromium Authors
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
-
 """Entry point for "intermediates" command."""
 
 import base64
@@ -19,7 +18,7 @@
 import zipfile
 
 _FILE_DIR = os.path.dirname(__file__)
-_CHROMIUM_SRC = os.path.join(_FILE_DIR, os.pardir, os.pardir, os.pardir)
+_CHROMIUM_SRC = os.path.join(_FILE_DIR, os.pardir, os.pardir)
 _BUILD_ANDROID_GYP = os.path.join(_CHROMIUM_SRC, 'build', 'android', 'gyp')
 
 # Item 0 of sys.path is the directory of the main file; item 1 is PYTHONPATH
@@ -37,17 +36,15 @@
 import parse
 import proxy
 
-
 # Use 100 columns rather than 80 because it makes many lines more readable.
 _WRAP_LINE_LENGTH = 100
 # WrapOutput() is fairly slow. Pre-creating TextWrappers helps a bit.
 _WRAPPERS_BY_INDENT = [
-    textwrap.TextWrapper(
-        width=_WRAP_LINE_LENGTH,
-        expand_tabs=False,
-        replace_whitespace=False,
-        subsequent_indent=' ' * (indent + 4),
-        break_long_words=False) for indent in range(50)
+    textwrap.TextWrapper(width=_WRAP_LINE_LENGTH,
+                         expand_tabs=False,
+                         replace_whitespace=False,
+                         subsequent_indent=' ' * (indent + 4),
+                         break_long_words=False) for indent in range(50)
 ]  # 50 chosen experimentally.
 
 
@@ -104,7 +101,6 @@
 
 class CalledByNative:
   """Describes a java method exported to c/c++"""
-
   def __init__(self,
                parsed_called_by_native,
                *,
@@ -266,7 +262,6 @@
 
 class JNIFromJavaP:
   """Uses 'javap' to parse a .class file and generate the JNI header file."""
-
   def __init__(self, parsed_file, options):
     self.options = options
     self.type_resolver = parsed_file.type_resolver
@@ -300,7 +295,6 @@
 
 class JNIFromJavaSource:
   """Uses the given java source file to generate the JNI header file."""
-
   def __init__(self, parsed_file, options):
     self.options = options
     self.filename = parsed_file.filename
@@ -357,7 +351,6 @@
 
 class HeaderFileGeneratorHelper(object):
   """Include helper methods for header generators."""
-
   def __init__(self,
                java_class,
                *,
@@ -483,7 +476,6 @@
 
 class InlHeaderFileGenerator(object):
   """Generates an inline header file for JNI integration."""
-
   def __init__(self, module_name, namespace, java_class, natives,
                called_by_natives, constant_fields, type_resolver, options):
     self.namespace = namespace
@@ -658,8 +650,8 @@
     post_call = ''
     if not native.return_type.is_primitive():
       post_call = '.Release()'
-      return_declaration = (
-          'base::android::ScopedJavaLocalRef<' + return_type + '>')
+      return_declaration = ('base::android::ScopedJavaLocalRef<' + return_type +
+                            '>')
     profiling_entered_native = ''
     if self.options.enable_profiling:
       profiling_entered_native = '  JNI_LINK_SAVED_FRAME_POINTER;\n'
diff --git a/base/android/jni_generator/jni_registration_generator.py b/third_party/jni_zero/jni_registration_generator.py
similarity index 99%
rename from base/android/jni_generator/jni_registration_generator.py
rename to third_party/jni_zero/jni_registration_generator.py
index 30c7e70..c39819c 100644
--- a/base/android/jni_generator/jni_registration_generator.py
+++ b/third_party/jni_zero/jni_registration_generator.py
@@ -1,7 +1,6 @@
 # Copyright 2017 The Chromium Authors
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
-
 """Entry point for "link" command."""
 
 import collections
@@ -24,7 +23,6 @@
 import action_helpers  # build_utils adds //build to sys.path.
 import zip_helpers
 
-
 # All but FULL_CLASS_NAME, which is used only for sorting.
 MERGEABLE_KEYS = [
     'CLASS_PATH_DECLARATIONS',
@@ -378,7 +376,7 @@
 package ${PACKAGE};
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 public class ${CLASS_NAME} {
@@ -423,7 +421,7 @@
 
 
 // This file is autogenerated by
-//     base/android/jni_generator/jni_registration_generator.py
+//     third_party/jni_zero/jni_registration_generator.py
 // Please do not change its content.
 
 #ifndef ${HEADER_GUARD}
@@ -478,7 +476,6 @@
 
 class DictionaryGenerator(object):
   """Generates an inline header file for JNI registration."""
-
   def __init__(self, jni_obj, options):
     self.options = options
     self.file_path = jni_obj.filename
diff --git a/base/android/jni_generator/jni_zero.py b/third_party/jni_zero/jni_zero.py
similarity index 100%
rename from base/android/jni_generator/jni_zero.py
rename to third_party/jni_zero/jni_zero.py
diff --git a/third_party/jni_zero/jni_zero.pydeps b/third_party/jni_zero/jni_zero.pydeps
new file mode 100644
index 0000000..19e9742
--- /dev/null
+++ b/third_party/jni_zero/jni_zero.pydeps
@@ -0,0 +1,17 @@
+# Generated by running:
+#   build/print_python_deps.py --root third_party/jni_zero --output third_party/jni_zero/jni_zero.pydeps third_party/jni_zero/jni_zero.py
+../../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
+codegen/placeholder_gen_jni_java.py
+codegen/proxy_impl_java.py
+common.py
+java_lang_classes.py
+java_types.py
+jni_generator.py
+jni_registration_generator.py
+jni_zero.py
+parse.py
+proxy.py
diff --git a/base/android/jni_generator/parse.py b/third_party/jni_zero/parse.py
similarity index 99%
rename from base/android/jni_generator/parse.py
rename to third_party/jni_zero/parse.py
index 48949c3..e7580bd 100644
--- a/base/android/jni_generator/parse.py
+++ b/third_party/jni_zero/parse.py
@@ -9,7 +9,6 @@
 
 import java_types
 
-
 _MODIFIER_KEYWORDS = (r'(?:(?:' + '|'.join([
     'abstract',
     'default',
diff --git a/base/android/jni_generator/proxy.py b/third_party/jni_zero/proxy.py
similarity index 100%
rename from base/android/jni_generator/proxy.py
rename to third_party/jni_zero/proxy.py