)]}'
{
  "log": [
    {
      "commit": "f8b07750475eccbb3c0c111fdd040a9f4452e578",
      "tree": "00f75392017567d449ee43d11d8ce0e78e02aaa5",
      "parents": [
        "5e68d59577980b37e5f101628b6e512db24250d7",
        "f652b35e5a55d85641ad25982e64fa06ac5ee2c7"
      ],
      "author": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 12:15:57 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Oct 12 02:53:12 2026"
      },
      "message": "Automated commit: libchrome r1714314 uprev\n\nMerge with upstream commit f652b35e5a55d85641ad25982e64fa06ac5ee2c7\nAdded non-test .cc files in upstream merge:\n  * base/allocator/partition_allocator/src/partition_alloc/partition_tls.cc\n\nFixes for uprev:\n  * Update\n    long-term-2800-Disable-unneeded-Rust-logging-integration.patch to\n    remove internal::update_rust_log_level() calls in base/logging.cc\n    added in upstream commit cb29f5154236 (crrev.com/c/8468470).\n  * Add REMOVE_UNPROTECTED_IN_RELEASE_TRAIT\u003dfalse to\n    partition_allocator_buildflags in BUILD.gn for upstream commit\n    2971742dee1f (crrev.com/c/8521662).\n\nBUG\u003dNone\nTEST\u003dsudo emerge libchrome\n\nChange-Id: I865b31b0d8cbbf49ae6194f547c47e4df491355f\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8539705\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\nCommit-Queue: Di Wu \u003cdiwux@google.com\u003e\nTested-by: Wei-Luan Wang \u003cweiluanwang@google.com\u003e\n"
    },
    {
      "commit": "f652b35e5a55d85641ad25982e64fa06ac5ee2c7",
      "tree": "51b72bf3202ccfe587bea1d6a56da415487e2f38",
      "parents": [
        "2971742dee1fa97f5a0d68192047c18aeebc62d4"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Thu Oct 08 09:46:55 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:40 2026"
      },
      "message": "Spanification: Migrate C-style arrays to std::array in base.\n\nMigrate C-style arrays with unsafe accesses to std::array and\nbase::span across base to modernize storage and eliminate\nunsafe indexing.\n\nThis is split from a large CL removing ~800 UNSAFE_TODOs. Using data\nfrom http://x20web/~arthursonzogni/state-of-spanification, a swarm of\nGemini agents resolved the reported C-style array unsafe accesses.\n\nBug: 559576258\nChange-Id: I08791089331d46d1410eaf9967708ecd22ee142c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8404405\nReviewed-by: Tibor Goldschwendt \u003ctiborg@chromium.org\u003e\nAuto-Submit: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\nCommit-Queue: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1714314}\n\n\nCrOS-Libchrome-Original-Commit: ec61d063655768da84919c3ebf0df66cb8ec5419\n"
    },
    {
      "commit": "2971742dee1fa97f5a0d68192047c18aeebc62d4",
      "tree": "9ef48dd9fe5c83c11da6588e544d6318d8c7ea5d",
      "parents": [
        "d0ff1e301429e35cc5b000da49ca066d728ec04c"
      ],
      "author": {
        "name": "Keishi Hattori",
        "email": "keishi@google.com",
        "time": "Thu Oct 08 04:26:46 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:34 2026"
      },
      "message": "MiraclePtr: Introduce UnprotectedInReleaseForPerformance trait\n\nAdd UnprotectedInReleaseForPerformance to RawPtrTraits in PartitionAlloc\nfor pointers identified as verified performance hotspots (e.g. in\nSpeedometer 3).\n\nAlso add the remove_unprotected_in_release_trait GN argument and\nREMOVE_UNPROTECTED_IN_RELEASE_TRAIT buildflag (default false), allowing\nprotection on UnprotectedInRelease to subsequently be enabled without\naffecting performance hotspots or debug/DCHECK builds.\n\nAnnotate verified performance hotspot fields across Blink HTML\ntokenizer/parser, graphics/font metrics, and base task runner/message\nloop with UnprotectedInReleaseForPerformance.\nPlan: https://docs.google.com/document/d/1QnD9RuBDKb7j4f0eM7izoaYU7yx4vg5WBXugLCHWcM8/edit?usp\u003dsharing\n\nTAG\u003dagy\nCONV\u003daced7526-7cac-4267-a5f8-8c57c34bc538\n\nBug: 566006164\nChange-Id: Ie5c9a3f1deb3ce91029c0a83e2ec282b5759b0f1\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8521662\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nReviewed-by: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nCommit-Queue: Keishi Hattori \u003ckeishi@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1714148}\n\n\nCrOS-Libchrome-Original-Commit: 8ac71046803ea7b9e38e9d0d07cf59f3bebba1ba\n"
    },
    {
      "commit": "d0ff1e301429e35cc5b000da49ca066d728ec04c",
      "tree": "bdf394f2bb607b51dc58c8ec3dbae719d3db2315",
      "parents": [
        "62925ff63613aa508c809844ce99585073748a13"
      ],
      "author": {
        "name": "SeungJun Lee",
        "email": "mps756@gmail.com",
        "time": "Thu Oct 08 02:27:43 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:31 2026"
      },
      "message": "base: Check ThreadPool worker creation succeeds\n\nCheck that WorkerThread::Start() obtained a valid thread handle instead\nof returning false. Pooled single-thread task runners ignore this return\nvalue and can accept tasks for a worker that will never execute them.\n\nUse NotFatalUntil::M160 to collect non-fatal reports in official builds\nbefore making thread creation failure fatal in M160, like memory\nallocation failure. This allows evaluating the failure rate before\nenabling process termination.\n\nBug: 564635823\nChange-Id: Id7e9779b80c1d64f5e688fa1606612e8a360f60b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8483655\nReviewed-by: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nReviewed-by: Gabriel Charette \u003cgab@chromium.org\u003e\nCommit-Queue: Gabriel Charette \u003cgab@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1714097}\n\n\nCrOS-Libchrome-Original-Commit: 071f689d2110f4ca92435aa5e7dd61cc47c835df\n"
    },
    {
      "commit": "62925ff63613aa508c809844ce99585073748a13",
      "tree": "96f9f8bf5f57583306fd5d892a2bc4c94827028c",
      "parents": [
        "0bfb5232fcf5ff5764d967a03d3645524875372f"
      ],
      "author": {
        "name": "François Doray",
        "email": "fdoray@chromium.org",
        "time": "Thu Oct 08 02:27:27 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:31 2026"
      },
      "message": "[icu] Handle infinite Time values in TimeZone::GetOffset/InDaylightTime\n\ncrrev.com/c/8483536 switches base::i18n::TimeZone::GMT() from\nicu::OlsonTimeZone(\"GMT\") (loaded from the zoneinfo64 resource bundle)\nto icu::SimpleTimeZone (cloned from icu::TimeZone::getGMT()).\n\nWithout this CL, that switch would introduce a DCHECK failure when\ncalling TimeZone::GMT().GetOffset() (or the 4-argument\nTimeFormatAsIso8601() / TimeFormatAsIso8601WithTimeZone() with\nTimeZone::GMT()) on Time::Min() or Time::Max():\n- Time::Min() and Time::Max() return -infinity and +infinity from\n  InMillisecondsFSinceUnixEpoch().\n- icu::OlsonTimeZone(\"GMT\") has no finalZone and returns 0 from\n  getOffset() without inspecting the UDate argument.\n- icu::SimpleTimeZone::getOffset() converts the UDate argument to\n  calendar fields via Grego::timeToFields(), which fails with\n  U_ILLEGAL_ARGUMENT_ERROR on non-finite values and trips\n  DCHECK(U_SUCCESS(status)) in TimeZone::GetOffset().\n\nWe land this CL before crrev.com/c/8483536 to prevent this regression\nby handling time.is_inf() explicitly in TimeZone::GetOffset() and\nTimeZone::InDaylightTime(). At the same time, this fixes pre-existing\nDCHECK(U_SUCCESS(status)) failures on Time::Min() and Time::Max() for:\n- TimeZone::GetOffset() on SimpleTimeZone instances (such as\n  TimeZone::Unknown()) and on OlsonTimeZone instances with a finalZone\n  (such as \"America/Los_Angeles\" on Time::Max()).\n- TimeZone::InDaylightTime() on all timezones (since\n  icu::TimeZone::inDaylightTime() always converts UDate via\n  GregorianCalendar).\n\nBug: 568824848\nChange-Id: If7447a836bc1fe3ab769881a90d94428dfe04c7d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8507066\nReviewed-by: Danilo Tedeschi \u003cdanft@google.com\u003e\nCommit-Queue: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1714096}\n\n\nCrOS-Libchrome-Original-Commit: 248dbdaf0dc87a39f649c55c4baa970fde54692c\n"
    },
    {
      "commit": "0bfb5232fcf5ff5764d967a03d3645524875372f",
      "tree": "b794fea0c84b718a0edab6fb7487ce16033e8c8f",
      "parents": [
        "ce5e14575b1b69a8e6a4f8aa74b80f3fe66c24ca"
      ],
      "author": {
        "name": "Sergio Solano",
        "email": "sergiosolano@google.com",
        "time": "Wed Oct 07 23:46:35 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:28 2026"
      },
      "message": "Replace TODO(sergiosolano) with bug references\n\n- PartitionAlloc span.h: set start_lifetime_as_array TODO comment\n  to crbug.com/570737624.\n- PartitionAlloc span_unittest.cc: remove redundant TODO comment.\n- base/cpu_unittest.cc: set byte_span_from_ref() TODO comment to\n  crbug.com/570746342.\n\nBug: 570737624, 570746342\nChange-Id: I565918a1bf724825237ca739bd55f16d86aab5a1\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8528386\nAuto-Submit: Sergio Solano \u003csergiosolano@google.com\u003e\nReviewed-by: Sergio Solano \u003csergiosolano@google.com\u003e\nCommit-Queue: Sergio Solano \u003csergiosolano@google.com\u003e\nReviewed-by: Mark Mentovai \u003cmark@chromium.org\u003e\nReviewed-by: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1714003}\n\n\nCrOS-Libchrome-Original-Commit: dd2db3b624b14ae13a6f6501782cd38804009681\n"
    },
    {
      "commit": "ce5e14575b1b69a8e6a4f8aa74b80f3fe66c24ca",
      "tree": "4b0b60ea64889706cba3c5e7c3f5f9db089a024e",
      "parents": [
        "355e814c270ad30f8395a13ba0499be37da1190c"
      ],
      "author": {
        "name": "Simeon Anfinrud",
        "email": "sanfin@chromium.org",
        "time": "Wed Oct 07 23:06:05 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:26 2026"
      },
      "message": "[chromecast] Fix ScopedServiceBindingBatch JNI interface desugaring\n\n`ScopedServiceBindingBatch` was converted from a class to an interface\nin crrev.com/c/7130766, placing `@CalledByNative` on the static\ninterface method `ScopedServiceBindingBatch.scoped()` and interface\nmethod `close()`.\n\nWhen `cast_browser.aar` is imported into a downstream build pipeline\nthat runs Java 8 interface desugaring on library AARs, static interface\nmethods are moved onto the synthetic companion class\n`ScopedServiceBindingBatch$-CC`. At runtime, native JNI registration\nand invocation look up `ScopedServiceBindingBatch.scoped()` on the\noriginal type and crash on browser startup with:\n`java.lang.NoSuchMethodError: no static method \"Lorg/chromium/base/`\n`process_launcher/ScopedServiceBindingBatch;.scoped()...\"`.\n\nConvert `ScopedServiceBindingBatch` from an `interface` to a `public\nabstract class` implementing `AutoCloseable` so that its static\n`@CalledByNative` methods remain on `ScopedServiceBindingBatch` across\nbytecode desugaring pipelines, and add a unit test asserting that\n`ScopedServiceBindingBatch` is not an interface.\n\nBug: 436110326, 548679569\nTest: autoninja -C out/atv_x86_eng base_junit_tests\nTest: run_base_junit_tests -f \"*ScopedServiceBindingBatchImplTest*\"\nChange-Id: I40d3b2792e1750bbfcd1e75cafe4e70fb0af5a69\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8134436\nReviewed-by: Bo Liu \u003cboliu@chromium.org\u003e\nAuto-Submit: Simeon Anfinrud \u003csanfin@chromium.org\u003e\nCommit-Queue: Simeon Anfinrud \u003csanfin@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713975}\n\n\nCrOS-Libchrome-Original-Commit: cc54818c6a8ed13e7fc7cac52c81ed9f8b3b1dc7\n"
    },
    {
      "commit": "355e814c270ad30f8395a13ba0499be37da1190c",
      "tree": "58e64d97585620d897ad04a08a4bf3b91936df5f",
      "parents": [
        "fdfd44848e09d8ef9cd0a63e68ca8802cfe17ac5"
      ],
      "author": {
        "name": "Kaan Alsan",
        "email": "alsan@chromium.org",
        "time": "Wed Oct 07 22:39:33 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:25 2026"
      },
      "message": "Fix deadlock in Windows drag-and-drop interactive UI tests\n\nFor full context, see\nhttps://docs.google.com/document/d/1HEnXwZtDZ4MXhRnEXW-h8CfmwxaITPqjAU1d38iDfgI.\n\nThe TL;DR is that starting a drag-loop on Windows causes a deadlock\nbecause the native modal loop expects a _second_ mouse event to unblock\nthe application message loop.\n\nOn Windows, ::DoDragDrop enters a modal loop that blocks the application\nmessage loop. While in this loop, it expects an input event before it\nwill dispatch other messages, including kMsgHaveWork which is used by\nChrome to run pending tasks. This creates a deadlock because the test\n(which runs via tasks) cannot send the next input event until it is\nunblocked.\n\nWhat this CL does: A global test-only callback is registered on\nDesktopDragDropClient that runs just before the drag-loop starts. This\ncallback queues a 1px away-and-back nudge via ::SendInput so Windows\ncannot coalesce it into the triggering move before ::DoDragDrop()\nstarts.\n\nAdditionally, fixing dnd tests exposed a minor issue in\nMessagePumpForUI, which allowed native timers to leak out of nested run\nloops, which was hitting a DCHECK. This CL fixes it by killing any\ninstalled native timer when exiting a nested native loop. A regression\ntest is added for this too.\n\nOther DnD tests will be enabled in follow-up CLs.\n\nBug: 40249472\nChange-Id: If5637b630d610d72ae49c9e8325bc226bc3b179d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7915696\nReviewed-by: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nReviewed-by: Dana Fried \u003cdfried@chromium.org\u003e\nCommit-Queue: Kaan Alsan \u003calsan@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713952}\n\n\nCrOS-Libchrome-Original-Commit: 2ae82d256cd7745d35b3ee00b05f937d1d468b19\n"
    },
    {
      "commit": "fdfd44848e09d8ef9cd0a63e68ca8802cfe17ac5",
      "tree": "d09ec4152f03ab7f265bd0605eaca6c0904ca202",
      "parents": [
        "e3486884c7afb9b7c238758411b28f400e13944a"
      ],
      "author": {
        "name": "S Ganesh",
        "email": "ganesh@chromium.org",
        "time": "Wed Oct 07 22:33:33 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:24 2026"
      },
      "message": "[mojo]: Validate ipcz transport handles and sender trust\n\nSending handles between processes on Windows requires either the\nsender or the receiver to duplicate the handle into its peer process\nusing DuplicateHandle(). Handles sent over ipcz are marked as kSender\n(meaning the sender still owns the handle and the receiver is\nresponsible for duplicating it) or kRecipient (meaning the sender has\nalready duplicated the handle into the receiver) to coordinate this\nhandle transfer, since only one side should duplicate the handle.\nMoreover, duplicating a handle into another process is a powerful\ncapability: if one side is more privileged, the convention is for the\nmore privileged side to duplicate handles.\n\nWhen using a Mojo isolated connection, both sides are considered\nbrokers. Optionally, one side can mark the other as untrusted using\nMOJO_SEND_INVITATION_FLAG_UNTRUSTED_PROCESS - in that case, the\nuntrusted side should never be duplicating handles into its peer.\nHowever, two places in ipcz_driver::Transport failed to enforce safety\ninvariants around handle duplication:\n\n1. DecodeHandle() accepted HandleOwner::kRecipient handles from any\n   kBroker peer (unless the receiving endpoint itself was marked\n   elevated). Even though the untrusted sending broker could not\n   actually duplicate handles into the receiving process, it could\n   still guess numeric HANDLE values that happened to name pre-existing\n   handles in the receiving process\u0027s handle table.\n2. Transport::Deserialize() allowed even untrusted peers to name a\n   transport\u0027s remote_process_.\n\nChanges:\n- DecodeHandle() no longer allows kRecipient handles from\n  explicitly-untrusted broker peers - this is encapsulated in\n  Transport::CanAcceptReceiverOwnedHandles().\n- Transport::Deserialize() only allows remote processes to be\n  specified if the sender is a non-broker and the receiver is a broker\n  (as in the case of mojo::DirectReceiver) or if the peer is not\n  marked as kUntrusted. This is encapsulated in\n  Transport::CanAcceptRemoteProcessFromPeer().\n- In the updater service, CreateServerEndpointOptions() previously\n  set MOJO_SEND_INVITATION_FLAG_UNTRUSTED_PROCESS for every caller of\n  every install. Now that DecodeHandle() rejects kRecipient handles\n  from untrusted peers, that declaration is made per caller, and only\n  by a system install (where callers cross a privilege boundary): a\n  new EndpointOptions::send_invitation_flags_callback lets\n  NamedMojoMessagePipeServer choose the invitation flags for each\n  connecting client, and the updater declares a caller untrusted if\n  its token is below High integrity. Such a caller cannot open the\n  SYSTEM server process and so never pre-duplicated legitimately. An\n  elevated administrator or SYSTEM caller is not declared untrusted\n  and keeps today\u0027s behavior. User installs, where both ends are\n  equally privileged, declare nothing.\n- To match the stricter checks in DecodeHandle(),\n  UpdateServiceProxyMojoImpl uses MOJO_SEND_INVITATION_FLAG_ELEVATED\n  when connecting to a system install on Windows. This keeps the more\n  privileged side doing the duplication even for callers capable of\n  opening the server process, and keeps such callers working should\n  the server\u0027s classification ever be tightened.\n\nCompatibility: clients built before this change keep working against\na server built after it. A caller below High integrity cannot open the\nSYSTEM server process and therefore already sends kSender, which the\nserver duplicates; a forged kRecipient handle from it is now refused.\nAn elevated caller is not declared untrusted, so its pre-duplicated\nhandles - including the link memory handle carried by the isolated\nconnection handshake itself - are accepted as before. This matters\nbecause standalone installers bundle an older updater and run it\nelevated against whichever version is active.\n\nTAG\u003dagy\nCONV\u003df1f0f9e4-5cf6-48fb-aa22-494d1abe9ed1\n\nBug: 564573066, 565252396\nTest: mojo_unittests, components_unittests, ipc_tests, updater_tests\nChange-Id: I4236c7a0a9104b010300e79ac1b63d9bc0c8887e\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8417663\nReviewed-by: Andrea Orru \u003candreaorru@chromium.org\u003e\nCommit-Queue: S Ganesh \u003cganesh@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Noah Rose Ledesma \u003cnoahrose@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1713945}\n\n\nCrOS-Libchrome-Original-Commit: d003e09e940872de8f3e564be750ea58e4e60987\n"
    },
    {
      "commit": "e3486884c7afb9b7c238758411b28f400e13944a",
      "tree": "8aa7356171e05299aa738edbefc762fa9c94a416",
      "parents": [
        "ef9430da7b8e48a2e33927beb82d8224fc4534d8"
      ],
      "author": {
        "name": "Andrea Orru",
        "email": "andreaorru@chromium.org",
        "time": "Wed Oct 07 21:58:36 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:23 2026"
      },
      "message": "mojo: Clean up miscellaneous legacy Mojo Core leftovers\n\n* Delete mojo/core/mojo_core_unittest.h, which nothing includes.\n* Delete mojo/core/handle_signals_state.h, an internal copy of\n  mojo::HandleSignalsState, and switch the two tests that use it to the\n  public header.\n* Delete SharedMemoryUtils. Since the removal of legacy Mojo Core,\n  InstallBaseHooks() only forwards to\n  mojo::core::InstallMojoIpczBaseSharedMemoryHooks(), so call that\n  directly from content\u0027s InitializeMojoCore(), its only caller. Also\n  remove the unused includes, the friend declaration in\n  base::SharedMemoryHooks, the viz DEPS rule and the now-unneeded\n  //mojo/core/embedder dependency of //mojo/public/cpp/base.\n* Remove the MojoIpcz feature, which no longer exists, from the app\n  shim\u0027s early access feature list and WebView\u0027s\n  ProductionSupportedFlagList.\n* Point comments that cite NodeController::CreateSharedBuffer() and\n  //mojo/core/core.cc to BaseSharedMemoryService::CreateWritableRegion()\n  and core_ipcz.cc.\n\nBug: 359926651\nChange-Id: Id17de72b7cb6725dad8b47ca2e49fc375ba09e68\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8522656\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Andrea Orru \u003candreaorru@chromium.org\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Avi Drissman \u003cavi@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713909}\n\n\nCrOS-Libchrome-Original-Commit: b4d9330e3a770ca61e5b9406d1c1147db0c61e35\n"
    },
    {
      "commit": "ef9430da7b8e48a2e33927beb82d8224fc4534d8",
      "tree": "f76bbd64abe677d5172c260fce41d2c0c21d9723",
      "parents": [
        "80f88d012b162db59fb6810be0582c91d1373eed"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Oct 07 21:55:03 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:23 2026"
      },
      "message": "Android: Wait for FLAG_SECURE to be applied before failure screenshots\n\nhttps://crrev.com/c/8377632 cleared FLAG_SECURE before taking post-test\nscreenshots, but they were still black. clearFlags() only updates the\nwindow\u0027s LayoutParams; the change reaches the WindowManager on the next\nViewRootImpl traversal and is then applied asynchronously by\nWindowManager / SurfaceFlinger, so the screenshot was racing it.\n\nNow wait for a pre-draw traversal on the affected window.\n\nBug: 559237438\nChange-Id: I0fad7017222a5611302c05628cd7d8dea31dc88f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8528408\nReviewed-by: Henrique Nakashima \u003chnakashima@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713905}\n\n\nCrOS-Libchrome-Original-Commit: 980f28d3049587cc0fd39af81ee8816c257d9a75\n"
    },
    {
      "commit": "80f88d012b162db59fb6810be0582c91d1373eed",
      "tree": "26f98bef690a95fc92d259ba1eb9acc7d0600554",
      "parents": [
        "e66c6ac5d4d0f7632d89775c3fd8d2c471b91104"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Wed Oct 07 21:01:19 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:20 2026"
      },
      "message": "mojo: Cache ModuleLoader in template_expander\n\nPreviously, ApplyTemplate() instantiated a new jinja2.ModuleLoader on\nevery template rendering invocation. Because each loader instance popped\nimported modules from sys.modules, rendering multiple .mojom files in a\nsingle mojom_bindings_generator.py invocation triggered repeated\nzipimport and Python bytecode compilation (compile()) of the same\nJinja2 templates on every file.\n\nIn large targets such as\n//third_party/blink/public/mojom:mojom_platform_shared__generator, which\nprocesses 247 .mojom files (generating 1,729 output files) in a\nsingle process, this redundant template compilation dominated execution\ntime.\n\nCache the ModuleLoader instance per template zip path via\n@functools.lru_cache, and mirror the loaded submodule attribute on\nself.module under the full name that jinja2.ModuleLoader.load() checks\n(getattr(self.module, f\u0027{self.package_name}.{key}\u0027, None)) so already\nloaded template modules are reused across all files in the process.\n\nPerformance impact:\n- //third_party/blink/public/mojom:mojom_platform_shared__generator:\n  25.88s -\u003e 2.52s (-23.36s, -90.3%, 10.3x speedup)\n- //content/common:mojo_bindings__generator (single core):\n  3.32s -\u003e 1.68s (-1.64s, -49.5%)\n\nBug: 563098656\nChange-Id: I467dade6d12faf628a2cfc5427012c131f6a3384\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8513698\nCommit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\nAuto-Submit: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713847}\n\n\nCrOS-Libchrome-Original-Commit: fc5d2f8f00e523970d4448e754d10767ce162f85\n"
    },
    {
      "commit": "e66c6ac5d4d0f7632d89775c3fd8d2c471b91104",
      "tree": "473b451d9b01ea665b2caf35cce8eef627f20435",
      "parents": [
        "95f6c7989d5e4aee4ce307b38b77ac45cab1801b"
      ],
      "author": {
        "name": "Roger McFarlane",
        "email": "rogerm@chromium.org",
        "time": "Wed Oct 07 20:41:43 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:19 2026"
      },
      "message": "Add FeatureListTest to testing PassKey for PrepareRuntimeMutableFeatureStateUpdate\n\n`FeatureList::PrepareRuntimeMutableFeatureStateUpdate()` was previously\noverloaded for `base::PassKey\u003cbase::test::ScopedFeatureList\u003e`.\n\nRename this testing overload to\n`PrepareRuntimeMutableFeatureStateUpdateForTesting` and update its\nPassKey to accept both `base::test::ScopedFeatureList` and\n`FeatureListTest`:\n`base::PassKey\u003cbase::test::ScopedFeatureList, FeatureListTest\u003e`.\n\nThis allows `FeatureListTest` to test `FeatureList`\u0027s internal\nvalidation directly using its own PassKey, eliminating the fake\n`namespace variations { class VariationsService }` surrogate from\n`base/feature_list_unittest.cc`.\n\nBug: 536852160, 536851701\nChange-Id: I137609ec7574167e63e4b5c5d295eab578b66e96\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8475231\nReviewed-by: Luc Nguyen \u003clucnguyen@google.com\u003e\nCommit-Queue: Roger McFarlane \u003crogerm@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713824}\n\n\nCrOS-Libchrome-Original-Commit: 315ed025aee089ca597b659d9d16f69ac6cf7e45\n"
    },
    {
      "commit": "95f6c7989d5e4aee4ce307b38b77ac45cab1801b",
      "tree": "17db13f00658587255f615b0d9c4e9d377d40a2f",
      "parents": [
        "572c4f6906e759bcc3cc16bf1eb63e4e646f3585"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Wed Oct 07 20:05:29 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:17 2026"
      },
      "message": "NullAway: Enable HandleWildcardGenerics\n\nEnables checking of nullness within wildcard type arguments. Fixes the\nhandful of sites that this surfaced:\n * RootSpec: Element is a Supplier\u003c@Nullable T\u003e, so accept\n   Supplier\u003c? extends @Nullable Activity\u003e (the implementation already\n   handled null).\n * NotificationPlatformBridge: Use whenComplete() rather than a\n   null-returning exceptionally() Function.\n\nBug: 568003583\nChange-Id: Ia196d6614932477dde74c8f94ad89b2f0e41d388\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8528508\nReviewed-by: Henrique Nakashima \u003chnakashima@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713776}\n\n\nCrOS-Libchrome-Original-Commit: 7bb692f28d518a7ad2377505663992f57538cba7\n"
    },
    {
      "commit": "572c4f6906e759bcc3cc16bf1eb63e4e646f3585",
      "tree": "1d02a7301ffb3518a85df2edeed5f74f376a0834",
      "parents": [
        "fb533b6aa48cb797da10ceb88de3773ead1d157e"
      ],
      "author": {
        "name": "Nicolas Ouellet-Payeur",
        "email": "nicolaso@chromium.org",
        "time": "Wed Oct 07 19:00:18 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:14 2026"
      },
      "message": "Add --use-fake-dmserver switch for Chromium builds\n\nTesting local policies against fake_dmserver on Chromium previously\nrequired passing both --enable-chrome-browser-cloud-management and\nan explicit --device-management-url switch.\n\nAdd the --use-fake-dmserver command-line switch on non-branded builds\nto default the device management server URL to the fake server port\nand enable cloud management automatically.\n\nBug: 468017367\nChange-Id: I79287f51d474786d3fe09403f5bbb2ca6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8519598\nCommit-Queue: Nicolas Ouellet-Payeur \u003cnicolaso@chromium.org\u003e\nReviewed-by: Yann Dago \u003cydago@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713696}\n\n\nCrOS-Libchrome-Original-Commit: a3d75851b6f5b88dbb80d2c1a8bedcf308f1a934\n"
    },
    {
      "commit": "fb533b6aa48cb797da10ceb88de3773ead1d157e",
      "tree": "6636ae9b776413f32c5fea5cf12d0ed12697aea2",
      "parents": [
        "f7da36020b5227a40829e8f2030e3bdba7919b13"
      ],
      "author": {
        "name": "Egor Pasko",
        "email": "pasko@chromium.org",
        "time": "Wed Oct 07 18:59:04 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:13 2026"
      },
      "message": "cleanup: Remove kMojoDirectSharedMemoryAllocation feature\n\nSetting the feature to true does not affects many cases. Performance\nchanges on Beta are not visible. Stability is good.\n\nAssuming direct allocations are always better, enable by default on\nAndroid and MacOS, remove the feature flag.\n\nBug: 559748937\nChange-Id: I875c3809f21179f87753234b827939cb412d3186\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8525054\nReviewed-by: Dave Tapuska \u003cdtapuska@chromium.org\u003e\nCommit-Queue: Egor Pasko \u003cpasko@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713694}\n\n\nCrOS-Libchrome-Original-Commit: 55582b6b5306ff86d67f6a7de14badaaeba26581\n"
    },
    {
      "commit": "f7da36020b5227a40829e8f2030e3bdba7919b13",
      "tree": "ccf3e9dc33a22caa9528e9ac25ef1fd39b2e030b",
      "parents": [
        "cb29f5154236a22bfaa510b9dbb9937b95e673f6"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Wed Oct 07 18:54:20 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:13 2026"
      },
      "message": "mojo: Skip redundant Stylize passes on Module\n\nModule.Stylize() recursively calls Stylize() on each entry in\nself.imports. Because transitive imports form a DAG of shared Module\ninstances within a loaded .mojom-module, shared dependency modules (such\nas url.mojom, time.mojom, and geometry.mojom) underwent redundant\nStylize traversals hundreds of times per module.\n\nCache _stylizer_type on Module and skip subsequent Stylize() calls if\nthe module has already been stylized with the same stylizer type.\n\nFor //content/common:mojo_bindings__generator on a single core\n(taskset -c 0), this reduces median wall time from 3.32s to 2.55s\n(-0.77s, -23.1%).\n\nBug: 563098656\nChange-Id: I44ed798888e2247d02f6f5fca341c8234bb3db3a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8513717\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nAuto-Submit: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCommit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713689}\n\n\nCrOS-Libchrome-Original-Commit: 9ece9dc714d4098ef9396638e3d7bd98e4f41f8e\n"
    },
    {
      "commit": "cb29f5154236a22bfaa510b9dbb9937b95e673f6",
      "tree": "c521f7df7bdb8d9292e6acd66d2f75d6261287cf",
      "parents": [
        "715cf00d53c453c76b5e937036c4e90566cfd1f1"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Oct 07 18:47:21 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:12 2026"
      },
      "message": "[base] Dynamically synchronize C++ and Rust logging level\n\nThis CL synchronizes the C++ and Rust logging levels, in order to avoid\nwastefully passes log events from Rust to C++ that we already know we\nwant to discard.\n\n* Maps C++ log severity to log::LevelFilter and updates\n  log::set_max_level dynamically when SetMinLogLevel is called.\n\n* Implements RustLogger::enabled using an atomic min log level check to\n  avoid formatting arguments when logging is disabled.\n\n* Uses a stack-allocated buffer for log file names in RustLogger::log\n  to eliminate heap allocations (resolving crbug.com/371112531).\n\nBug: 566200748, 371112531\nChange-Id: Ia719962607e32a505e81ed2815837571c9fc9803\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8468470\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Łukasz Anforowicz \u003clukasza@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713678}\n\n\nCrOS-Libchrome-Original-Commit: 6266aa3198ac66a6bbd57fee33a08d2138eb38d5\n"
    },
    {
      "commit": "715cf00d53c453c76b5e937036c4e90566cfd1f1",
      "tree": "27245d9fa6d21addaeadac14d38ae09d8710796d",
      "parents": [
        "faa2f6a58646901f23cce245140468303ffc4038"
      ],
      "author": {
        "name": "Greg Thompson",
        "email": "grt@chromium.org",
        "time": "Wed Oct 07 16:44:29 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:23:07 2026"
      },
      "message": "[DynamicPatching] Extract InstallProductComponent\n\nExtract the Windows product component installation logic from\nPlatformRuntimeComponentInstallerPolicy into a shared\ncomponent_updater::InstallProductComponent helper so that it can be\nreused by other product-scoped components (such as the dynamic patch\ncomponent).\n\nInstallProductComponent installs a .crx3 payload into the Chrome\ninstallation directory:\n- For system-level installs on Windows, it invokes an elevated\n  AppCommand via IAppCommandWeb: install-component with the inner CRX\n  path (%1) or, if a User Data directory is provided,\n  install-component-for-user with the inner CRX path (%1) and the\n  canonicalized User Data directory (%2). It polls until the command\n  completes.\n- For per-user installs on Windows, it launches setup.exe with\n  --install-component and --udd (if provided) and waits for it to exit.\n- On other platforms, a stub returns kLaunchFailed for now.\n\nAs with PlatformRuntime\u0027s installation today, there is no timeout.\n\nA User Data directory is canonicalized with\nchild_module::CanonicalizeUserDataDir(), since setup derives the\ncomponent\u0027s destination from it without accessing it. Installation\nfails without running setup if it cannot be canonicalized.\n\nProductComponentInstallResult distinguishes the same failure modes that\nPlatformRuntime reports (missing command, Chrome not installed, internal\nsetup failures, and COM/RPC errors).\nPlatformRuntimeComponentInstallerPolicy now delegates to\nInstallProductComponent and maps each result to its existing\nPlatformRuntimeInstallationResult, retaining the managed device and\nnetwork path breakdown of internal failures, so that\nComponentUpdater.PlatformRuntime.InstallationResult.* is unchanged.\nPlatformRuntime\u0027s unit tests are unchanged and continue to verify this\nend-to-end. install_product_component_unittest.cc tests the helper\nitself, including command selection, parameter passing, and User Data\ndirectory canonicalization.\n\nBug: 558351432\nChange-Id: I7e1abcf858ea62a0c4c0cce1c6c076544dd1ad39\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8505102\nReviewed-by: Marwan Tammam \u003cquarz@chromium.org\u003e\nCommit-Queue: Greg Thompson \u003cgrt@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713548}\n\n\nCrOS-Libchrome-Original-Commit: e1cf8ac877fb0f88d6d61ed93be43586ba5b8eda\n"
    },
    {
      "commit": "faa2f6a58646901f23cce245140468303ffc4038",
      "tree": "77597498fc1f9075eb4efbede21b043ca8d03388",
      "parents": [
        "936fb2ffc3b59144b304e5b0e07231c14d5e287a"
      ],
      "author": {
        "name": "mikt",
        "email": "mikt@google.com",
        "time": "Wed Oct 07 12:22:42 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 08 11:22:58 2026"
      },
      "message": "Reland \"[PA] Introduce PartitionTlsRegistry to track PartitionTls instances\"\n\nThis reverts commit 9467d08d9e085700a4e184f5ff22568291b718eb.\n\nReason for revert: Parent CL relanded https://crrev.com/c/8483734\n\nOriginal change\u0027s description:\n\u003e Revert \"[PA] Introduce PartitionTlsRegistry to track PartitionTls instances\"\n\u003e\n\u003e This reverts commit 33ce22068bdb197fc227e9313a5d49432b30bd6b.\n\u003e\n\u003e Reason for revert: Dependent on CL chain suspected to cause memory regression\n\u003e\n\u003e Failure Link: https://pinpoint-dot-chromeperf.appspot.com/job/157bfe49690000\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e [PA] Introduce PartitionTlsRegistry to track PartitionTls instances\n\u003e \u003e\n\u003e \u003e With this, we can iterate through active `PartitionTls` members.\n\u003e \u003e\n\u003e \u003e Change-Id: Id7b0ed89c768cf70b351e00e6ab521377c78f372\n\u003e \u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8366011\n\u003e \u003e Commit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\n\u003e \u003e Reviewed-by: Takashi Sakamoto \u003ctasak@google.com\u003e\n\u003e \u003e Cr-Commit-Position: refs/heads/main@{#1695581}\n\u003e\n\u003e Change-Id: I5e7d58532c3789beb8433234c157057ede2575e5\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8413365\n\u003e Owners-Override: Anna Tsvirchkova \u003catsvirchkova@google.com\u003e\n\u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Reviewed-by: Mateusz Zbikowski \u003czbikowski@google.com\u003e\n\u003e Commit-Queue: Alex Mitra \u003calexmitra@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1698070}\n\nChange-Id: I3e88ab4606858b0ee5e3aa46d89afa9ee7be056f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8494351\nReviewed-by: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCommit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1713331}\n\n\nCrOS-Libchrome-Original-Commit: a52590b208ce1cf2d64865443c3f2e6acf29af6b\n"
    },
    {
      "commit": "5e68d59577980b37e5f101628b6e512db24250d7",
      "tree": "3138407dbbc2efece8e480ec6db7f2fb0c418b5b",
      "parents": [
        "12a006f4873f574ef4776098d8fe23064ef5d1f8"
      ],
      "author": {
        "name": "Jae Hoon Kim",
        "email": "kimjae@google.com",
        "time": "Fri Sep 25 00:06:51 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Oct 08 04:57:40 2026"
      },
      "message": "libchrome: Remove backward-compatibility-0000-add-deprecated-base-Bind-APIs.patch\n\nAll ChromeOS packages (including net-wireless/floss via crrev.com/c/8463370)\nhave been migrated away from deprecated base::Bind, base::Callback,\nbase::Closure, and base::CancelableClosure APIs.\n\nBUG\u003db:272116782\nTEST\u003dCQ\nCq-Depend: chromium:8499615\nChange-Id: Ie0f35d8b18923e833801ca8aa4484c74d2b49bb3\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8460360\nReviewed-by: Jae Hoon Kim \u003ckimjae@chromium.org\u003e\nReviewed-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nCommit-Queue: Byron Lee \u003cbyronlee@chromium.org\u003e\nTested-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\n"
    },
    {
      "commit": "12a006f4873f574ef4776098d8fe23064ef5d1f8",
      "tree": "5959c856ceaaf7b362c5e80470c4a85f05740d74",
      "parents": [
        "f393f922d49ba8d7d5f8478803ae112d3a9c8b41",
        "936fb2ffc3b59144b304e5b0e07231c14d5e287a"
      ],
      "author": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 12:14:19 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Oct 07 17:18:42 2026"
      },
      "message": "Automated commit: libchrome r1713235 uprev\n\nMerge with upstream commit 936fb2ffc3b59144b304e5b0e07231c14d5e287a\n\nBUG\u003dNone\nTEST\u003dsudo emerge libchrome\n\nChange-Id: I1fbdc92548d70569f1948bbddd797edb038286a6\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8529468\nTested-by: chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com\u003e\nBot-Commit: chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com\u003e\nCommit-Queue: chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "936fb2ffc3b59144b304e5b0e07231c14d5e287a",
      "tree": "5491ecbacf7c64e5110aba2549974ed18aae073c",
      "parents": [
        "d90ff69e125009ec5315e7c69516f8dafb26b9e5"
      ],
      "author": {
        "name": "mikt",
        "email": "mikt@google.com",
        "time": "Wed Oct 07 09:14:18 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:23:23 2026"
      },
      "message": "[PA] Simplify BucketIndexLookup and PartitionRoot::SizeToBucketIndex()\n\nUnify the linear and exponential bucket mappings directly in\nBucketIndexLookup::GetIndexForDenserBuckets() and GetBucketSize()\nwithout separate helper classes, 64-bit rotations, or branches.\n\nAlso move BucketDistribution to bucket_lookup.h and add\nBucketIndexLookup::GetIndex() so PartitionRoot::SizeToBucketIndex()\ncompiles to a single branchless sequence without duplicating\nGetIndexForDenserBuckets().\n\nNo behavior change.\n\nOn x86_64, this reduces the inlined SizeToBucketIndex() sequence in\nPartitionRoot::Alloc() from 230 bytes (two duplicated 28-instruction\nblocks) to 68 bytes (~17 instructions on the denser path), improving\npartition_alloc_perftests throughput by +6.1% to +7.8% in\nMultiBucketWithFreeWithSize and up to +13.5% in SingleBucket.\n\nNO_IFTTT\u003dNo behavior change to bucket sizes or constants.\n\nChange-Id: Ib2fd0bcab607e5566e242c7c2ce163ed3776342f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8514458\nReviewed-by: Keishi Hattori \u003ckeishi@chromium.org\u003e\nCommit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1713235}\n\n\nCrOS-Libchrome-Original-Commit: 138956eb878297a352aa9fa03a2f6eaf35f3cbd5\n"
    },
    {
      "commit": "d90ff69e125009ec5315e7c69516f8dafb26b9e5",
      "tree": "0a422bdff33017fe1d9f99436a1c398c17c56a2f",
      "parents": [
        "dfb6a8be5bd0883856bfce1fbf3b6f9b63939512"
      ],
      "author": {
        "name": "mikt",
        "email": "mikt@google.com",
        "time": "Wed Oct 07 06:04:05 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:23:05 2026"
      },
      "message": "Reland \"[PA] Replace largest_active_bucket_index_ with active_bucket_count_\"\n\nThis reverts commit 7722d5682e81c10e435d72e0b4a6ed1fc67853a9.\n\nReason for revert: Parent CL relanded https://crrev.com/c/8483734\n\nOriginal change\u0027s description:\n\u003e Revert \"[PA] Replace largest_active_bucket_index_ with active_bucket_count_\"\n\u003e\n\u003e This reverts commit 75f790d6fca4e88282c5d68c8f0faa40c45022c7.\n\u003e\n\u003e Reason for revert: Parent CL is suspected cause of memory regression\n\u003e\n\u003e Failure Link: https://pinpoint-dot-chromeperf.appspot.com/job/157bfe49690000\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e [PA] Replace largest_active_bucket_index_ with active_bucket_count_\n\u003e \u003e\n\u003e \u003e This CL renames `largest_active_bucket_index_` to `active_bucket_count_`\n\u003e \u003e in `ThreadCache` and `ThreadCacheRegistry`, and optimizes hot-path\n\u003e \u003e validity and bucket bounds checks in PartitionAlloc (`bucket_index \u003c\n\u003e \u003e tcache-\u003eactive_bucket_count()`).\n\u003e \u003e\n\u003e \u003e This makes use of zero-initialized `ThreadCache` safer - it simply\n\u003e \u003e denotes there is no active bucket and routes every allocation to the\n\u003e \u003e global root instead.\n\u003e \u003e\n\u003e \u003e TAG\u003dagy\n\u003e \u003e CONV\u003d80980e77-c356-4c8b-a00b-3a2c47533fbb\n\u003e \u003e\n\u003e \u003e Change-Id: Ie599f94695b8f5d1662da26f5efd2ad9fa6b021a\n\u003e \u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8254723\n\u003e \u003e Reviewed-by: Takashi Sakamoto \u003ctasak@google.com\u003e\n\u003e \u003e Commit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\n\u003e \u003e Cr-Commit-Position: refs/heads/main@{#1690469}\n\u003e\n\u003e Change-Id: I399006f53b684b1575abf5ffe32eae791e4fa03f\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8408627\n\u003e Owners-Override: Anna Tsvirchkova \u003catsvirchkova@google.com\u003e\n\u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Commit-Queue: Alex Mitra \u003calexmitra@chromium.org\u003e\n\u003e Reviewed-by: Mateusz Zbikowski \u003czbikowski@google.com\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1698072}\n\nChange-Id: I13150a4521b8734bbcf37c741b7278fa6c72e2e5\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8494331\nCommit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\nReviewed-by: Takashi Sakamoto \u003ctasak@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1713096}\n\n\nCrOS-Libchrome-Original-Commit: b80cc90857d3b89dfaed62fbfb201ad888795b6c\n"
    },
    {
      "commit": "dfb6a8be5bd0883856bfce1fbf3b6f9b63939512",
      "tree": "e056ff3912d5d0d4f7e4dd46cc858de297a4aac5",
      "parents": [
        "4dc9d5f2ada95760c985f2995c9828a22508d260"
      ],
      "author": {
        "name": "Bo Liu",
        "email": "boliu@chromium.org",
        "time": "Wed Oct 07 04:49:49 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:23:04 2026"
      },
      "message": "android: Remove supportVariableConnections\n\nVariable connections is always supported on Q.\n\nChange-Id: I98c02b06005d0d33f772d763bbc1455641f6e341\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6945140\nReviewed-by: Simeon Anfinrud \u003csanfin@chromium.org\u003e\nReviewed-by: Ted Choc \u003ctedchoc@chromium.org\u003e\nCommit-Queue: Bo Liu \u003cboliu@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713066}\n\n\nCrOS-Libchrome-Original-Commit: ad1ce9b3a02cea1a4b060e8072d1f7c0b3b86944\n"
    },
    {
      "commit": "4dc9d5f2ada95760c985f2995c9828a22508d260",
      "tree": "a68a2c7f0ea93860a63397d1938913a51d7c580c",
      "parents": [
        "3f1dcfe037a3bb0a6edb35dc7f2b0180b206a7f1"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Oct 07 04:41:15 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:23:03 2026"
      },
      "message": "Reland \"Migrate base::Reversed to std::views::reverse\"\n\nThis is a reland of commit 08815e67f05ca8d96002048cd4bb5ad4e65c92b7\n\nThe original change broke the linux-cast-x64-rel build:\noverlay_strategy_underlay_cast.cc passed a QuadList to\nstd::views::reverse, but QuadList does not model\nstd::bidirectional_range yet. The reland leaves that file on\nbase::Reversed; it is migrated together with the ListContainer fix in\nhttps://crrev.com/c/8500689.\n\nOriginal change\u0027s description: \u003e Migrate base::Reversed to\nstd::views::reverse \u003e \u003e This is a mechanical migration. \u003e \u003e Bug:\n493534962 \u003e Change-Id: I20e17473c96aca7f18675a4da7bdb5a66a6a6964 \u003e\nReviewed-on:\nhttps://chromium-review.googlesource.com/c/chromium/src/+/8500683 \u003e\nSLSA-Policy-Verified: SLSA Policy Verification Service\n\u003cdevtools-gerritcodereview-exitgate@google.com\u003e \u003e Owners-Override:\nDaniel Cheng \u003cdcheng@chromium.org\u003e \u003e Commit-Queue: Daniel Cheng\n\u003cdcheng@chromium.org\u003e \u003e Reviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\n\u003e Auto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e \u003e\nCr-Commit-Position: refs/heads/main@{#1712516}\n\nBug: 493534962\nCq-Include-Trybots: luci.chromium.try:linux-cast-x64-rel\nChange-Id: I79aa08d9f9d2410960ab8662ea401541fdeb2b52\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8519503\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1713058}\n\n\nCrOS-Libchrome-Original-Commit: b6ae90def7daaa1d117ca983bf05dcf5e319d143\n"
    },
    {
      "commit": "3f1dcfe037a3bb0a6edb35dc7f2b0180b206a7f1",
      "tree": "771f2e31f0b14645db088b0d428c2fd0b5cb86c2",
      "parents": [
        "03aa37fb0f050f68fca03b114ad175fa648d7de9"
      ],
      "author": {
        "name": "mikt",
        "email": "mikt@google.com",
        "time": "Wed Oct 07 03:32:51 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:23:01 2026"
      },
      "message": "[PA] Split PartitionRoot entry points after their prologue\n\nMove what several PartitionRoot entry points do after their prologue\ninto functions of their own, and likewise how the scheduler-loop\nquarantine releases a purged slot. No behavior change.\n\nThis prepares for event hooks (https://crrev.com/c/8302832), which\nfire an event between an entry point\u0027s prologue and the rest, and then\ncall the rest, as a function, unless a hook took the operation over:\n- FreeAfterProlog(): what FreeInlineInternal() does after FreeProlog():\n  looks up the object\u0027s slot and frees it. FreeInlineInUnknownRoot()\n  now calls FreeAfterProlog() directly, rather than\n  FreeInlineInternal\u003ckNoHooks\u003e(), whose second FreeProlog() did\n  nothing.\n- ReallocInPlaceOrMove(): what ReallocInline() does once the request\n  is neither an allocation, a free nor too large: resizes the object\n  in place if it can, and moves it otherwise. The allocation it moves\n  the object to is AllocForRealloc(), which event hooks also hand to\n  the early reallocation hook.\n- GetExternalUsableSizeFromMetadata(): what GetExternalUsableSize()\n  does for a non-null pointer.\n- ZapBrpQuarantinedObject(): what QuarantineForBrp() does without a\n  QuarantineOverrideHook.\n- ReleaseDequarantinedSlot(): how the scheduler-loop quarantine\n  releases a purged slot, into the thread cache or batched in its\n  BatchFreeQueue. The purge now takes the entry off its list before\n  releasing it, rather than after, so that a release that re-enters\n  the purge cannot find the entry again.\n\nChange-Id: I20666743027d9194b858150ca4e9c7c64448554a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8492673\nCommit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\nReviewed-by: Takashi Sakamoto \u003ctasak@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1713016}\n\n\nCrOS-Libchrome-Original-Commit: 2c4ab6adfb4563898f394b9e060e876549d953ad\n"
    },
    {
      "commit": "03aa37fb0f050f68fca03b114ad175fa648d7de9",
      "tree": "79dde1f64c9f08b84d8463fa4f7e0cb17edd9be5",
      "parents": [
        "68d425052e372b2606ec35e2e6a6ad8a5375c1a5"
      ],
      "author": {
        "name": "mikt",
        "email": "mikt@google.com",
        "time": "Wed Oct 07 03:32:37 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:23:00 2026"
      },
      "message": "[PA] Replace FreeFlags::kWith*Hint with typed FreeHint arguments\n\nReplace FreeFlags::kWithSizeHint, FreeFlags::kWithAlignmentHint, and\nFreeFlags::kWithTypeIdHint (and the FreeHintType\u003c...\u003e struct) with\nstrongly-typed hint arguments (FreeSizeHint, FreeAlignmentHint,\nFreeTypeIdHint) constrained by the FreeHint concept.\n\nThis unifies the hinted and unhinted overloads of PartitionRoot\u0027s\nFree*() entry points into a single variadic template:\n  template \u003cFreeFlags flags \u003d FreeFlags::kNone, FreeHint... Hint\u003e\nand moves the alignment-adjusted size calculation into\nFreeNoHooksImmediate() so that FreeInlineInUnknownRoot() can call\nFreeInlineInternal\u003ckNoHooks\u003e() directly instead of the out-of-line\nFreeInline\u003ckNoHooks\u003e() when a hint is provided.\n\nNo behavior change.\n\nChange-Id: Ie70b59fb5c34a05fc033fb58e60db729e03930ae\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8522224\nReviewed-by: Takashi Sakamoto \u003ctasak@google.com\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1713015}\n\n\nCrOS-Libchrome-Original-Commit: 0af2c54dcc1d0bc9f8436429800d963cd4736d04\n"
    },
    {
      "commit": "68d425052e372b2606ec35e2e6a6ad8a5375c1a5",
      "tree": "86b75e3dcb7ea37e90de9679a126c1a61b4558c6",
      "parents": [
        "50a80ba5f19f647d8fc77dd87981aa2dd84df1cb"
      ],
      "author": {
        "name": "Henrique Nakashima",
        "email": "hnakashima@chromium.org",
        "time": "Wed Oct 07 01:44:04 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:57 2026"
      },
      "message": "Reland \"[Tab UI] Convert TabUiTestHelper#enterTabSwitcher() to hop on Public Transit\"\n\nThis is a reland of commit a17f49c0a20027255d94c38bc707bb5f7d3a8815\n\nReverted because ArchivedTabsDialogCoordinatorTest#testMessageResizedOnTablet\nfailed consistently on android-desktop-x64-rel: the tab switcher button\nclick did not open the HUB. The test rotated to portrait right before\nentering the tab switcher, which letterboxes Chrome on landscape\ndesktops, and Android\u0027s first-time letterbox education popup swallowed\nthe Espresso click. The old performClick() bypassed input dispatch.\n\ncrrev.com/c/8520058 restricted that test to tablets, since desktop\ncan\u0027t rotate to portrait. The popup also shows on large tablets\n(android-14-tablet-landscape-arm64-rel), so this also adds\nTabUiTestHelper#enterTabSwitcherProgrammatically(), which keeps the old\nperformClick() behavior, with a TODO to remove it, and uses it in that\ntest.\n\nOriginal change\u0027s description:\n\u003e [Tab UI] Convert TabUiTestHelper#enterTabSwitcher() to hop on Public Transit\n\u003e\n\u003e First conversion of a legacy test util with TrafficControl#hopOnAt().\n\u003e\n\u003e enterTabSwitcher(), used by 31 test files, now hops on at the current\n\u003e page (a CtaPageStation) and travels to the TabSwitcherStation by\n\u003e clicking CtaPageStation#tabSwitcherButtonElement, via the existing\n\u003e openRegularTabSwitcher()/openIncognitoTabSwitcher(). This replaces\n\u003e performClick() on a raw findViewById() plus a layout wait, and resolves\n\u003e the crbug.com/40155797 TODO to click the button through Espresso. The\n\u003e util now returns the TabSwitcherStation. Public Transit callers can\n\u003e continue from that Station; the others ignore it. Hopping on over a live\n\u003e Station in the same Activity logs a warning pointing the caller at\n\u003e CtaPageStation#openRegularTabSwitcher() instead.\n\u003e\n\u003e Also adds TrafficControl#hopOnAt(Activity, Station), the shorthand for\n\u003e the common case of hopping on without any action, i.e.\n\u003e Triggers.noopTo().hopOnTo(), the counterpart of hopOffPublicTransit(),\n\u003e and uses it in HopOnOffUnitTest.\n\u003e\n\u003e tab_ui:test_support_javalib gains direct deps on public_transit_java and\n\u003e chrome_java_transit, whose types TabUiTestHelper now uses.\n\u003e\n\u003e The waitForLayout(BROWSING) after addBlankTabs() in TabGridDialogTest is\n\u003e removed: addBlankTabs() already waits for the BROWSING layout, and the\n\u003e duplicate wait was dead code.\n\u003e\n\u003e Change-Id: If6866b265c196cd56c926ef10a107be5d018dbc5\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8503109\n\nBug: 428024864, 564028907\nChange-Id: I5ac9c58b4785b4e034a3cb8c5e4b76cafe05a844\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8520660\nReviewed-by: Calder Kitagawa \u003cckitagawa@chromium.org\u003e\nCommit-Queue: Henrique Nakashima \u003chnakashima@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712940}\n\n\nCrOS-Libchrome-Original-Commit: 3fa5a81b60c86df22abeb6b369b0fcfff184fe60\n"
    },
    {
      "commit": "50a80ba5f19f647d8fc77dd87981aa2dd84df1cb",
      "tree": "c1e39ba84b068344ee219a13d3215e65db2136e8",
      "parents": [
        "3c680b2eb3b61c0fd500f1348056d3afd4e0b409"
      ],
      "author": {
        "name": "Nicolas Ouellet-Payeur",
        "email": "nicolaso@chromium.org",
        "time": "Wed Oct 07 00:31:59 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:54 2026"
      },
      "message": "PolicyLogger: Record compression and decompression timing\n\nRecord Enterprise.PolicyLogger.CompressionTime for the time spent\nserializing and compressing logs with gzip.\n\nRecord Enterprise.PolicyLogger.DecompressionTime for the time spent\ndecompressing and deserializing logs from gzip.\n\nBug: None\nChange-Id: I02c9dea61bfc6ca739a2b552c8e0c3f46a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8510289\nReviewed-by: Igor Ruvinov \u003cigorruvinov@chromium.org\u003e\nCommit-Queue: Nicolas Ouellet-Payeur \u003cnicolaso@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712886}\n\n\nCrOS-Libchrome-Original-Commit: b262b8271b404120c5c5d6628f104df93fb6ff2d\n"
    },
    {
      "commit": "3c680b2eb3b61c0fd500f1348056d3afd4e0b409",
      "tree": "02829738060de6615709fa143e4b7eb14d1fdb15",
      "parents": [
        "86d5dc1f50aebd1e145319158837041bc4629616"
      ],
      "author": {
        "name": "Henrique Nakashima",
        "email": "hnakashima@chromium.org",
        "time": "Wed Oct 07 00:24:06 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:54 2026"
      },
      "message": "Reland \"[Android] Cache DeviceInfo in test builds\"\n\nThis is a reland of commit d7d74add46d2971946a3ade2a5b990e3e30dfd4a\n\nThe original was reverted because android_browsertests (e.g.\nBookmarksApiTest, GlicSidePanelCoordinatorDesktopAndroidBrowserTest)\nfailed on android-desktop-x64-rel. Those emulators lack FEATURE_PC and\nrely on --force-desktop-android, which native browser tests apply after\nthe Java CommandLine is initialized (NativeBrowserTestApplication starts\nwith an empty one), and ResettersForTesting does not run there. The\ncached DeviceInfo therefore kept isDesktop() \u003d\u003d false.\n\nFix: remember the --force-desktop-android value each instance was built\nwith, and in test builds rebuild the instance in getInstance() if the\nswitch has changed. Production builds are unaffected. Added a unit test.\n\nOriginal change\u0027s description:\n\u003e [Android] Cache DeviceInfo in test builds\n\u003e\n\u003e DeviceInfo.getInstance() rebuilt the object on every call in test\n\u003e builds so that mocked inputs were not defeated by caching. Each rebuild\n\u003e calls PackageManager.getSystemAvailableFeatures(), which costs two\n\u003e synchronous binder calls, and isDesktop() is on hot paths such as\n\u003e toolbar invalidation. In traces this was ~11% of main-thread CPU in\n\u003e Desktop instrumentation tests.\n\u003e\n\u003e Cache the instance in tests as well. Invalidate it via\n\u003e ResettersForTesting between tests, from the *ForTesting setters, and\n\u003e from OverrideContextWrapperTestRule when it changes system features.\n\u003e\n\u003e Bug: 562154154, 568001105\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8466502\n\u003e Reviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Commit-Queue: Henrique Nakashima \u003chnakashima@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1709361}\n\nBug: 562154154, 568001105\nChange-Id: I92f0b118383872c5a09b3972355452ba597ee22d\nCq-Include-Trybots: luci.chromium.try:android-desktop-x64-rel\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8513297\nCommit-Queue: Henrique Nakashima \u003chnakashima@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712879}\n\n\nCrOS-Libchrome-Original-Commit: 62f8d2eb6427293a691e937dd7638c2abf66e58d\n"
    },
    {
      "commit": "86d5dc1f50aebd1e145319158837041bc4629616",
      "tree": "3796fc7bb44f2bf95c801075764ecefca2c85538",
      "parents": [
        "bad6524653ff6ad0398f5f38964ee6613704bda7"
      ],
      "author": {
        "name": "Phil Yan",
        "email": "philyan@chromium.org",
        "time": "Wed Oct 07 00:00:14 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:52 2026"
      },
      "message": "[viz] Implement MixedFixedIntervalMatcher with cadence matching (2/6)\n\nIntroduce MixedFixedIntervalMatcher to harmonize multiple concurrent\nfixed-rate content streams (such as videos, animated images, scrollbar\nfade animations, or stepped compositor animations) to an optimal\ndisplay refresh rate.\n\nKey design decisions in this CL:\n- Universal Multi-Stream Cadence: Generalizes fixed-rate cadence\n  matching across any combination of active fixed-rate streams (e.g.,\n  video + stepped ambient glow).\n- Time-Domain Cadence Evaluation: Evaluates presentation intervals in\n  the time domain (via VideoCadenceEstimator::HasSimpleCadence) rather\n  than integer frequency GCD/LCM math, natively supporting fractional\n  and sub-1Hz intervals (e.g., 23.976 FPS) without rounding errors.\n- Single-Pass Bounded Harmonic Search: Subdivides the candidate\n  interval in a single pass across active streams (capped at\n  kMaxHarmonicMultiple\u003d32) to guarantee O(1) termination while\n  covering up to 240Hz panels.\n- Hardware Mode Support: Supports discrete display refresh rate modes\n  (FixedIntervalSettings) by selecting the lowest integer-multiple mode,\n  and VRR ranges (ContinuousRangeSettings) with Low Framerate\n  Compensation (LFC) clamping.\n- Scroll Exclusion: Continuous compositor scrolling (kCompositorScroll)\n  is intentionally excluded so variable, velocity-dependent rates are\n  not throttled.\n\nTAG\u003dagy\nCONV\u003d87d4c49d-8835-4802-90a4-408b2cc32b0f\n\nDesign: https://docs.google.com/document/d/1nFnUcRda6CeNFBhuFyxTTn1ISgbLlxaXgGHxmDsROYE\nBug: 555345506\nChange-Id: Ib9848b9f582f0c1ca42e70bf23ec4949d88c0d5f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8283180\nReviewed-by: Jonathan Ross \u003cjonross@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Vasiliy Telezhnikov \u003cvasilyt@chromium.org\u003e\nReviewed-by: Bo Liu \u003cboliu@chromium.org\u003e\nCommit-Queue: Phil Yan \u003cphilyan@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712861}\n\n\nCrOS-Libchrome-Original-Commit: ca41eb5b521f3d1e193ca57f82905e84da06efec\n"
    },
    {
      "commit": "bad6524653ff6ad0398f5f38964ee6613704bda7",
      "tree": "e6e7d93d17e1ae69d87e8c52314557c3c1641bae",
      "parents": [
        "47e7ff2e942f3da0f85292d9a4ab1f6489e64e25"
      ],
      "author": {
        "name": "Jose Arturo Barrera",
        "email": "jabgonzalez@google.com",
        "time": "Tue Oct 06 22:21:28 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:49 2026"
      },
      "message": "[MiraclePtr] Enforce raw_ptr in templated containers in pre_freeze_background_memory_trimmer.h\n\nThis change replaces instances of raw C-style pointers (`T*`) with\n`raw_ptr\u003cT\u003e` for elements stored inside templated containers (such as\n`std::vector` and `std::array`). This aligns with the broader MiraclePtr\nsafety initiative to protect against use-after-free vulnerabilities.\n\nThis advances MiraclePtr\u0027s expansion to containers and preempts an\nupcoming clang-plugin update that will strictly ban these un-rewritten\ninstances.\n\nBug: b:501142609\nDoc: go/miracleptr-in-containers\nChange-Id: I50be5903f05035587d907c6f803c08302117df6f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8501942\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: José Arturo Barrera \u003cjabgonzalez@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1712778}\n\n\nCrOS-Libchrome-Original-Commit: 658d5960e26c0082177076d061fc273e48aa9135\n"
    },
    {
      "commit": "47e7ff2e942f3da0f85292d9a4ab1f6489e64e25",
      "tree": "9ea3ba36ffe3b095ee86deb8a5a6a21d15d40c11",
      "parents": [
        "b8487f6598b978735a4f22906fbb7a6c28ee2981"
      ],
      "author": {
        "name": "Michael Thiessen",
        "email": "mthiesse@chromium.org",
        "time": "Tue Oct 06 20:46:33 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:44 2026"
      },
      "message": "Clean up my stale feature flags\n\nPeriodic cleanup of all of my kill switches/feature flags that are no\nlonger needed.\n\nkAbortNavigationsFromTabClosures\nkAvoidDoubleMultiwindowChanges\nkLaunchCauseScreenOffFix\nkUnparcelIntentFileDescriptors\n\nChange-Id: Ia767fa60d71479270efe8ecbecaf7281a37fa389\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8504200\nReviewed-by: Yaron Friedman \u003cyfriedman@chromium.org\u003e\nCommit-Queue: Michael Thiessen \u003cmthiesse@chromium.org\u003e\nAuto-Submit: Michael Thiessen \u003cmthiesse@chromium.org\u003e\nReviewed-by: Dave Tapuska \u003cdtapuska@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712645}\n\n\nCrOS-Libchrome-Original-Commit: be9a67d11af6b28d5ba7bc0d8faf756b35051f97\n"
    },
    {
      "commit": "b8487f6598b978735a4f22906fbb7a6c28ee2981",
      "tree": "22044f681772875b0c7cdd2687379c34d6741790",
      "parents": [
        "e4f6df6512651ee8a1d8812a3cf484d742a4dc7b"
      ],
      "author": {
        "name": "Atharv Maan",
        "email": "atharvmaan@chromium.org",
        "time": "Tue Oct 06 19:04:21 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:39 2026"
      },
      "message": "Revert \"Migrate base::Reversed to std::views::reverse\"\n\nThis reverts commit 08815e67f05ca8d96002048cd4bb5ad4e65c92b7.\n\nReason for revert: This CL breaks linux-cast-x64-rel builder\n\nFailure Link: https://ci.chromium.org/ui/p/chromium/builders/ci/linux-cast-x64-rel/57260/overview\n\nOriginal change\u0027s description:\n\u003e Migrate base::Reversed to std::views::reverse\n\u003e\n\u003e This is a mechanical migration.\n\u003e\n\u003e Bug: 493534962\n\u003e Change-Id: I20e17473c96aca7f18675a4da7bdb5a66a6a6964\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8500683\n\u003e SLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\n\u003e Owners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\n\u003e Commit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\n\u003e Reviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\n\u003e Auto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1712516}\n\nBug: 493534962\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I780336d8ad6316a66e96c2c73118c7f34a61ec08\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8527527\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\nReviewed-by: Hamzah Behery \u003cbehery@chromium.org\u003e\nCommit-Queue: Atharv Maan \u003catharvmaan@chromium.org\u003e\nOwners-Override: Atharv Maan \u003catharvmaan@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712530}\n\n\nCrOS-Libchrome-Original-Commit: 9c9704ebe49ac53734f84175f0abbaf0870ce1c7\n"
    },
    {
      "commit": "e4f6df6512651ee8a1d8812a3cf484d742a4dc7b",
      "tree": "2e44077a024c8426a26bad287885d767cfd74588",
      "parents": [
        "f2a3268beaa37c1b287f00456ded7d5f4555b49b"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Oct 06 18:33:52 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:38 2026"
      },
      "message": "Migrate base::Reversed to std::views::reverse\n\nThis is a mechanical migration.\n\nBug: 493534962\nChange-Id: I20e17473c96aca7f18675a4da7bdb5a66a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8500683\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712516}\n\n\nCrOS-Libchrome-Original-Commit: 08815e67f05ca8d96002048cd4bb5ad4e65c92b7\n"
    },
    {
      "commit": "f2a3268beaa37c1b287f00456ded7d5f4555b49b",
      "tree": "22044f681772875b0c7cdd2687379c34d6741790",
      "parents": [
        "08fa80b248272d73b00fc53037c0e3e9f36dd085"
      ],
      "author": {
        "name": "Egor Pasko",
        "email": "pasko@chromium.org",
        "time": "Tue Oct 06 17:03:25 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:35 2026"
      },
      "message": "android: linker: UMA histogram for percentage of RELRO shared\n\nIn crrev.com/c/8495566 we started allowing partial RELRO sharing. Add a\nsimple process-agnostic metric to tell how much we are not sharing.\n\nThe buckets are logarithmically distributed because regressions on small\npercentages are interesting in details, while missing a large chunk of\nRELRO is a sign of the mechanism not being useful at all - no need in\ngranularity in this case.\n\nBug: 564444019\nChange-Id: I715fc2248f7847502c7837743b39830ef2b78c63\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8525409\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nAuto-Submit: Egor Pasko \u003cpasko@chromium.org\u003e\nReviewed-by: Calder Kitagawa \u003cckitagawa@chromium.org\u003e\nCommit-Queue: Egor Pasko \u003cpasko@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712460}\n\n\nCrOS-Libchrome-Original-Commit: ebd56c008e547f4f39522fe121bf5ab3706e7e19\n"
    },
    {
      "commit": "08fa80b248272d73b00fc53037c0e3e9f36dd085",
      "tree": "2f4291fb86520759c239341fbb747ff6059deac7",
      "parents": [
        "ea1daec4dbf65412facf3cb5dab72d25fe1d2430"
      ],
      "author": {
        "name": "Anand Ravi",
        "email": "anandrv@google.com",
        "time": "Tue Oct 06 16:48:44 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:34 2026"
      },
      "message": "[base] Reduce LockMetricsRecorder::kMaxSamples from 512 to 32\n\nLowering `kMaxSamples` from 512 to 32 reduces the per-thread buffer\nfootprint by ~94% (from 45 KB to 2.8 KB) with virtually zero probability\nof dropping samples.\n\nBug: 518786382\nChange-Id: I44ec49a06a187bd683419ac299fa054993da0eec\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8518997\nReviewed-by: Gabriel Charette \u003cgab@chromium.org\u003e\nCommit-Queue: Anand Ravi \u003canandrv@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1712439}\n\n\nCrOS-Libchrome-Original-Commit: f1a25ef36e103ba360d81b1f19288c81b8cb6bc8\n"
    },
    {
      "commit": "ea1daec4dbf65412facf3cb5dab72d25fe1d2430",
      "tree": "551d50a22c9b4f91c97ee093922b789c301dbe8f",
      "parents": [
        "4a70032de1a48d30015caf4e17884dd6e9c08ce4"
      ],
      "author": {
        "name": "Marco Bartoli",
        "email": "marcobartoli@microsoft.com",
        "time": "Tue Oct 06 16:42:03 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:33 2026"
      },
      "message": "[base] Add AlignedCalloc() and use it for Dawn wire buffers\n\nTo get zeroed aligned memory, code calls AlignedAlloc() or\nAlignedUninit() and then fills the memory with zeros. For a large\nallocation, this writes to every page, so every page gets physical\nmemory. When PartitionAlloc is malloc, it direct-maps allocations\nlarger than its largest bucket (983040 bytes), so their pages are new\npages from the OS, which are zeroed already.\n\nAdd base::AlignedCalloc(num_items, size, alignment), which returns\nzeroed aligned memory that is freed with AlignedFree(). Add\nbase::AlignedZeroed\u003cT\u003e(capacity, alignment), which returns it as an\nAlignedHeapArray\u003cT\u003e, like AlignedUninit\u003cT\u003e(). AlignedZeroed() only\naccepts arithmetic types and std::byte, whose value is zero when all\ntheir bytes are zero.\n\nWhen PartitionAlloc is malloc, AlignedCalloc() uses\nallocator_shim::UncheckedAlignedCalloc() (crrev.com/c/8479893) for the\nsizes that PartitionAlloc always direct-maps. PartitionAlloc doesn\u0027t\nzero their pages again, and the pages that are never written are never\nfaulted in. On Apple platforms, this is only done after PartitionAlloc\nreplaces the default malloc zone, because free() can\u0027t free the shim\u0027s\nmemory before that. If UncheckedAlignedCalloc() returns null,\nAlignedCalloc() calls TerminateBecauseOutOfMemory(), so that the crash\nis reported as out of memory, like when AlignedAlloc() fails.\n\nFor smaller sizes, and in other builds, AlignedCalloc() uses\nAlignedAlloc() and memset(). These allocations usually reuse freed\nmemory, which has to be zeroed anyway, and calloc() would zero their\nwhole slot rather than only the requested size. Both ways return zeroed\nmemory, so the size check only affects performance.\n\nEach WebGPU decoder in the GPU process owns a DawnServiceSerializer,\nwhich has two 1 MiB buffers that were filled with zeros. Use\nAlignedZeroed() for them. In a local run of a WebGPU page on macOS, 1\nof the 64 pages (16 KiB each) of each buffer was resident, instead of\nall 64: 32 KiB instead of 2 MiB per decoder.\n\nTime to allocate and free with an alignment of 64 when the memory isn\u0027t\nused (Apple M4 Pro, release build, fastest of 2 runs):\n\n  Size          AlignedAlloc() + memset()  AlignedCalloc()  Speedup\n  983041 bytes  42.6 us                    5.8 us           7x\n  1 MiB         45.4 us                    6.5 us           7x\n  4 MiB         171 us                     10.9 us          16x\n  16 MiB        674 us                     26.3 us          26x\n  64 MiB        2.79 ms                    27.7 us          100x\n\nWhen every page is used, it\u0027s 7-12% faster. Sizes up to 983040 bytes\nrun the same code as before.\n\nTests:\n* AlignedMemoryTest.AlignedCalloc: the memory is aligned and zeroed for\n  sizes on both sides of the threshold, after freeing memory with\n  non-zero bytes that the allocator can reuse.\n* AlignedMemoryTest.AlignedCallocMultipleItems and\n  AlignedMemoryTest.AlignedZeroed.\n* AlignedMemoryDeathTest.AlignedCallocOverflow: num_items * size\n  overflows.\n* OutOfMemoryDeathTest.AlignedCalloc and SecurityAlignedCalloc: too\n  large sizes crash, as with AlignedAlloc().\n\nBug: 567953858\nChange-Id: I9c1b594d2219fb447cd3f2d718db52911fcf847b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8494800\nReviewed-by: Mark Mentovai \u003cmark@chromium.org\u003e\nCommit-Queue: Marco Bartoli \u003cmarcobartoli@microsoft.com\u003e\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nReviewed-by: Benoit Lize \u003clizeb@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712429}\n\n\nCrOS-Libchrome-Original-Commit: 06f351608c89df176002e64cc88afc5c032a3d96\n"
    },
    {
      "commit": "4a70032de1a48d30015caf4e17884dd6e9c08ce4",
      "tree": "9681769e45b6d2b01b47b49b958ee3542e9ef3f4",
      "parents": [
        "dc3521fc7f8f756c6a8112a5fc1a5b3ee9dd2504"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Tue Oct 06 16:04:27 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:31 2026"
      },
      "message": "Android: Remove incremental_install compile mode\n\nCq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size\nChange-Id: Ie8b5bf362ad56079ac09e1d37ada1dad2c731010\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8517557\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Peter Wen \u003cwnwen@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712392}\n\n\nCrOS-Libchrome-Original-Commit: ea4faf2206fe4f2a9e21236e3ab8a7fd5fde2705\n"
    },
    {
      "commit": "dc3521fc7f8f756c6a8112a5fc1a5b3ee9dd2504",
      "tree": "fbc8265744d67f9a7b6a0b545b5fe9d1653d70db",
      "parents": [
        "6b275880628cf40007096b3920ba1b9643e0f0d6"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Tue Oct 06 12:55:44 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Wed Oct 07 11:22:24 2026"
      },
      "message": "Remove NotFatalUntil \u003c\u003d M151 in //base\n\nGenerated by:\n  base/tools/clean-up-not-fatal-until.py -m 151\n\nThis also drops the M136..M151 enum entries from base/not_fatal_until.h\nnow that all call sites have been cleaned up.\n\nAcross the tree, cleaning up \u003c\u003d M151 removes 239 instances and saves\n~10 KB of binary size on Android:\nhttps://bit.ly/not-fatal-until-perf\n\nCleaning up M152+ will save another ~220+ KB, but we are holding off\nuntil November so the DCHECK-to-CHECK rollout can be evaluated as a\nsingle experiment.\n\nBug: 419922502\nChange-Id: I1f515d1002c8c02e4a2ec9623e249c39590464bf\n\n\n\n\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8480229\nReviewed-by: Anthony Vallee-Dubois \u003canthonyvd@chromium.org\u003e\nCommit-Queue: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712224}\n\n\nCrOS-Libchrome-Original-Commit: fcfd8f37188d64b88c6cb509009d8fc78a736eda\n"
    },
    {
      "commit": "f393f922d49ba8d7d5f8478803ae112d3a9c8b41",
      "tree": "4067eab23839de9d61f4db91c551cd3575eddc82",
      "parents": [
        "447510325bd3591d31e8ed24d2b0796e2a0c196d",
        "6b275880628cf40007096b3920ba1b9643e0f0d6"
      ],
      "author": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 12:13:34 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Oct 07 10:24:47 2026"
      },
      "message": "Automated commit: libchrome r1712095 uprev\n\nMerge with upstream commit 6b275880628cf40007096b3920ba1b9643e0f0d6\n\nBUG\u003dNone\nTEST\u003dsudo emerge libchrome\n\nChange-Id: If072905ceade7c1d10ceffffea87e00714be5d66\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8524627\nBot-Commit: chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com\u003e\nTested-by: chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com\u003e\nCommit-Queue: Wei-Luan Wang \u003cweiluanwang@google.com\u003e\n"
    },
    {
      "commit": "447510325bd3591d31e8ed24d2b0796e2a0c196d",
      "tree": "c07d995fd818260f2aa7e20b5759d615aafc2eb8",
      "parents": [
        "64bb9b67c46cc03048e6d5e09a921ac50c682186"
      ],
      "author": {
        "name": "Jae Hoon Kim",
        "email": "kimjae@google.com",
        "time": "Fri Sep 25 03:15:06 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Oct 06 12:19:01 2026"
      },
      "message": "libchrome: Remove unused long-term-0300 MockObjectManager patch\n\nThe last remaining caller of dbus::MockObjectManager in ChromeOS\n(power_manager) has been migrated to dbus::ObjectManager::Create() and\nIsInterfaceRegisteredForTesting(), allowing long-term-0300 to be\nremoved.\n\nBug: None\nTest: CQ\nCq-Depend: chromium:8464230\nChange-Id: I0db3b257baee4a647722a3241a17e803f832885c\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8466843\nReviewed-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nTested-by: Di Wu \u003cdiwux@google.com\u003e\nCommit-Queue: Byron Lee \u003cbyronlee@chromium.org\u003e\nReviewed-by: Jae Hoon Kim \u003ckimjae@chromium.org\u003e\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\n"
    },
    {
      "commit": "6b275880628cf40007096b3920ba1b9643e0f0d6",
      "tree": "cbd0c68029308751bd2134a3f37fe75bdadef2d2",
      "parents": [
        "5b06e2c52c9876b7a636bcb0abc56d638c8fa677"
      ],
      "author": {
        "name": "Egor Pasko",
        "email": "pasko@chromium.org",
        "time": "Tue Oct 06 08:46:21 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:28:23 2026"
      },
      "message": "android: linker: Allow partial RELRO sharing\n\nTwo changes to fix RELRO sharing:\n1. One liner: Prepare the Linker to load the library in\n   loadNativeLibraryAndInitFeatureList()\n2. Allow process-specific parts at the end of RELRO region\n\nWe are lucky that with LLD the TLSDESC relocations on aarch64 only spoil\nabout 100K at the end of the RELRO region. See\ncrbug.com/564444019#comment24.\n\nReminder: the normal transitions of the RELRO region (on Android S+)\nhappen like this:\n* via fork(): Android Zygote (AZ) -\u003e Isolated Process (renderer,\n  utility)\n* via early messages: IP -\u003e Browser Process (BP)\n* later: BP -\u003e GPU process (probably not when GP restarts, not sure)\n\nThe change here is to share the common prefix of the two regions,\nwithout changing the regions that are sent around. We replace a one\nlarge memcmp with a thousand (or less) of per-page memcmp. This adds\nextra overhead of calling the function. This is probably worth a few\nmicroseconds or less? I did not benchmark it.\n\nHere we do not change what data *can* be shared across processes. I\nrealized recently that those process-specific TLSDESC relocations expose\ndynamic linker\u0027s module IDs from another process. I do not have any good\nideas how this new information can be exploited. Assuming it is safe.\n\nBug: 564444019\nChange-Id: Ib66a4978473c0bce7c4b3d3305f65c4a7ea19051\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8495566\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Egor Pasko \u003cpasko@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712095}\n\n\nCrOS-Libchrome-Original-Commit: f3252a53537f1d38adc796610a8a89430c1b91a3\n"
    },
    {
      "commit": "5b06e2c52c9876b7a636bcb0abc56d638c8fa677",
      "tree": "5aed7da4992fc4fc118b2df07379ad80f3c14edc",
      "parents": [
        "51738797fff529b26571c0a3a6154f0505692d8a"
      ],
      "author": {
        "name": "Keishi Hattori",
        "email": "keishi@google.com",
        "time": "Tue Oct 06 07:21:24 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:28:21 2026"
      },
      "message": "Enable BackupRefPtr in renderer processes on Android\n\nRemove the Android-specific exception in\nkBackupRefPtrEnabledProcessesParam so that BackupRefPtr is enabled in\nall processes by default across all platforms.\n\nBug: 502774552\nChange-Id: I896806969f6a6b85ece454e68f1a9791171fbc99\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8485065\nCommit-Queue: Keishi Hattori \u003ckeishi@chromium.org\u003e\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1712052}\n\n\nCrOS-Libchrome-Original-Commit: f768648d31a5e82394d591f799b629d5170ed52f\n"
    },
    {
      "commit": "51738797fff529b26571c0a3a6154f0505692d8a",
      "tree": "22613d2ae38c20a1f8210973b0e55b4ac2a97a2e",
      "parents": [
        "dd9182cc4ad274f6c8954ba0bd27cc5e592400ab"
      ],
      "author": {
        "name": "Tomasz Wiszkowski",
        "email": "ender@google.com",
        "time": "Tue Oct 06 05:35:21 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:28:04 2026"
      },
      "message": "[🌺] Revert \"[Tab UI] Convert TabUiTestHelper#enterTabSwitcher() to hop on Public Transit\"\n\nThis reverts commit a17f49c0a20027255d94c38bc707bb5f7d3a8815.\n\nReason for revert: consistently fails android-desktop-x64-rel.\n\nArchivedTabsDialogCoordinatorTest#testMessageResizedOnTablet has failed\nin 4/25 recent builds of android-desktop-x64-rel, every attempt in every\none of them. This is not flake: it reproduces on every run, so it blocks\nthe CQ for every unrelated CL that touches this suite. The regression\nappears at refs/heads/main@{#1711641}.\n\nExample failing run:\nhttps://ci.chromium.org/ui/p/chromium/builders/try/android-desktop-x64-rel/786883\n\nConverting TabUiTestHelper.enterTabSwitcher() from direct UI-thread performClick() to Public Transit CtaPageStation.openRegularTabSwitcher() (Espresso click) exposes a tablet/desktop orientation relayout race in ArchivedTabsDialogCoordinatorTest#testMessageResizedOnTablet (ArchivedTabsDialogCoordinatorTest.java:845-848), where rotateActivityToOrientation(ORIENTATION_PORTRAIT) immediately precedes enterTabSwitcher() (the same race fixed for testIphMessageResizedOnTablet in https://crrev.com/c/8432406).\n\nReverting to green the tree first. Please re-land once the failure is\nunderstood and covered; this revert is about restoring CQ throughput,\nnot about the merit of the change.\n\nOriginal change\u0027s description:\n\u003e [Tab UI] Convert TabUiTestHelper#enterTabSwitcher() to hop on Public Transit\n\u003e\n\u003e First conversion of a legacy test util with TrafficControl#hopOnAt().\n\u003e\n\u003e enterTabSwitcher(), used by 31 test files, now hops on at the current\n\u003e page (a CtaPageStation) and travels to the TabSwitcherStation by\n\u003e clicking CtaPageStation#tabSwitcherButtonElement, via the existing\n\u003e openRegularTabSwitcher()/openIncognitoTabSwitcher(). This replaces\n\u003e performClick() on a raw findViewById() plus a layout wait, and resolves\n\u003e the crbug.com/40155797 TODO to click the button through Espresso. The\n\u003e util now returns the TabSwitcherStation. Public Transit callers can\n\u003e continue from that Station; the others ignore it. Hopping on over a live\n\u003e Station in the same Activity logs a warning pointing the caller at\n\u003e CtaPageStation#openRegularTabSwitcher() instead.\n\u003e\n\u003e Also adds TrafficControl#hopOnAt(Activity, Station), the shorthand for\n\u003e the common case of hopping on without any action, i.e.\n\u003e Triggers.noopTo().hopOnTo(), the counterpart of hopOffPublicTransit(),\n\u003e and uses it in HopOnOffUnitTest.\n\u003e\n\u003e tab_ui:test_support_javalib gains direct deps on public_transit_java and\n\u003e chrome_java_transit, whose types TabUiTestHelper now uses.\n\u003e\n\u003e The waitForLayout(BROWSING) after addBlankTabs() in TabGridDialogTest is\n\u003e removed: addBlankTabs() already waits for the BROWSING layout, and the\n\u003e duplicate wait was dead code.\n\u003e\n\u003e Bug: 412014791, 433540584, 564028907\n\u003e Change-Id: If6866b265c196cd56c926ef10a107be5d018dbc5\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8503109\n\u003e Commit-Queue: Henrique Nakashima \u003chnakashima@chromium.org\u003e\n\u003e Reviewed-by: Fiaz Muhammad \u003cmfiaz@google.com\u003e\n\u003e Auto-Submit: Henrique Nakashima \u003chnakashima@chromium.org\u003e\n\u003e Reviewed-by: Calder Kitagawa \u003cckitagawa@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1711641}\n\nBug: 412014791, 433540584, 564028907\nChange-Id: Ie57f740478218c35b59237d39161076ee9ab8599\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8518694\nReviewed-by: Keigo Oka \u003coka@chromium.org\u003e\nAuto-Submit: Tomasz Wiszkowski \u003cender@google.com\u003e\nOwners-Override: Tomasz Wiszkowski \u003cender@google.com\u003e\nCommit-Queue: Tomasz Wiszkowski \u003cender@google.com\u003e\nOwners-Override: Keigo Oka \u003coka@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711993}\n\n\nCrOS-Libchrome-Original-Commit: 5e06e88980f960fddfabe69ecf1fe8a8654d02f0\n"
    },
    {
      "commit": "dd9182cc4ad274f6c8954ba0bd27cc5e592400ab",
      "tree": "0f5fa3ff51269d9cf5da4e3b518601f5b2997548",
      "parents": [
        "eee97502ae064126e4bef9c9d92464f8fbccce7c"
      ],
      "author": {
        "name": "Kalvin Lee",
        "email": "kdlee@chromium.org",
        "time": "Tue Oct 06 05:16:19 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:28:03 2026"
      },
      "message": "Reland \"Checked Span: Add offset checking tests\"\n\nThis is a reland of commit 738956cca47a264e92106fdbefdc040ee7ed487d\n\nThe test is not contingent on Checked Span metadata support being\nenabled; it just happened to come after the enablement CL in the chain.\nThis CL is being landed (by itself) unchanged.\n\nOriginal change\u0027s description:\n\u003e Checked Span: Add offset checking tests\n\u003e\n\u003e When tightened bounds checking is enabled (and the smuggled size is\n\u003e available to Checked Span), the Checked Span cannot be constructed any\n\u003e larger than the original allocation extent (regardless of available\n\u003e headroom).\n\u003e\n\u003e When tightened bounds checking isn\u0027t enabled, the Checked Span can reach\n\u003e to the end of available headroom.\n\u003e\n\u003e This new unit test verifies that using a span start from mid-allocation\n\u003e still works as expected under both configurations.\n\u003e\n\u003e Change-Id: I615e81493ad9420cbd0fcf6506ccd30d43f2efb4\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8492351\n\u003e Reviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\n\u003e Reviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\n\u003e Commit-Queue: Kalvin Lee \u003ckdlee@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1709780}\n\nChange-Id: Ib7604fa1128364c2ed8eb78b4d03a20120c721b2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8513497\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nAuto-Submit: Kalvin Lee \u003ckdlee@chromium.org\u003e\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nCommit-Queue: Kalvin Lee \u003ckdlee@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711975}\n\n\nCrOS-Libchrome-Original-Commit: 19d651932d9ee1cb9d13f292c22a1e123e791f6b\n"
    },
    {
      "commit": "eee97502ae064126e4bef9c9d92464f8fbccce7c",
      "tree": "5849eba390d675a8b30cc29cbc079a6b76f0eafc",
      "parents": [
        "e4b57782fc1cbd535e1b9999a74b2d4883b80deb"
      ],
      "author": {
        "name": "tomerni-island",
        "email": "tomer.nissim@island.io",
        "time": "Tue Oct 06 00:46:28 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:58 2026"
      },
      "message": "[Updater] Verify protected pipe owner when the server can\u0027t be opened\n\nA medium-integrity client can\u0027t OpenProcess the SYSTEM updater, so\nIsServerElevated rejected every user-to-system mojo connection. On\nERROR_ACCESS_DENIED over the admin-protected pipe, fall back to checking\nthat the pipe is owned by SYSTEM or Administrators; its DACL denies\nother users new instances, so the owner identifies the server.\n\nMojo\u0027s VerifyServerPrivilege shares the owner check and now applies the\nsame conditions; its other callers never reach the fallback.\n\nBug: 534416990\nTest: Medium-IL browser connects to the system updater over the\nTest: admin-protected pipe; mojo_unittests.\nChange-Id: I9a7defa4407c329daba538e0ff2bb93e4a0ed70e\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8483154\nReviewed-by: S Ganesh \u003cganesh@chromium.org\u003e\nCommit-Queue: S Ganesh \u003cganesh@chromium.org\u003e\nReviewed-by: Sorin Jianu \u003csorin@chromium.org\u003e\nReviewed-by: Alex Gough \u003cajgo@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711863}\n\n\nCrOS-Libchrome-Original-Commit: 614996ee630d1a7249377d8569fa49bbe618112d\n"
    },
    {
      "commit": "e4b57782fc1cbd535e1b9999a74b2d4883b80deb",
      "tree": "4c70a36d958b1094796d83deb3f43dc85755bbdb",
      "parents": [
        "66d45b91b0c16f4fc537ed0fb75f22e671c9c619"
      ],
      "author": {
        "name": "Tigran Bantikyan",
        "email": "bantikyan@chromium.org",
        "time": "Tue Oct 06 00:33:01 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:57 2026"
      },
      "message": "fuzzilli: Add nullable union field support\n\nSupport profiles for unions with nullable fields. Nullability is handled\nin the same way it is for structs. Fuzzilli knows to provide the\nconstructor either an `undefined` or a variable of the field type.\n\nBug: 532201584, 567978464\nChange-Id: I8c1c53d783b11310c946e40e8722d1be1e06c039\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8501574\nCommit-Queue: Tigran Bantikyan \u003cbantikyan@chromium.org\u003e\nReviewed-by: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711849}\n\n\nCrOS-Libchrome-Original-Commit: 6dd2d59087a33e02c2e8b595e67cc9dfeab64390\n"
    },
    {
      "commit": "66d45b91b0c16f4fc537ed0fb75f22e671c9c619",
      "tree": "092341a78fb3135bb9eb0f5ebef83fcde2e25998",
      "parents": [
        "792b1b002336ecbc81a31d141b4736534891fb40"
      ],
      "author": {
        "name": "Gazal",
        "email": "agazal@google.com",
        "time": "Mon Oct 05 23:08:05 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:54 2026"
      },
      "message": "[histogram-cleanup] Remove Android.MemoryPressureNotification\n\nRemove expired histogram\nAndroid.MemoryPressureNotification{AndroidProcessType} which expired on\n2021-12-05 and its recording helper class MemoryPressureUma.\n\nOBSOLETE_HISTOGRAMS[Android.MemoryPressureNotification.Browser]\u003dexpired\nOBSOLETE_HISTOGRAMS[Android.MemoryPressureNotification.ChildService]\u003dexpired\n\nThis change was generated using the skill histogram-cleanup.\n\nBug: 499059525, 40799957\nChange-Id: I5ff89862f1cbbae198229319a4c1934d0799eb3c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8501448\nReviewed-by: Yaron Friedman \u003cyfriedman@chromium.org\u003e\nCommit-Queue: Gazal Agarwal \u003cagazal@google.com\u003e\nAuto-Submit: Gazal Agarwal \u003cagazal@google.com\u003e\nReviewed-by: Siddhartha S \u003cssid@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711782}\n\n\nCrOS-Libchrome-Original-Commit: cf7da86a5ceb485fb65c392e51a08f3c22ae89e7\n"
    },
    {
      "commit": "792b1b002336ecbc81a31d141b4736534891fb40",
      "tree": "3747b0e9ce1f9b3602c22471c11fc3bb5b513f2e",
      "parents": [
        "a6e6e864ed0aa87feefa973260440526e34de907"
      ],
      "author": {
        "name": "Nicolas Ouellet-Payeur",
        "email": "nicolaso@chromium.org",
        "time": "Mon Oct 05 21:47:54 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:51 2026"
      },
      "message": "PolicyLogger: Allow repeated EnableLogCompression calls in tests\n\nMultiple unit tests that run in the same process can initialize browser\npolicy connectors more than once. The process-wide singleton\nPolicyLogger previously crashed with a check failure when\nEnableLogCompression ran again.\n\nAdd a test check and a warning log to ignore repeated initialization\ncalls during tests.\n\nBug: None\nChange-Id: I07086aabc33cf8bb85f2513cfeb5cd0b6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8517157\nReviewed-by: Igor Ruvinov \u003cigorruvinov@chromium.org\u003e\nCommit-Queue: Nicolas Ouellet-Payeur \u003cnicolaso@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711713}\n\n\nCrOS-Libchrome-Original-Commit: 3270977c4bc6c889196bbb8e28694690e2f31af7\n"
    },
    {
      "commit": "a6e6e864ed0aa87feefa973260440526e34de907",
      "tree": "04295abb090d689ab914f3147aac4531b46bc2b8",
      "parents": [
        "90fd6796cd6aaaba92e097e858349b91935762d8"
      ],
      "author": {
        "name": "Nicolas Ouellet-Payeur",
        "email": "nicolaso@chromium.org",
        "time": "Mon Oct 05 20:31:26 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:47 2026"
      },
      "message": "PolicyLogger: Record compressed buffer memory and log count\n\nRecord the Enterprise.PolicyLogger.MemoryUsage.Compressed and\nEnterprise.PolicyLogger.LogCount.Compressed histograms periodically\nin RecordPerformanceMetrics.\n\nTrack the size of the compressed buffer and log count with atomic\nvariables so that RecordPerformanceMetrics can safely read them from\nthe UI thread without task posting or sequence hops.\n\nBug: None\nChange-Id: I0bb04e5aa1b9560af60d5a6307d1b2f56a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8510288\nReviewed-by: Igor Ruvinov \u003cigorruvinov@chromium.org\u003e\nCommit-Queue: Nicolas Ouellet-Payeur \u003cnicolaso@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711646}\n\n\nCrOS-Libchrome-Original-Commit: 319f1164e12ffbd94ba64232b1d8ae705edc6b3d\n"
    },
    {
      "commit": "90fd6796cd6aaaba92e097e858349b91935762d8",
      "tree": "6187b410921c56f7d6e8d68559128d351657691b",
      "parents": [
        "2d9fc48a47008cddc40e06dcc76868264a4ffac9"
      ],
      "author": {
        "name": "Mohannad Farrag",
        "email": "aymanm@google.com",
        "time": "Mon Oct 05 20:26:17 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:47 2026"
      },
      "message": "[base] Don\u0027t dispatch to an FdWatchController stopped mid-dispatch in MessagePumpEpoll\n\nMessagePumpEpoll::OnEpollEvent() iterates a copy of the fd\u0027s Interest\nlist and relies on Interest::active() to decide whether to dispatch.\nDestruction of a controller during the loop is already handled via\nWatchForControllerDestruction(), and one-shot interests are deactivated\nbefore dispatch. However, an interest that is merely *stopped* during\nthe loop (FdWatchController::StopWatchingFileDescriptor() -\u003e\nUnregisterInterest()) was removed from the live list but left active,\nso the stale copy still dispatched to it. By then the controller\u0027s\nwatcher_ had already been cleared, and OnFdWritable() dereferenced\nnull.\n\nThis is hit whenever two controllers watch the same fd and the first\none\u0027s callback stops the second. net::UDPSocketPosix has this shape\n(separate read_socket_watcher_ and write_socket_watcher_ controllers),\nand its read completion callback can synchronously close the socket in\nthe caller on error (QuicChromiumClientSession::OnReadError() -\u003e\nOnConnectionClosed() -\u003e QuicChromiumPacketReader::CloseSocket() -\u003e\nUDPSocketPosix::Close()), so a QUIC UDP socket that is simultaneously\nreadable (or errored, e.g. EPOLLERR after the kernel aborts it) and has\na pending write watch crashes on the network thread with:\n\n  #00 base::MessagePumpEpoll::HandleEvent(...)\n  #01 base::MessagePumpEpoll::OnEpollEvent(...)\n  #02 base::MessagePumpEpoll::WaitForEpollEvents(...)\n\nFix: mark the Interest inactive in UnregisterInterest() so the\ndispatch loop skips it, mirroring what is already done for one-shot\ninterests.\n\nAdds MessagePumpEpollTest.StopOtherControllerOnSameFdDuringDispatch,\nwhich reproduces the crash deterministically without the fix.\n\nBug: 540823650, 472755390, 357662586\nChange-Id: I713dabb25e789e0dc67f2191ebd4ce69b61659d1\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8500777\nReviewed-by: Egor Pasko \u003cpasko@chromium.org\u003e\nReviewed-by: Gabriel Charette \u003cgab@chromium.org\u003e\nAuto-Submit: Mohannad Farrag \u003caymanm@google.com\u003e\nCommit-Queue: Mohannad Farrag \u003caymanm@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1711643}\n\n\nCrOS-Libchrome-Original-Commit: 109e75e3700a7b05047100553bb33ad1919f0b3a\n"
    },
    {
      "commit": "2d9fc48a47008cddc40e06dcc76868264a4ffac9",
      "tree": "af499bafc8b0bd1f6fe8b138243117e80ca4f685",
      "parents": [
        "ee0e27a13f2e0587c5658f4822b41a80e955993b"
      ],
      "author": {
        "name": "Henrique Nakashima",
        "email": "hnakashima@chromium.org",
        "time": "Mon Oct 05 20:23:46 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:47 2026"
      },
      "message": "[Tab UI] Convert TabUiTestHelper#enterTabSwitcher() to hop on Public Transit\n\nFirst conversion of a legacy test util with TrafficControl#hopOnAt().\n\nenterTabSwitcher(), used by 31 test files, now hops on at the current\npage (a CtaPageStation) and travels to the TabSwitcherStation by\nclicking CtaPageStation#tabSwitcherButtonElement, via the existing\nopenRegularTabSwitcher()/openIncognitoTabSwitcher(). This replaces\nperformClick() on a raw findViewById() plus a layout wait, and resolves\nthe crbug.com/40155797 TODO to click the button through Espresso. The\nutil now returns the TabSwitcherStation. Public Transit callers can\ncontinue from that Station; the others ignore it. Hopping on over a live\nStation in the same Activity logs a warning pointing the caller at\nCtaPageStation#openRegularTabSwitcher() instead.\n\nAlso adds TrafficControl#hopOnAt(Activity, Station), the shorthand for\nthe common case of hopping on without any action, i.e.\nTriggers.noopTo().hopOnTo(), the counterpart of hopOffPublicTransit(),\nand uses it in HopOnOffUnitTest.\n\ntab_ui:test_support_javalib gains direct deps on public_transit_java and\nchrome_java_transit, whose types TabUiTestHelper now uses.\n\nThe waitForLayout(BROWSING) after addBlankTabs() in TabGridDialogTest is\nremoved: addBlankTabs() already waits for the BROWSING layout, and the\nduplicate wait was dead code.\n\nBug: 412014791, 433540584, 564028907\nChange-Id: If6866b265c196cd56c926ef10a107be5d018dbc5\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8503109\nCommit-Queue: Henrique Nakashima \u003chnakashima@chromium.org\u003e\nReviewed-by: Fiaz Muhammad \u003cmfiaz@google.com\u003e\nAuto-Submit: Henrique Nakashima \u003chnakashima@chromium.org\u003e\nReviewed-by: Calder Kitagawa \u003cckitagawa@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711641}\n\n\nCrOS-Libchrome-Original-Commit: a17f49c0a20027255d94c38bc707bb5f7d3a8815\n"
    },
    {
      "commit": "ee0e27a13f2e0587c5658f4822b41a80e955993b",
      "tree": "8d01a717c75bc0eda4452ace71c6c72836444b8d",
      "parents": [
        "205784de3d5960ad3efa0c2f306b504c05957eb4"
      ],
      "author": {
        "name": "Tigran Bantikyan",
        "email": "bantikyan@chromium.org",
        "time": "Mon Oct 05 19:44:33 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:45 2026"
      },
      "message": "fuzzilli: Model unions with per-variant constructors\n\nWhen `enable_mojom_fuzzer` is set, the lite JS bindings now expose one\nconstructor per union variant at `\u003cnamespace\u003e.\u003cUnion\u003e.\u003cvariant\u003e`. This\nCL makes the Fuzzilli profile generator use them:\n\n- Each union becomes an `ObjectGroup` with no properties, whose\n  instance type is `.object(ofGroup: \"\u003cnamespace\u003e.\u003cUnion\u003e\")`.\n- Each variant becomes a `.constructor([.plain(\u003cfield type\u003e)])` that\n  returns the union type. It is registered as a builtin under\n  `\u003cnamespace\u003e.\u003cUnion\u003e.\u003cvariant\u003e`.\n- Unions move from `additionalOptionsBags` to `additionalObjectGroups`.\n\nThe README is updated to match. WebIDL dictionaries, such as\n`MojoCreateDataPipeOptions`, are now the only `OptionsBag`s.\n\nBug: 567978464\nChange-Id: I2d5729b9cb48ad28145e60e65fecb22d4a84fabf\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8509223\nCommit-Queue: Tigran Bantikyan \u003cbantikyan@chromium.org\u003e\nReviewed-by: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711605}\n\n\nCrOS-Libchrome-Original-Commit: 17949a6c90a85df0021f929b237d28a905586824\n"
    },
    {
      "commit": "205784de3d5960ad3efa0c2f306b504c05957eb4",
      "tree": "b75ffa72838d1419851aa21b0c495a5fe3d67b40",
      "parents": [
        "0f39da08faeaebc3fbd3e606dfd53e7a6eab244f"
      ],
      "author": {
        "name": "Alexei Svitkine",
        "email": "asvitkine@chromium.org",
        "time": "Mon Oct 05 19:30:48 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:44 2026"
      },
      "message": "Improve FilePersistentMemoryAllocator POSIX flushing\n\nOn non-Apple POSIX platforms, FilePersistentMemoryAllocator\u0027s\nFlushPartial passed MS_INVALIDATE to msync(). This change omits\nMS_INVALIDATE across all POSIX platforms (Linux, ChromeOS, Android),\nmatching the existing behavior on Apple platforms (macOS, iOS).\n\nHistorically, POSIX.1-1996 defined MS_INVALIDATE because early Unix\narchitectures maintained separate, disjoint page caches for the\nvirtual memory subsystem (mmap) and the file system buffer cache\n(read/write). Without explicit invalidation, other processes\naccessing the file via read() or non-synchronized mappings could\nobserve stale data.\n\nOn modern POSIX and Apple kernels, however, memory mappings and file\nI/O operate directly on a Unified Page Cache:\n- Linux: The page cache and buffer cache were unified in Linux 2.4.0\n  (January 2001). Under MAP_SHARED, mmap pages and file descriptor\n  I/O share the exact same underlying physical page frames\n  (struct page). Consequently, all processes and kernel read/write\n  operations immediately observe memory modifications without\n  requiring cache invalidation. In Linux (mm/msync.c), the kernel does\n  not invalidate shared file pages upon MS_INVALIDATE; its only\n  functional effect is returning -EBUSY if pages in the range are\n  locked (VM_LOCKED via mlock). All versions of Android (kernel 3.x+)\n  and ChromeOS use Linux kernels that have always featured this\n  unified page cache architecture.\n- Apple (macOS / iOS / Darwin): Darwin introduced the Unified Buffer\n  Cache (UBC) in Mac OS X 10.0 Cheetah (March 2001). Mapped files and\n  vnodes share identical physical memory pages. In Darwin XNU\n  (bsd/vm/vm_mmap.c), passing MS_INVALIDATE explicitly deactivates or\n  unmaps mapped pages from the process address space, causing\n  unnecessary page faults and redundant disk reads upon subsequent\n  accesses.\n\nTherefore, passing MS_INVALIDATE during flush operations provides no\ncache coherency benefit, adds risk of spurious -EBUSY on locked\nregions, and risks incurring costly page re-faults.\n\nTAG\u003dagy\nCONV\u003de7bcd679-5d34-4ddc-9706-7890259066f8\n\nBug: 40063510\nChange-Id: I361dcf07cd8ac8d99ed47676345b29cdc7098ded\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8502543\nCommit-Queue: Alexei Svitkine \u003casvitkine@chromium.org\u003e\nCommit-Queue: Luc Nguyen \u003clucnguyen@google.com\u003e\nReviewed-by: Luc Nguyen \u003clucnguyen@google.com\u003e\nAuto-Submit: Alexei Svitkine \u003casvitkine@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711590}\n\n\nCrOS-Libchrome-Original-Commit: 55a82873ddfdc16585337a9ce0d3a9bbcf6aeb00\n"
    },
    {
      "commit": "0f39da08faeaebc3fbd3e606dfd53e7a6eab244f",
      "tree": "f0607eba1ca451783389b488e776a036e5c4e060",
      "parents": [
        "235e1e7e67c97713c8fad5a6764f32b85ee4e6ff"
      ],
      "author": {
        "name": "Andrew Grieve",
        "email": "agrieve@chromium.org",
        "time": "Mon Oct 05 19:04:12 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:43 2026"
      },
      "message": "Android: Fix all @NonNull presubmit warnings\n\nThe main fix here is enabling the warning only for files with\n@NullMarked.\n\nChange-Id: I79b0980eec08357cb94346fdbb5c1a3adfcdb921\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8507221\nAuto-Submit: Andrew Grieve \u003cagrieve@chromium.org\u003e\nOwners-Override: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Andrew Grieve \u003cagrieve@chromium.org\u003e\nReviewed-by: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1711564}\n\n\nCrOS-Libchrome-Original-Commit: 1af4e3c97f8b5a507a90bb4172ad9290cf3f9f88\n"
    },
    {
      "commit": "235e1e7e67c97713c8fad5a6764f32b85ee4e6ff",
      "tree": "f31370f8be4dddfd2d9b5e1ef6f94a7d0232bc36",
      "parents": [
        "81dbe16b6d043d047e2fbf1e3fdc666139f04c01"
      ],
      "author": {
        "name": "SeungJun Lee",
        "email": "mps756@gmail.com",
        "time": "Mon Oct 05 17:49:07 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:39 2026"
      },
      "message": "base: Preserve Unix epoch timestamps in POSIX file metadata\n\nPOSIX stat timestamps use zero seconds to represent the Unix epoch.\nTime::FromTimeT() interprets zero as a null time, so File::Info loses\nboth epoch timestamps and subsecond timestamps in the first Unix second.\n\nConvert all three stat timestamps relative to Time::UnixEpoch() through\na shared helper. Cover the subsecond conversion using the Apple stat\nfield names as well as the Linux ones. This also lets file stream readers\ndetect changes to files whose snapshot modification time was at the epoch.\n\nBug: 40690801\nChange-Id: I1cc6411c93d8a7779a429668ded5b010e5b5e257\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8496093\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Lei Zhang \u003cthestig@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711483}\n\n\nCrOS-Libchrome-Original-Commit: 089eb1806ebac85b18de4308f27a0ccb6ddc7d16\n"
    },
    {
      "commit": "81dbe16b6d043d047e2fbf1e3fdc666139f04c01",
      "tree": "f2e153feda365f8bd327f22c7d25d0c16af459c6",
      "parents": [
        "80b2782a07ae5ea57a0cab58114379f16c9c278e"
      ],
      "author": {
        "name": "Jose Arturo Barrera",
        "email": "jabgonzalez@google.com",
        "time": "Mon Oct 05 17:38:27 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:38 2026"
      },
      "message": "[MiraclePtr] Enforce raw_ptr in templated containers for thread_group_profiler_unittest.cc\n\nThis change replaces instances of raw C-style pointers (`T*`) with\n`raw_ptr\u003cT\u003e` for elements stored inside templated containers (such as\n`std::vector` and `std::array`). This aligns with the broader MiraclePtr\nsafety initiative to protect against use-after-free vulnerabilities.\n\nThis advances MiraclePtr\u0027s expansion to containers and preempts an\nupcoming clang-plugin update that will strictly ban these un-rewritten\ninstances.\n\nBug: b:501142609\nDoc: go/miracleptr-in-containers\nMax-Compile-Failures: 100\nChange-Id: I6f660c3d2100460a7d98bc01904a3f6bae8d8561\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8502797\nCommit-Queue: José Arturo Barrera \u003cjabgonzalez@google.com\u003e\nReviewed-by: Jean-Philippe Gravel \u003cjpgravel@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711466}\n\n\nCrOS-Libchrome-Original-Commit: b9bfe9d0d15ebe8744b325d345dcca8ee9643747\n"
    },
    {
      "commit": "80b2782a07ae5ea57a0cab58114379f16c9c278e",
      "tree": "3e521a4eec2a4a6cf77c3676fba868c73698adbb",
      "parents": [
        "8b1bbaeeef182bf283dac7ca65d7a260512497c9"
      ],
      "author": {
        "name": "Alexei Svitkine",
        "email": "asvitkine@chromium.org",
        "time": "Mon Oct 05 17:34:22 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:38 2026"
      },
      "message": "Document concurrency model and thread safety of PMA Flush\n\nFilePersistentMemoryAllocator::Flush flushes allocated memory up to\nthe current value of freeptr (used()). It does not lock the allocator,\nso concurrent allocations by other threads may advance freeptr or write\nnew blocks concurrently during or after the flush.\n\nDocument this behavior in PersistentMemoryAllocator::Flush to clarify\nthe threading invariants for callers.\n\nTAG\u003dagy\nCONV\u003de7bcd679-5d34-4ddc-9706-7890259066f8\n\nBug: 40063510\nChange-Id: I56712a9f77e09f9fd7813ece61d7e4d0f197f5e6\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8507237\nReviewed-by: Luc Nguyen \u003clucnguyen@google.com\u003e\nCommit-Queue: Luc Nguyen \u003clucnguyen@google.com\u003e\nAuto-Submit: Alexei Svitkine \u003casvitkine@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711460}\n\n\nCrOS-Libchrome-Original-Commit: 1ac1f161118a790f79449fd035adff2ae738c7d3\n"
    },
    {
      "commit": "8b1bbaeeef182bf283dac7ca65d7a260512497c9",
      "tree": "efaabdcd2de2c3fb7cec9603408d03124e4d8222",
      "parents": [
        "62cff65523bcb07c7be3e234697ffb5ebee479bd"
      ],
      "author": {
        "name": "Alexei Svitkine",
        "email": "asvitkine@chromium.org",
        "time": "Mon Oct 05 17:07:20 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:36 2026"
      },
      "message": "Fix msync error check in FilePersistentMemoryAllocator\n\nIn FilePersistentMemoryAllocator::FlushPartial, the error check\nfor ::msync() uses DCHECK_NE(EINVAL, result). However, msync()\nreturns 0 on success and -1 on failure (setting errno to EINVAL\nor another error code). Comparing result directly against EINVAL\nis therefore always true (0 !\u003d 22 and -1 !\u003d 22), which makes the\ncheck a no-op that never triggers even on error.\n\nUse DPCHECK(result \u003d\u003d 0) to verify success and log errno on\nfailure, matching the DPCHECK(success) call on Windows. Make\nFlushPartial a no-op on Fuchsia where the POSIX compatibility\nlayer does not implement msync().\n\nTAG\u003dagy\nCONV\u003de7bcd679-5d34-4ddc-9706-7890259066f8\n\nBug: None\nChange-Id: I3efd25b2cc316897a721094bc8dc69cecca8667c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8506383\nReviewed-by: Luc Nguyen \u003clucnguyen@google.com\u003e\nCommit-Queue: Alexei Svitkine \u003casvitkine@chromium.org\u003e\nAuto-Submit: Alexei Svitkine \u003casvitkine@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711427}\n\n\nCrOS-Libchrome-Original-Commit: e85c880ac89f023729a946540affd3a8fc22a8ab\n"
    },
    {
      "commit": "62cff65523bcb07c7be3e234697ffb5ebee479bd",
      "tree": "4ad88f77bf1d8f02cfd29fd4de563d3bf23c58c3",
      "parents": [
        "e04ea7e08ff2acbd4fbe81c0d02c8ae6367228a8"
      ],
      "author": {
        "name": "Anton Bikineev",
        "email": "bikineev@google.com",
        "time": "Mon Oct 05 13:39:07 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:27 2026"
      },
      "message": "base: Accurately detect Efficiency CPU cores on Apple Silicon\n\nOn Apple Silicon chips with Super and Performance cores and no\nEfficiency cores (such as M5 Pro and M5 Max), hw.nperflevels is 2 with\nhw.perflevel0.name \u003d \"Super\" and hw.perflevel1.name \u003d \"Performance\".\nSimilarly, future 3-level chips may report Super, Performance, and\nEfficiency across three levels.\n\nPreviously, SysInfo::NumberOfEfficientProcessorsImpl() assumed that\nwhenever hw.nperflevels \u003e\u003d 2, the slowest level (num_perf_levels - 1)\nalways holds Efficiency cores, causing all Performance cores on\nSuper+Performance chips to be misclassified as Efficiency cores.\n\nInspect hw.perflevel\u003cN\u003e.name to only count levels named \"Efficiency\"\n(falling back to the slowest level index if the sysctl name is missing\nor unrecognized), matching WebKit\u0027s approach in\nhttps://commits.webkit.org/319928@main.\n\nChange-Id: I70638b92acd02db71d665ccc56249a5808fa73e3\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8430205\nReviewed-by: Kyle Charbonneau \u003ckylechar@chromium.org\u003e\nCommit-Queue: Kyle Charbonneau \u003ckylechar@chromium.org\u003e\nReviewed-by: Etienne Pierre-Doray \u003cetiennep@chromium.org\u003e\nAuto-Submit: Anton Bikineev \u003cbikineev@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711230}\n\n\nCrOS-Libchrome-Original-Commit: 9894e457efd82f8f0157f6546a7f5affd4fc41bc\n"
    },
    {
      "commit": "e04ea7e08ff2acbd4fbe81c0d02c8ae6367228a8",
      "tree": "7138980f9879942570c0a683e25eaa108dc94ff9",
      "parents": [
        "972b76456880a3697eeb72310c2acf66e6b1d7f5"
      ],
      "author": {
        "name": "Ziad Youssef",
        "email": "ziadyoussef@chromium.org",
        "time": "Mon Oct 05 12:07:59 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Tue Oct 06 11:27:24 2026"
      },
      "message": "[Android] Null-check BatteryManager returned by getSystemService()\n\nContext.getSystemService() can return null for BatteryManager, e.g. when\nthe host app\u0027s SELinux domain can\u0027t look up the battery binder services.\n\nThis is only called twice in PowerMonitor and BatteryStatusManager.\n\nBug: 562744743\nChange-Id: Ie51a29055b15f25efadca8b0d2f330cd3f6ef957\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8479574\nReviewed-by: Yaron Friedman \u003cyfriedman@chromium.org\u003e\nCommit-Queue: Ziad Youssef \u003cziadyoussef@chromium.org\u003e\nReviewed-by: Matt Reynolds \u003cmattreynolds@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1711174}\n\n\nCrOS-Libchrome-Original-Commit: 0f4772ba9f15bf09391fefe97c60a1207c921f90\n"
    },
    {
      "commit": "64bb9b67c46cc03048e6d5e09a921ac50c682186",
      "tree": "bdb4105b4b7496b0c6c1e41c08120ed6b86e6ecf",
      "parents": [
        "1cd61bb35b70150cc154c5a3e16df2eaa47fbde7"
      ],
      "author": {
        "name": "Byron Lee",
        "email": "byronlee@google.com",
        "time": "Fri Oct 02 07:26:49 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Oct 06 08:59:02 2026"
      },
      "message": "libchrome: Remove backward-compatibility-2300 patch\n\nlibbrillo has been updated to pass uintptr_t program_counter to\nbase::Location::CreateForTesting, so this backward-compatibility\npatch is no longer needed.\n\nChange-Id: Icf19a4fcb9728859bc78dc5139323fdc2f43d4e0\nBUG\u003db:568594060\nTEST\u003dCQ\nCq-Depend: chromium:8498977, chromium:8505618\nTAG\u003dagy\nCONV\u003d138c94d1-674d-4ce6-b18c-ef03fd3af425\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8506694\nTested-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nCommit-Queue: Di Wu \u003cdiwux@google.com\u003e\nAuto-Submit: Byron Lee \u003cbyronlee@chromium.org\u003e\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\n"
    },
    {
      "commit": "1cd61bb35b70150cc154c5a3e16df2eaa47fbde7",
      "tree": "35535ea6f89f8baedc6825b58d6963a1bea7fa73",
      "parents": [
        "d8d24dd32fb896ba679059e8276e5f7774bd9087"
      ],
      "author": {
        "name": "Byron Lee",
        "email": "byronlee@google.com",
        "time": "Mon Oct 05 06:44:17 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Oct 06 07:24:15 2026"
      },
      "message": "libchrome: Apply backward-compatibility-2400 directly in git tree\n\nplatform2/common-mk/check-mojom.py invokes\nmojo/public/tools/mojom/check_stable_mojom_compatibility.py directly\nfrom the raw src/platform/libchrome git checkout during repo presubmit\n(where libchrome_tools/patches/*.patch are not applied) and parses\nHEAD^ (old_files) before comparing against HEAD.\n\nApply backward-compatibility-2400-Allow-untyped-handle-in-mojom.patch\ndirectly to compatibility_checker.py and translate.py in the git tree\nso platform2 .mojom migration CLs pass check-mojom presubmit. This\nwill be reverted in crrev.com/c/8506774 once the platform2 CLs merge.\n\nBUG\u003db:568594484\nTEST\u003dcheck_stable_mojom_compatibility.py on platform2 migration CLs\nTAG\u003dagy\nCONV\u003d138c94d1-674d-4ce6-b18c-ef03fd3af425\n\nChange-Id: Ie07ec5a5b0d9a6ade6fb9a0456e5b0783a360536\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8513319\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\nTested-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nAuto-Submit: Byron Lee \u003cbyronlee@chromium.org\u003e\nCommit-Queue: Byron Lee \u003cbyronlee@chromium.org\u003e\n"
    },
    {
      "commit": "d8d24dd32fb896ba679059e8276e5f7774bd9087",
      "tree": "3942a77538a79e8e7a70c75b8d8ff418549c46dc",
      "parents": [
        "a939b36d3d37d6f51952642a3082665787feecea"
      ],
      "author": {
        "name": "Byron Lee",
        "email": "byronlee@google.com",
        "time": "Thu Oct 01 08:07:04 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Oct 06 06:51:21 2026"
      },
      "message": "libchrome: remove backward-compatibility-2200 WrapPlatformFile patch\n\nRemove backward-compatibility-2200-Revert-mojo-Remove-unused-WrapPlatformFile-and-UnwrapPlatformFile.patch\nand its corresponding check-libchrome.py presubmit entry now that all\nChromeOS callers have been migrated to mojo::WrapPlatformHandle and\nmojo::UnwrapPlatformHandle.\n\nBUG\u003db:568122729\nTEST\u003dCQ\nCq-Depend: chromium:8499294, chromium:8499354, chromium:8499395, chromium:8499295, chrome-internal:9903055\nChange-Id: Ied5d76a03b1cace7de39644c6a9d7937b0055b2b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8499534\nAuto-Submit: Byron Lee \u003cbyronlee@chromium.org\u003e\nTested-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nCommit-Queue: Di Wu \u003cdiwux@google.com\u003e\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\n"
    },
    {
      "commit": "a939b36d3d37d6f51952642a3082665787feecea",
      "tree": "237426a96cf1df63767c56428f8d1684ec08cf1b",
      "parents": [
        "d57fd70bda41099f8b37aef318a83ad5bc02c182",
        "972b76456880a3697eeb72310c2acf66e6b1d7f5"
      ],
      "author": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Mon Oct 05 12:14:34 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Oct 06 03:34:53 2026"
      },
      "message": "Automated commit: libchrome r1710992 uprev\n\nMerge with upstream commit 972b76456880a3697eeb72310c2acf66e6b1d7f5\nAdded non-test .cc files in upstream merge:\n  * base/memory/sanitized_object.cc\n\nBUG\u003dNone\nTEST\u003dsudo emerge libchrome\n\nChange-Id: I54fba67763516655d23eda3dfed85e58444baa96\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8512300\nCommit-Queue: Wei-Luan Wang \u003cweiluanwang@google.com\u003e\nBot-Commit: chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com\u003e\nTested-by: chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com \u003cchromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "972b76456880a3697eeb72310c2acf66e6b1d7f5",
      "tree": "4dbdaf43bcbaf8970946ab87c1b2999a1568525f",
      "parents": [
        "a8bda9ea0e157808ab5372a848fc275a043c1ab8"
      ],
      "author": {
        "name": "mikt",
        "email": "mikt@google.com",
        "time": "Mon Oct 05 05:08:11 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Mon Oct 05 11:23:28 2026"
      },
      "message": "Rename ADVANCED_MEMORY_SAFETY_CHECKS to SANITIZED_OBJECT\n\nThis is a mechanical rewrite change.\n\nRename the `ADVANCED_MEMORY_SAFETY_CHECKS` macro to `SANITIZED_OBJECT`,\n`INHERIT_MEMORY_SAFETY_CHECKS` to `INHERIT_SANITIZED_OBJECT`, and\n`DEFAULT_MEMORY_SAFETY_CHECKS` to `NO_SANITIZED_OBJECT`.\n\nAlso rename `base/memory/advanced_memory_safety_checks.{h,cc}` to\n`base/memory/sanitized_object.{h,cc}` and update remaining\n`AdvancedMemorySafetyChecks` / `advanced_memory_safety_checks`\nidentifiers in `base/`, `partition_alloc/`, and `PRESUBMIT.py`.\n\nHere is the script AI used to rewrite the annotation users:\n```\nimport subprocess\nfiles \u003d [ ... ] # 54 caller files outside base/\nfor f in files:\n    with open(f, \"r\") as fp:\n        content \u003d fp.read()\n    new_content \u003d content.replace(\n        \"#include \\\"base/memory/advanced_memory_safety_checks.h\\\"\",\n        \"#include \\\"base/memory/sanitized_object.h\\\"\"\n    ).replace(\"ADVANCED_MEMORY_SAFETY_CHECKS\", \"SANITIZED_OBJECT\")\n    with open(f, \"w\") as fp:\n        fp.write(new_content)\nsubprocess.run([\"git\", \"cl\", \"format\"], check\u003dTrue)\n```\n\nTAG\u003dagy\nCONV\u003d1688e889-a808-401a-854c-f80e12b2fe32\n\nBypass-Check-License: Renamed file.\nChange-Id: I60650ea5f59b8ce7c9f28a78c47802fac8fc28cb\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8506057\nCommit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710992}\n\n\nCrOS-Libchrome-Original-Commit: b761f7b645d16671aa6931ae52a185d9d06928b8\n"
    },
    {
      "commit": "a8bda9ea0e157808ab5372a848fc275a043c1ab8",
      "tree": "73502d7cb4a37847a263541fe52c3c355ba21885",
      "parents": [
        "2e464cb38dad65444126b9dc039f0359ffa83e4b"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Mon Oct 05 02:41:47 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Mon Oct 05 11:23:26 2026"
      },
      "message": "mojo: Deduplicate transitive modules and kinds in mojom module pickles\n\nWhen mojom_parser loads multiple .mojom-module dependencies via\nModule.Load(), shared transitive imports (such as unguessable_token.mojom\nor time.mojom) are unpickled as distinct Module and Kind instances from\neach dependency file. When the dependent module is subsequently dumped\nwith pickle.dump(), these duplicate instances are all serialized\nseparately, causing exponential duplication across the import DAG.\n\nFor example, agent_scheduling_group.mojom-module only depends on 405\nunique .mojom files, but previously contained 15,001 serialized Module\ninstances (including 1,495 copies of unguessable_token.mojom), bloating\nthe single pickle file to 101 MB.\n\nThis change introduces _MojomPickler using pickle.Pickler.reducer_override\nto canonicalize duplicate Module, Kind, and NamedValue instances by their\nmodule path and spec during Module.Dump(), while keeping .mojom-module\nfiles completely self-contained and readable via standard pickle.load().\n\nResults for content/common:\n- agent_scheduling_group.mojom-module size: 100.9 MB -\u003e 5.8 MB (-94.3%,\n  15,001 -\u003e 405 Module instances)\n- agent_scheduling_group.mojom-module Dump time: 3.26s -\u003e 0.13s (25.6x\n  faster)\n- agent_scheduling_group.mojom-module Load time: 2.51s -\u003e 0.11s (23.0x\n  faster)\n- Total size across all 15 .mojom-module files in content/common:\n  318.6 MB -\u003e 20.3 MB (-93.6%)\n- Total Dump time across all 15 files (single-core): 9.66s -\u003e 0.40s\n  (23.9x faster)\n- content/common mojom_bindings_generator execution time:\n  18.1s -\u003e 3.7s (min 3.5s, 4.9x faster)\n  Max RSS memory usage: 488 MB -\u003e 84 MB (-82.8%)\n\nBug: 563098656\nChange-Id: Ib71d5a42409fbb4fe18dad4859f13a52020c51f2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8492214\nAuto-Submit: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710959}\n\n\nCrOS-Libchrome-Original-Commit: e7e371aa7a6adf445cc773f6fae73a52d5c795f0\n"
    },
    {
      "commit": "d57fd70bda41099f8b37aef318a83ad5bc02c182",
      "tree": "e396f93ed0ef5a8e7b85a2b80bfa645d7777fb00",
      "parents": [
        "0997efcc6224edd7c4f479c5e4b08d8007a5aea9",
        "2e464cb38dad65444126b9dc039f0359ffa83e4b"
      ],
      "author": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sun Oct 04 12:13:05 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Oct 05 08:48:21 2026"
      },
      "message": "Automated commit: libchrome r1710653 uprev\n\nMerge with upstream commit 2e464cb38dad65444126b9dc039f0359ffa83e4b\nAdded non-test .cc files in upstream merge:\n  * base/allocator/partition_allocator/src/partition_alloc/partition_tls_posix.cc\n\nUpdated backward-compatibility-2100-Use-absl-Overload-function.patch to\ncover base/files/important_file_writer.cc.\n\nBUG\u003dNone\nTEST\u003dsudo emerge libchrome\n\nChange-Id: Ib19adf282f630f9119152c4ab725404b0653219c\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8503846\nTested-by: Wei-Luan Wang \u003cweiluanwang@google.com\u003e\nCommit-Queue: Di Wu \u003cdiwux@google.com\u003e\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\n"
    },
    {
      "commit": "2e464cb38dad65444126b9dc039f0359ffa83e4b",
      "tree": "3e703f1ffc1e844a562cd159fdad73dd03e26790",
      "parents": [
        "130126bef82dea5bac95bd98bdf1ab55a929e255"
      ],
      "author": {
        "name": "Xiaohan Wang",
        "email": "xhwang@chromium.org",
        "time": "Sat Oct 03 02:45:05 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:57 2026"
      },
      "message": "misc: Migrate BASE_FEATURE macros to 2-argument version\n\nThis CL migrates three-argument BASE_FEATURE macros in misc folders to\nthe new two-argument version where the C++ identifier and the string\nfeature name match.\n\nThis automated refactoring helps ensure that the C++ identifier and the\nstring feature name always match, reducing potential errors.\n\nNO_IFTTT\u003drefactor\n\nBypass-WebView-Feature-Check: refactor\nEnabled-by-default-reason: refactor\nBug: 436274260\nChange-Id: I9bcd9919ea6ca140653b0f9f300307666954a372\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8508986\nCommit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\nAuto-Submit: Xiaohan Wang \u003cxhwang@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710653}\n\n\nCrOS-Libchrome-Original-Commit: 371696a6da55aea693df1cb4ed9235cf8a015a90\n"
    },
    {
      "commit": "130126bef82dea5bac95bd98bdf1ab55a929e255",
      "tree": "bfe22c43e948208401817a0080c67a5d132ed8bf",
      "parents": [
        "e63da258df905547cd2bb652366e2e8db923edd7"
      ],
      "author": {
        "name": "Justin Novosad",
        "email": "junov@chromium.org",
        "time": "Sat Oct 03 01:57:34 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:57 2026"
      },
      "message": "[base] Eliminate redundant LiveTicks clock reads in MeasuredMemoryDumpProviderInfo\n\nUses the now_out parameter of base::ElapsedLiveTimer::Elapsed() to\neliminate a redundant LiveTicks::Now() clock read when logging post-task\ntime upon MeasuredMemoryDumpProviderInfo destruction.\n\nBug: 568632369\nChange-Id: I944936165204fa3ed0ccbe5b02abf274c23ec4d6\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8497114\nReviewed-by: Siddhartha S \u003cssid@chromium.org\u003e\nAuto-Submit: Justin Novosad \u003cjunov@chromium.org\u003e\nCommit-Queue: Siddhartha S \u003cssid@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710637}\n\n\nCrOS-Libchrome-Original-Commit: 525245df8ff276bccd565cb35279399e59427da6\n"
    },
    {
      "commit": "e63da258df905547cd2bb652366e2e8db923edd7",
      "tree": "f9c4be0033e01d017e0be4d10e096a55ae727fdd",
      "parents": [
        "3bfaf72c96215c82c693bc32a0bc1ec357f80900"
      ],
      "author": {
        "name": "Danilo Tedeschi",
        "email": "danft@google.com",
        "time": "Sat Oct 03 00:57:20 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:56 2026"
      },
      "message": "[base/i18n] Bind DateTimeFormatter instances to a locale\n\nDateTimeFormatter now receives the locale in its constructor and uses it\nto format when no explicit locale is passed to Format().\n\nIcuBridge owns one formatter per locale, cached in an\nabsl::flat_hash_map keyed by LanguageTag, and exposes:\n  - date_time_formatter(): returns the formatter for the current default\n    ICU locale, obtained from GetDefaultIcuLocale().\n  - date_time_formatter(locale): returns the formatter for the given\n    locale.\n\nFormatters are created on first use. The map is lazily populated by the\nconst accessors and guarded by a lock, as IcuBridge is a process-wide\nsingleton that can be accessed from any thread.\n\nThis change is being done so a cache can be more conveniently\nimplemented for improving the performance of DateTimeFormatter.\n\nChange-Id: I02d50c783b5c66e87ff24ab7e42cb21f819e8d1e\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8454223\nReviewed-by: Yann Dago \u003cydago@chromium.org\u003e\nReviewed-by: Friedrich Hauser \u003cfriedrichh@chromium.org\u003e\nCommit-Queue: Danilo Tedeschi \u003cdanft@google.com\u003e\nReviewed-by: Ireneusz Szulc \u003cireneuszszulc@google.com\u003e\nReviewed-by: Max Curran \u003ccurranmax@chromium.org\u003e\nReviewed-by: Alexei Svitkine \u003casvitkine@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710615}\n\n\nCrOS-Libchrome-Original-Commit: 202f47259e5cc9adc41062873eec0d4aac37b390\n"
    },
    {
      "commit": "3bfaf72c96215c82c693bc32a0bc1ec357f80900",
      "tree": "cccd830407601734bd3975125a0754e930617ff1",
      "parents": [
        "9b91623cc86aa10819b269b73753d674338b0de1"
      ],
      "author": {
        "name": "Henrique Nakashima",
        "email": "hnakashima@chromium.org",
        "time": "Fri Oct 02 23:08:59 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:53 2026"
      },
      "message": "[Public Transit] Add hopOn()/hopOff() to convert test utils\n\nTests that are not (yet) Public Transit tests call shared test utils that\ndo exactly what a PT transition does: trigger something and wait for the\nresulting UI state. Those utils could not be implemented in terms of PT\nbecause PT requires an origin Station and a full trip.\n\nThis CL adds the \"hop on\" primitive: a no-origin arrival that enters\nPublic Transit from outside it, so a test util can model its destination\nas a Station without requiring its caller to be a PT test.\n\nBase layer:\n - TripBuilder#hopOnTo(Activity, Station) runs the trigger with no origin\n   Station, so no exit Conditions are checked, and resolves the\n   destination\u0027s Activity by identity rather than by class. The Activity\n   is a required parameter: hopping on means the UI already exists, so\n   the caller always holds it, and matching by class is ambiguous as\n   soon as a second window is open (ChromeTabbedActivity2 on phones,\n   two ChromeTabbedActivity instances on Desktop Android).\n - hopOnTo() implicitly hops off first, before running the trigger: its\n   precondition is \"outside PT\", so it establishes it, and a failed\n   hop-on leaves no half-finished Station behind. Hopping on over an\n   ACTIVE Station in the same Activity is logged as a warning: the\n   caller is most likely a PT test calling a converted util and should\n   transition from its own Station instead. That is a worklist, not an\n   error, since the util cannot know whether that Station is still\n   accurate.\n - TrafficControl#hopOffPublicTransit() marks the abandoned Stations and\n   their Facilities FINISHED so stale Element reads fail loudly. It does\n   so from any phase: a Station left TRANSITIONING_FROM by a failed\n   Transition is exactly what hopping off exists to abandon, and\n   asserting on it turned one failed test into a failed batch.\n   notifyEntryPointSentinelStationCreated() uses the same path and so\n   no longer asserts the previous Station was ACTIVE either.\n - Station#requireToBeInSameTask() allows subclasses when the origin\n   Activity is a subclass of the class the destination declares. This\n   applies to every same-task transition, not only after a hop-on: a\n   Station\u003cChromeTabbedActivity\u003e reached in a ChromeTabbedActivity2 can\n   now travel to another Station\u003cChromeTabbedActivity\u003e.\n - HopOnOffUnitTest covers the above in Robolectric.\n\nTest utils converted with hopOnTo() should keep their original trigger\nand add only the state modeling, and leave their destination Station\nACTIVE so that getTab()/getActivity() stay readable by non-PT callers;\nthe next hop on discards it. The first conversions follow in separate\nCLs: TabUiTestHelper#enterTabSwitcher() and leaveTabSwitcher().\n\nBug: 412014791, 433540584, 564028907\nChange-Id: Id68fe40b685adf4d806bc5576241abc79e75dcbf\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8422468\nReviewed-by: Fiaz Muhammad \u003cmfiaz@google.com\u003e\nCommit-Queue: Henrique Nakashima \u003chnakashima@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710527}\n\n\nCrOS-Libchrome-Original-Commit: c88b88064381eb69eef0483d0e73cc5e060827b6\n"
    },
    {
      "commit": "9b91623cc86aa10819b269b73753d674338b0de1",
      "tree": "a4a00693b514c0473f1144b5b0a5c439e741f223",
      "parents": [
        "dba8ba35345562fd53cf10ebf2e5339ea6ad2d16"
      ],
      "author": {
        "name": "Tigran Bantikyan",
        "email": "bantikyan@chromium.org",
        "time": "Fri Oct 02 21:48:10 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:50 2026"
      },
      "message": "fuzzilli: Add per-variant union constructors to lite JS bindings\n\nIn the lite JS bindings, a Mojom union is a plain object (i.e., an\nobject literal) with a single key-value pair. The key is the name of the\nunion variant being used, while the value is the union\u0027s value.\n\nFuzzilli needs accurate type information on its generated variables so\nthat it can call APIs with high correctness. Unfortunately, Fuzzilli\ndoes not make object literal with type information. Specifically,\nFuzzilli uses a `group` to track an object\u0027s type, and object literals\nare emitted with a random group.\n\nThe previous union strategy used in Fuzzilli for unions allowed it to\ncorrectly generate the object literals for unions and pass them into\nmethods only at union generation time. Fuzzilli struggles with other use\ncases, however. For instance, arrays of unions are not supported, and\nneither is reusing a previously created union value.\n\nTo improve the efficacy of Fuzzilli\u0027s fuzzing, this CL introduces\nper-variant union constructors in the lite bindings. These are generated\nonly for builds where `enable_mojom_fuzzer` is set. When Fuzzilli\ngenerates a type through these constructors, it does accurately track\ntype information.\n\nExample union:\n```\nmodule example\nunion Foo {\n  string bar;\n  bool baz;\n};\n```\n\nGenerated constructor:\n```\nexample.Foo \u003d {\n  \u0027bar\u0027: function(value) { return {\u0027bar\u0027: value}; },\n  \u0027baz\u0027: function(value) { return {\u0027baz\u0027: value}; },\n};\n```\n\nPrevious union strategy: http://doc/1aEL_3tkA-aug3ElRdBaPL0dYptEypK0m1y4NnFnVWIo?resourcekey\u003d0-poqcsRGi33ACm8LaZZtv1Q\u0026tab\u003dt.g2220pzf91or#heading\u003dh.uhwmb8ybp4b\n\nBug: 567978464\nChange-Id: Ief4ae7ed1f915f6ba4a10745367cfff16c51e7be\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8483083\nReviewed-by: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\nCommit-Queue: Tigran Bantikyan \u003cbantikyan@chromium.org\u003e\nReviewed-by: Fred Shih \u003cffred@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710461}\n\n\nCrOS-Libchrome-Original-Commit: 446ff76a1634063e9d8613557c5138cf159bfbda\n"
    },
    {
      "commit": "dba8ba35345562fd53cf10ebf2e5339ea6ad2d16",
      "tree": "f89c4ee53a939be717fab513541b70d3774f6aea",
      "parents": [
        "3a64545fd62d82b3d9e6bc4a7aba9c466dc6b5c1"
      ],
      "author": {
        "name": "Anton Helin",
        "email": "antonhelin3@gmail.com",
        "time": "Fri Oct 02 21:44:19 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:50 2026"
      },
      "message": "Correctly evaluate the authority from opaque content URIs in isUriFromThisApp\n\nContentUriUtils.isUriFromThisApp() read the authority directly from the Uri object. An OpaqueUri returns a null authority even when its string form includes one, so reparsing must be done to confirm that the authority does not exist. It was possible for a drag-and-dropped content URI to access internal content providers and leak sensitive data to a web page.\n\nBug: 567846676\nChange-Id: I10fc16cd61a63649d84638323ff5c2601cfe2638\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8486071\nReviewed-by: Michael Thiessen \u003cmthiesse@chromium.org\u003e\nCommit-Queue: Yaron Friedman \u003cyfriedman@chromium.org\u003e\nReviewed-by: Yaron Friedman \u003cyfriedman@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710456}\n\n\nCrOS-Libchrome-Original-Commit: 265bdbb85110007f71d865ef67bf25a129f5c0aa\n"
    },
    {
      "commit": "3a64545fd62d82b3d9e6bc4a7aba9c466dc6b5c1",
      "tree": "945dc48a9614a94179cf5f56005b59e923f93fd2",
      "parents": [
        "9c558a518ec360b86d517737691ae04ba414187f"
      ],
      "author": {
        "name": "Patrick Monette",
        "email": "pmonette@chromium.org",
        "time": "Fri Oct 02 19:37:31 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:45 2026"
      },
      "message": "[Memory Coordinator] Simplify notification suppression\n\nWhen registering a MemoryConsumer, it\u0027s possible that we need to\nimmediately apply a non-default memory limit (an existing policy already\nrequests one). But since registration typically happens from the\nconsumer\u0027s constructor, we must not call OnUpdateMemoryLimit() or\nOnReleaseMemory() at that point: the object isn\u0027t fully constructed yet.\n\nThis behavior is already correct, but the responsibility lies with the\nregistry, which has to carefully order its operations (notify the\ncontroller before adding the consumer to its group, then seed the limit\nthrough a dedicated NoNotification helper). That ordering gets in the\nway of a follow-up change.\n\nSo this CL moves the suppression into MemoryConsumer itself with an\n`is_registering_` bool, set by the registry for the duration of the\nregistration. The NoNotification helpers are no longer needed.\n\nNo behavior change.\n\nBug: 567877037\nChange-Id: Ic96a09f57033f6cf3b1259fe22c985bb28c5a3b6\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8502996\nCommit-Queue: Patrick Monette \u003cpmonette@chromium.org\u003e\nReviewed-by: Andres Ricardo Perez Rojas \u003candresrperez@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710332}\n\n\nCrOS-Libchrome-Original-Commit: ae03b93806a96d14a08b2e5b6f687bc0d9b122d6\n"
    },
    {
      "commit": "9c558a518ec360b86d517737691ae04ba414187f",
      "tree": "223859a911c0c9c8ca2a05766cab564331cb79d9",
      "parents": [
        "c2d29dd30d2165ca164c3e7f074a58c7efe31499"
      ],
      "author": {
        "name": "Justin Novosad",
        "email": "junov@chromium.org",
        "time": "Fri Oct 02 18:20:07 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:42 2026"
      },
      "message": "[base] Output current time from ElapsedTimer*::Elapsed methods\n\nObjective: Eliminate redundant clock queries in several places\n\nContext: Many uses of ElapsedTimer also evaluate TimeTicks::Now\nnear the call to Elapse or near the timer\u0027s construction, resulting\nin redundant clock evaluations. These are fast but non negligible\non most OSes, and in worst cases (e.g. VMs) can be slow due to\nkernel space jumps.\n\nAdds an optional `now_out` parameter to\n`ElapsedNoSleepTimer::Elapsed()`, allowing callers to retrieve the\nsampled LiveTicks timestamp from the same sample used for the elapsed\ntime calculation.\n\nBug: 565753727\nChange-Id: I618219b74ae67b0ecb3ea59cc03b316669238f64\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8494952\nReviewed-by: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nCommit-Queue: Justin Novosad \u003cjunov@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710263}\n\n\nCrOS-Libchrome-Original-Commit: a7ddba56f23ef8ffe1136fdebc609898340ca50c\n"
    },
    {
      "commit": "c2d29dd30d2165ca164c3e7f074a58c7efe31499",
      "tree": "a3bc60fe226a343aa995cd859d2df02d499217dc",
      "parents": [
        "bd9f95cefcdac92cb1d96abac7166edb95567ef3"
      ],
      "author": {
        "name": "Mikel Astiz",
        "email": "mastiz@chromium.org",
        "time": "Fri Oct 02 18:10:32 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:42 2026"
      },
      "message": "[base] Support synchronous writes in ImportantFileWriter\n\nThis patch extends ImportantFileWriter with support for synchronous\nbehavior, if ImportantFileWriter::kBlockCurrentSequence is passed during\nconstruction (instead of a task runner).\n\nThis allows usages that are already running on blockable sequences\nwithout involving task-posting, simplifying the sequencing of\noperations if the written file is also read.\n\nsyncer::LoopbackConnectionManager is updated to become the first user of\nthis functionality, avoiding race conditions that could, before this\npatch, lead to reads executing earlier than previously-issued writes.\n\nBug: 564770244\nChange-Id: Idbd85a87faff97f45c378d01a1d5dd72ec3b4c7c\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8501821\nCommit-Queue: Mikel Astiz \u003cmastiz@chromium.org\u003e\nReviewed-by: Gabriel Charette \u003cgab@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710253}\n\n\nCrOS-Libchrome-Original-Commit: db776c333e0157636be44892c14e6e45bbe9b96e\n"
    },
    {
      "commit": "bd9f95cefcdac92cb1d96abac7166edb95567ef3",
      "tree": "6b8311b88baaaf6cf277e40934e827079c8cd039",
      "parents": [
        "99a7bab5d7f9acd514096aa3add7ce706e2ee30e"
      ],
      "author": {
        "name": "Benoit",
        "email": "lizeb@google.com",
        "time": "Fri Oct 02 16:42:46 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:38 2026"
      },
      "message": "[viz] Report total BufferQueue memory usage in UMA\n\nTotal memory used by BufferQueue in viz can grow large for users with\nmultiple browser windows on high resolution screens, and in the case\nof Android, with a high refresh rate (since we have more buffers in\nthis case).\n\nThis CL adds tracking for total size, as a memory metric, with more\ndetails in tracing memory dumps.\n\nChange-Id: Ic345eaf34e5f4b415dfb90cae273b2b53c3267bc\nBug: 505314004\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8505018\nCommit-Queue: Benoit Lize \u003clizeb@chromium.org\u003e\nReviewed-by: Jonathan Ross \u003cjonross@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710151}\n\n\nCrOS-Libchrome-Original-Commit: 7403fdfaa19d2e7200e6ebcc0b37e7e8d1071ba1\n"
    },
    {
      "commit": "99a7bab5d7f9acd514096aa3add7ce706e2ee30e",
      "tree": "34c9b27f32c8e321ad9aef6792d384c53885906c",
      "parents": [
        "ef0b259248fd270e0ec8d576cdddafcd804b47ee"
      ],
      "author": {
        "name": "Justin Novosad",
        "email": "junov@chromium.org",
        "time": "Fri Oct 02 16:41:28 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:38 2026"
      },
      "message": "Add base::ElapsedNoSleepTimer to detect OS suspension during timing intervals\n\nIntroduces base::ElapsedNoSleepTimer, which returns an elapsed\nTimeDelta from Elapsed() or std::nullopt if the system slept during\nthe measured interval.\n\nHow it works: On all platforms, LiveTicks and RealTicks are derived\nfrom the same underlying system clock, except that RealTicks has an\noffset added to it to account for system sleep time. Therefore,\nwhenever RealTicks advances faster than that LiveTicks over a\nmeasured interval, we know that the system slept.\n\nBug: 565753727\nChange-Id: I804d6929c66e694e20b46c71fd933e57320fd053\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8456429\nReviewed-by: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nCommit-Queue: Justin Novosad \u003cjunov@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710149}\n\n\nCrOS-Libchrome-Original-Commit: 592bab9770f8812cc5dbb2064b4cb80bbf92c6b2\n"
    },
    {
      "commit": "ef0b259248fd270e0ec8d576cdddafcd804b47ee",
      "tree": "8df327f0099a83e58e773d126cb19da4769d2f0f",
      "parents": [
        "a56457185341eeba31a1e906026146a97ffc357a"
      ],
      "author": {
        "name": "Yann Dago",
        "email": "ydago@chromium.org",
        "time": "Fri Oct 02 15:59:19 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:35 2026"
      },
      "message": "[enterprise] Integrate UserCloudManagementStatusFetcher into Interceptor\nIntegrate UserCloudManagementStatusFetcher into DiceWebSigninInterceptor\nto evaluate the user cloud management status and the profile separation\npolicies of the intercepted account via the DM Server, gated behind\nkMigrateSecureConnectApiToDmServer.\nWith the feature enabled:\n- The DM Server fetch is only started once the account\u0027s\n  is_subject_to_enterprise_features capability is kTrue. Accounts for\n  which it is kFalse are treated as unmanaged without a fetch.\n- The DM Server management status is the only source of truth to\n  decide whether enterprise policies apply to the intercepted account.\n- If the status is unavailable (fetch failure, timeout, or fetch not\n  possible), CanApplyEnterprisePoliciesToAccount() fails open and the\n  account is treated as unmanaged. The same helper is used for both\n  EnterpriseSeparationMaybeRequired() and the final interception\n  decision, so they cannot disagree.\n- UserCloudManagementStatusFetcher is owned by ResetableState, so\n  in-flight requests are cancelled on timeout, reset and shutdown.\nAlso:\n- Split EnsureAccountLevelSigninRestrictionFetchInProgress() into DM\n  Server and SecureConnect sub-functions. The fetch is attempted at most\n  once per interception on both paths.\n- Extract helpers: IsProfileSeparationSuggested, MayBeEnterpriseAccount,\n  IsProfileSeparationEnforcedLocally, IsProfileSeparationEnforcedByPolicy.\n- Make ProfileSeparationPolicies non-optional in\n  FetchStatusAndPoliciesCallback and make Start() public for\n  caller-owned fetchers.\n- Add policy::features::IsMigrateSecureConnectApiToDmServerEnabled().\nNot gated by the feature:\n- Abort the interception (kAbortTabClosed) if the tab was closed while\n  waiting for asynchronous information.\n- Ignore late fetch callbacks for a stale or reset interception.\n- Fail the legacy SecureConnect fetch gracefully if there is no system\n  network context.\nBug: 543381833\n\nChange-Id: Idd1545ec255505532e8c96970f6b3a9dd84675ac\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8215204\nReviewed-by: Nicolas Ouellet-Payeur \u003cnicolaso@chromium.org\u003e\nCommit-Queue: Yann Dago \u003cydago@chromium.org\u003e\nReviewed-by: David Roger \u003cdroger@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1710092}\n\n\nCrOS-Libchrome-Original-Commit: 1e3352ed0b674035b1e689a61d2ca0478463996a\n"
    },
    {
      "commit": "a56457185341eeba31a1e906026146a97ffc357a",
      "tree": "43f81fd5a8c7aae68d962b2e4a5326bf4f01d5ca",
      "parents": [
        "3fd71039f682a8645de42cf823450e8947c0aaf2"
      ],
      "author": {
        "name": "utzcoz",
        "email": "utzcoz@gmail.com",
        "time": "Fri Oct 02 15:34:48 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:35 2026"
      },
      "message": "[Android] Run Robolectric tests on SDK 37 by default\n\nRaise the newest SDK that junit tests run on from 36 to 37, keeping\nBaseRobolectricTestRunner.MAX_SDK and local_machine_junit_test_run.py\nin sync. The SDK 37 android-all jar is already in\nthird_party/robolectric.\n\nWith the preceding fixes, every junit suite in the Android build passes\non SDK 29 and 37.\n\nBug: none\nChange-Id: Ia8e486a28a2bb659672708439c0f87f5cf4dcc13\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8496696\nReviewed-by: Peter Wen \u003cwnwen@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@{#1710076}\n\n\nCrOS-Libchrome-Original-Commit: e6f5459c6d96003f4ddd8de196d3785fd1a401f7\n"
    },
    {
      "commit": "3fd71039f682a8645de42cf823450e8947c0aaf2",
      "tree": "bc18006870a45a36775e7cd5a8150d45586e1400",
      "parents": [
        "21f4b26430d0f2ee7e1ebc22ba0854cc0e2a178d"
      ],
      "author": {
        "name": "Sam Maier",
        "email": "smaier@google.com",
        "time": "Fri Oct 02 14:51:57 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:33 2026"
      },
      "message": "Remove resources_version from resources on Android\n\nThis was missed in\nhttps://chromium-review.git.corp.google.com/c/chromium/src/+/8143540\n\nI believe this is truly the last spot other than the manifest we can get\nthe version from.\n\nThis was originally added as a debugging aid for an early Trichrome\nissue. It\u0027s no longer relevant.\n\nBug: 40264213\nChange-Id: I3d3d90cbf32cb5387d90f712652c79c16a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8489610\nReviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\nCommit-Queue: Sam Maier \u003csmaier@google.com\u003e\nAuto-Submit: Sam Maier \u003csmaier@google.com\u003e\nOwners-Override: Sam Maier \u003csmaier@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1710048}\n\n\nCrOS-Libchrome-Original-Commit: 8ec14b46510e4e5da51517dd6583aa1fa87d617a\n"
    },
    {
      "commit": "21f4b26430d0f2ee7e1ebc22ba0854cc0e2a178d",
      "tree": "ab708583d6ea128ac68bad7620058ef8d95c241c",
      "parents": [
        "6731c48fc47593a429d585aa9d248c5d4c85a3e6"
      ],
      "author": {
        "name": "Pier-Alexandre Bouchard",
        "email": "pabouchard@google.com",
        "time": "Fri Oct 02 13:41:18 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:31 2026"
      },
      "message": "Revert \"Checked Span: Add offset checking tests\"\n\nThis reverts commit 738956cca47a264e92106fdbefdc040ee7ed487d.\n\nReason for revert: Reverting dependent tests in order to revert parent CL https://crrev.com/c/8491851, which caused widespread iOS EarlGrey test crashes across simulator builders (identified by LUCI Bisection: https://ci.chromium.org/ui/p/chromium/bisection/test-analysis/b/4703653093965824, sample build: https://ci.chromium.org/b/8669067950653156817).\n\nNo-Try: true\nChange-Id: I42793d507080a93b7ebb699f2f0ab6a6baec49a6\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8507354\nAuto-Submit: Pier-Alexandre Bouchard \u003cpabouchard@google.com\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\nOwners-Override: Pier-Alexandre Bouchard \u003cpabouchard@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1709982}\n\n\nCrOS-Libchrome-Original-Commit: 7e985147e460f1cd8ede29ce8c2dc9954e0d0c4b\n"
    },
    {
      "commit": "6731c48fc47593a429d585aa9d248c5d4c85a3e6",
      "tree": "9a45ca546fc5e8ba17a435e9bb146ab57439e901",
      "parents": [
        "1d2a3e1c9a3e55116664ecb843f1e84a050beb4a"
      ],
      "author": {
        "name": "Pier-Alexandre Bouchard",
        "email": "pabouchard@google.com",
        "time": "Fri Oct 02 13:39:43 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:31 2026"
      },
      "message": "Revert \"Checked Span: Enable tightened checking\"\n\nThis reverts commit a27e1a2c28881022a9eb7a7d2f0d1e7f90ecafc4.\n\nReason for revert: Caused widespread iOS EarlGrey test crashes across simulator builders (identified by LUCI Bisection: https://ci.chromium.org/ui/p/chromium/bisection/test-analysis/b/4703653093965824, sample build: https://ci.chromium.org/b/8669067950653156817).\n\nNo-Try: true\nChange-Id: I62e4196a7a130ecf225378181ea83f17d5e0db2a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8507374\nOwners-Override: Pier-Alexandre Bouchard \u003cpabouchard@google.com\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\nAuto-Submit: Pier-Alexandre Bouchard \u003cpabouchard@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1709981}\n\n\nCrOS-Libchrome-Original-Commit: 36b2532313c795127f5dcf7d6b703ec0ee6dcbed\n"
    },
    {
      "commit": "1d2a3e1c9a3e55116664ecb843f1e84a050beb4a",
      "tree": "d6c7e639865538fe5fcf07d674fc422dd30b988f",
      "parents": [
        "72c3cb34e49089dc1685218fc9b2adfcdb6bc32e"
      ],
      "author": {
        "name": "ainozaki",
        "email": "ainozaki@google.com",
        "time": "Fri Oct 02 12:04:09 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Sat Oct 03 11:21:29 2026"
      },
      "message": "[PA] Check auto partitioning in PartitionIndexFromAllocToken\n\nCurrently, `PartitionIndexFromAllocToken()` can return\n`kPointerPartitionIndex` even when `ENABLE_AUTO_PARTITIONING` is\ndisabled, relying on `Allocator()` to fall back to\n`kDefaultPartitionIndex`.\n\nThis CL moves the `ENABLE_AUTO_PARTITIONING` check into\n`PartitionIndexFromAllocToken()` and guards `kPointerPartitionIndex`\nbehind the buildflag.\n\nBug: 549500187, 477186304\nChange-Id: I6151e58e378d2a3dc8857e2d14a5078998f3ca87\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8506336\nReviewed-by: Mikihito Matsuura \u003cmikt@google.com\u003e\nCommit-Queue: Ai Nozaki \u003cainozaki@google.com\u003e\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709933}\n\n\nCrOS-Libchrome-Original-Commit: a78193eb9893e6be7aa59654a99bd4c42db56be6\n"
    },
    {
      "commit": "0997efcc6224edd7c4f479c5e4b08d8007a5aea9",
      "tree": "2d92f90ca94d78b56e4527a043a9fdfeffba5983",
      "parents": [
        "0d16d3c1400e8cfd88fc844ee7aaa5c58ababef6",
        "87434ae846aeb47834d6ee66ae98a3389ed79a11"
      ],
      "author": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Thu Oct 01 12:15:15 2026"
      },
      "committer": {
        "name": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Oct 02 15:09:08 2026"
      },
      "message": "Automated commit: libchrome r1708758 uprev\n\nMerge with upstream commit 87434ae846aeb47834d6ee66ae98a3389ed79a11\n\nBackward compatibility patches added:\n  * b/568594060: add const void* overload for\n    base::Location::CreateForTesting after r1707665\n    (crrev.com/c/8404568).\n  * b/568594484: comment out untyped \u0027handle\u0027 error in translate.py\n    and retain temporary \u0027handle\u0027 to \u0027handle\u003cT\u003e\u0027 exception in\n    compatibility_checker.py after r1707440 (crrev.com/c/8424588).\n\nBUG\u003db:568594060, b:568594484\nTEST\u003dsudo emerge libchrome\n\nChange-Id: Ic8ba19bf22320db2ece2befe0de60c905c3f4482\nTAG\u003dagy\nCONV\u003d138c94d1-674d-4ce6-b18c-ef03fd3af425\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/libchrome/+/8498977\nTested-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nReviewed-by: Byron Lee \u003cbyronlee@chromium.org\u003e\nReviewed-by: Di Wu \u003cdiwux@google.com\u003e\nCommit-Queue: Di Wu \u003cdiwux@google.com\u003e\n"
    },
    {
      "commit": "72c3cb34e49089dc1685218fc9b2adfcdb6bc32e",
      "tree": "dbdbe4ac3d48a202427d6c2e28317d61e232a5a5",
      "parents": [
        "581d90f412686a1a5cfd44379822101ebeeb482b"
      ],
      "author": {
        "name": "Lei Zhang",
        "email": "thestig@chromium.org",
        "time": "Fri Oct 02 09:26:58 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:57 2026"
      },
      "message": "Move base::PlatformThread internal bits to platform_thread_internal.h\n\nMove some code in base/threading/platform_thread.h in an inner internal\nnamespace into a separate file. This code is only used in\nplatform_thread.cc / unit tests and does not need to be included in the\nrest of the code base.\n\nChange-Id: Ib786b05d64048aa7e05dd5a5edcacdb497b2b554\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8501499\nReviewed-by: Markus Handell \u003chandellm@google.com\u003e\nCommit-Queue: Markus Handell \u003chandellm@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1709879}\n\n\nCrOS-Libchrome-Original-Commit: 486fa4f1f73a2c223199cb0b84ceb443289e8fb4\n"
    },
    {
      "commit": "581d90f412686a1a5cfd44379822101ebeeb482b",
      "tree": "2fb4459a029a243dd087a84117eaf2b534a21acb",
      "parents": [
        "c06c4f380ebda56f9734554a560ef4430c4b08cb"
      ],
      "author": {
        "name": "mikt",
        "email": "mikt@google.com",
        "time": "Fri Oct 02 07:46:18 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:54 2026"
      },
      "message": "Reland \"[PA] Consolidate PartitionAlloc TLS into a single structure.\"\n\nThis reverts commit 438d489235fc95769492fdb88920a78acee41f65.\n\nReason for revert: Regression cut by 75% in https://crrev.com/c/8487305\n\nOriginal change\u0027s description:\n\u003e Revert \"[PA] Consolidate PartitionAlloc TLS into a single structure.\"\n\u003e\n\u003e This reverts commit 67b58121286da3189afe0e05570f4e0c70499cf8.\n\u003e\n\u003e Reason for revert: Suspected cause of memory regression\n\u003e\n\u003e Failure Link: https://pinpoint-dot-chromeperf.appspot.com/job/157bfe49690000\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e [PA] Consolidate PartitionAlloc TLS into a single structure.\n\u003e \u003e\n\u003e \u003e This CL renames partition_tls.h to tls.h and defines a single\n\u003e \u003e `PartitionTls` structure that holds all thread-unique objects used\n\u003e \u003e within PartitionAlloc. Specifically, it now holds the ThreadCache\n\u003e \u003e pointers and the disallow_allocations flag.\n\u003e \u003e\n\u003e \u003e This consolidation reduces TLS slot usage and minimizes code\n\u003e \u003e duplication. TLS creation remains non-allocating.\n\u003e \u003e\n\u003e \u003e To minimize overhead on allocation and deallocation hot paths:\n\u003e \u003e - Placed scalar flags at byte offset 0 of struct PartitionTls for\n\u003e \u003e   D-cache locality.\n\u003e \u003e - Combined thread cache validity and bucket size checks into a single\n\u003e \u003e   branch (bucket_index \u003c thread_cache-\u003eactive_bucket_count()) on hot\n\u003e \u003e   paths, removing duplicate checks and redundant TLS lookups.\n\u003e \u003e\n\u003e \u003e TAG\u003dagy\n\u003e \u003e CONV\u003d80980e77-c356-4c8b-a00b-3a2c47533fbb\n\u003e \u003e\n\u003e \u003e Bug: 329027914\n\u003e \u003e Change-Id: If05f8f540281a135eba36aba872df424a4c208be\n\u003e \u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8264055\n\u003e \u003e Commit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\n\u003e \u003e Reviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\n\u003e \u003e Reviewed-by: Takashi Sakamoto \u003ctasak@google.com\u003e\n\u003e \u003e Cr-Commit-Position: refs/heads/main@{#1688851}\n\u003e\n\u003e Bug: 329027914\n\u003e Change-Id: Ic0a1771902cd4159e4571c563989e13e15fa0235\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8412606\n\u003e Reviewed-by: Mateusz Zbikowski \u003czbikowski@google.com\u003e\n\u003e Commit-Queue: Alex Mitra \u003calexmitra@chromium.org\u003e\n\u003e Owners-Override: Anna Tsvirchkova \u003catsvirchkova@google.com\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1698073}\n\nBug: 329027914\nChange-Id: Ib8d2a5211fc766697a9e35a585358a281592a10a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8483734\nCommit-Queue: Mikihito Matsuura \u003cmikt@google.com\u003e\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709815}\n\n\nCrOS-Libchrome-Original-Commit: 554afb3648fc97bdd2ffe82ad46847221dc2da04\n"
    },
    {
      "commit": "c06c4f380ebda56f9734554a560ef4430c4b08cb",
      "tree": "c8c8f01c77dec1da307f8219349e342fd4b0b36c",
      "parents": [
        "b363ae3e7721478afe9edc8be4b254e0e786b1f1"
      ],
      "author": {
        "name": "Lei Zhang",
        "email": "thestig@chromium.org",
        "time": "Fri Oct 02 07:18:01 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:53 2026"
      },
      "message": "partition_alloc: Move Flags to partition_alloc_public_constants.h\n\nMove AllocFlags and FreeFlags out of partition_alloc_constants.h into\npartition_alloc_public_constants.h so files that only need these flags\n(such as array_buffer_contents.h) can include a smaller header.\n\nInclude partition_alloc_public_constants.h directly in files that use\nAllocFlags or FreeFlags, and replace partition_alloc_constants.h\nincludes where its constants are no longer needed. Many of these\nmodified files are outside of //base/allocator, so\npartition_alloc_public_constants.h is more appropriate anyway.\n\nTAG\u003dagy\nCONV\u003dd1d1c71f-a023-4057-8123-fa1a368aca3a\n\nChange-Id: I4a46c9c4d6373c6bab72cd276defc987e7f2227d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8470312\nAuto-Submit: Lei Zhang \u003cthestig@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nCommit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709792}\n\n\nCrOS-Libchrome-Original-Commit: f4faac0c922b64133e6fd3c5db6c029a413c76b6\n"
    },
    {
      "commit": "b363ae3e7721478afe9edc8be4b254e0e786b1f1",
      "tree": "51a35560ce8ddb4719ea396ac09bf275f39cbaea",
      "parents": [
        "bc75e38704b259fd21472023d953f7ea3c4d1ff7"
      ],
      "author": {
        "name": "Kalvin Lee",
        "email": "kdlee@chromium.org",
        "time": "Fri Oct 02 06:46:59 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:52 2026"
      },
      "message": "Checked Span: Add offset checking tests\n\nWhen tightened bounds checking is enabled (and the smuggled size is\navailable to Checked Span), the Checked Span cannot be constructed any\nlarger than the original allocation extent (regardless of available\nheadroom).\n\nWhen tightened bounds checking isn\u0027t enabled, the Checked Span can reach\nto the end of available headroom.\n\nThis new unit test verifies that using a span start from mid-allocation\nstill works as expected under both configurations.\n\nChange-Id: I615e81493ad9420cbd0fcf6506ccd30d43f2efb4\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8492351\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Kalvin Lee \u003ckdlee@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709780}\n\n\nCrOS-Libchrome-Original-Commit: 738956cca47a264e92106fdbefdc040ee7ed487d\n"
    },
    {
      "commit": "bc75e38704b259fd21472023d953f7ea3c4d1ff7",
      "tree": "3949e9ba6751f48c0ad4650ef52a693cf2e7cc43",
      "parents": [
        "32626ca791c102cf87ac6318184cd3611bd352cd"
      ],
      "author": {
        "name": "Kalvin Lee",
        "email": "kdlee@chromium.org",
        "time": "Fri Oct 02 06:45:34 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:52 2026"
      },
      "message": "Checked Span: Enable tightened checking\n\nThis enables tightened bounds-checking. Checked Span now refers to the\nhidden, originally requested size provided by the caller, and will crash\nif a `base::span` any larger than that is requested. (Exceptions apply,\nspecific to the implementation of PartitionAlloc.)\n\nFixed: 534387022\nChange-Id: Id74f51b31ba2e59c6a5b7889305f54b0476c1340\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8491851\nCommit-Queue: Kalvin Lee \u003ckdlee@chromium.org\u003e\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709778}\n\n\nCrOS-Libchrome-Original-Commit: a27e1a2c28881022a9eb7a7d2f0d1e7f90ecafc4\n"
    },
    {
      "commit": "32626ca791c102cf87ac6318184cd3611bd352cd",
      "tree": "bfdb938394143dcd51ecc4c9d38a229fa04542d6",
      "parents": [
        "40ffc94975f2ff59bd864a9b53e34eca41c5a1d5"
      ],
      "author": {
        "name": "Kalvin Lee",
        "email": "kdlee@chromium.org",
        "time": "Fri Oct 02 06:42:23 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:52 2026"
      },
      "message": "Checked Span: Tighten bounds\n\nChange `IsExtentOutOfBounds()` to use the smuggled size when available,\nproviding a tighter bound on what\u0027s considered in bounds.\n\nBug: 534387022\nChange-Id: I84dcf5c3842022b24acfade6dcd5e68e0cd3d450\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8461864\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Kalvin Lee \u003ckdlee@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709777}\n\n\nCrOS-Libchrome-Original-Commit: e64c3f7a5b2bc41a3bb96951e419b7d304b1c3b7\n"
    },
    {
      "commit": "40ffc94975f2ff59bd864a9b53e34eca41c5a1d5",
      "tree": "b0dda7be385faa730dc88c277bf1e237267033e7",
      "parents": [
        "d4571ee5ee3b6660f7ccfbebff7607f9ff18f0dd"
      ],
      "author": {
        "name": "Greg Thompson",
        "email": "grt@chromium.org",
        "time": "Fri Oct 02 06:07:28 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:39 2026"
      },
      "message": "Deactivate Interest in MessagePumpEpoll::UnregisterInterest()\n\nWhen two FdWatchController instances watch the same file descriptor\n(e.g., one for read and one for write) and a single epoll event\nsatisfies both, MessagePumpEpoll::OnEpollEvent() copies the entry\u0027s\nInterest list and iterates over each Interest. If the first callback\ncalls StopWatchingFileDescriptor() on the second controller without\ndestroying it, MessagePumpEpoll::UnregisterInterest() removes the\nInterest from the EpollEventEntry (and erases the EpollEventEntry if no\nInterests remain) without calling set_active(false) on the unregistered\nInterest. On the next iteration, OnEpollEvent() sees active() \u003d\u003d true\nand was_controller_destroyed() \u003d\u003d false, resulting in a use-after-free\non the erased EpollEventEntry in UpdateEpollEvent() and a null pointer\ndereference in FdWatchController::OnFdWritable().\n\nCall set_active(false) in UnregisterInterest() so OnEpollEvent() skips\nany Interest that a prior callback unregistered during the same event.\n\nBug: b:515435405\nChange-Id: I9fd03b68ea0b85e5bf2f1f016dec12735a68e396\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8501177\nReviewed-by: Etienne Pierre-Doray \u003cetiennep@chromium.org\u003e\nCommit-Queue: Greg Thompson \u003cgrt@chromium.org\u003e\nAuto-Submit: Greg Thompson \u003cgrt@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709757}\n\n\nCrOS-Libchrome-Original-Commit: eddad32d3c74a1163d8fd0a5fadd042b2be5f34a\n"
    },
    {
      "commit": "d4571ee5ee3b6660f7ccfbebff7607f9ff18f0dd",
      "tree": "f5bca84ca9c02ea1c5b46c8a8d586137cb253013",
      "parents": [
        "89e9a42d23eaf0ba8e87f8062a13634e11dba17f"
      ],
      "author": {
        "name": "Tomasz Wiszkowski",
        "email": "ender@google.com",
        "time": "Fri Oct 02 04:55:29 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:38 2026"
      },
      "message": "[🌺] Revert \"[Android] Cache DeviceInfo in test builds\"\n\nThis reverts commit d7d74add46d2971946a3ade2a5b990e3e30dfd4a.\n\nReason for revert: consistently fails android-desktop-x64-rel.\n\nBookmarksApiEventsTest#*, BookmarksApiTest#Bookmarks,\nGlicSidePanelCoordinatorDesktopAndroidBrowserTest#*, and\nDownloadExtensionTest#DownloadsShowFunction has failed in 39/39 recent\nbuilds of android-desktop-x64-rel, every attempt in every one of them.\nThis is not flake: it reproduces on every run, so it blocks the CQ for\nevery unrelated CL that touches this suite. The regression appears at\nrefs/heads/main@{#1709361}.\n\nExample failing run:\nhttps://ci.chromium.org/ui/p/chromium/builders/ci/android-desktop-x64-rel-15-tests/23058\n\nCaching DeviceInfo.sInstance on first access in test builds caches\nmIDeviceInfo.isDesktop \u003d false before CommandLine is populated with\n--force-desktop-android on Android 15 tablet emulators (which lack\nPackageManager.FEATURE_PC). This causes 15 android_browsertests across\nBookmarksApiEventsTest, BookmarksApiTest,\nGlicSidePanelCoordinatorDesktopAndroidBrowserTest, and\nDownloadExtensionTest to fail deterministically starting at #780879\n(1709361, vs passing at #780880 at 1709360) on chromium/try/android-\ndesktop-x64-rel and in CI build #23058 on chromium/ci/android-\ndesktop-x64-rel-15-tests.\n\nReverting to green the tree first. Please re-land once the failure is\nunderstood and covered; this revert is about restoring CQ throughput,\nnot about the merit of the change.\n\nOriginal change\u0027s description:\n\u003e [Android] Cache DeviceInfo in test builds\n\u003e\n\u003e DeviceInfo.getInstance() rebuilt the object on every call in test\n\u003e builds so that mocked inputs were not defeated by caching. Each rebuild\n\u003e calls PackageManager.getSystemAvailableFeatures(), which costs two\n\u003e synchronous binder calls, and isDesktop() is on hot paths such as\n\u003e toolbar invalidation. In traces this was ~11% of main-thread CPU in\n\u003e Desktop instrumentation tests.\n\u003e\n\u003e Cache the instance in tests as well. Invalidate it via\n\u003e ResettersForTesting between tests, from the *ForTesting setters, and\n\u003e from OverrideContextWrapperTestRule when it changes system features.\n\u003e\n\u003e Bug: 562154154, 568001105\n\u003e Change-Id: If066e6f1a89f333e5efd495e2c529404aa10718a\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8466502\n\u003e Reviewed-by: Andrew Grieve \u003cagrieve@chromium.org\u003e\n\u003e Commit-Queue: Henrique Nakashima \u003chnakashima@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1709361}\n\nBug: 562154154, 568001105\nChange-Id: I22337748307f26ee6343c58b7eda94b004969fdc\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8505236\nOwners-Override: Shuhei Takahashi \u003cnya@chromium.org\u003e\nCommit-Queue: Shuhei Takahashi \u003cnya@chromium.org\u003e\nAuto-Submit: Tomasz Wiszkowski \u003cender@google.com\u003e\nReviewed-by: Shuhei Takahashi \u003cnya@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709736}\n\n\nCrOS-Libchrome-Original-Commit: cd07a48ab634c5e92e60db02fc7f96ead1ce36ea\n"
    },
    {
      "commit": "89e9a42d23eaf0ba8e87f8062a13634e11dba17f",
      "tree": "f590b2466052d44b0e34856b56e2fe63574f73c6",
      "parents": [
        "fe604d39ce5c704e69aeff450e0c2f6fba97dea9"
      ],
      "author": {
        "name": "ainozaki",
        "email": "ainozaki@google.com",
        "time": "Fri Oct 02 04:15:28 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:37 2026"
      },
      "message": "[PA] Fix kDefaultAllocToken in ShimCppAlignedNewNoThrow\n\nhttps://crrev.com/c/8264052 replaced kDefaultPartitionIndex with\nkDefaultAllocToken for default AllocToken parameters, but missed\nShimCppAlignedNewNoThrow. This CL fixes it.\n\nBug: 549500187\nChange-Id: I51dc22c22b03662f842e4a6706ebe961eb420d96\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8505616\nReviewed-by: Stephen Nusko \u003cnuskos@chromium.org\u003e\nReviewed-by: Mikihito Matsuura \u003cmikt@google.com\u003e\nCommit-Queue: Ai Nozaki \u003cainozaki@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1709714}\n\n\nCrOS-Libchrome-Original-Commit: d3dfb0a42ba5a569de1d260d193bfddc92a6865b\n"
    },
    {
      "commit": "fe604d39ce5c704e69aeff450e0c2f6fba97dea9",
      "tree": "004d25362e6809b7eacdae059f5ddf31e230b5b0",
      "parents": [
        "bb67bce1085398b5e7f2fe58ee6ff28a9659ff48"
      ],
      "author": {
        "name": "Tigran Bantikyan",
        "email": "bantikyan@chromium.org",
        "time": "Fri Oct 02 01:59:41 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:34 2026"
      },
      "message": "fuzzilli: Create README to document Fuzzilli Profile generation\n\nThe new README covers usage, feature support, and behavior quirks.\n\nFixed: 547983240\nChange-Id: I07ea5c788c953a2540bdcab199cc7f1457acef5a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8477491\nCommit-Queue: Tigran Bantikyan \u003cbantikyan@chromium.org\u003e\nReviewed-by: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709645}\n\n\nCrOS-Libchrome-Original-Commit: 97398541a617eb53238e0c030d5fa10cafbd5e9a\n"
    },
    {
      "commit": "bb67bce1085398b5e7f2fe58ee6ff28a9659ff48",
      "tree": "feb68d8814eb7f20952b44990fc661744265e3fa",
      "parents": [
        "eef77b75330bf122a0fcafa9509fb021c05fc0bc"
      ],
      "author": {
        "name": "Miłosz Pracowity",
        "email": "mioszpracowity@gmail.com",
        "time": "Fri Oct 02 00:22:31 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:30 2026"
      },
      "message": "base: Compare the pointer before the flag when a WeakPtr is matched\n\nObserverList::AddObserver() and RemoveObserver() scan the whole list to\nfind an observer. For checked observers each entry holds a\nWeakPtr\u003cCheckedObserver\u003e, and CheckedObserverAdapter::IsEqual() called\nWeakPtr::get(), which reads the WeakPtr\u0027s reference flag: one dependent\nload into a separate heap allocation per entry. On a long list that is a\ncache miss per entry, so a lookup in a list of ~5000 checked observers\ntook ~0.7 ms, against ~40 us for an Unchecked list of the same size,\nwhose entries are compared in place.\n\nLong lists are common: profile-scoped services such as PrefService,\nPasswordStore, MediaStreamCaptureIndicator or WebAppInstallManager get one\nobserver per tab from tab helpers, so adding N tabs costs O(N^2) lookups.\nRestoring a session with 1555 tabs spent about 6 s in the AddObserver()\ncalls of seven such lists, and 2 s more in the four TracedWrapper\nobservers that every PerformanceManager page node registers.\n\nAdd operator\u003d\u003d between a WeakPtr and a raw pointer (or raw_ptr) that\ncompares the stored pointer first and reads the reference flag only on a\nmatch, and use it in CheckedObserverAdapter::IsEqual(). The result is\nunchanged: an entry marked for removal (null WeakPtr) or whose observer\nhas been destroyed still compares unequal, and no extra state is stored\nper entry. This shape was suggested by fdoray@ in crrev.com/c/8464187,\nreplacing an earlier version of this CL that cached the address in the\nadapter.\n\nThe fast path only applies when the raw pointer is a pointer to T\nitself. For any other pointer type the stored pointer would have to be\nconverted first, and converting a pointer to a destroyed object to one\nof its virtual bases reads the freed memory, so those comparisons keep\ngoing through get(). The fast path also keeps the sequence DCHECK that\nget() performs, so a WeakPtr compared on the wrong sequence still fails\nin DCHECK builds even when the pointers differ.\n\nThe new ObserverListPerfTest.AddRemovePerformance story adds and removes\none observer while the list holds N observers. On a fully optimized build\n(non-component, DCHECKs off), per add+remove pair, three runs each:\n  CheckedObserver, N\u003d256:    0.75 us -\u003e 0.16 us\n  CheckedObserver, N\u003d1024:   2.9-3.1 us -\u003e 0.5-0.65 us\n  CheckedObserver, N\u003d4096:  11.2-13.5 us -\u003e 2.0-2.1 us\n  Unchecked, N\u003d4096:         1.8-1.9 us (unchanged)\nA checked list now scans about as fast as an unchecked one. The\nmicrobenchmark keeps the WeakPtr flags cache-hot, so the gap there is\nsmaller than in the browser, where the flags of observers added over time\nare scattered across the heap.\n\nMeasured on a component build (Windows), session restore of 1555 tabs,\nthree runs per variant (spread within 3%), measured with the earlier\nversion of this CL, which cached the address instead:\n  tab insertion loop:                     35.5 s -\u003e 22.9 s (-36%)\n  TabHelpers::AttachTabHelpers, total:     8.8 s -\u003e  4.7 s\n  TabFeatures::Init, total:                6.5 s -\u003e  2.8 s\n  WebContents::Create, total:              6.2 s -\u003e  2.4 s\n  AddObserver() at ~1500 tabs (per call):  ~250-730 us -\u003e ~20-35 us\n  PageNodeImpl constructor at 1500 tabs:   2.4 ms -\u003e 0.12 ms\n  whole restore (launch to last tab):      60 s -\u003e 45 s\n\nBug: 547010125\nChange-Id: I5d826c48972230579b4e751f62d5cef22f460aa1\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8445437\nCommit-Queue: Gabriel Charette \u003cgab@chromium.org\u003e\nReviewed-by: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nReviewed-by: Gabriel Charette \u003cgab@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709565}\n\n\nCrOS-Libchrome-Original-Commit: 909106e8d7785d1bc7f8bd1b907f14c9408d4fd0\n"
    },
    {
      "commit": "eef77b75330bf122a0fcafa9509fb021c05fc0bc",
      "tree": "c629dba3e2ee82c8779ad2ab7fd1c731e725c83f",
      "parents": [
        "8aedfedab1fe61172d499d22f0aaf1771acc126b"
      ],
      "author": {
        "name": "François Doray",
        "email": "fdoray@chromium.org",
        "time": "Fri Oct 02 00:00:45 2026"
      },
      "committer": {
        "name": "chromeos-ci-prod",
        "email": "chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com",
        "time": "Fri Oct 02 11:22:29 2026"
      },
      "message": "[icu] Pre-read memory-mapped icudtl.dat during startup\n\n4.26% of Windows browser main-thread jank is in ICU:\nhttp://pprof/?id\u003d8f1c2496b26f253176d7e249f70d384f\u0026filter\u003dfocus:_78\n\nClose inspection of the stacks reveals that most of this jank comes\nfrom:\n- Hard page faults: base::i18n::InitializeICU() memory-maps the ~10 MB\n  icudtl.dat file without faulting its pages into memory. When the main\n  thread later accesses ICU data, it takes synchronous hard page faults\n  and blocks on disk reads.\n- Lock contention on resbMutex: The main thread blocks waiting for ICU\u0027s\n  global resource-bundle mutex (resbMutex), which can be held by a\n  background thread that is itself blocked on hard page faults in\n  icudtl.dat.\n\nThis CL adds base::i18n::PreReadIcuData(), called from\nBrowserMainLoop::PostCreateThreadsImpl(), which posts a ThreadPool task\nto prefetch the memory-mapped icudtl.dat region via\n::PrefetchVirtualMemory(). This reduces the likelihood that the main\nthread blocks on hard page faults or waits on a mutex held by another\nthread taking hard page faults.\n\nThe change is guarded by the kPreReadIcuData feature to evaluate its\nimpact in the field (including any startup or memory trade-offs from\nprefetching the full file).\n\nBug: None\nChange-Id: I6cda78b41775d6266f8a32b53eb7084a06114ade\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8482623\nReviewed-by: Greg Thompson \u003cgrt@chromium.org\u003e\nCommit-Queue: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nAuto-Submit: Francois Pierre Doray \u003cfdoray@chromium.org\u003e\nReviewed-by: Gabriel Charette \u003cgab@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1709544}\n\n\nCrOS-Libchrome-Original-Commit: 590f2f0aa86269f99f0c92f8a193cecd262d5681\n"
    }
  ],
  "next": "8aedfedab1fe61172d499d22f0aaf1771acc126b"
}
