)]}'
{
  "log": [
    {
      "commit": "2a818d98e965f6c1f6bc7b95aa626e127d6866df",
      "tree": "eb2ea40ec678ed865892ac513dda427dd1d2180b",
      "parents": [
        "d016a3eef68a4f4fa264f60c792271ab952cfe54"
      ],
      "author": {
        "name": "m3rbi",
        "email": "yuval.meerbaum@island.io",
        "time": "Tue Oct 20 19:29:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 19:36:01 2026"
      },
      "message": "Android: support the macOS JDK layout for local builds\n\n//third_party/jdk/current fetches jdk/${platform}, and the mac-arm64\npackage keeps the .jdk bundle layout (current/Contents/Home/...), uses\n.dylib libraries and include/darwin headers, and lacks libawt_headless,\nlibawt_xawt and libjsvml. Add //third_party/jdk/java_home.py as the\nsingle definition of the JDK home for Python, and\n//third_party/jdk/jdk.gni (android_jdk_home and the JDK input lists,\nmoved out of config.gni) as its GN counterpart, and route\n//build/android, jni_zero and //third_party/jdk through them so Android\nbuilds work on macOS hosts. Linux is unchanged.\n\nBug: 537801212\nChange-Id: Ie5be52cc3da339f92bbc4244d639875eab405325\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8559481\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1723148}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9791b17b69fb09bb582f500f92d3c4eac05ee13f\n"
    },
    {
      "commit": "d016a3eef68a4f4fa264f60c792271ab952cfe54",
      "tree": "0feb023175595a2c3598df3e0a1b5b5013fd072e",
      "parents": [
        "a33f4a4a633fe20668185c4ab3e001d78a4deb7e"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Tue Oct 20 00:45:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 00:55:54 2026"
      },
      "message": "jni_zero: Kotlin support fixes\n\n1. Fix empty output\n2. Fix @JniType being applied to interfaces directly like\n@JniType(\"::task_manager::TaskManagerObserverAndroid\")\ninterface NativeTaskManagerObserverAndroid : JniTypeToken\n3. Fix `constructor` parsing logic\n\nBug: 540829421\nChange-Id: Ic22dc04df639f817caeefb08f65a09066a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8612060\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1722471}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f15e9b0ee7179a2b53130b9e209c271418a9c537\n"
    },
    {
      "commit": "a33f4a4a633fe20668185c4ab3e001d78a4deb7e",
      "tree": "b19f6a490a92721bda2f67ccfc90c01dae8f3aa3",
      "parents": [
        "e509dbbeb4f3401aff0fec11f46cd8777212b6c8"
      ],
      "author": {
        "name": "ainozaki",
        "email": "ainozaki@google.com",
        "time": "Tue Oct 20 00:22:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 00:36:39 2026"
      },
      "message": "Expand Clang\u0027s AllocToken coverage\n\nAllocToken (-fsanitize\u003dalloc-token) rewrites allocation calls into\ntoken-aware variants such as __alloc_token__Znwm(size, token). Since\nonly allocator_shim defines them, the alloc_token config is currently\napplied only to allocator_shim\u0027s dependents via all_dependent_configs.\nAs a result, components that don\u0027t depend on allocator_shim, mainly\nthird-party libraries, are not instrumented.\n\nThis CL applies the config to all code and links weak fallbacks for the\n__alloc_token_* functions into every binary. The fallbacks drop the\ntoken and call the regular allocation functions. In binaries that link\nallocator_shim, its strong definitions override the fallbacks, so tokens\nstill reach PartitionAlloc. AllocToken stays disabled by default for\nnow.\n\nThis CL includes the following key modifications:\n- Add the use_alloc_token GN arg to enable AllocToken.\n- Add the alloc_token config to default_compiler_configs, instead of\n  propagating it via allocator_shim\u0027s all_dependent_configs.\n- Add the weak fallbacks (//build/sanitizers/alloc_token_aliases.c and\n  alloc_token_aliases_cxx.cc) to //build/config:common_deps.\n- Opt out no_default_deps binaries\u0027 own sources automatically, and\n  libraries linked into them explicitly (jni_zero, ui/qt, gcapi_mac).\n- Remove the ignorelists and drop component build support.\n\nBug: 477186304\nChange-Id: Ia4facf48eb3702d090ebe74d8174a48adc9a0520\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8483472\nReviewed-by: Hans Wennborg \u003chans@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Mikihito Matsuura \u003cmikt@google.com\u003e\nReviewed-by: Mark Mentovai \u003cmark@chromium.org\u003e\nReviewed-by: Thomas Anderson \u003cthomasanderson@chromium.org\u003e\nCommit-Queue: Ai Nozaki \u003cainozaki@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1722463}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 2123f8d5a5444ef0c3973977d7ee54d680f9f41f\n"
    },
    {
      "commit": "e509dbbeb4f3401aff0fec11f46cd8777212b6c8",
      "tree": "7d8a30d4e5766c3bb0c6f6f1b17bf8ae584bb072",
      "parents": [
        "ba6b8a2fc742a112d11e503cb9171a3577f1c737"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Mon Oct 19 13:40:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 14:07:38 2026"
      },
      "message": "jni_zero: Add goldens for Kotlin\n\nThis is the final Kotlin support CL - after this, we should be good to\nhave jni_zero fully support Kotlin.\n\nBug: 540829421\nChange-Id: Icbfae567ec04c0fa6d668e93cd4318a66a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8267105\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1721849}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7306a4c3d30e72866658c1674a8a6fa66ec35460\n"
    },
    {
      "commit": "ba6b8a2fc742a112d11e503cb9171a3577f1c737",
      "tree": "8c711149146c3a581ab15841fb321f624682a3c8",
      "parents": [
        "75257e592298000aa37aec501b4e7c3ec14b88db"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Thu Oct 15 16:01:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 16:29:16 2026"
      },
      "message": "jni_zero: Kotlin outputs\n\nSince kotlinc doesn\u0027t allow a kotlin class to be the parent of an\nalready compiled java class (the @NativeMethods annotated inner class\nin Foo.kt should be the parent of FooJni), we need FooJni.java to also\nbe able to be a kotlin file. Kotlinc will then allow lazy resolution of\nthe parent, and won\u0027t freak out when it can\u0027t find it in our generated\nfiles, and will happily look to our now-compiling .kt file.\n\nBug: 540829421\nChange-Id: I758732231ac94ae112c758aab42fecfa6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8546954\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1719731}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a0e256d5ac03de2ab2c4245f458ccd624b024002\n"
    },
    {
      "commit": "75257e592298000aa37aec501b4e7c3ec14b88db",
      "tree": "e7ab55f80b1c50500bac3db7e2c4e92fd4fea3bf",
      "parents": [
        "4f204386529ade373d222d242cc7b7866f738753"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Fri Oct 02 22:59:30 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 02 23:07:54 2026"
      },
      "message": "Add Kotlin @CalledByNative support to JNI Zero\n\nThis is intended to match pretty closely to how we parse in Java, with\nKotlin specific details. It\u0027s easiest to review if you pull up\njava_parse.py side by side as most things here have an equivalent there.\n\nBug: 540829421\nChange-Id: Ia3928d5243994fab429034c92142adba6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8267104\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710516}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8ed3f6ceedecc8e26a50107a434f745c5e6d6420\n"
    },
    {
      "commit": "4f204386529ade373d222d242cc7b7866f738753",
      "tree": "19e34a9d6b42bce4fcbbee81f1d708d316345957",
      "parents": [
        "c8519b8fec81fa2b488b85fa3fac313250327fbc"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Fri Oct 02 22:14:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 02 22:25:10 2026"
      },
      "message": "Add Kotlin @NativeMethods support to JNI Zero\n\nAdd parsing for Kotlin (.kt) files implementing @NativeMethods\ninterfaces, type translation from Kotlin types to JavaType, and\nassociated parse unit tests.\n\nBug: 540829421\nChange-Id: I55b9f149bb099a65e3a77aa348b87efd6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8267103\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1710479}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: cccca9e7811debd40e4cc4386d6a18adfccb7045\n"
    },
    {
      "commit": "c8519b8fec81fa2b488b85fa3fac313250327fbc",
      "tree": "2d454c957a6881aa556f7f3b9b538b9ab5683d60",
      "parents": [
        "c600a91ff4d684b8f7aedf59c6f6d40c5e3b90ef"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Wed Sep 30 22:13:03 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 30 22:21:09 2026"
      },
      "message": "jni_zero: Move parse_test.py into the test/ directory\n\nChange-Id: I2051ddd6f2cb8b8ba08b9a7e56083f4d350eb806\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8484394\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1708485}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 520d4ccc7ee857482611afd75db88c68c00012b0\n"
    },
    {
      "commit": "c600a91ff4d684b8f7aedf59c6f6d40c5e3b90ef",
      "tree": "8c694257585db3b2d92a8b1dafc3a6d242762010",
      "parents": [
        "01cbc684f21f16fd1dc6c3ba4d6b2a6888912953"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Wed Sep 30 16:47:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 30 16:51:36 2026"
      },
      "message": "jni_zero: Split java_parse.py into parse_common\n\nIn anticipation of kotlin parsing, we will share a chunk of code with\nJava parsing. We\u0027ll do this mostly upfront so that there is a\n0-behaviour change CL that\u0027s easy to review to shrink the diff for the\nothers\n\nBug: 540829421\nChange-Id: I33e0b1e125308c1e53d0db098b690f5e6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8477454\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1708213}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 00abe821f97eb5e940a2918b6aba338190d03d49\n"
    },
    {
      "commit": "01cbc684f21f16fd1dc6c3ba4d6b2a6888912953",
      "tree": "fa2b7577dfd35bf00dcc9462b0010b65581b4fc7",
      "parents": [
        "7a9b647b994928d7b78c53dc0b409a666855e435"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Tue Sep 29 02:21:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 29 02:34:43 2026"
      },
      "message": "jni_zero: Rename parse.py to java_parse.py\n\nIn anticipation of kotlin parsing, rename parse.py to java_parse.py.\nThis is a pure rename with no behaviour change, so that gerrit can make\nthis easy to review.\n\nBug: 540829421\nChange-Id: Ia1f87b1ae572b04124510822ceb383436a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8477555\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1706634}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 275593e135312446a752b11fc1ec82fbd7851334\n"
    },
    {
      "commit": "7a9b647b994928d7b78c53dc0b409a666855e435",
      "tree": "728759faa0b6d581b4197781438a317b47a459b5",
      "parents": [
        "75b77343c1fdb6ef8fb43567b171843977bfbdea"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Sat Sep 26 03:15:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Sep 26 03:20:14 2026"
      },
      "message": "JNI Zero: Restrict JniRawPtr construction to MakeRaw\n\nJniRawPtr exposed both a public T* constructor and jni_zero::MakeRaw()\nfor the same operation, while JniUniquePtr is only constructible through\njni_zero::MakeUnique(). Having two spellings for one operation makes the\nAPI inconsistent between the two safe pointer types and leaves no single\ncall site pattern to grep or lint for when auditing where C++ hands a\nborrowed pointer to Java.\n\nMake the T* constructor private and befriend MakeRaw so non-null\nJniRawPtr instances can only be created via jni_zero::MakeRaw(). The\ndefault and nullptr constructors stay public, matching JniUniquePtr.\n\nTAG\u003dagy\nCONV\u003d0bfa03dc-e65b-4b30-b71a-bad41af6b0c8\n\nBug: 40794873\nChange-Id: I07722988836e1cd96e042d286ede2ed8b2eb67b5\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8457144\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1705444}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 2b1e157748e6ba18d443c6a6fbc4df0cdba18245\n"
    },
    {
      "commit": "75b77343c1fdb6ef8fb43567b171843977bfbdea",
      "tree": "afbfb4adbe2db5f16ea6c6de1959f6a16b1adfe1",
      "parents": [
        "346b49c5f61ae36d40c062a593a8884252903629"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Fri Sep 25 12:06:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 25 12:10:13 2026"
      },
      "message": "JNI Zero: Document safe JNI pointer usage in READMEs\n\nJNI Zero now supports typed safe pointer wrappers (JniUniquePtr,\nJniRawPtr, and JniPtr) alongside raw long addresses, but the user-facing\nREADMEs only documented raw long pointers and member-function dispatch.\n\nDocument the three safe pointer ownership models, JniTypeToken\ndeclarations, boundary signature rules, and self-based member-function\ndispatch in README.md and README.chromium.md while retaining the\nexisting raw long documentation.\n\nTAG\u003dagy\nCONV\u003d14852b41-6799-4564-953a-4b1f2809c948\n\nBug: 40794873\nChange-Id: I420e1b5eda51be6e591d4bbfa953cd00a63d62e4\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8456822\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1704706}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 43bce992aa8c46ffe051dc49738ff9889ce4ae87\n"
    },
    {
      "commit": "346b49c5f61ae36d40c062a593a8884252903629",
      "tree": "930ef2370f6caf00b52bbe57cb2add10f2c4414b",
      "parents": [
        "437da73cd152ab1100d44d921bfe06f769580d46"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Thu Sep 24 14:11:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 14:17:47 2026"
      },
      "message": "JNI Zero: Restrict JniUniquePtr construction to MakeUnique\n\nJniUniquePtr previously exposed a public constructor accepting a raw T*\npointer alongside std::unique_ptr\u003cT\u003e. Accepting a raw pointer allows\nunowned pointers (such as smart_ptr.get()) to be wrapped into a\nJava-owned handle without an explicit ownership transfer at the call\nsite, risking double deletion when Java destroys the handle.\n\nRemove the raw T* constructor and make the std::unique_ptr\u003cT\u003e\nconstructor private so non-null JniUniquePtr instances can only be\nconstructed through jni_zero::MakeUnique. Callers adopting an existing\nheap allocation must now wrap it explicitly (e.g. via\nbase::WrapUnique) before passing it to MakeUnique.\n\nTAG\u003dagy\nCONV\u003df345e01a-0bb9-43c7-9a25-99ad14cc841f\n\nBug: 40794873\nChange-Id: I736c642de1f7aafe6293192f9636f7be098e665d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8457723\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1704264}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7f274dd32c8e53ae32f586ca8438926c173f357c\n"
    },
    {
      "commit": "437da73cd152ab1100d44d921bfe06f769580d46",
      "tree": "922a5820093023d4afc5315d4dd3d71d526ad0e8",
      "parents": [
        "810e07c376728b8666666163a42e0f6d5a058f71"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Wed Sep 23 01:50:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 01:57:30 2026"
      },
      "message": "JNI Zero: Add safe pointer E2E tests and sample verification\n\nAdd end-to-end instrumentation tests to jni_zero_sample_apk_test\ncovering JniPtr automatic invalidation on return from @CalledByNative,\nJniRawPtr persistence across @CalledByNative and invalidation on\nrelease(), and JniUniquePtr native destructor execution and invalidation\non destroy().\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: I7864c0bd188e2a588f790d292a0da2b3dabe548f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260454\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1703138}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d6675fd7b7054fd0cd243bbfd380486b2e94ca9c\n"
    },
    {
      "commit": "810e07c376728b8666666163a42e0f6d5a058f71",
      "tree": "8440110bc1bb12571971a4cc77dfed28dfcf5f43",
      "parents": [
        "a96038e4b2dbd1b781248d99a4ef449b21b40089"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Tue Sep 22 18:51:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 19:01:45 2026"
      },
      "message": "JNI Zero: #include \u003cutility\u003e since we use std::move().\n\nChange-Id: I1c75ab9e7630c6941d33db1ed0576b1ff4f2e9a0\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8445637\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1702835}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f6400aeb8b1f60a4701de8331f5ad225cbf8daee\n"
    },
    {
      "commit": "a96038e4b2dbd1b781248d99a4ef449b21b40089",
      "tree": "f347fa2bbe3253b591b5fbf59ed0c3e65f8ca6ba",
      "parents": [
        "d43935981e870f62a070aa791dfffac90d669b0e"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Tue Sep 22 13:46:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 13:57:01 2026"
      },
      "message": "JNI Zero: Avoid shadowing JniPtr in placeholder srcjars\n\n`_CreatePlaceholderSrcJar` previously emitted a non-generic\n`public interface JniPtr {}` stub whenever a source file imported\n`JniPtr`. Because `javac` prefers `--java-srcjars` over `--classpath`,\nthat stub shadowed the generic `org.jni_zero.JniPtr\u003cT\u003e` from\n`//third_party/jni_zero:gendeps_java`, causing\n`JniZeroInternal.getNativePtr(self)` in `\u003ctarget\u003e_jni_java` to fail to\ncompile. Skip `JniPtr` when generating placeholder srcjars.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: I04faf0e11a7d0b47b102ba11b5d48fef833d04b4\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8429643\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1702561}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b8e51e3073fd483b4e344310017e2dd08601f8cd\n"
    },
    {
      "commit": "d43935981e870f62a070aa791dfffac90d669b0e",
      "tree": "9e40373abe895ceee2104e562ca66770f8733f51",
      "parents": [
        "b2f714a7e069aeaaf3b7fbf95b5897852b4f9596"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Mon Sep 21 18:30:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 18:46:41 2026"
      },
      "message": "JNI Zero: Enforce safe pointer return types in generated native stubs\n\nGenerated @NativeMethods entry points previously deduced return_value\nwith `auto` before erasing the pointer to jlong, leaving the resolved\nC++ wrapper type only in a comment. Declare return_value with the\nresolved backend C++ type (e.g. ::jni_zero::JniUniquePtr\u003c::Foo\u003e) so\nmismatched pointee or ownership types fail at C++ compile time.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: I23d182bc22d61652ac9bd9bbc42a4d475d12e4b7\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8425502\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701913}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8cd9f21e2ce8c5259d9ed9a7132174dd105f3233\n"
    },
    {
      "commit": "b2f714a7e069aeaaf3b7fbf95b5897852b4f9596",
      "tree": "f31e2d1dd88b6a4fb15fd5af144c6855d4259ec7",
      "parents": [
        "dbc96a25fc5d5861f7ab183df9c2d9b5645b7e42"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Mon Sep 21 18:25:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 18:38:45 2026"
      },
      "message": "JNI Zero: Avoid native release in JniRawPtr.createForTesting\n\nJniRawPtr.createForTesting(fakePtr) returned a plain JniRawPtrImpl whose\nrelease() called CommonApisJni.releaseRawPtr() when raw_ptr hooks were\nenabled, decrementing BackupRefPtr refcounts on an un-wrapped fake\naddress. Return an anonymous JniRawPtrImpl subclass that clears\nmNativePointer and destroys the leak tracker without calling native.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: Ibef75a61a66be8a624ea506205debaa72441e082\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8429784\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701905}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9c4866c65e18214ac3e0195b19daaae7e3de8db5\n"
    },
    {
      "commit": "dbc96a25fc5d5861f7ab183df9c2d9b5645b7e42",
      "tree": "79ae2acac1db5a8bc044837ae5a2457c94d1b281",
      "parents": [
        "76a854125eabf25ce33f1d03d709d4fcfaa1a34e"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Mon Sep 21 18:23:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 18:37:32 2026"
      },
      "message": "JNI Zero: Add variadic MakeUnique\u003cT\u003e and remove MakeUnique(T*)\n\nCallers returning a newly constructed C++ object as a JniUniquePtr\u003cT\u003e\npreviously had to write MakeUnique(std::make_unique\u003cT\u003e(...)). Add a\nvariadic MakeUnique\u003cT\u003e(Args\u0026\u0026...) overload so T can be constructed in\nplace, and remove the unused MakeUnique(T*) overload so raw pointers\ncannot be accidentally wrapped as owned pointers via MakeUnique.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: I480686dc32d7f7b6767f0384591933cf6d5c680a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8428201\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701902}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9c025a210296f95ba5107204cb6cda71f15e8233\n"
    },
    {
      "commit": "76a854125eabf25ce33f1d03d709d4fcfaa1a34e",
      "tree": "8901775de57ce25aab64c8723a8bc1a44bfcc5bf",
      "parents": [
        "1d8ddf1dd487ce263fc1d32b1387e8c1a1e0f34d"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Mon Sep 21 18:17:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 18:27:55 2026"
      },
      "message": "JNI Zero: Remove AutoCloseable from JniUniquePtr\n\nJniUniquePtr is stored as a field on Java bridge classes whose lifetime\nspans multiple callbacks and is torn down from destroy(), rather than\nscoped to a single lexical block via try-with-resources. Remove\nAutoCloseable and close() so destroy() is the single teardown\nentrypoint.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: I4289f5c6393179a0a87517a78e609515df14ef16\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8429882\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701892}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 44e9bbda57510cc216d1a9c45bc4b26f590a3cc0\n"
    },
    {
      "commit": "1d8ddf1dd487ce263fc1d32b1387e8c1a1e0f34d",
      "tree": "aae943c163ad45557bf8f9e87ed8b16db39c0432",
      "parents": [
        "8551c849c9174beee45d2409bafaa8fd2a252962"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Sat Sep 19 04:37:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Sep 19 04:43:02 2026"
      },
      "message": "JNI Zero: Wire //base leak detection and raw_ptr hooks\n\nJniUniquePtr and JniRawPtr must be explicitly destroyed or released, and\na dropped wrapper leaks the native object with nothing to report it.\n\nBecause jni_zero cannot depend on //base, //base plugs itself in during\nstartup: LibraryLoader() registers a\nSafePointersTrackerFactory backed by LifetimeAssert, and InitVM()\ninstalls //base\u0027s raw_ptr hooks so a pointer Java holds as a JniRawPtr\nstays BackupRefPtr-protected for its entire borrow duration.\n\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nBug: 40794873\nChange-Id: Ie55f72a8883d342a87d361430f9ee2bfbe5de912\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260453\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701334}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a0c69236e7dc5336ca9e6924209bb35066d746f4\n"
    },
    {
      "commit": "8551c849c9174beee45d2409bafaa8fd2a252962",
      "tree": "f91294c5454b2f0f3d91444d1da6778f078d612d",
      "parents": [
        "d4cd3ffa803f8e51c15efc341f0fc158ec5d36f2"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Sat Sep 19 01:00:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Sep 19 01:06:40 2026"
      },
      "message": "JNI Zero: Allow safe pointer as member-function first param\n\nIn JNI Zero, proxy native methods dispatch to C++ member functions when\nthe first parameter has a \"native\" prefix (traditionally a raw\n\"long nativeFoo\"). When migrating native methods to safe pointers,\ncallers pass a JniPtr\u003cT\u003e receiver instead of a raw long.\n\nUnlike raw longs where the C++ class name had to be inferred from the\nparameter name or specified via @NativeClassQualifiedName, a safe\npointer token already defines the target C++ type via @JniType. Using\n\"self\" as the parameter name triggers member-function dispatch without\nrepeating the class name.\n\nIn parse.py, accept JniPtr\u003cT\u003e named \"self\" alongside primitive long\n\"native...\" first parameters. Reject safe pointer first parameters whose\nname starts with \"native\" so mechanical type-only migrations from\n\"long nativeFoo\" do not silently fall back to free-function dispatch.\nForbid @Nullable on member receivers, and reject redundant\n@NativeClassQualifiedName when a safe pointer is passed.\n\nIn jni_generator.py, extract the target C++ class from the token\u0027s\nbackend type. Make first_param_cpp_type a property so that the\nregistration link step (generate_final_jni) constructs NativeMethod\nwithout demanding a type catalog for types it does not emit.\n\nIn proxy_impl_java.py, emit an assertion that the safe pointer receiver\nis not null instead of checking for non-zero.\n\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nBug: 40794873\nChange-Id: I2f793757be08a29ad4558fb218c94404f147bf26\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8264589\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701284}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 572ee16b373c41b83923e62b6af9cccd07d28949\n"
    },
    {
      "commit": "d4cd3ffa803f8e51c15efc341f0fc158ec5d36f2",
      "tree": "57ac86f7c1fcba42c1b66814a8de8496f6bea67a",
      "parents": [
        "a514f0edf56a8234acaf6c7eacd0f579769f8a69"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Sep 18 15:48:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:55:04 2026"
      },
      "message": "JNI Zero: Add java_ref.IsSameObject(env, other_ref)\n\nJust a slightly nicer syntax over env-\u003eIsSameObject(a.obj(), b.obj())\n\nChange-Id: I577d41248a50cc7adfa5bfb85e1d4065baba6d16\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8427020\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1700812}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 75f459c5f7224a2acb32c2b3d77e8e3c0980bcd8\n"
    },
    {
      "commit": "a514f0edf56a8234acaf6c7eacd0f579769f8a69",
      "tree": "8be5616919fb14a76fe7ecd31ce2567c27b05ca5",
      "parents": [
        "d9a64ece739944aa09d0d064868a6c386a236664"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Fri Sep 18 05:36:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 05:50:30 2026"
      },
      "message": "JNI Zero: Support safe pointer parameters in proxy native methods\n\nAllow @NativeMethods to accept JniPtr\u003cT\u003e parameters. The generated\nFooJni class unwraps the pointer to a jlong via JniZeroInternal so that\nthe JNI boundary passes a raw address, and the C++ stub casts it back\nto T* before invoking the native implementation.\n\nDeclared parameter types must use JniPtr\u003cT\u003e; JniUniquePtr and JniRawPtr\nare rejected during parse to enforce short-borrow semantics, though\ninstances of either can be passed since both implement JniPtr.\n\nMove JniPtr, JniZeroInternal, JniPtrInner, and JniTypeToken from\njni_zero_java to gendeps_java so that generated FooJni classes in user\npackages can reference them without adding direct dependencies on\njni_zero_java.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: I0bf5ebf40347af45881b734fe588a2c0ea7b962f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8264588\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1700496}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 888d0855e4a04c20535bb1e827e062205995e709\n"
    },
    {
      "commit": "d9a64ece739944aa09d0d064868a6c386a236664",
      "tree": "8932b108a2f67a13dd34131fd27776c20c4cb371",
      "parents": [
        "ed37891ccf4dd09437dc1796dbd8639eb014f5e5"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Fri Sep 18 05:34:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 05:39:38 2026"
      },
      "message": "JNI Zero: Pass JniUniquePtr by rvalue reference in CalledByNative\n\nJniUniquePtr is move-only. Accepting it by rvalue reference (\u0026\u0026) in\nCalledByNative dispatchers matches JNI Zero\u0027s convention for move-only\n@JniType parameters and avoids an extra move construction between the\nmirrored wrapper and the Java_... entry point. JniPtr (T*) and JniRawPtr\nare trivially copyable and continue to be passed by value.\n\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nBug: 40794873\nChange-Id: I83093ffe40c57c887719ae9b49e5978d75d95ac6\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8264587\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1700494}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 60c8d64bbe73456c51a16be456f3384d75ff7d4a\n"
    },
    {
      "commit": "ed37891ccf4dd09437dc1796dbd8639eb014f5e5",
      "tree": "e417518912760740fa6fd5e347b7a7b017ecea85",
      "parents": [
        "7eac2fba5057d00f25e39281386ab4f2a90b8c45"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Thu Sep 17 16:52:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 17:01:54 2026"
      },
      "message": "JNI Zero: Run integration tests concurrently\n\nEach integration test case invokes the JNI Zero generator in an\nisolated subprocess and verifies generated artifacts against golden\nfiles. Under unittest.main(), all test cases execute sequentially,\nforcing developer test cycles to pay serialized subprocess invocation\nand disk I/O latency that scales linearly with test count (~7.3s for\n~40 test cases).\n\nThis CL introduces ConcurrentTestRunner to dispatch test cases over\na ThreadPoolExecutor. Multithreading is chosen over multiprocessing\nbecause test execution is bound by external subprocesses rather than\nPython CPU computation. Threads naturally release the GIL while\npreserving the in-memory _accessed_goldens registry that REBASELINE\nmode uses to detect and prune orphaned golden files. Test isolation\nis maintained because each test executes within a unique temporary\ndirectory, golden filenames are namespaced by test method, and\nmutations to _accessed_goldens are synchronized with a lock.\n\nThis reduces wall-clock execution time by an order of magnitude,\nfrom ~7.3s to ~0.75s, while preserving CLI flags, test filtering,\nand failure reporting semantics.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: If40c7315f6a732d0bc3cae646fd77391e242cf80\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8423739\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1699907}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 13228ac491006dd2f3c55271ce66ba131db5ae99\n"
    },
    {
      "commit": "7eac2fba5057d00f25e39281386ab4f2a90b8c45",
      "tree": "c90189ad012698480972edf47e771addad41c1c3",
      "parents": [
        "2bda5a9502ca6242fd48bd02452259daebae2b91"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Thu Sep 17 16:14:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 16:37:33 2026"
      },
      "message": "JNI Zero: Require JniPtr\u003cT\u003e for @CalledByNative safe pointer returns\n\nJava cannot transfer ownership of a JniUniquePtr back to C++ without\ndestroying the native object. Returning JniRawPtr is also undesirable:\nit forces C++ callers to unwrap a jni_zero::JniRawPtr\u003cT\u003e with .get()\neven though C++ already manages the object\u0027s lifetime, and it prevents\nJava classes that own a JniUniquePtr field from returning their pointer.\n\nRequire @CalledByNative safe pointer returns to declare JniPtr\u003cT\u003e.\nBecause JniUniquePtr and JniRawPtr both implement JniPtr, Java methods\ncan return either type while C++ receives a plain T*. Reject\nJniUniquePtr and JniRawPtr return types in parse.py, and remove the\nunreachable MakeRaw branch in called_by_native_header.py.\n\nTAG\u003dagy\nCONV\u003d333e26fc-817b-442f-9f89-738c7789ddce\n\nBug: 40794873\nChange-Id: I4c70ac34e288999f93e2009b07854b9a4969447c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8404765\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1699870}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c6a54b57b9c0ff702f89b1823488c0340bcfc397\n"
    },
    {
      "commit": "2bda5a9502ca6242fd48bd02452259daebae2b91",
      "tree": "369ab1962d49cfa427b65cbd6f60c645162cb891",
      "parents": [
        "d766f41f0ad813fc6e5b75612b65d40210ec409a"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Thu Sep 17 16:12:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 16:36:45 2026"
      },
      "message": "JNI Zero: Generate wrapper construction for CalledByNative and returns\n\nImplements C++ to Java object construction and proxy native return\ncode generation for safe JNI pointers.\n\nThe wrapper classes are constructed through @CalledByNative bindings\nrather than hand-written JNI, so they pick up the standard method ID\ncaching, stack markers and ProGuard keep rules. Construction can only\nfail from OOM, which those bindings already treat as fatal, consistent\nwith every other allocation failure at the JNI boundary.\n\nReading a wrapper\u0027s pointer from C++ goes through\nJniZero.getNativePtr(JniPtrInner), which provides the @CalledByNative\nentrypoint so gendeps_java (where JniPtrInner lives later in the stack)\ndoes not need to depend on CalledByNative. It forwards to\nJniZeroInternal.getNativePtr(), which keeps its typed signature for\ngenerated Java glue.\n\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nBug: 40794873\nChange-Id: I4db1013a3e0b62c21f9cfddad0812d8d95e62d3b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260452\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1699867}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8396ecf9a66c839378d1dd2439d5d05396eda942\n"
    },
    {
      "commit": "d766f41f0ad813fc6e5b75612b65d40210ec409a",
      "tree": "7421df4db6b0f1d1b75c4d44a1cf4794204c3498",
      "parents": [
        "71acbcd44b6b5a95232bbf432599f563103a0b97"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Wed Sep 16 04:40:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 04:51:21 2026"
      },
      "message": "JNI Zero: Resolve safe pointer types after parsing all target inputs\n\nWhen multiple Java files in the same target define and consume safe\npointer JniTypeToken interfaces, resolve and validate safe pointer\ntypes in a post-parse pass once all target inputs have been parsed.\n\nPreviously each file was resolved against a private copy of the type\ncatalog that was never propagated back, so a token defined in one file\nwas invisible to every other file in the target regardless of parse\norder. Resolving after all inputs are parsed lets the target\u0027s own type\ntokens be merged into the catalog first, so cross-file safe pointers\nresolve in a single unified pass.\n\nThe link step must accept safe pointer signatures too, or it rejects\nevery file that uses one. It never resolves the inner types, and\nnothing it emits depends on them: GEN_JNI declares a safe pointer as\nits boundary type, and the link step cannot depend on the targets that\npublish the C++ types anyway. A golden over generate-final pins that\ndown.\n\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nBug: 40794873\nChange-Id: Ic8f2943a958c4cc26b8c62d62d1646821bc8fe8e\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8264586\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1698623}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 17a4d1776d5fab318d940a8937d26307d31d2967\n"
    },
    {
      "commit": "71acbcd44b6b5a95232bbf432599f563103a0b97",
      "tree": "f14ca2279ca258bf28e37ab09dbb81ec4928b5c9",
      "parents": [
        "0dcbc1a3f383f71983c92be3f9e2d99ccc831c71"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Tue Sep 15 00:18:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 00:24:23 2026"
      },
      "message": "JNI Zero: Implement GN Metadata Type Catalog\n\nSafe JNI pointers name their C++ type through a JniTypeToken interface,\nwhich is often declared in a different build target than the one using\nit. Publish each target\u0027s class-level @JniType annotations as a type\ncatalog and aggregate the catalogs of a target\u0027s dependencies via GN\nmetadata, so that a token resolves across target boundaries.\n\nThe catalog is consulted only for a safe pointer\u0027s inner token. Applying\nit to every type would let a dependency\u0027s annotation change a proxy\nsignature in the dependent, which the link step cannot reproduce: it is\ngiven no catalog, because it cannot depend on the targets that publish\nthem (they depend back on it via srcjar_deps).\n\nBecause GN generated_file() writes *__type_catalogs.json files at gn gen\ntime without Ninja build rules, register __type_catalogs.json in\nninja_parser.py _IGNORED_SUFFIXES so that private_code_test treats them\nas ignored build metadata rather than unmapped linker input sources.\n\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nBug: 40794873\nChange-Id: I260d16aee7885d03b90e505e20153971ea74b352\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260451\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1697667}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 11916e2886574534b6e3a9d1731e2ad470ccabe9\n"
    },
    {
      "commit": "0dcbc1a3f383f71983c92be3f9e2d99ccc831c71",
      "tree": "efaf6693ae848d027abc5fc269c973accb04c752",
      "parents": [
        "2f46d39c87ac353393e61e206769c911f4716990"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Wed Sep 09 03:08:52 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 09 03:41:53 2026"
      },
      "message": "JNI Zero: Add safe pointer classes to JavaType and support parsing\n\nThis CL enables JNI Zero\u0027s parser to recognize JniPtr, JniUniquePtr,\nand JniRawPtr safe pointer types, populating their generic inner types,\nrejecting safe pointer array types, and exposing boundary/backend C++ types.\n\nBug: 40794873\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nChange-Id: Ifae6a1e9e82dafaec8c98e114c85b8933bd8963d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260450\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694309}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a970c0ca4598e6a97cc0e6ab0c2ce8ead647376f\n"
    },
    {
      "commit": "2f46d39c87ac353393e61e206769c911f4716990",
      "tree": "909ca3ab41e64632ca7daa2ee40e28ce9d26a8ed",
      "parents": [
        "c90a6478b266d8678667655502cbe9ec97bde118"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Tue Sep 08 14:26:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 14:51:04 2026"
      },
      "message": "JNI Zero: Add Java JniRawPtr and C++ wrappers\n\nIntroduces the \"long borrow\" safe JNI pointer type on both sides of the\nboundary: org.jni_zero.JniRawPtr / JniRawPtrImpl on the Java side and\njni_zero::JniRawPtr\u003cT\u003e on the C++ side (design: go/safe-jni-pointers).\n\nUnlike JniUniquePtr, Java does not own the pointee. C++ keeps ownership\nand Java holds a borrowed reference that it must drop by calling\nrelease(). release() routes through CommonApis.releaseRawPtr() so that\nthe PartitionAlloc BackupRefPtr reference taken when the pointer crossed\ninto Java is dropped again. BRP quarantine only stops the memory slot\nfrom being reused after C++ deletes the object; it does not extend the\nobject\u0027s lifetime or delay ~T().\n\nThe C++ wrapper is deliberately a zero-cost, trivially copyable wrapper\naround T* (enforced by static_assert in the unit test): it does not touch\nBRP refcounts in its constructor or destructor, so copies, returns and\nstack unwinding inside C++ cost nothing. Refcount changes happen only at\nthe JNI boundary. This is why JniRawPtr\u003cT\u003e must not be used as a C++\nmember field -- base::raw_ptr\u003cT\u003e is the right type there.\n\nThis CL adds the types, the hook mechanism, and the release path only.\nThe hook implementations and the generated glue that constructs\nJniRawPtrImpl land in later CLs of this stack.\n\nBug: 40794873\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nChange-Id: If5b7861f4e0d7331dc01d404722e711ff9e4437a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260449\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1693770}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: de0462466c60dbc5b9f27d617c807c8875de4c31\n"
    },
    {
      "commit": "c90a6478b266d8678667655502cbe9ec97bde118",
      "tree": "3b3ec7651559f141d19e80d16616f3e119a891c7",
      "parents": [
        "eeefde53cc187976f558c2d4a99135749f776264"
      ],
      "author": {
        "name": "Matt Stark",
        "email": "msta@google.com",
        "time": "Tue Sep 08 05:49:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 05:58:02 2026"
      },
      "message": "Run `gn format` on all build files\n\nThe main purpose of this is to ensure that the recent change to the\nformatter which requires blank lines between targets is applied to the code.\n\nChange-Id: I3b39867342b312935165233e6a6668876a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8350948\nAuto-Submit: Matt Stark \u003cmsta@google.com\u003e\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nOwners-Override: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1693558}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 51d2448c9b469ac9a7e5fd349a624c71291a7510\n"
    },
    {
      "commit": "eeefde53cc187976f558c2d4a99135749f776264",
      "tree": "81d948b90e91c538b13218fc70929652f1930b0e",
      "parents": [
        "cff03b38847b1fee0ecf9f6138d2ff783f605703"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Aug 27 18:25:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 18:30:13 2026"
      },
      "message": "JNI Zero: Update docs for @CalledByNative pooling\n\nAnd remove the now-deleted legacy natives mode\n\nChange-Id: I05845e4e91971c41a18f18d1c295d9eda87e384b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8300314\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1687419}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 6a9ad7e0ed884b42a77aa64229391af027e24fea\n"
    },
    {
      "commit": "cff03b38847b1fee0ecf9f6138d2ff783f605703",
      "tree": "102c38dd5dd12ac6900fd6d32969b9a4870a92db",
      "parents": [
        "bfda14b8467dd0edc245744d8d13b35d384cc419"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Aug 27 15:58:19 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 16:04:13 2026"
      },
      "message": "Android: Make use of @JniType in //chrome/browser (part 1/N)\n\nMigration done using jni-type-conversion skill \u0026 manual touch ups.\n\nBug: 491444984\nChange-Id: I8e5c56ce27188859c88d2f299c36ced092ed94f0\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8279316\nReviewed-by: Wenyu Fu \u003cwenyufu@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1687279}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3729a43e628aef723acc3513e6c2c5aeecee65cf\n"
    },
    {
      "commit": "bfda14b8467dd0edc245744d8d13b35d384cc419",
      "tree": "050d3478142c09dba9eee6cb25dcb8e2e2af2b05",
      "parents": [
        "c33b201257770f9934bb18e61d4b2088bad82429"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Tue Aug 25 19:11:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 19:17:20 2026"
      },
      "message": "Android: Make use of @JniType in android_webview (part 1/2)\n\nMigration done using jni-type-conversion skill \u0026 manual touch ups.\n\nBug: 491444984\nChange-Id: I9e9d816277a6815ee60c201e25503115b021901c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8282597\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Nate Fischer \u003cntfschr@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1685824}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5f0f1ae4002fdfa3311fc22b93b225ceb944411a\n"
    },
    {
      "commit": "c33b201257770f9934bb18e61d4b2088bad82429",
      "tree": "40a0f2e4022dbfca8a571f2fcb375d83fe5b7709",
      "parents": [
        "a06f28462b25543945bd065c972d9a1df8d35c89"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Tue Aug 25 14:28:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 14:36:10 2026"
      },
      "message": "base: Run jni_zero C++ unit tests in base_unittests\n\njni_zero_unittests has no bot coverage today, so the JniUniquePtr\ntemplate-deleter and move-semantics tests only ever run when a developer\nbuilds them locally. Link the test sources into base_unittests on Android\nso CI/CQ exercises them on every change, while keeping the standalone\njni_zero_unittests binary for local iteration and for the jni_zero_tests\ngroup.\n\nBug: 40794873\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nChange-Id: If41e2c349ee8a9a2604c5738e1ae919eda581a6b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8257204\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1685522}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d22d2304d71edf167f7f3bfdf88203917433c4a0\n"
    },
    {
      "commit": "a06f28462b25543945bd065c972d9a1df8d35c89",
      "tree": "ee08408c59444fe99bd9389f376644e36c291fba",
      "parents": [
        "dc40f370f53334ffb1b76a44c48158f74d246682"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon Aug 24 19:13:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 19:19:08 2026"
      },
      "message": "Android: Make use of new JNI Zero array APIs from jni_array.cc\n\nChange-Id: Ie49a93715eaaeb66f95bfd86a41b75bf52975e13\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8277651\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1684906}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9d34da21d798da7a314eae6ed8cfe06d13493bfe\n"
    },
    {
      "commit": "dc40f370f53334ffb1b76a44c48158f74d246682",
      "tree": "d035f693f5712c9a6101c7f827ea2e434a28e98a",
      "parents": [
        "d71e11d52ed45a3c2b7e90c0ded7014eb72f6c92"
      ],
      "author": {
        "name": "Calder Kitagawa",
        "email": "ckitagawa@chromium.org",
        "time": "Mon Aug 24 18:08:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 18:19:29 2026"
      },
      "message": "[build] Accelerate write_build_config and jni_zero in Android builds\n\nDuring clean Android debug builds, write_build_config.py executed 914\ntimes burning ~11,230 cumulative CPU seconds gating downstream\ncompilation, and libchrome__jni_registration.srcjar took 54.4s of\ncritical path wall time due to IPC overhead across worker processes.\n\nThis change optimizes both bottlenecks:\n* In write_build_config: Uses C-accelerated dict.fromkeys in OrderedSet\n  initialization and updates, adds early-exit subtree pruning in\n  difference_update and RemoveDeps, uses buffered json.loads(f.read()),\n  avoids unnecessary file reads in WriteJson when only_if_changed is\n  set, and flattens public dep collection.\n* In jni_zero: Adds multiprocessing chunksize\u003d64 in\n  jni_registration_generator.py to eliminate IPC queue lock contention\n  across thousands of parsed files.\n\nBenchmark results:\n* JNI registration time reduced from 54.39s to 2.52s (21.5x speedup).\n* write_build_config cumulative CPU time reduced from 11,230s to 2,847s\n  (3.94x speedup).\n\nBug: 549072550\nTest: python3 third_party/jni_zero/parse_test.py \u0026\u0026 python3 third_party/jni_zero/test/integration_tests.py \u0026\u0026 python3 build/android/gyp/compile_java_tests.py\nChange-Id: Ib8e4c0e9a13af5327ddd7799b8045c766a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8281468\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Calder Kitagawa \u003cckitagawa@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1684854}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1079b69761816b8cdd29ad16d3719195256346cb\n"
    },
    {
      "commit": "d71e11d52ed45a3c2b7e90c0ded7014eb72f6c92",
      "tree": "e1e9d5a17e9035cd8d1cef4abf77593628dc10fc",
      "parents": [
        "80a85df97ba9d6e301ec4a75fe0b7f94ac60bb3a"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Aug 21 20:29:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 20:36:51 2026"
      },
      "message": "JNI Zero: Enhancements to array wrappers\n\n* Make ArrayViewCritical movable\n* Make ArrayViewCritical support both signed and unsigned types\n* Make JavaRef::Size() return a size_t of GetLength()\n\nUpdates some usages of these throughout the codebase.\n\nChange-Id: I343438e4ed26000ecf59f36da72e83a9b1ae003a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8271346\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1684174}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 55adf20e5753fc93dbb0e598a501154ed5930943\n"
    },
    {
      "commit": "80a85df97ba9d6e301ec4a75fe0b7f94ac60bb3a",
      "tree": "be26f46e15a08e234dc325392f93d2f1737d92b0",
      "parents": [
        "32b92c0d579f54f9c0ab11ab713e063949a13cdc"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Fri Aug 21 16:03:52 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 16:08:19 2026"
      },
      "message": "JNI Zero: Add Java JniUniquePtr and C++ deleter mechanism\n\nThis CL introduces JniUniquePtr on both Java and C++ sides to support\nsafe JNI pointers (go/safe-jni-pointers).\n\n- Add JniUniquePtr.java wrapper with explicit triage guidance in\n  IllegalStateException messages to prevent AutoBugFiler misassignment.\n- Add jni_unique_ptr.h containing inline constexpr deleter bases.\n- Add deleteDeleterBasePtr JNI method to CommonApis.\n- Add C++ unit tests for JniUniquePtr.\n\nBug: 40794873\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nChange-Id: I1334503ee4442ec80076a017e489db9f1c739aaa\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260448\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Keigo Oka \u003coka@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683941}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: ff47b0edea856142e44305b9a9431ca40f1d74af\n"
    },
    {
      "commit": "32b92c0d579f54f9c0ab11ab713e063949a13cdc",
      "tree": "fad9fde411bcf5495a30d6e84834632da64adc59",
      "parents": [
        "5aa3255b175f787c33ea421a8b970ea0a0e7b415"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Aug 20 19:04:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 19:12:32 2026"
      },
      "message": "JNI Zero: Omit package prefix from C++ class accessors\n\nThe package prefix is meant to be applied only when referencing the\nactual java class, not in C++ symbol names.\n\nBug: 548733126\nChange-Id: Ie816c84e3761da5d9c268e3becc3179fa4b0d472\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8258104\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1683318}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 39f0f24017e5c189f9747c954ce235afaffebe5a\n"
    },
    {
      "commit": "5aa3255b175f787c33ea421a8b970ea0a0e7b415",
      "tree": "92902280afe9773bea14a7db20d0778d93d37ef8",
      "parents": [
        "0e186ca3957bad406ca6d4ba9bfb0541b776b7e1"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Aug 20 16:41:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 16:46:29 2026"
      },
      "message": "JNI Zero: Add a CheckException() after NewArray\n\nNewArray can fail due to OOM, so important to check for the exception as\nearly as possible.\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I80396661024213f4f4dc8f67926680cccf7099b2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8253214\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683228}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 86617bd342ce29211dddde61ce567d214be0b10d\n"
    },
    {
      "commit": "0e186ca3957bad406ca6d4ba9bfb0541b776b7e1",
      "tree": "0db2e39c126e33b3941cd0376c3d045f6c647a7c",
      "parents": [
        "df0f744a8818c83dce83413c47ecff62dee2433d"
      ],
      "author": {
        "name": "Keigo Oka",
        "email": "oka@google.com",
        "time": "Tue Aug 18 03:24:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 03:28:16 2026"
      },
      "message": "JNI Zero: Add Safe JNI Pointers design doc\n\nThis CL adds the Safe JNI Pointers design doc under\nthird_party/jni_zero/docs/safe_jni_pointers.md. It documents the core\nownership models, type mapping catalog, encapsulation design, code\ngeneration architecture, CFI-compliant deleters, and testing strategy.\n\nBug: 40794873\nTAG\u003dagy\nCONV\u003d9d8066d1-de31-41b4-9093-054426041c40\n\nChange-Id: Ife248f71109f0c335aef606cbe0d1ae83968d15a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260447\nCommit-Queue: Keigo Oka \u003coka@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681069}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1e020095effd740bceb965a143688b16e34fc28b\n"
    },
    {
      "commit": "df0f744a8818c83dce83413c47ecff62dee2433d",
      "tree": "7aba3b4705b44165e919ef8669ae0a8549c5c392",
      "parents": [
        "bac6ecc4a1d50262c3b4ce37c238f64baa18626c"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon Aug 17 20:39:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 20:43:40 2026"
      },
      "message": "Reland \"JNI Zero: Optimize @CalledByNative size using string pools\"\n\nThis reverts commit 127029f703e4b0bf0803c3bebf5597d6feb5af51.\n\nReason for reland: Added use_weak_called_by_natives to net/BUILD.gn\n\nOriginal change\u0027s description:\n\u003e Revert \"JNI Zero: Optimize @CalledByNative size using string pools\"\n\u003e\n\u003e This reverts commit f8b9db2c1a16115b0526f649713950acc61bcec8.\n\u003e\n\u003e Reason for revert:\n\u003e LUCI Bisection has identified this change as the culprit of a build failure. See the analysis: https://ci.chromium.org/ui/p/chromium/bisection/compile-analysis/b/8673456686751872737\n\u003e\n\u003e Sample failed build: https://ci.chromium.org/b/8673456686751872737\n\u003e\n\u003e If this is a false positive, please report it at http://b.corp.google.com/createIssue?component\u003d1199205\u0026description\u003dAnalysis%3A+https%3A%2F%2Fchromium-review.googlesource.com%2Fc%2Fchromium%2Fsrc%2F%2B%2F8180683\u0026format\u003dPLAIN\u0026priority\u003dP3\u0026title\u003dWrongly+blamed+https%3A%2F%2Fci.chromium.org%2Fui%2Fp%2Fchromium%2Fbisection%2Fcompile-analysis%2Fb%2F8673456686751872737\u0026type\u003dBUG\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e JNI Zero: Optimize @CalledByNative size using string pools\n\u003e \u003e\n\u003e \u003e In multiplexed JNI Zero configurations, @CalledByNative methods\n\u003e \u003e historically generated per-call-site boilerplate containing inline\n\u003e \u003e string literals (method name and signature), local static\n\u003e \u003e std::atomic\u003cjmethodID\u003e variables, and local static std::atomic\u003cjclass\u003e\n\u003e \u003e variables inside class accessor functions.\n\u003e \u003e\n\u003e \u003e This change introduces link-time metadata pooling during final JNI.\n\u003e \u003e\n\u003e \u003e generate_jar_jni() codegen is unchanged, since they produce a lot of\n\u003e \u003e unused methods, so we want to keep them removable by --gc-sections.\n\u003e \u003e\n\u003e \u003e Furthermore, to remove the need to create generate_final_jni() targets\n\u003e \u003e for every test and sample apk, this also adds:\n\u003e \u003e\n\u003e \u003e use_weak_called_by_natives \u003d true\n\u003e \u003e\n\u003e \u003e Which will use the old codegen, but add [[weak]] so that it will be\n\u003e \u003e included in the pooled link step if one exists, but act as stand-alone\n\u003e \u003e otherwise.\n\u003e \u003e\n\u003e \u003e Saves about 80kb.\n\u003e \u003e\n\u003e \u003e Change-Id: I8dbeea5a15fb57d592680cd60787f5dc46fff74b\n\u003e \u003e Bug: 540608203\n\u003e \u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8180683\n\u003e \u003e Reviewed-by: Sam Maier \u003csmaier@google.com\u003e\n\u003e \u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e \u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e \u003e Cr-Commit-Position: refs/heads/main@{#1679944}\n\u003e \u003e\n\u003e\n\u003e Bug: 540608203\n\u003e No-Presubmit: true\n\u003e No-Tree-Checks: true\n\u003e No-Try: true\n\u003e Change-Id: Ia97e00eefd169c89f5931825d65f738d4e068230\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8262249\n\u003e Commit-Queue: luci-bisection@appspot.gserviceaccount.com \u003cluci-bisection@appspot.gserviceaccount.com\u003e\n\u003e Owners-Override: luci-bisection@appspot.gserviceaccount.com \u003cluci-bisection@appspot.gserviceaccount.com\u003e\n\u003e Bot-Commit: luci-bisection@appspot.gserviceaccount.com \u003cluci-bisection@appspot.gserviceaccount.com\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1679970}\n\nBug: 540608203\nChange-Id: I0139a133faaa17aa4abcc714be16ff93cae9ad13\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8262851\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nReviewed-by: Sam Maier \u003csmaier@google.com\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1680749}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d2ee863d07657eefb8894c41a51bcc5669e27642\n"
    },
    {
      "commit": "bac6ecc4a1d50262c3b4ce37c238f64baa18626c",
      "tree": "ebd41d6f49e727ef1e7120aa506f9814626a15cb",
      "parents": [
        "a61c295c3e0f7c116586c6ddd8be3a30b50d5859"
      ],
      "author": {
        "name": "luci-bisection@appspot.gserviceaccount.com",
        "email": "luci-bisection@appspot.gserviceaccount.com",
        "time": "Fri Aug 14 22:27:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 22:34:50 2026"
      },
      "message": "Revert \"JNI Zero: Optimize @CalledByNative size using string pools\"\n\nThis reverts commit f8b9db2c1a16115b0526f649713950acc61bcec8.\n\nReason for revert:\nLUCI Bisection has identified this change as the culprit of a build failure. See the analysis: https://ci.chromium.org/ui/p/chromium/bisection/compile-analysis/b/8673456686751872737\n\nSample failed build: https://ci.chromium.org/b/8673456686751872737\n\nIf this is a false positive, please report it at http://b.corp.google.com/createIssue?component\u003d1199205\u0026description\u003dAnalysis%3A+https%3A%2F%2Fchromium-review.googlesource.com%2Fc%2Fchromium%2Fsrc%2F%2B%2F8180683\u0026format\u003dPLAIN\u0026priority\u003dP3\u0026title\u003dWrongly+blamed+https%3A%2F%2Fci.chromium.org%2Fui%2Fp%2Fchromium%2Fbisection%2Fcompile-analysis%2Fb%2F8673456686751872737\u0026type\u003dBUG\n\nOriginal change\u0027s description:\n\u003e JNI Zero: Optimize @CalledByNative size using string pools\n\u003e\n\u003e In multiplexed JNI Zero configurations, @CalledByNative methods\n\u003e historically generated per-call-site boilerplate containing inline\n\u003e string literals (method name and signature), local static\n\u003e std::atomic\u003cjmethodID\u003e variables, and local static std::atomic\u003cjclass\u003e\n\u003e variables inside class accessor functions.\n\u003e\n\u003e This change introduces link-time metadata pooling during final JNI.\n\u003e\n\u003e generate_jar_jni() codegen is unchanged, since they produce a lot of\n\u003e unused methods, so we want to keep them removable by --gc-sections.\n\u003e\n\u003e Furthermore, to remove the need to create generate_final_jni() targets\n\u003e for every test and sample apk, this also adds:\n\u003e\n\u003e use_weak_called_by_natives \u003d true\n\u003e\n\u003e Which will use the old codegen, but add [[weak]] so that it will be\n\u003e included in the pooled link step if one exists, but act as stand-alone\n\u003e otherwise.\n\u003e\n\u003e Saves about 80kb.\n\u003e\n\u003e Change-Id: I8dbeea5a15fb57d592680cd60787f5dc46fff74b\n\u003e Bug: 540608203\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8180683\n\u003e Reviewed-by: Sam Maier \u003csmaier@google.com\u003e\n\u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1679944}\n\u003e\n\nBug: 540608203\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: Ia97e00eefd169c89f5931825d65f738d4e068230\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8262249\nCommit-Queue: luci-bisection@appspot.gserviceaccount.com \u003cluci-bisection@appspot.gserviceaccount.com\u003e\nOwners-Override: luci-bisection@appspot.gserviceaccount.com \u003cluci-bisection@appspot.gserviceaccount.com\u003e\nBot-Commit: luci-bisection@appspot.gserviceaccount.com \u003cluci-bisection@appspot.gserviceaccount.com\u003e\nCr-Commit-Position: refs/heads/main@{#1679970}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 127029f703e4b0bf0803c3bebf5597d6feb5af51\n"
    },
    {
      "commit": "a61c295c3e0f7c116586c6ddd8be3a30b50d5859",
      "tree": "7aba3b4705b44165e919ef8669ae0a8549c5c392",
      "parents": [
        "9024f2fa4e8259ca770e78771d02b3d400984312"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Aug 14 21:46:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 21:54:15 2026"
      },
      "message": "JNI Zero: Optimize @CalledByNative size using string pools\n\nIn multiplexed JNI Zero configurations, @CalledByNative methods\nhistorically generated per-call-site boilerplate containing inline\nstring literals (method name and signature), local static\nstd::atomic\u003cjmethodID\u003e variables, and local static std::atomic\u003cjclass\u003e\nvariables inside class accessor functions.\n\nThis change introduces link-time metadata pooling during final JNI.\n\ngenerate_jar_jni() codegen is unchanged, since they produce a lot of\nunused methods, so we want to keep them removable by --gc-sections.\n\nFurthermore, to remove the need to create generate_final_jni() targets\nfor every test and sample apk, this also adds:\n\nuse_weak_called_by_natives \u003d true\n\nWhich will use the old codegen, but add [[weak]] so that it will be\nincluded in the pooled link step if one exists, but act as stand-alone\notherwise.\n\nSaves about 80kb.\n\nChange-Id: I8dbeea5a15fb57d592680cd60787f5dc46fff74b\nBug: 540608203\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8180683\nReviewed-by: Sam Maier \u003csmaier@google.com\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1679944}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f8b9db2c1a16115b0526f649713950acc61bcec8\n"
    },
    {
      "commit": "9024f2fa4e8259ca770e78771d02b3d400984312",
      "tree": "ebd41d6f49e727ef1e7120aa506f9814626a15cb",
      "parents": [
        "5e22916fccfbb0bf861527978a9766af5b29356e"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Aug 12 16:01:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 16:05:02 2026"
      },
      "message": "JNI Zero: Use GetPrimitiveArrayCritical() for CreateView()\n\nIt turns out the non-critical form always allocates and copies its data\non Android, and so is worse than making a copy via the Get*Region calls.\n\nBug: 545200013\nChange-Id: I4342f7a1b57adb68e34d78569a504cad8aa3ca2c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8246798\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1678073}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8eab34abe16c5cfb458c03bac33ba1aa37970d79\n"
    },
    {
      "commit": "5e22916fccfbb0bf861527978a9766af5b29356e",
      "tree": "69141c7463efcce0e6e0cc6d713e9efd6d0548aa",
      "parents": [
        "1ec3cca921dd714eba573f618bf4a96d2747885a"
      ],
      "author": {
        "name": "Etienne Dechamps",
        "email": "edechamps@google.com",
        "time": "Thu Aug 06 14:39:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 06 14:42:31 2026"
      },
      "message": "Reland \"JNI Zero: Use two different outputs (.cc \u0026 .h) for generate_final_jni\"\n\nThis reverts commit 1029bc2df841a5d3a6d2bee18b26d8c430ddf1b0.\n\nReason for revert: includes gn2bp fixes\n\nNOTE: the gn2bp fixes were entirely vibe-coded for expediency to make\ngn2bp green as quickly as possible. Android-side tests should provide\nconfidence the output is correct, even though the code may not be\noptimal.\n\nAI-generated description for the gn2bp fixes follows:\n\nThe upstream CL changed JNI registration generation to produce both\nC++ source and header files. Previously, gn2bp translated this into\na single cc_genrule producing both files, which was then included in\nthe srcs of a cc_library_static.\n\nSoong does not support header files in the srcs list of a library\nand fails with: \"srcs: Header file ... is not supported\".\n\nFix this by splitting the JNI registration genrule into two:\n1. A source genrule that only outputs the .cc file, included in srcs.\n2. A headers genrule that only outputs the .h file, included in\n   generated_headers.\n\nThe headers genrule exports both the root gen directory and the\nsubdirectory where the header is located to support different include\nstyles (local vs path-prefixed).\n\nTAG\u003dagy\nCONV\u003d101588e6-720b-4982-83a1-98f0c8be7a9d\n\nOriginal change\u0027s description:\n\u003e Revert \"JNI Zero: Use two different outputs (.cc \u0026 .h) for generate_final_jni\"\n\u003e\n\u003e This reverts commit b3dd37dd8229c902b4c65d7b94d7b46ff63b2dc0.\n\u003e\n\u003e Reason for revert: breaks Cronet gn2bp - https://crbug.com/542041778. It does not appear to be a trivial fix - I have spent the day trying to fix gn2bp to no avail. I will keep working on it but in the meantime I would like the CL to be reverted so that gn2bp can go back to green for the duration of the work.\n\u003e\n\u003e Failure Link: https://ci.chromium.org/ui/p/chrome/builders/trusted.robots/cronet-arm64-gn2bp-debug/5393\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e JNI Zero: Use two different outputs (.cc \u0026 .h) for generate_final_jni\n\u003e \u003e\n\u003e \u003e It was confusing to have \"--header-path\u003dfoo.cc\".\n\u003e \u003e\n\u003e \u003e The .h file now has only a RegisterNatives() declaration, and the definition and multiplexing entry points live in the .cc.\n\u003e \u003e\n\u003e \u003e This also reworks generate_final_jni() to work the same was as\n\u003e \u003e generate_jni() with respect to secondary toolchains. It now\n\u003e \u003e defines the codegen action only in the default toolchain, but has\n\u003e \u003e a source_set in the current toolchain. This simplifies webview\u0027s\n\u003e \u003e usage of it.\n\u003e \u003e\n\u003e \u003e Change-Id: Ib9dda8645974f24f03c5d9351f6d674a56bfa582\n\u003e \u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8160566\n\u003e \u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e \u003e Owners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e \u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e \u003e Cr-Commit-Position: refs/heads/main@{#1671852}\n\u003e\n\u003e Change-Id: Ib927a320ac7edc16aab3f6ab9a80047989f1b0bc\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8173647\n\u003e Auto-Submit: Etienne Dechamps \u003cedechamps@google.com\u003e\n\u003e Reviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Reviewed-by: Peter Beverloo \u003cpeter@chromium.org\u003e\n\u003e Commit-Queue: Peter Beverloo \u003cpeter@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1673226}\n\nChange-Id: Ibda003f3fcf8a6faae69f34f03ba9c4c5868b93e\nBug: b:542041778\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8193298\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Etienne Dechamps \u003cedechamps@google.com\u003e\nReviewed-by: Mohannad Farrag \u003caymanm@google.com\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1674962}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c3fa53c87882db9b370e1d828631c9aa67da79fd\n"
    },
    {
      "commit": "1ec3cca921dd714eba573f618bf4a96d2747885a",
      "tree": "4c5dd51faf86a0b770c72e78d3e0c45b88d8eff6",
      "parents": [
        "fc37e85fa6e579903e14fde5f531ce8d3f88e4bf"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Aug 06 01:18:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 06 01:21:36 2026"
      },
      "message": "JNI Zero: Fix race condition crash with SetClassLoader()\n\nWhen thread A is using g_class_loader to resolve a class and thread B\ncalls SetClassLoader(), there was a window where g_class_loader was\nnullptr.\n\nRemoving the null assignment is not enough, as we also don\u0027t want a\nthread to be using a released global ref, so just leak it instead.\n\nBug: 542753540\nChange-Id: I670a4f90171cb656c76a6d51a7476dec5b987db5\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8204765\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1674661}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 15ea5425dc6a890190183403cd1e14665d64f149\n"
    },
    {
      "commit": "fc37e85fa6e579903e14fde5f531ce8d3f88e4bf",
      "tree": "8e7d55f7446963643851690a4f81abff8291082a",
      "parents": [
        "449209805f459f8d05dfd6226128a1c9070399df"
      ],
      "author": {
        "name": "Etienne Dechamps",
        "email": "edechamps@google.com",
        "time": "Tue Aug 04 10:48:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 04 10:55:04 2026"
      },
      "message": "Revert \"JNI Zero: Use two different outputs (.cc \u0026 .h) for generate_final_jni\"\n\nThis reverts commit b3dd37dd8229c902b4c65d7b94d7b46ff63b2dc0.\n\nReason for revert: breaks Cronet gn2bp - https://crbug.com/542041778. It does not appear to be a trivial fix - I have spent the day trying to fix gn2bp to no avail. I will keep working on it but in the meantime I would like the CL to be reverted so that gn2bp can go back to green for the duration of the work.\n\nFailure Link: https://ci.chromium.org/ui/p/chrome/builders/trusted.robots/cronet-arm64-gn2bp-debug/5393\n\nOriginal change\u0027s description:\n\u003e JNI Zero: Use two different outputs (.cc \u0026 .h) for generate_final_jni\n\u003e\n\u003e It was confusing to have \"--header-path\u003dfoo.cc\".\n\u003e\n\u003e The .h file now has only a RegisterNatives() declaration, and the definition and multiplexing entry points live in the .cc.\n\u003e\n\u003e This also reworks generate_final_jni() to work the same was as\n\u003e generate_jni() with respect to secondary toolchains. It now\n\u003e defines the codegen action only in the default toolchain, but has\n\u003e a source_set in the current toolchain. This simplifies webview\u0027s\n\u003e usage of it.\n\u003e\n\u003e Change-Id: Ib9dda8645974f24f03c5d9351f6d674a56bfa582\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8160566\n\u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e Owners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1671852}\n\nChange-Id: Ib927a320ac7edc16aab3f6ab9a80047989f1b0bc\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8173647\nAuto-Submit: Etienne Dechamps \u003cedechamps@google.com\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nReviewed-by: Peter Beverloo \u003cpeter@chromium.org\u003e\nCommit-Queue: Peter Beverloo \u003cpeter@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1673226}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1029bc2df841a5d3a6d2bee18b26d8c430ddf1b0\n"
    },
    {
      "commit": "449209805f459f8d05dfd6226128a1c9070399df",
      "tree": "44ead6a7b7fc38ec0a3d82e77c428309d05bcfac",
      "parents": [
        "3c19973311a9adce37e8949c7b48151c7563e46d"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Jul 31 15:05:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 31 15:09:12 2026"
      },
      "message": "JNI Zero: Use two different outputs (.cc \u0026 .h) for generate_final_jni\n\nIt was confusing to have \"--header-path\u003dfoo.cc\".\n\nThe .h file now has only a RegisterNatives() declaration, and the definition and multiplexing entry points live in the .cc.\n\nThis also reworks generate_final_jni() to work the same was as\ngenerate_jni() with respect to secondary toolchains. It now\ndefines the codegen action only in the default toolchain, but has\na source_set in the current toolchain. This simplifies webview\u0027s\nusage of it.\n\nChange-Id: Ib9dda8645974f24f03c5d9351f6d674a56bfa582\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8160566\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1671852}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b3dd37dd8229c902b4c65d7b94d7b46ff63b2dc0\n"
    },
    {
      "commit": "3c19973311a9adce37e8949c7b48151c7563e46d",
      "tree": "8e7d55f7446963643851690a4f81abff8291082a",
      "parents": [
        "2baa977610837a84b263cc7f4b7185a9820f98fc"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Jul 30 01:51:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 30 01:53:36 2026"
      },
      "message": "Rename generate_jni_registration -\u003e generate_final_jni\n\nSince the template generates more than just RegisterNatives(), the name\ndidn\u0027t make sense any more.\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: Id1cc4c255639751e67557f246ce75e9a32e07c65\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8167482\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Sam Maier \u003csmaier@google.com\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1670763}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 78a5ecddd742853edfb420ab4a89bd6894ce4240\n"
    },
    {
      "commit": "2baa977610837a84b263cc7f4b7185a9820f98fc",
      "tree": "92379b4cc016dfc0549d407938a62cf6c7bab6ca",
      "parents": [
        "a2ed3db6aa41c79747f5704d9048a05689c26dd8"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Wed Jul 29 17:48:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 29 17:51:53 2026"
      },
      "message": "JNI Zero: Remove the --use-std-primitive-types flag\n\nThis CL removes the --use-std-primitive-types flag, so that the\nJNI Zero code generator always uses int32_t instead of jint by default.\n\nBug: 481689330\nChange-Id: I2e19c52569f68faf1b89306052307c6a16645f54\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8164123\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1670402}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7dcb4a89cbc35a9b70351a1c57ae95b545b351bc\n"
    },
    {
      "commit": "a2ed3db6aa41c79747f5704d9048a05689c26dd8",
      "tree": "bfebd7191bed23d597aa00bc1ff37917ddf63309",
      "parents": [
        "81de700d17669af051819492a771a9e92a8b6dfd"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Jul 29 14:15:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 29 14:18:40 2026"
      },
      "message": "JNI Zero: Mark smart pointers as clang::trivial_abi\n\nSaves a bit of overhead, and is clearly applicable (as destruction\norder is even less important than it is for unique_ptr, which uses\nthe attribute.\n\nChange-Id: Ie1e73e7632ec199d0d0eada6113dbcddfbaaf8ef\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8160645\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1670226}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1da63ff070d13edb59a848e9e2ec1c184241a912\n"
    },
    {
      "commit": "81de700d17669af051819492a771a9e92a8b6dfd",
      "tree": "769b34a0ef08b6c451d30fd12e72cc77e09c3129",
      "parents": [
        "e0495ebeb638a47e5ca343042d352826ff22253e"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Mon Jul 27 16:36:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 27 16:40:24 2026"
      },
      "message": "JNI Zero: Remove enable definition macros\n\nThis CL removes the --enable-definition-macros argument to\njni_zero.py, because we have migrated all Google3 and WebRTC\nclients to use DEFINE_JNI() macro.\n\nBug: 481689330\nChange-Id: Ic7191b8a74c84722d0db828a121a89051a3097ff\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8139442\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1668731}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 640814d82c7b8a7e7e1d0ded053ee959a059b5b0\n"
    },
    {
      "commit": "e0495ebeb638a47e5ca343042d352826ff22253e",
      "tree": "1fc2c81595a44e585cbb2eacafc5825cecff56eb",
      "parents": [
        "4f33099532829931f91f99dd9d031f1a06f73eaf"
      ],
      "author": {
        "name": "Jenna Himawan",
        "email": "jhimawan@google.com",
        "time": "Tue Jul 14 20:30:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 14 20:34:07 2026"
      },
      "message": "JNI Zero skill improvements\n\n- Add instructions + examples for specifying types for generics and arrays\n- Encourage commenting JNI bridge code to explain lifecycle and\n  ownership\n\nChange-Id: Id05d671a5a6652c10591c1acd6eadf8dd5e840f8\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8093503\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Jenna Himawan \u003cjhimawan@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1662134}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c94a697ff20916694ce709f11a29bf4dca2ecece\n"
    },
    {
      "commit": "4f33099532829931f91f99dd9d031f1a06f73eaf",
      "tree": "624e25a43c3b972e5c1f2616e9dc7f44fd1b4536",
      "parents": [
        "3f99a97ab1223246a2113046a3d2dd6eb2c6ca02"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Tue Jul 14 16:17:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 14 16:19:41 2026"
      },
      "message": "Reland \"JNI Zero: Remove support for legacy natives\"\n\nThis reverts commit 623282ae6bb9ebb720d75d4152c8e29330d93edf.\n\nReason for revert: Migrated all remaining legacy natives in WebRTC in https://webrtc-review.googlesource.com/488160\n\nOriginal change\u0027s description:\n\u003e Revert \"JNI Zero: Remove support for legacy natives\"\n\u003e\n\u003e This reverts commit 91168a96d0bd044a518fa0eccaab1de1827721a2.\n\u003e\n\u003e Reason for revert: Missed some legacy natives in webrtc\n\u003e\n\u003e Failure Link: https://ci.chromium.org/ui/p/webrtc/builders/try/android_arm_dbg/77957/overview\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e JNI Zero: Remove support for legacy natives\n\u003e \u003e\n\u003e \u003e Bug: 481689330, 40253109\n\u003e \u003e Change-Id: I54eac15b3792adb81332f8db296020955239e312\n\u003e \u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7957122\n\u003e \u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e \u003e Reviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e \u003e Cr-Commit-Position: refs/heads/main@{#1649740}\n\u003e\n\u003e Bug: 481689330, 40253109\n\u003e Change-Id: Id4e196cdc5b002c8cf1f1f86810151bf1f9431f8\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7980338\n\u003e Auto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Commit-Queue: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1650507}\n\nBug: 481689330, 40253109\nChange-Id: I7c679e1ceeb15b6cff4828a4c33b00e171c76b5e\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8092180\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1661911}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 376c86d0bc9b9e7a451c07762b34797464f6fcff\n"
    },
    {
      "commit": "3f99a97ab1223246a2113046a3d2dd6eb2c6ca02",
      "tree": "9b2d2addca650d483f8caddcc5cbe4a9625d3483",
      "parents": [
        "4a105064a23e180ae1e59834640d039d1e887540"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Thu Jul 09 16:54:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 09 16:56:20 2026"
      },
      "message": "[unsafe-buffers] Remove allow_unsafe_buffers from jni_zero/\n\nTransition files in third_party/jni_zero/ from coarse, file-level\npragmas to fine-grained, instruction-level macros and various manual\nfixes.\n\nBug: 351564777, 501112808\nDoc: go/complete_unsafe_todo_migration\nChange-Id: Ib571f9d41ec428eb151292f46807705e9c78daa5\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8045186\nCommit-Queue: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1659646}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 98fb765d4a55ebd632de932309eef8a2a02f137f\n"
    },
    {
      "commit": "4a105064a23e180ae1e59834640d039d1e887540",
      "tree": "81aee63145c0ce4b260b8197a29c63f65b9a91d8",
      "parents": [
        "0472fad79ec3e3976a69366a48e27f96e1286c4f"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon Jun 22 19:45:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 22 19:47:04 2026"
      },
      "message": "Revert \"JNI Zero: Remove support for legacy natives\"\n\nThis reverts commit 91168a96d0bd044a518fa0eccaab1de1827721a2.\n\nReason for revert: Missed some legacy natives in webrtc\n\nFailure Link: https://ci.chromium.org/ui/p/webrtc/builders/try/android_arm_dbg/77957/overview\n\nOriginal change\u0027s description:\n\u003e JNI Zero: Remove support for legacy natives\n\u003e\n\u003e Bug: 481689330, 40253109\n\u003e Change-Id: I54eac15b3792adb81332f8db296020955239e312\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7957122\n\u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Reviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1649740}\n\nBug: 481689330, 40253109\nChange-Id: Id4e196cdc5b002c8cf1f1f86810151bf1f9431f8\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7980338\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCommit-Queue: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCr-Commit-Position: refs/heads/main@{#1650507}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 623282ae6bb9ebb720d75d4152c8e29330d93edf\n"
    },
    {
      "commit": "0472fad79ec3e3976a69366a48e27f96e1286c4f",
      "tree": "669ce909a3233988f66545ea71b637f51fa5d29b",
      "parents": [
        "36e0bf775ebfc1f3ef8674738daaea3bbc0c66e4"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon Jun 22 15:35:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 22 15:37:47 2026"
      },
      "message": "JNI Zero: Add EXPORT for GetClassInternal()\n\nA usage was added by the recent generate_jar_jni_registration feature.\n\nBug: 516808168\nChange-Id: Id6ceb664747d23de6ed27a55e92922e63eb50ab2\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7979538\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nReviewed-by: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1650332}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 656ab226e558035ac8565bcac8be0e97f1923c96\n"
    },
    {
      "commit": "36e0bf775ebfc1f3ef8674738daaea3bbc0c66e4",
      "tree": "fd0b56ef9fe2a7c158f32da4096da0353381679a",
      "parents": [
        "d34a8ee80761355a819dc861b40a362458d3c8e9"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Fri Jun 19 17:34:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 19 17:35:46 2026"
      },
      "message": "JNI Zero: Remove support for legacy natives\n\nBug: 481689330, 40253109\nChange-Id: I54eac15b3792adb81332f8db296020955239e312\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7957122\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1649740}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 91168a96d0bd044a518fa0eccaab1de1827721a2\n"
    },
    {
      "commit": "d34a8ee80761355a819dc861b40a362458d3c8e9",
      "tree": "b23af929b9c1636a85e9fa7eeba4e1993a6032b9",
      "parents": [
        "b78514996c4558ab5531ccb9a8daa7b8c2db34ff"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Tue Jun 16 18:05:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 16 18:07:05 2026"
      },
      "message": "Android: Fix ink\u0027s linker version script to actually hide symbols\n\n1) Moved the linker config to the link target so that it can have\n   inputs\u003d set on it without it affecting compile targets.\n2) Use full names rather than globs so that the script takes precedence\n   over the main Java_* glob\n\nBug: 479580929\nChange-Id: Ifb09e2e4d73b8bf08e0360221a23ff3bc3eea4cd\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7946267\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1647726}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8d51eef6c090d4122bed595c4f654e6b3a19dc77\n"
    },
    {
      "commit": "b78514996c4558ab5531ccb9a8daa7b8c2db34ff",
      "tree": "8fa1eecfbcd00257f9638b666961a17a04907e25",
      "parents": [
        "cfdf2991f3ed94ec09d8a31bf0fbccb331cb0c59"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Jun 12 22:44:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 12 22:45:51 2026"
      },
      "message": "Reland \"jni_zero: Add JNI signature validator annotation processor\"\n\nThis reverts commit 83851e0e0d5dbb3725c4b72306fa0f92508462ff.\n\nReason for reland: Fixed assert\n\nOriginal change\u0027s description:\n\u003e Revert \"jni_zero: Add JNI signature validator annotation processor\"\n\u003e\n\u003e This reverts commit 99ffe510e4d361801c722ef94c799d2dcc9e9006.\n\u003e\n\u003e Reason for revert: closed tree\n\u003e\n\u003e Failure Link: https://ci.chromium.org/ui/p/chromium/builders/ci/android-desktop-arm64-archive-rel/17578/overview\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e jni_zero: Add JNI signature validator annotation processor\n\u003e \u003e\n\u003e \u003e Introduce JniZeroValidatorProcessor, which validates JNI signatures\n\u003e \u003e during compilation. It catches JNI Zero\u0027s limitation of not being able\n\u003e \u003e to resolve unqualified nested types inherited from supertypes or sibling\n\u003e \u003e classes.\n\u003e \u003e\n\u003e \u003e Additionally:\n\u003e \u003e - Add a JNI Zero flag --resolved-types-path to output all resolved types\n\u003e \u003e   to a file.\n\u003e \u003e - Implement classpath existence validation in the annotation processor\n\u003e \u003e   for these resolved types, configured as opt-in via GN using\n\u003e \u003e   enable_resolved_types_validation \u003d true.\n\u003e \u003e - Add test coverage in JniProcessorTest.java.\n\u003e \u003e\n\u003e \u003e Bug: 522821090\n\u003e \u003e Change-Id: I8476e4547cd7e33401cf056dea461ee6ec41bb6c\n\u003e \u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7930028\n\u003e \u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e \u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e \u003e Cr-Commit-Position: refs/heads/main@{#1646091}\n\u003e\n\u003e Bug: 522821090\n\u003e No-Presubmit: true\n\u003e No-Tree-Checks: true\n\u003e No-Try: true\n\u003e Change-Id: I00ff4089a8ac02ce0cc99c6e3eb01d59d2f3974a\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7931835\n\u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e Auto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Commit-Queue: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1646120}\n\nBug: 522821090\nChange-Id: Ibe926e686b66a929f4c820dcb1a7a9e9dd022598\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7932089\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1646290}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 685e31a18ea3d605c0459932d54fcb592d7a49a0\n"
    },
    {
      "commit": "cfdf2991f3ed94ec09d8a31bf0fbccb331cb0c59",
      "tree": "565fcd8ca9163260fcc28c86e8d3ba4b08bfe041",
      "parents": [
        "105f56805d69b6fdead425da34d84b8690dfa6ae"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Jun 12 22:30:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 12 22:33:20 2026"
      },
      "message": "JNI Zero: Fix use_std_primitive_types\u003dfalse\n\nBroken unintentionally by https://crrev.com/c/7915992\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I0029d7652a57561c3aab98c3d17f3f406e7a0068\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7934408\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1646281}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3cefd3ad34708966f3696ebcdc75a747631888c3\n"
    },
    {
      "commit": "105f56805d69b6fdead425da34d84b8690dfa6ae",
      "tree": "d5d367045872c837183f74558f292083f6607713",
      "parents": [
        "2908c738b33eb6614bb9f1e02e51d8f8014127ff"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Jun 12 19:38:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 12 19:40:34 2026"
      },
      "message": "JNI Zero: Show all parse errors rather than just the first\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I2bb54bb8b9bc17e4b00b7491118ace71f760fec1\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7926394\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1646180}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 60363a7618d1c4205be81ce753f2dc00b587f14c\n"
    },
    {
      "commit": "2908c738b33eb6614bb9f1e02e51d8f8014127ff",
      "tree": "22dfa6d54b9367f43821329ae5647d6532189833",
      "parents": [
        "0090082a5bd8fbaf623034607782f9ef449af137"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Jun 12 18:25:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 12 18:26:38 2026"
      },
      "message": "Revert \"jni_zero: Add JNI signature validator annotation processor\"\n\nThis reverts commit 99ffe510e4d361801c722ef94c799d2dcc9e9006.\n\nReason for revert: closed tree\n\nFailure Link: https://ci.chromium.org/ui/p/chromium/builders/ci/android-desktop-arm64-archive-rel/17578/overview\n\nOriginal change\u0027s description:\n\u003e jni_zero: Add JNI signature validator annotation processor\n\u003e\n\u003e Introduce JniZeroValidatorProcessor, which validates JNI signatures\n\u003e during compilation. It catches JNI Zero\u0027s limitation of not being able\n\u003e to resolve unqualified nested types inherited from supertypes or sibling\n\u003e classes.\n\u003e\n\u003e Additionally:\n\u003e - Add a JNI Zero flag --resolved-types-path to output all resolved types\n\u003e   to a file.\n\u003e - Implement classpath existence validation in the annotation processor\n\u003e   for these resolved types, configured as opt-in via GN using\n\u003e   enable_resolved_types_validation \u003d true.\n\u003e - Add test coverage in JniProcessorTest.java.\n\u003e\n\u003e Bug: 522821090\n\u003e Change-Id: I8476e4547cd7e33401cf056dea461ee6ec41bb6c\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7930028\n\u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e Commit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1646091}\n\nBug: 522821090\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I00ff4089a8ac02ce0cc99c6e3eb01d59d2f3974a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7931835\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCommit-Queue: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCr-Commit-Position: refs/heads/main@{#1646120}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 83851e0e0d5dbb3725c4b72306fa0f92508462ff\n"
    },
    {
      "commit": "0090082a5bd8fbaf623034607782f9ef449af137",
      "tree": "e73a134f43c220b25c8cbb53083ce678cd666cd8",
      "parents": [
        "3a6540e5b765ea3f8c40249ea01982fe2196a568"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Jun 12 17:55:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 12 18:02:00 2026"
      },
      "message": "jni_zero: Add JNI signature validator annotation processor\n\nIntroduce JniZeroValidatorProcessor, which validates JNI signatures\nduring compilation. It catches JNI Zero\u0027s limitation of not being able\nto resolve unqualified nested types inherited from supertypes or sibling\nclasses.\n\nAdditionally:\n- Add a JNI Zero flag --resolved-types-path to output all resolved types\n  to a file.\n- Implement classpath existence validation in the annotation processor\n  for these resolved types, configured as opt-in via GN using\n  enable_resolved_types_validation \u003d true.\n- Add test coverage in JniProcessorTest.java.\n\nBug: 522821090\nChange-Id: I8476e4547cd7e33401cf056dea461ee6ec41bb6c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7930028\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1646091}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 99ffe510e4d361801c722ef94c799d2dcc9e9006\n"
    },
    {
      "commit": "3a6540e5b765ea3f8c40249ea01982fe2196a568",
      "tree": "22dfa6d54b9367f43821329ae5647d6532189833",
      "parents": [
        "6f8b5f43e5be42a5045dba1341665fbbdedc0a82"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Jun 12 17:26:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 12 17:29:10 2026"
      },
      "message": "JNI Zero: Fix failing to resolve nested classes like Foo.Bar\n\nAnd add unit tests for TypeResolver\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I893e960b08e6b2dad675eaf1ca0747eae8474ce1\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7926393\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1646072}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3ba041d53d718df6593467d35e7a63a6b66ebceb\n"
    },
    {
      "commit": "6f8b5f43e5be42a5045dba1341665fbbdedc0a82",
      "tree": "43f507a96824de292785d03c120dbfa89833a8f8",
      "parents": [
        "82d228b4e8cc8804d40a2db96af7bf284cd25e9e"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Jun 10 22:01:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 10 22:04:39 2026"
      },
      "message": "Use manual JNI registration for androidx.ink\n\nWe cannot rely on implicit JNI registration because libchrome.so is\nloaded by the base split, but the ink java code lives in the on_demand\nsplit.\n\nBug: 516808168\nChange-Id: I26ec1d50bbd8a4c0105e2f7b36dfc74110ddb292\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7915992\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1644906}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f8347425700595707aa2f1618da6ae1aabe25d33\n"
    },
    {
      "commit": "82d228b4e8cc8804d40a2db96af7bf284cd25e9e",
      "tree": "f60e627f9ca2312053aebf6b2ff332f90564f08e",
      "parents": [
        "47cd67f28e46e7944966ce4ab551c27051b1afa9"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Tue Jun 02 20:19:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 02 20:21:23 2026"
      },
      "message": "Add myself as an owner of JNI Zero\n\nChange-Id: Ibb57c028cc476a11aa58e6254185627b04c7241e\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7897279\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1640421}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: daa854782eac76d8097ffb46c7dbedfcd6e2ed25\n"
    },
    {
      "commit": "47cd67f28e46e7944966ce4ab551c27051b1afa9",
      "tree": "394e518fcdb5686dc8105f0dc4c4cd5674a88f03",
      "parents": [
        "bcceb0036e875654f568c403b030efa771e160ab"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Tue Jun 02 19:57:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 02 19:59:40 2026"
      },
      "message": "JNI Zero: Auto-format markdown\n\nChange-Id: I6dc4469b856a16353271208af7e91633fb82d204\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7896696\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1640404}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e9a073bd7d7fb190f10595b9304a96ede8af69c6\n"
    },
    {
      "commit": "bcceb0036e875654f568c403b030efa771e160ab",
      "tree": "ddbb3d8b7e9c3f3e0751e2f3402b76be79762afc",
      "parents": [
        "fbfb66109cc4ac9888b1fc8be1e7369bc7801a0b"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon Jun 01 20:06:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 20:07:54 2026"
      },
      "message": "JNI Zero: Add line breaks before code blocks in .md\n\nFixes rendering on some non-gittiles renderers\n\nChange-Id: I9bea97cb3ec5d508ef464237d4d8cf42f94729ef\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7885018\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1639610}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 817dc3fb86a025b10d65269329110fca51112288\n"
    },
    {
      "commit": "fbfb66109cc4ac9888b1fc8be1e7369bc7801a0b",
      "tree": "3287fd6e31646ef916ca513f7b7385716d893e17",
      "parents": [
        "bbbadf236d685259685aee83dd09bbf5ae868269"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed May 27 16:49:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 16:52:09 2026"
      },
      "message": "JNI Zero: Fix regexes to allow @Foo.Bar annotations\n\nChange from google3\u0027s b/325043292\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I3d5fb644310cd8a41ffede809e407783ea4ddac7\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7877186\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1637031}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b7cfe1c67012829f099a72f2369f07264cb8f2e5\n"
    },
    {
      "commit": "bbbadf236d685259685aee83dd09bbf5ae868269",
      "tree": "f6987171d0d937718af950b392c585b95b5f20a2",
      "parents": [
        "5fe7d5ba4b3f55987a472e6bd9a7ae693da8fb6a"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Tue May 12 14:13:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 14:15:48 2026"
      },
      "message": "JNI Zero: Remove the compatibility shim\n\nWe have migrated all google3 code to not use the deprecated\nJNI Zero APIs, so we can now remove the compatibility shim.\n\nBug: 481689330\nChange-Id: Ic89cd7a2f54af519c384eb39c6ace31a24e463f2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7831062\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1629300}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 56721f47961e245f1c10802544c50700e4a72293\n"
    },
    {
      "commit": "5fe7d5ba4b3f55987a472e6bd9a7ae693da8fb6a",
      "tree": "5ccc1240b58840cb016c02958a2e4f13ad1c00bf",
      "parents": [
        "e46dd79853b982f7cc142bbcc88d8c6773e3b7f3"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon May 11 21:14:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 21:15:49 2026"
      },
      "message": "Android: Fix jni_zero::GetClass() CHECK\u0027ing rather than throwing\n\nThe method docs, and my intention before, was to have this method not\ncrash upon ClassNotFoundException. As seen in crashing bug, I had forgot\nto mark ClassLoader codegen as unchecked.\n\nBug: 510975341\nChange-Id: I91a484e86b84737b676ebe47073645ba89df98b0\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7835974\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Alexander Cooper \u003calcooper@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1628804}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b9bc1ac59f46f5e142c99f52c777318c24f7f87c\n"
    },
    {
      "commit": "e46dd79853b982f7cc142bbcc88d8c6773e3b7f3",
      "tree": "2fd4b48fe75cf3500390a378d0fcc7552d720f7c",
      "parents": [
        "132daed77bb934632fb369b720095c865f299d78"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri May 08 19:09:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 08 19:12:32 2026"
      },
      "message": "JNI Zero: Fix typo \"convertable\" -\u003e \"convertible\"\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: Ic9ab7d09b95a72af283e1593bec9834210a48041\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7829499\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Sam Maier \u003csmaier@google.com\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1627819}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 585e377fe65885850073aaf3114c6edc2b40d693\n"
    },
    {
      "commit": "132daed77bb934632fb369b720095c865f299d78",
      "tree": "862cf4abe407f9cf3ba29393f6bbd6a05b380dd2",
      "parents": [
        "2a09e0cc1e6d2af57c34695e161fa7e795644cd5"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri May 08 17:33:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 08 17:35:54 2026"
      },
      "message": "Remove remnants of @NativeMethods(\"module_name\")\n\nBug: 498768454\nChange-Id: I746b29ee5ce385be94a51f9bb82114de32e91908\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7830442\nReviewed-by: Sam Maier \u003csmaier@google.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1627748}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8567d0e1f2945841fc1cae993eb9984f36d5bb3b\n"
    },
    {
      "commit": "2a09e0cc1e6d2af57c34695e161fa7e795644cd5",
      "tree": "b6cc4b8a256daf5ddec540cec24b4f190c223221",
      "parents": [
        "83ffbf37c7efb8cbcc9a98780cd5d1e6261d1789"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed May 06 18:32:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 18:36:02 2026"
      },
      "message": "Add an agent skill for general JNI Zero usage\n\nBug: 507461508\nChange-Id: I8e26a3eb13e85ab20d65f741869bcf55e07399d7\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7822699\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1626350}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 363a89fcbc12cc7940de8a222a5778afe7e2f7ed\n"
    },
    {
      "commit": "83ffbf37c7efb8cbcc9a98780cd5d1e6261d1789",
      "tree": "49cff4dff287589a2967c86266c8b53d794b8767",
      "parents": [
        "8bea967a7bb6c160b0f32c3084bafa39645d2f23"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri May 01 14:46:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 01 14:48:14 2026"
      },
      "message": "JNI Zero: Specify module_name via GN rather than @NativeMethods\n\nIt was a bit awkward (and verbose) that it was in .java for\ngenerate_jni() targets, but in GN for generate_jni_registration().\n\nBug: 498768454\nChange-Id: I8a7ef46193508de016fec22b79226da89cd6c2e5\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7759736\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Mohannad Farrag \u003caymanm@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1623823}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 629046f14eb4cb769cf17475e0b0bfea3bc5048c\n"
    },
    {
      "commit": "8bea967a7bb6c160b0f32c3084bafa39645d2f23",
      "tree": "89ca410040609d92f5d970d8d63f0499dc9436df",
      "parents": [
        "8685c64b0af0f766ceeb6c678875f64a48461dbf"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri May 01 13:38:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 01 13:40:14 2026"
      },
      "message": "Initial prototype of WebUI NTP for Android\n\nIt only barely works, but sets the groundwork so that we can iterate\non the missing / broken functionality.\n\nAll changes are guarded behind GN arg: enable_webui_ntp, and also\nbehind a runtime flag: --use-webui-ntp.\n\nThis does not remove the native NTP, but instead navigates to:\n  chrome://new-tab-page/\ninstead of:\n  chrome-native://newtab/\n\nBug: b:502297163\nBypass-Check-License: Moved file\nChange-Id: If5e535793fa20f67d8897aee2d6bf55e95af2fce\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7773408\nReviewed-by: Tibor Goldschwendt \u003ctiborg@chromium.org\u003e\nReviewed-by: Thomas Lukaszewicz \u003ctluk@chromium.org\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Ken Buchanan \u003ckenrb@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1623798}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 42937e4ba2e5d383daf6f0e057f5fe530ac1a451\n"
    },
    {
      "commit": "8685c64b0af0f766ceeb6c678875f64a48461dbf",
      "tree": "419ab73f1122e9977855ddebe47baff2316b7f50",
      "parents": [
        "b0a152a08538cbe54c80c89b271cfad989ac9359"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Apr 24 01:18:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 24 01:19:54 2026"
      },
      "message": "Revert \"JNI Zero: Do not #include default_conversions.h by default\"\n\nThis reverts commit 8ec304d6b3047af182b408164b84d8b37c741f69.\n\nReason for revert: Breaks g3 targets.\n\nOriginal change\u0027s description:\n\u003e JNI Zero: Do not #include default_conversions.h by default\n\u003e\n\u003e It was never meant to have been included by default.\n\u003e\n\u003e Bug: 505542026\n\u003e Change-Id: I2b07540273dfb1df35cb83d190a89d76435eb239\n\u003e Cq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7788502\n\u003e Auto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Reviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e Commit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1619503}\n\nBug: 505542026\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I41f6339effc4a4968b85ca36ebf1dc84377e6468\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7790085\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCommit-Queue: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1619898}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 934b69d5f6f8fbbdc1b12566e6c8a6acae74f6fb\n"
    },
    {
      "commit": "b0a152a08538cbe54c80c89b271cfad989ac9359",
      "tree": "5a94877f219be24722573ccda1ce4d7fd09bf482",
      "parents": [
        "91c51e72341c2bfe3d930a39ee7f9f1d4f671747"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Apr 23 14:32:17 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 14:33:51 2026"
      },
      "message": "JNI Zero: Do not #include default_conversions.h by default\n\nIt was never meant to have been included by default.\n\nBug: 505542026\nChange-Id: I2b07540273dfb1df35cb83d190a89d76435eb239\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7788502\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1619503}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8ec304d6b3047af182b408164b84d8b37c741f69\n"
    },
    {
      "commit": "91c51e72341c2bfe3d930a39ee7f9f1d4f671747",
      "tree": "419ab73f1122e9977855ddebe47baff2316b7f50",
      "parents": [
        "c92c094bc3a1cd481339f232f4c2ec4f6ddde952"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Apr 22 21:52:19 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 21:54:09 2026"
      },
      "message": "JNI Zero: Do not allow a parameter for @CalledByNative\n\nAll uses of it have been migrated.\n\nBug: 496331306\nChange-Id: Iee57709d8b55493712acaa731403dc35617a9e94\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7786592\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1619108}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 30d45a378201de2f3257e86b62ed2d7089830404\n"
    },
    {
      "commit": "c92c094bc3a1cd481339f232f4c2ec4f6ddde952",
      "tree": "fafb2a5490a06e09512b0ad77d8be05232a94d2d",
      "parents": [
        "67bd55fbe048fc2d063f4d2e42ce6ca2a6ba94a6"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Tue Apr 21 01:54:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 01:56:13 2026"
      },
      "message": "Simplify JNI usage in modal_dialog_wrapper.cc\n\nNo behaviour change. Using this as a testbed for some newer JNI Zero\nfeatures.\n\nSome specifics changes:\n * Added NewArray() overloads that take a size argument\n * Added a specialization for RepeatedClosure to make it work with\n   ToJniArray\n * Generate array accessors for array parameters even if they don\u0027t\n   use @JniType\n * Add JavaRef\u003cjobjectArray\u003e::Set()\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: Ia11846ad3f5f77f7c4b2760ea43c51053ff415f5\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7773767\nReviewed-by: Jack Thiesen \u003cjthiesen@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1617929}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: ae0db5d3a7a90f0826002c8c92f537fd51a8ca44\n"
    },
    {
      "commit": "67bd55fbe048fc2d063f4d2e42ce6ca2a6ba94a6",
      "tree": "dd43480e9c3dcb13de279422e7284e3896cbc2a0",
      "parents": [
        "6d302800d0dfb66e0b3569ef0e11a6982761c6a0"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon Apr 20 14:48:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 20 14:51:12 2026"
      },
      "message": "JNI Zero: Document placeholder .jar files\n\nAnd move Per-File natives out of \"legacy\" section\n\nChange-Id: I32c946fa1aa2b8bef695eae88cbe2863c812eb8c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7776290\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1617484}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a1c180eb83ef6f10b900051ee683c3c6134fd24b\n"
    },
    {
      "commit": "6d302800d0dfb66e0b3569ef0e11a6982761c6a0",
      "tree": "9230717d6dc8fe54e02e7220e6672df2d1e2ef4a",
      "parents": [
        "f9b2972f1ac2f5314652ca7846197fea73c78241"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Apr 17 14:08:40 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 17 14:10:41 2026"
      },
      "message": "JNI Zero: Call android_set_abort_message() before crashing\n\nThis should make error messages more prominent for ap\n\nBug: 503456930\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I38e9e8a1e6a6a66da89e2e194dfb0a3a9334344c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7771547\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1616524}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f95f50913ffbad46fce5a16b2a2a3ac940192af4\n"
    },
    {
      "commit": "f9b2972f1ac2f5314652ca7846197fea73c78241",
      "tree": "ba0bd909e8e685e38137d8c48a68a7b216362a4c",
      "parents": [
        "4491c6e3861dd6f250aae21369262796a135003f"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Apr 17 14:04:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 17 14:06:37 2026"
      },
      "message": "JNI Zero: Fix parsing of nested classes in generate_jar_jni()\n\nAnd use field accessors in meminfo_dump_provider.cc\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I28b588234347d5c2bc5b5b89c0bbf01092d80891\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7765913\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1616521}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 372c0321477ed696d930e9be397de070ca4c6b9f\n"
    },
    {
      "commit": "4491c6e3861dd6f250aae21369262796a135003f",
      "tree": "dc0f5db52722dabd9c0800e43ee6a563d536f37c",
      "parents": [
        "8f81459084ba514de7d2e7d63540b4412759bb38"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Thu Apr 16 20:04:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 16 20:08:23 2026"
      },
      "message": "Deprecate ByteArrayView in favour of JArrayView\u003cint8_t\u003e\n\nThis CL removes usages of ByteArrayView and replaces them\nwith JArrayView\u003cint8_t\u003e\n\nBug: 493551523\nChange-Id: Id5e02afdd3451fabd5cdc4d2718be03188830a92\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7759377\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1616072}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1e57046f255ed76c8760e0f51d4c6e42d230271d\n"
    },
    {
      "commit": "8f81459084ba514de7d2e7d63540b4412759bb38",
      "tree": "29cb8177ae014401a7e9e11533314657424f46cb",
      "parents": [
        "aa7c373c3d53b350b64ed21ee10598386d5817d2"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Apr 16 17:20:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 16 17:22:40 2026"
      },
      "message": "JNI Zero: Add jni_zero::AdoptRef()\n\nAs an ergonomic alternative to:\njni_zero::ScopedJavaLocalRef\u003cjobject\u003e::Adopt()\n\nChange-Id: If01089d17e83a308f12f1a1d85988911b020c1fb\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7765511\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1615982}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 6a850d88bedd8ff987682e36341bd3d9af5c97bb\n"
    },
    {
      "commit": "aa7c373c3d53b350b64ed21ee10598386d5817d2",
      "tree": "1029775fe9998d9a56dd5589f0fb027e6374d763",
      "parents": [
        "d4ccc4d6b91b4beb41068534838a6563c0c73616"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Thu Apr 16 17:08:20 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 16 17:09:45 2026"
      },
      "message": "JNI Zero: Add jni_zero::CreateLeaky()\n\nThis is a more ergonomic alternative to\n\njni_zero::JavaRef\u003cSomeClass\u003e::CreateLeaky()\n\nChange-Id: I9b7deab9a2c9e4230530c4b4bcf6297f8cfaa553\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7768989\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1615964}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 2af19b69d99fe911857e0a8f3bdb7551ed421d64\n"
    },
    {
      "commit": "d4ccc4d6b91b4beb41068534838a6563c0c73616",
      "tree": "32e2a70d2a23c14840b4e8e9726a423d038e16e3",
      "parents": [
        "fbdc0ac7096efc70b785a0d45b2121a3ef643ce9"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Thu Apr 16 14:14:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 16 14:16:45 2026"
      },
      "message": "JNI Zero: Add NewAsciiString(env, \"foo\")\n\nJNI Zero does not ship with string conversions functions out of the box,\nso it\u0027s nice to at least have a wrapper for creating a string from a\nliteral.\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: Ib62c6284272383443cb045670d3c70ce5a8af6dc\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7766490\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1615820}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: feaeb26edf80a1b22f533d624781514def75d9eb\n"
    },
    {
      "commit": "fbdc0ac7096efc70b785a0d45b2121a3ef643ce9",
      "tree": "8e7a8649cb6b9df2e369e1469871f51e30c52176",
      "parents": [
        "03629fdc05f26a35af444f17f672061b0f37028a"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Apr 15 21:22:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 15 21:23:58 2026"
      },
      "message": "JNI Zero: Fail if @JniType() appears in generics\n\nIt\u0027s ignored there, so almost certainly a error.\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: If9b4ff7b53278a8ca65cd372ff387b2320296574\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7763304\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1615418}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 40b6896292753e795403ce410a6bcdb13a3c61e9\n"
    },
    {
      "commit": "03629fdc05f26a35af444f17f672061b0f37028a",
      "tree": "d94dfc6de1eb54f260f0f844f6b871bd47e09bdf",
      "parents": [
        "3d2b791b9d4c82c4ef0801cc699abf79ab6170e2"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Wed Apr 15 19:55:50 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 15 19:58:52 2026"
      },
      "message": "Make JArrayView\u003cjobject T\u003e iterable in for-each loop\n\nThis CL makes the JArrayView\u003cjobject T\u003e class iterable in\nfor-each loop, by adding an iterator class and adding a\nbegin() and end() that returns an iterator.\n\nThe CL also removes the JavaObjectArrayReader class and\nreplaces its usage with JArrayView.\n\nBug: 493551523\nChange-Id: I98cc4bf668f98c27f34bf7a565cf7830d9f1c375\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7759375\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1615350}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 40e32d7ef6e560f6e1ec5de99fb8fef281fac6fe\n"
    },
    {
      "commit": "3d2b791b9d4c82c4ef0801cc699abf79ab6170e2",
      "tree": "4a1fefabe7c536244f9a4cc65e741329aa75b23d",
      "parents": [
        "956688c5ba5f2b3b25cc97b6dbe89fe9874a2184"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Apr 15 15:48:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 15 15:50:12 2026"
      },
      "message": "JNI Zero: Make `JArray\u003cjobject\u003e \u003d\u003d jobjectArray`, and add GetAs\u003c\u003e()\n\nBoth motivated by nicer syntax.\n\nI didn\u0027t add a GetAs() to JArrayView, because that should generally be\nused only for for-each loops.\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I73c221d439a6f1d725fb7d9a25acab2a03d555a9\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7760144\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1615207}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e5ed506025603abc3d651bbdb4d020f23914d6ae\n"
    },
    {
      "commit": "956688c5ba5f2b3b25cc97b6dbe89fe9874a2184",
      "tree": "af49d4c1c2e392bf7e1b9c6f242d1d19d74c5e2c",
      "parents": [
        "e45734825eb30134b049e4ef795ce81a6ece006a"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Wed Apr 15 14:05:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 15 14:08:50 2026"
      },
      "message": "Make JNI Zero\u0027s IMMEDIATE_CRASH call Chromium\u0027s IMMEDIATE_CRASH\n\nThis CL makes it so that if we are building with chromium,\nthen JNI_ZERO_IMMEDIATE_CRASH should call Chromium\u0027s\nIMMEDIATE_CRASH instead of using __builtin_trap().\n\nBug: 496183738\nChange-Id: Ia811e527f135cb594b62897e023873eda397eb00\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7761650\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1615134}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0b787cf87bb33262af732a3dba24596a36d7d3ca\n"
    },
    {
      "commit": "e45734825eb30134b049e4ef795ce81a6ece006a",
      "tree": "419c91ee8937f076fa67f0e341cf45a31e867e79",
      "parents": [
        "c42bcada870d62a484b7e28bcfe6dbf0af93aada"
      ],
      "author": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Mon Apr 13 18:23:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 13 18:25:55 2026"
      },
      "message": "Fix: Use dot-separated class name in GetClass.\n\nThe jni_zero::GetClass function expects the Java class name in the standard dot-separated format (e.g., \"java.lang.String\"), not the JNI slash-separated format (e.g., \"java/lang/String\"). This change updates the codegen to use gen_jni_class.full_name which provides the dot-separated name.\n\nThis is a follow-up work related to https://crrev.com/c/7735357\n\nBug: 495391934, 496131361\nChange-Id: Id8cff4ae06c1cdf30fe939db9d551753c8b64be7\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7755959\nAuto-Submit: Mohannad Farrag \u003caymanm@google.com\u003e\nCommit-Queue: Mohannad Farrag \u003caymanm@google.com\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1613869}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7337044bf650d9253c88d1a87f2f5d193824dac6\n"
    },
    {
      "commit": "c42bcada870d62a484b7e28bcfe6dbf0af93aada",
      "tree": "91916bd1fbdb3181d38a63e2f29419c8b4bcab3c",
      "parents": [
        "69ef57535fd151a671b2bacc7b0222108be5aad6"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Apr 10 18:47:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 10 18:49:00 2026"
      },
      "message": "JNI Zero: Use non-namespaced jobject types in static_assert message\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: I306367269d9f8cd39e83fc83c39ef79409684e0d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7749525\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1613007}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: be392798fe956c548d425de6c1e5d48e0096a04a\n"
    },
    {
      "commit": "69ef57535fd151a671b2bacc7b0222108be5aad6",
      "tree": "5ceadf5e2a46dd3964a3136f65cca37e77e0023d",
      "parents": [
        "38ed7097bf9bd09fae5c1df4cff8c7225104b857"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Fri Apr 10 18:26:04 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 10 18:27:46 2026"
      },
      "message": "JNI Zero: Fix incorrect values for g_list_class and g_map_class\n\nThey were being set to implementation classes rather than interface\nclasses.\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: Ib95f5eca796050d307ab493d89f54ba87858c66c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7749684\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Martin Kong \u003cmartinkong@google.com\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1612992}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d19a46ca58e6dacc433ee5d7cb76f45604697515\n"
    },
    {
      "commit": "38ed7097bf9bd09fae5c1df4cff8c7225104b857",
      "tree": "0cc3171518ba7660bb272330218eaa8fc521d979",
      "parents": [
        "6bc90e05fb5cf92b5d0cbf3d123212edf9f5c56e"
      ],
      "author": {
        "name": "Martin Kong",
        "email": "martinkong@google.com",
        "time": "Thu Apr 09 22:06:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 09 22:09:03 2026"
      },
      "message": "JNI Zero: Fix the Chromium into WebRTC roll\n\nThis CL makes some minor changes to JNI Zero to fix the WebRTC roll.\n\nCompiled WebRTC locally and the compile passed.\n\nBug: 501094363\nChange-Id: Id8aaf9fd8364e260ed77a23f3e2e65a120c8f2c4\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7744486\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Martin Kong \u003cmartinkong@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1612529}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: aa936e82d0a1bcd90c36ce55e59ee3e91be3b750\n"
    }
  ],
  "next": "6bc90e05fb5cf92b5d0cbf3d123212edf9f5c56e"
}
