diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index b1a37f7..8f419c4 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -36,7 +36,7 @@
 # https://chromium.googlesource.com/chromium/src/+/main/docs/updating_clang.md
 # Reverting problematic clang rolls is safe, though.
 # This is the output of `git describe` and is usable as a commit-ish.
-CLANG_REVISION = 'llvmorg-21-init-6681-g5b36835d'
+CLANG_REVISION = 'llvmorg-21-init-9266-g09006611'
 CLANG_SUB_REVISION = 1
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
diff --git a/tools/crates/gnrt/removed_Cargo.toml.hbs b/tools/crates/gnrt/removed_Cargo.toml.hbs
index 89e03ee..63877e2 100644
--- a/tools/crates/gnrt/removed_Cargo.toml.hbs
+++ b/tools/crates/gnrt/removed_Cargo.toml.hbs
@@ -2,11 +2,13 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-# @generated from third_party/rust/chromium_crates_io/removed_Cargo.toml
-# by tools/crates/gnrt. Do not edit!
-
-# This is an empty crate that has replaced the '{{this.name}}' crate, since
-# it was listed in `resolve.remove_crates` in gnrt_config.toml.
+# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
+# by `tools/crates/run_gnrt.py vendor`. Do not edit!
+#
+# This is an empty placeholder that has replaced the
+# `{{this.name}}-{{this.version}}` crate.
+#
+# See `//tools/crates/gnrt/removed_crate.md` to learn more.
 
 [package]
 name = "{{this.name}}"
diff --git a/tools/crates/gnrt/removed_crate.md b/tools/crates/gnrt/removed_crate.md
new file mode 100644
index 0000000..6e11df2
--- /dev/null
+++ b/tools/crates/gnrt/removed_crate.md
@@ -0,0 +1,19 @@
+# Placeholder crates
+
+In some circumstances `tools/crates/run_gnrt.py vendor` will *not* vendor an
+actual crate.  When Chromium doesn't really depend on a given crate, then a
+placeholder crate will be generated instead.  This typically happens when
+either:
+
+* The crate is a conditional dependency that is:
+     - Only present on certain target platforms (ones not supported by
+       Chromium build system as determined by
+       `tools/crates/gnrt/condition.rs`)
+     - Only present if certain crate features are enabled (ones determined to
+       be disabled in Chromium after crate feature resolution performed by
+       `gnrt`, `guppy`, and `cargo`)
+* or `gnrt_config.toml` asked to remove the crate (e.g. via
+  `remove_crates` entry of `gnrt_config.toml`)
+
+`gnrt` generates a placeholder crate, because otherwise `cargo metadata`,
+`cargo tree`, and other `cargo` commands wouldn't work.
diff --git a/tools/crates/gnrt/removed_lib.rs.hbs b/tools/crates/gnrt/removed_lib.rs.hbs
index 7ddce45..fae9e7c 100644
--- a/tools/crates/gnrt/removed_lib.rs.hbs
+++ b/tools/crates/gnrt/removed_lib.rs.hbs
@@ -2,8 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @generated from third_party/rust/chromium_crates_io/removed_lib.rs
-// by tools/crates/gnrt. Do not edit!
-
-// This is an empty crate that has replaced the '{{this.name}}' crate, since
-// it was listed in `resolve.remove_crates` in gnrt_config.toml.
+// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
+// by `tools/crates/run_gnrt.py vendor`. Do not edit!
+//
+// This is an empty placeholder that has replaced the
+// `{{this.name}}-{{this.version}}` crate.
+//
+// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index ccad6f8..bba8a67c 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -48629,6 +48629,8 @@
       label="For password management bubble during signin feature."/>
   <suffix name="PasswordsSavePrimingPromo"
       label="For password save priming promo."/>
+  <suffix name="PasswordsSaveRecoveryPromo"
+      label="For password save recovery promo."/>
   <suffix name="PasswordSuggestions" label="For PasswordSuggestions feature."/>
   <suffix name="PasswordsWebAppProfileSwitch"
       label="For PasswordsWebAppProfileSwitch feature."/>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index c66a8437..60117e690 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -8861,6 +8861,8 @@
   <int value="-2087444854" label="ThreadWrapperUsesMetronome:disabled"/>
   <int value="-2086690409"
       label="EnableExtensionsPermissionsForSupervisedUsersOnDesktop:enabled"/>
+  <int value="-2086547119"
+      label="ReportNotificationContentDetectionData:disabled"/>
   <int value="-2086380381" label="FedCmIdpSigninStatusEnabled:disabled"/>
   <int value="-2085842174" label="SupportF11AndF12KeyShortcuts:enabled"/>
   <int value="-2085212970" label="FastPairHID:enabled"/>
@@ -10722,6 +10724,8 @@
   <int value="-1388956102" label="OmniboxTouchDownTriggerForPrefetch:disabled"/>
   <int value="-1388817073" label="OmniboxReverseAnswers:disabled"/>
   <int value="-1388546778" label="WebAppManifestImmediateUpdating:disabled"/>
+  <int value="-1388233453"
+      label="UseFrameIntervalDeciderAdaptiveFrameRate:enabled"/>
   <int value="-1388044691" label="ContentLanguagesInLanguagePicker:enabled"/>
   <int value="-1387498034"
       label="SafeBrowsingPasswordCheckIntegrationForSavedPasswordsAndroid:enabled"/>
@@ -11702,6 +11706,8 @@
   <int value="-1015006759" label="ImportantSitesInCBD:disabled"/>
   <int value="-1014936248" label="SyncUSSBookmarks:enabled"/>
   <int value="-1014649471" label="committed-interstitials"/>
+  <int value="-1014147857"
+      label="ReportNotificationContentDetectionData:enabled"/>
   <int value="-1013986101" label="FirstScrollLatencyMeasurement:disabled"/>
   <int value="-1012816526"
       label="FileSystemAccessGetCloudIdentifiers:disabled"/>
@@ -11722,6 +11728,8 @@
   <int value="-1007267652"
       label="NtpPhotosModuleCustomizedOptInArtWork:disabled"/>
   <int value="-1007219628" label="IncreasedCmdBufferParseSlice:enabled"/>
+  <int value="-1006553558"
+      label="UseFrameIntervalDeciderAdaptiveFrameRate:disabled"/>
   <int value="-1006508846" label="AutofillEnableCardBenefitsForBmo:disabled"/>
   <int value="-1005937042" label="ArcVmBalloonPolicy:enabled"/>
   <int value="-1005164075" label="ContextualSearchTranslations:enabled"/>
diff --git a/tools/metrics/histograms/histograms_xml_files.gni b/tools/metrics/histograms/histograms_xml_files.gni
index 3c2d2bee..1eef44c 100644
--- a/tools/metrics/histograms/histograms_xml_files.gni
+++ b/tools/metrics/histograms/histograms_xml_files.gni
@@ -199,6 +199,7 @@
   "//tools/metrics/histograms/metadata/plugin_vm/histograms.xml",
   "//tools/metrics/histograms/metadata/plus_addresses/enums.xml",
   "//tools/metrics/histograms/metadata/plus_addresses/histograms.xml",
+  "//tools/metrics/histograms/metadata/power/enums.xml",
   "//tools/metrics/histograms/metadata/power/histograms.xml",
   "//tools/metrics/histograms/metadata/prefetch/histograms.xml",
   "//tools/metrics/histograms/metadata/preloading/histograms.xml",
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml
index a06f9a5..fbb927d 100644
--- a/tools/metrics/histograms/metadata/autofill/histograms.xml
+++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -124,6 +124,8 @@
   <variant name="CreditCard"
       summary="User chose to fill a form or field with a credit card profile."/>
   <variant name="Iban" summary="User chose to fill a field with an iban."/>
+  <variant name="IdentityCredential"
+      summary="User chose to fill a field with an identity credential."/>
   <variant name="LoyaltyCard"
       summary="User chose to fill a field with a loyalty card."/>
   <variant name="MerchantPromoCode"
diff --git a/tools/metrics/histograms/metadata/enterprise/enums.xml b/tools/metrics/histograms/metadata/enterprise/enums.xml
index dce951cf..264e740 100644
--- a/tools/metrics/histograms/metadata/enterprise/enums.xml
+++ b/tools/metrics/histograms/metadata/enterprise/enums.xml
@@ -2226,6 +2226,7 @@
   <int value="1355" label="DefaultSmartCardConnectSetting"/>
   <int value="1356" label="DeviceUserInitiatedFirmwareUpdate"/>
   <int value="1357" label="BuiltInAIAPIsEnabled"/>
+  <int value="1358" label="TabGroupSharingSettings"/>
 </enum>
 
 <enum name="EnterprisePoliciesSources">
diff --git a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
index b728db9..b867d32 100644
--- a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
+++ b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
@@ -415,6 +415,8 @@
                during signin flows"/>
   <variant name="IPH_PasswordsSavePrimingPromo"
       summary="prompting users to consider saving passwords in the browser"/>
+  <variant name="IPH_PasswordsSaveRecoveryPromo"
+      summary="prompting users to reconsider saving passwords in the browser"/>
   <variant name="IPH_PasswordSuggestions"
       summary="the Autofill password suggestions on iOS"/>
   <variant name="IPH_PasswordsWebAppProfileSwitch"
diff --git a/tools/metrics/histograms/metadata/gpu/enums.xml b/tools/metrics/histograms/metadata/gpu/enums.xml
index 55ebb8f..2aee09d9 100644
--- a/tools/metrics/histograms/metadata/gpu/enums.xml
+++ b/tools/metrics/histograms/metadata/gpu/enums.xml
@@ -434,6 +434,8 @@
   <int value="3" label="kVideoConference"/>
   <int value="4" label="kOnlyAnimatingImage"/>
   <int value="5" label="kOnlyScrollBarFadeOut"/>
+  <int value="6" label="kUserInputBoost"/>
+  <int value="7" label="kSlowScrollThrottle"/>
 </enum>
 
 <enum name="GLImplementation">
diff --git a/tools/metrics/histograms/metadata/history/histograms.xml b/tools/metrics/histograms/metadata/history/histograms.xml
index d3f5ba1..fa802427 100644
--- a/tools/metrics/histograms/metadata/history/histograms.xml
+++ b/tools/metrics/histograms/metadata/history/histograms.xml
@@ -2003,6 +2003,16 @@
   </summary>
 </histogram>
 
+<histogram name="History.Embeddings.Embedder.LaunchDuration" units="ms"
+    expires_after="2025-10-05">
+  <owner>wittman@chromium.org</owner>
+  <owner>src/components/history_embeddings/OWNERS</owner>
+  <summary>
+    The time it took to launch the PassageEmbeddingsService. Logged each time
+    the service is successfully launched.
+  </summary>
+</histogram>
+
 <histogram name="History.Embeddings.Embedder.ModelInfoStatus"
     enum="EmbeddingsModelInfoStatus" expires_after="2025-10-05">
   <owner>sophiechang@chromium.org</owner>
@@ -2441,6 +2451,38 @@
   </summary>
 </histogram>
 
+<histogram name="History.Embeddings.TaskDuration" units="ms"
+    expires_after="2025-10-05">
+  <owner>wittman@chromium.org</owner>
+  <owner>src/components/history_embeddings/OWNERS</owner>
+  <summary>
+    The time it took to compute embeddings for one service round trip. Logged
+    each time the embeddings are successfully computed.
+  </summary>
+</histogram>
+
+<histogram name="History.Embeddings.TaskDuration.Passive" units="ms"
+    expires_after="2025-10-05">
+  <owner>wittman@chromium.org</owner>
+  <owner>src/components/history_embeddings/OWNERS</owner>
+  <summary>
+    The time it took to compute embeddings with kPassive priority, for one
+    service round trip. Logged each time the embeddings are successfully
+    computed.
+  </summary>
+</histogram>
+
+<histogram name="History.Embeddings.TaskDuration.UserInitiated" units="ms"
+    expires_after="2025-10-05">
+  <owner>wittman@chromium.org</owner>
+  <owner>src/components/history_embeddings/OWNERS</owner>
+  <summary>
+    The time it took to compute embeddings with kUserInitiated priority, for one
+    service round trip. Logged each time the embeddings are successfully
+    computed.
+  </summary>
+</histogram>
+
 <histogram name="History.Embeddings.UserActions{UiSurface}"
     enum="EmbeddingsUserActions" expires_after="2025-10-05">
   <owner>orinj@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/linux/histograms.xml b/tools/metrics/histograms/metadata/linux/histograms.xml
index 1f28fc8..c8ea6076 100644
--- a/tools/metrics/histograms/metadata/linux/histograms.xml
+++ b/tools/metrics/histograms/metadata/linux/histograms.xml
@@ -163,6 +163,13 @@
   </summary>
 </histogram>
 
+<histogram name="Linux.X11.XInput2" enum="BooleanEnabled"
+    expires_after="2025-10-21">
+  <owner>aycyang@chromium.org</owner>
+  <owner>thomasanderson@chromium.org</owner>
+  <summary>Whether X Input Extension version 2.x is available.</summary>
+</histogram>
+
 </histograms>
 
 </histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml
index 61c52a0..a994fc20a 100644
--- a/tools/metrics/histograms/metadata/net/histograms.xml
+++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -3243,6 +3243,23 @@
   </token>
 </histogram>
 
+<histogram name="Net.IpProtection.CanFalloverToNextProxy.Error.{Chain}"
+    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-11-28">
+  <owner>rsailer@chromium.org</owner>
+  <owner>src/components/ip_protection/OWNERS</owner>
+  <summary>
+    Records the error code passed to CanFalloverToNextProxy() for IP Protection
+    proxy chains. This function is called when a proxy fails, and the error code
+    is used to determine whether to try the next proxy in the chain or not.
+  </summary>
+  <token key="Chain">
+    <variant name="Chain0"/>
+    <variant name="Chain1"/>
+    <variant name="Chain2"/>
+    <variant name="Chain3"/>
+  </token>
+</histogram>
+
 <histogram name="Net.NeedsHWCAP2Workaround" enum="BooleanBroken"
     expires_after="2024-06-30">
   <owner>davidben@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/new_tab_page/histograms.xml b/tools/metrics/histograms/metadata/new_tab_page/histograms.xml
index 00b0f0d..f6ba6c2 100644
--- a/tools/metrics/histograms/metadata/new_tab_page/histograms.xml
+++ b/tools/metrics/histograms/metadata/new_tab_page/histograms.xml
@@ -366,7 +366,7 @@
 </histogram>
 
 <histogram name="NewTabPage.CustomizeChromeBackgroundAction"
-    enum="NTPCustomizeChromeBackgroundAction" expires_after="2025-05-31">
+    enum="NTPCustomizeChromeBackgroundAction" expires_after="2026-01-31">
   <owner>pauladedeji@google.com</owner>
   <owner>tiborg@chromium.org</owner>
   <owner>chrome-desktop-ntp@google.com</owner>
@@ -439,7 +439,7 @@
 </histogram>
 
 <histogram name="NewTabPage.CustomizeLocalImageBackgroundAction"
-    enum="NTPCustomizeLocalImageBackgroundAction" expires_after="2025-05-31">
+    enum="NTPCustomizeLocalImageBackgroundAction" expires_after="2026-01-31">
   <owner>pauladedeji@google.com</owner>
   <owner>tiborg@chromium.org</owner>
   <owner>chrome-desktop-ntp@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/platform/enums.xml b/tools/metrics/histograms/metadata/platform/enums.xml
index f49daa3..041906dc 100644
--- a/tools/metrics/histograms/metadata/platform/enums.xml
+++ b/tools/metrics/histograms/metadata/platform/enums.xml
@@ -2586,6 +2586,7 @@
   <int value="230386903" label="CROS Cr50 0.0.24 Eve Flags 0x7f00(prod)"/>
   <int value="245471087" label="CROS Cr50 0.4.25"/>
   <int value="267286010" label="CROS Cr50 0.6.40"/>
+  <int value="272592294" label="CROS Ti50 0.24.170"/>
   <int value="276176597" label="CROS Cr50 0.1.0 Flags 0x10(pre-pvt)"/>
   <int value="293403010" label="CROS Ti50 0.24.2"/>
   <int value="297017579" label="CROS Cr50 0.6.60 aka 0.6.80"/>
@@ -2720,6 +2721,7 @@
   <int value="1349306733" label="CROS Cr50 0.6.222"/>
   <int value="1352415402" label="CROS Ti50 0.24.160"/>
   <int value="1353576267" label="IFX 9635 fw 3.18 build 0009"/>
+  <int value="1355918206" label="CROS Ti50 0.24.171"/>
   <int value="1360145401" label="CROS Ti50 NT 0.36.4"/>
   <int value="1366252830" label="CROS Ti50 0.0.15"/>
   <int value="1374014142" label="CROS Ti50 NT 0.36.7"/>
@@ -2817,6 +2819,7 @@
   <int value="2104725364" label="CROS Cr50 0.3.20"/>
   <int value="2109398286" label="CROS Cr50 0.4.7"/>
   <int value="2109915777" label="CROS Cr50 0.6.261"/>
+  <int value="2121663881" label="CROS Ti50 0.24.172"/>
   <int value="2127616984" label="CROS Cr50 0.6.1"/>
   <int value="2128561741" label="CROS Cr50 0.5.93"/>
   <int value="2128775895" label="CROS Ti50 0.24.61"/>
diff --git a/tools/metrics/histograms/metadata/power/enums.xml b/tools/metrics/histograms/metadata/power/enums.xml
new file mode 100644
index 0000000..9174581
--- /dev/null
+++ b/tools/metrics/histograms/metadata/power/enums.xml
@@ -0,0 +1,41 @@
+<!--
+Copyright 2025 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<!--
+
+This file describes the enumerations referenced by entries in histograms.xml for
+this directory. Some enums may instead be listed in the central enums.xml file
+at src/tools/metrics/histograms/enums.xml when multiple files use them.
+
+For best practices on writing enumerations descriptions, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#Enum-Histograms
+
+Please follow the instructions in the OWNERS file in this directory to find a
+reviewer. If no OWNERS file exists, please consider signing up at
+go/reviewing-metrics (Googlers only), as all subdirectories are expected to
+have an OWNERS file. As a last resort you can send the CL to
+chromium-metrics-reviews@google.com.
+-->
+
+<histogram-configuration>
+
+<!-- Enum types -->
+
+<enums>
+
+<enum name="SystemHealthManagerError">
+<!-- LINT.IfChange(SystemHealthManagerError) -->
+
+  <int value="0" label="No power monitors available"/>
+  <int value="1" label="getPowerMonitorReadings call interrupted"/>
+  <int value="2" label="getPowerMonitorReadings call timed out"/>
+<!-- Lint.ThenChange(/base/android/java/src/org/chromium/base/PowerMonitor.java:SystemHealthManagerError) -->
+
+</enum>
+
+</enums>
+
+</histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/power/histograms.xml b/tools/metrics/histograms/metadata/power/histograms.xml
index 8779cee..0d1cecd 100644
--- a/tools/metrics/histograms/metadata/power/histograms.xml
+++ b/tools/metrics/histograms/metadata/power/histograms.xml
@@ -63,6 +63,40 @@
       summary="intervals with battery saver mode enabled."/>
 </variants>
 
+<variants name="Exclusive">
+<!--
+  Variants indicating if battery drain can be attributed to Chrome exclusively.
+-->
+
+  <variant name="" summary=""/>
+  <variant name=".Exclusive"
+      summary="However, only battery drain that can be attributed exclusively
+               to the time Chrome/WebView was visible is reported: The first
+               drain after becoming foregrounded is not reported. As a
+               result, this metric typically doesn't include drain related to
+               app startup. Note that other apps can still contribute to the
+               power consumed/tracked, e.g. due to using resources while they
+               are backgrounded or in a multi-window context."/>
+</variants>
+
+<variants name="InputScenario">
+<!--
+  Variants indicating an input scenario.
+-->
+
+<!-- LINT.IfChange(InputScenarioSuffix) -->
+
+  <variant name="_NoInput" summary="the user is not providing input"/>
+  <variant name="_Scroll" summary="the user scrolled"/>
+  <variant name="_Tap" summary="the user tapped but not scrolled"/>
+  <variant name="_Typing"
+      summary="The user typed be neither tapped nor scrolled"/>
+  <variant name="_UnknownInputScenario"
+      summary="input state could not be detected"/>
+<!-- LINT.ThenChange(/content/browser/android/battery_metrics.cc:InputScenarioSuffix) -->
+
+</variants>
+
 <variants name="IntervalType">
 <!--
     Variants describing if the histogram contains all samples, only the first
@@ -78,6 +112,28 @@
       summary="every sample recorded after the first one"/>
 </variants>
 
+<variants name="LoadingScenario">
+<!--
+  Variants indicating a page loading scenario.
+-->
+
+<!-- LINT.IfChange(LoadingScenarioSuffix) -->
+
+  <variant name=".BackgroundPageLoading"
+      summary="a background (but not focused or visible) page was loading for
+               some part of the 30s interval"/>
+  <variant name=".FocusedPageLoading"
+      summary="a focused page was loading for some part of the 30s interval"/>
+  <variant name=".NoPageLoading" summary="no page is loading"/>
+  <variant name=".UnknownLoadingScenario"
+      summary="page loading state could not be detected"/>
+  <variant name=".VisiblePageLoading"
+      summary="a visible (but not focused) page was loading for some part of
+               the 30s interval"/>
+<!-- LINT.ThenChange(/content/browser/android/battery_metrics.cc:LoadingScenarioSuffix) -->
+
+</variants>
+
 <variants name="ProcessName">
   <variant name="BrowserProcess" summary=""/>
   <variant name="GPUProcess" summary=""/>
@@ -1189,21 +1245,7 @@
     This histogram is of special interest to the chrome-analysis-team@. Do not
     change its semantics or retire it without talking to them first.
   </summary>
-  <token key="Exclusive">
-    <variant name="" summary=""/>
-    <variant name=".Exclusive"
-        summary="However, only battery drain that can be attributed
-                 exclusively to the time Chrome/WebView was visible is
-                 reported: The first drain after becoming foregrounded is not
-                 reported. As a result, this metric typically doesn't include
-                 drain related to app startup. Similarly, no values are
-                 reported for the time after the last capacity drop in a
-                 session, since these would likely under-account the actual
-                 battery drain in that time. Note that other apps can still
-                 contribute to the power consumed/tracked, e.g. due to using
-                 resources while they are backgrounded or in a multi-window
-                 context."/>
-  </token>
+  <token key="Exclusive" variants="Exclusive"/>
   <token key="DarkeningType">
     <variant name="" summary=""/>
     <variant name=".DarkMode"
@@ -1249,18 +1291,7 @@
     different times on the same device, also due to environmental factors like
     device temperature or charge level).
   </summary>
-  <token key="Exclusive">
-    <variant name="" summary=""/>
-    <variant name=".Exclusive"
-        summary="However, only battery drain that can be attributed
-                 exclusively to the time Chrome/WebView was visible is
-                 reported: The first drain after becoming foregrounded is not
-                 reported. As a result, this metric typically doesn't include
-                 drain related to app startup. Note that other apps can still
-                 contribute to the power consumed/tracked, e.g. due to using
-                 resources while they are backgrounded or in a multi-window
-                 context."/>
-  </token>
+  <token key="Exclusive" variants="Exclusive"/>
 </histogram>
 
 <histogram
@@ -1273,48 +1304,9 @@
     usage scenario classification: {LoadingScenario} and {InputScenario}.
     {Exclusive}
   </summary>
-  <token key="Exclusive">
-    <variant name="" summary=""/>
-    <variant name=".Exclusive"
-        summary="However, only battery drain that can be attributed
-                 exclusively to the time Chrome/WebView was visible is
-                 reported: The first drain after becoming foregrounded is not
-                 reported. As a result, this metric typically doesn't include
-                 drain related to app startup. Note that other apps can still
-                 contribute to the power consumed/tracked, e.g. due to using
-                 resources while they are backgrounded or in a multi-window
-                 context."/>
-  </token>
-<!-- LINT.IfChange(LoadingScenarioSuffix) -->
-
-  <token key="LoadingScenario">
-    <variant name=".BackgroundPageLoading"
-        summary="a background (but not focused or visible) page was loading
-                 for some part of the 30s interval"/>
-    <variant name=".FocusedPageLoading"
-        summary="a focused page was loading for some part of the 30s interval"/>
-    <variant name=".NoPageLoading" summary="no page is loading"/>
-    <variant name=".UnknownLoadingScenario"
-        summary="page loading state could not be detected"/>
-    <variant name=".VisiblePageLoading"
-        summary="a visible (but not focused) page was loading for some part
-                 of the 30s interval"/>
-  </token>
-<!-- LINT.ThenChange(/content/browser/android/battery_metrics.cc:LoadingScenarioSuffix) -->
-
-<!-- LINT.IfChange(InputScenarioSuffix) -->
-
-  <token key="InputScenario">
-    <variant name="_NoInput" summary="the user is not providing input"/>
-    <variant name="_Scroll" summary="the user scrolled"/>
-    <variant name="_Tap" summary="the user tapped but not scrolled"/>
-    <variant name="_Typing"
-        summary="The user typed be neither tapped nor scrolled"/>
-    <variant name="_UnknownInputScenario"
-        summary="input state could not be detected"/>
-  </token>
-<!-- LINT.ThenChange(/content/browser/android/battery_metrics.cc:InputScenarioSuffix) -->
-
+  <token key="Exclusive" variants="Exclusive"/>
+  <token key="LoadingScenario" variants="LoadingScenario"/>
+  <token key="InputScenario" variants="InputScenario"/>
 </histogram>
 
 <histogram name="Power.ForegroundBatteryDrain{Exclusive}" units="0.1 mAh"
@@ -1343,18 +1335,28 @@
     For a histogram of daily per-user values, see the computed histogram
     Power.DailyForegroundBatteryDrain.
   </summary>
-  <token key="Exclusive">
-    <variant name="" summary=""/>
-    <variant name=".Exclusive"
-        summary="However, only battery drain that can be attributed
-                 exclusively to the time Chrome/WebView was visible is
-                 reported: The first drain after becoming foregrounded is not
-                 reported. As a result, this metric typically doesn't include
-                 drain related to app startup. Note that other apps can still
-                 contribute to the power consumed/tracked, e.g. due to using
-                 resources while they are backgrounded or in a multi-window
-                 context."/>
-  </token>
+  <token key="Exclusive" variants="Exclusive"/>
+</histogram>
+
+<histogram
+    name="Power.ForegroundEnergyConsumedPerScenario.30Seconds{Exclusive}{LoadingScenario}{InputScenario}"
+    units="uWh" expires_after="2026-04-15">
+  <owner>kraskevich@google.com</owner>
+  <owner>woa-performance@google.com</owner>
+  <summary>
+    Similar to Power.ForegroundBatteryDrain.30Seconds, with additional Chrome
+    usage scenario classification: {LoadingScenario} and {InputScenario}.
+    {Exclusive}
+
+    This metric uses a more accurate (but less widely supported) underlying API
+    https://developer.android.com/reference/android/os/health/SystemHealthManager.
+
+    The reported value is energy consumed during the 30s interval in
+    microwatt-hours.
+  </summary>
+  <token key="Exclusive" variants="Exclusive"/>
+  <token key="LoadingScenario" variants="LoadingScenario"/>
+  <token key="InputScenario" variants="InputScenario"/>
 </histogram>
 
 <histogram name="Power.HasPreciseBatteryDischargeGranularity" enum="Boolean"
@@ -1810,6 +1812,18 @@
   </summary>
 </histogram>
 
+<histogram name="Power.SystemHealthManagerError"
+    enum="SystemHealthManagerError" expires_after="2026-04-15">
+  <owner>kraskevich@google.com</owner>
+  <owner>woa-performance@google.com</owner>
+  <summary>
+    Records errors for SystemHealthManager API calls.
+
+    The SystemHealthManager API is used for computing
+    Power.ForegroundEnergyConsumedPerScenario.30Seconds.
+  </summary>
+</histogram>
+
 <histogram name="Power.TimeInSuspendAtBoot" units="minutes"
     expires_after="2025-08-24">
   <owner>tbroch@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/sync/enums.xml b/tools/metrics/histograms/metadata/sync/enums.xml
index c3830a0eb..8d19492 100644
--- a/tools/metrics/histograms/metadata/sync/enums.xml
+++ b/tools/metrics/histograms/metadata/sync/enums.xml
@@ -399,6 +399,8 @@
   <int value="81" label="AutofillBnplEnabled"/>
   <int value="82" label="AutofillHasSeenBnpl"/>
   <int value="83" label="AutomaticPasskeyUpgrades"/>
+  <int value="84" label="(test) SyncablePriorityPrefForTesting"/>
+  <int value="85" label="(test) SyncableAlwaysSyncingPriorityPrefForTesting"/>
 <!-- LINT.ThenChange(/components/sync_preferences/common_syncable_prefs_database.cc:CommonSyncablePref)-->
 
 <!-- LINT.IfChange(ChromeSyncablePref) -->
diff --git a/tools/perf/core/bot_platforms.py b/tools/perf/core/bot_platforms.py
index 0d8bd8c..13e93cd7 100644
--- a/tools/perf/core/bot_platforms.py
+++ b/tools/perf/core/bot_platforms.py
@@ -658,6 +658,7 @@
     'speedometer2-minorms',
     'speedometer3-minorms',
 ])
+_MAC_M3_PRO_BENCHMARK_CONFIGS = PerfSuite([])
 
 _WIN_10_BENCHMARK_CONFIGS = PerfSuite(OFFICIAL_BENCHMARK_CONFIGS).Remove([
     'v8.runtime_stats.top_25',
@@ -844,7 +845,12 @@
                           20,
                           'mac',
                           crossbench=_CROSSBENCH_BENCHMARKS_ALL)
-
+MAC_M3_PRO = PerfPlatform('mac-m3-pro-perf',
+                          'Mac M3 PRO ARM',
+                          _MAC_M3_PRO_BENCHMARK_CONFIGS,
+                          4,
+                          'mac',
+                          crossbench=_CROSSBENCH_BENCHMARKS_ALL)
 # Win
 WIN_10_LOW_END = PerfPlatform(
     'win-10_laptop_low_end-perf',
diff --git a/tools/perf/core/perf_data_generator.py b/tools/perf/core/perf_data_generator.py
index b185ba9e..4605d4d 100755
--- a/tools/perf/core/perf_data_generator.py
+++ b/tools/perf/core/perf_data_generator.py
@@ -138,6 +138,7 @@
     'mac-m1_mini_2020-perf',
     'mac-m1_mini_2020-perf-pgo',
     'mac-m2-pro-perf',
+    'mac-m3-pro-perf',
     'win-10-processor-perf',
     'win-10_amd_laptop-perf',
     'win-10_laptop_low_end-processor-perf',
@@ -991,6 +992,30 @@
             'Mac14,7_arm64-64-Apple_M2_apple m2_8192_APPLE SSD AP0256Z',
         },
     },
+    'mac-m3-pro-perf': {
+        'tests': [
+            {
+                'isolate': 'performance_test_suite',
+                'extra_args': [
+                    '--assert-gpu-compositing',
+                ],
+            },
+        ],
+        'platform':
+        'mac',
+        'dimension': {
+            'cpu':
+            'arm',
+            'mac_model':
+            'Mac15,3',
+            'os':
+            'Mac',
+            'pool':
+            'chrome.tests.perf',
+            'synthetic_product_name':
+            'Mac15,3_arm64-64-Apple_M3_apple m3_8192_APPLE SSD AP0512Z',
+        },
+    },
     'win-10_amd_laptop-perf': {
         'tests': [
             {
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index acd91cc7..37f3e0d8 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,8 +5,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v50.1/linux-arm64/trace_processor_shell"
         },
         "win": {
-            "hash": "cb116261436227ccbb63f5179aab563c8fb6cba7",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/8a38f2ad11b6b2bf0a4d60b39c79d00d35fdbc01/trace_processor_shell.exe"
+            "hash": "8a1ee5642da9d94ef5bd5d754ed999d046c3c93a",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/b9acf7ff3553f8cf7545dc5e2bfb1b1e1a4a7081/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "99f971ca131f6d11c73f4b918099d434bdd8093c",
@@ -21,8 +21,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v50.1/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "c5095d45c469e7f629d445dfff678d2a1d5811c8",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/6acaf607621ce5a117dc1a9773f27aa0d4c77b5b/trace_processor_shell"
+            "hash": "10f385bffae6657b01d20dca71335daf1769dccf",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/b9acf7ff3553f8cf7545dc5e2bfb1b1e1a4a7081/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/perf/core/shard_maps/mac-m3-pro-perf_map.json b/tools/perf/core/shard_maps/mac-m3-pro-perf_map.json
new file mode 100644
index 0000000..ebb5b31f
--- /dev/null
+++ b/tools/perf/core/shard_maps/mac-m3-pro-perf_map.json
@@ -0,0 +1,65 @@
+{
+    "0": {
+        "crossbench": {
+            "speedometer_3.1": {
+                "display_name": "speedometer3.1.crossbench",
+                "arguments": []
+            },
+            "jetstream_2.2": {
+                "display_name": "jetstream2.crossbench",
+                "arguments": []
+            }
+        },
+        "benchmarks": {}
+    },
+    "1": {
+        "crossbench": {
+            "speedometer_3.1": {
+                "display_name": "speedometer3.1.crossbench",
+                "arguments": []
+            }
+        },
+        "benchmarks": {}
+    },
+    "2": {
+        "crossbench": {
+            "speedometer_3.1": {
+                "display_name": "speedometer3.1.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        },
+        "benchmarks": {}
+    },
+    "3": {
+        "crossbench": {
+            "speedometer_3.1": {
+                "display_name": "speedometer3.1.crossbench",
+                "arguments": []
+            },
+            "speedometer_2.1": {
+                "display_name": "speedometer2.1.crossbench",
+                "arguments": []
+            },
+            "speedometer_3.0": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            }
+        },
+        "benchmarks": {}
+    },
+    "extra_infos": {
+        "num_stories": 8,
+        "predicted_min_shard_time": 60,
+        "predicted_min_shard_index": 1,
+        "predicted_max_shard_time": 420,
+        "predicted_max_shard_index": 2,
+        "shard #0": 240,
+        "shard #1": 60,
+        "shard #2": 420,
+        "shard #3": 180
+    }
+}
diff --git a/tools/perf/core/shard_maps/timing_data/mac-m3-pro-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-m3-pro-perf_timing.json
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/tools/perf/core/shard_maps/timing_data/mac-m3-pro-perf_timing.json
@@ -0,0 +1 @@
+[]
diff --git a/tools/perf/cross_device_test_config.py b/tools/perf/cross_device_test_config.py
index 7c74b34..28d59943 100644
--- a/tools/perf/cross_device_test_config.py
+++ b/tools/perf/cross_device_test_config.py
@@ -306,4 +306,7 @@
         'speedometer3.crossbench': 4,
         'speedometer3.1.crossbench': 4,
     },
+     'mac-m3-pro-perf': {
+        'speedometer3.1.crossbench': 4,
+    },
 }
diff --git a/tools/rust/update_rust.py b/tools/rust/update_rust.py
index c9a4f2f..183e234 100755
--- a/tools/rust/update_rust.py
+++ b/tools/rust/update_rust.py
@@ -31,7 +31,7 @@
 
 # These fields are written by //tools/clang/scripts/upload_revision.py, and
 # should not be changed manually.
-RUST_REVISION = '3f690c2257b7080cd3a8cce64e082fc972148990'
+RUST_REVISION = 'c8f94230282a8e8c1148f3e657f0199aad909228'
 RUST_SUB_REVISION = 1
 
 # The revision of Crubit to use from https://github.com/google/crubit
@@ -46,7 +46,7 @@
 # Hash of src/stage0.json, which itself contains the stage0 toolchain hashes.
 # We trust the Rust build system checks, but to ensure it is not tampered with
 # itself check the hash.
-STAGE0_JSON_SHA256 = 'ad3095f23fe55ef1d86bc8ee8b5d31eb4e98eb3d8a6d163c295625ffa18ca35a'
+STAGE0_JSON_SHA256 = '1113296e1412c791d09f3033355001061e7ca36e06e796ff0f1f798791a6d93b'
 
 THIS_DIR = os.path.abspath(os.path.dirname(__file__))
 CHROMIUM_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..'))