diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 91ccd8c..b12c703 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -35,7 +35,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-17-init-10134-g3da83fba'
+CLANG_REVISION = 'llvmorg-17-init-12166-g7586aeab'
 CLANG_SUB_REVISION = 2
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index c63d483..4fba9c2 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -9497,6 +9497,13 @@
   <int value="3" label="Upload / conflict resolution in initial sync"/>
 </enum>
 
+<enum name="AutofillProviderPackageName">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Autofill with Google"/>
+  <int value="2" label="Samsung Pass"/>
+  <int value="3" label="LastPass"/>
+</enum>
+
 <enum name="AutofillQualitiyMetricType">
   <int value="0" label="TYPE_SUBMISSION"/>
   <int value="1" label="TYPE_NO_SUBMISSION"/>
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml
index 626d216..d06c46a 100644
--- a/tools/metrics/histograms/metadata/android/histograms.xml
+++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -4245,13 +4245,14 @@
   </summary>
 </histogram>
 
-<histogram name="Android.WebView.Gfx.SaveHWUIStateDuration" units="ms"
-    expires_after="2023-12-01">
+<histogram name="Android.WebView.Gfx.SaveHWUIStateMicroseconds"
+    units="microseconds" expires_after="2023-12-01">
   <owner>blundell@chromium.org</owner>
   <owner>vasilyt@chromium.org</owner>
   <summary>
-    Tracks the amount of time that it took for WebView to save HWUI state.
-    Recorded once per saving of HWUI state.
+    Tracks the amount of time that it took for WebView to save HWUI's GL state.
+    Recorded once per saving of HWUI state when drawing with GL. This is
+    recorded only on devices that support high resolution timers.
   </summary>
 </histogram>
 
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml
index df050ce..f4c017c7 100644
--- a/tools/metrics/histograms/metadata/autofill/histograms.xml
+++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -5442,6 +5442,18 @@
   <token key="AutofillFormType" variants="AutofillFormType"/>
 </histogram>
 
+<histogram name="Autofill.WebView.Provider.PackageName"
+    enum="AutofillProviderPackageName" expires_after="2023-05-23">
+  <owner>alexmitra@chromium.org</owner>
+  <owner>src/android_webview/OWNERS</owner>
+  <summary>
+    Records the Autofill provider on the device if it matches a fixed list of
+    package names or unknown otherwise. This is recorded once for a given
+    AwContents. It is recorded on AutofillProvider initialization. Only recorded
+    in Android P and beyond.
+  </summary>
+</histogram>
+
 <histogram name="Autofill.WebView.ServerPrediction.AwGSuggestionAvailability"
     enum="AutofillAwGSuggestionAvailability" expires_after="2023-12-12">
   <owner>battre@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/cryptohome/histograms.xml b/tools/metrics/histograms/metadata/cryptohome/histograms.xml
index 09b7a118f..ef5c2c04 100644
--- a/tools/metrics/histograms/metadata/cryptohome/histograms.xml
+++ b/tools/metrics/histograms/metadata/cryptohome/histograms.xml
@@ -933,7 +933,7 @@
 </histogram>
 
 <histogram name="Cryptohome.{AuthBlockType}.CredentialRevocationResult"
-    enum="CryptohomeLECredError" expires_after="2023-07-01">
+    enum="CryptohomeLECredError" expires_after="2024-01-01">
   <owner>anastasiian@chromium.org</owner>
   <owner>cros-lurs@google.com</owner>
   <owner>cros-hwsec+uma@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
index be907560..524827f 100644
--- a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
+++ b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
@@ -346,6 +346,8 @@
   <variant name="" summary="any tutorial"/>
   <variant name=".CustomizeChromeSidePanel"
       summary="the tutorial for the customize chrome side panel"/>
+  <variant name=".PasswordManager"
+      summary="the tutorial for the password manager"/>
   <variant name=".SidePanelReadingList"
       summary="the tutorial for the side panel reading list"/>
   <variant name=".TabGroup" summary="the tutorial for tab groups"/>
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
index e477364..d6b26e38 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -5856,13 +5856,6 @@
   <affected-histogram name="Webapp.InstallResult"/>
 </histogram_suffixes>
 
-<histogram_suffixes name="WebFontFamily" separator="_">
-  <suffix name="opensans" label="Open Sans font"/>
-  <suffix name="others" label="Fonts other than Roboto and Open Sans"/>
-  <suffix name="roboto" label="Roboto font"/>
-  <affected-histogram name="WebFont.HttpCacheStatus"/>
-</histogram_suffixes>
-
 <histogram_suffixes name="WebMediaPlayerImplTypes" separator=".">
   <suffix name="EME"
       label="For Encrypted Media Extensions (EME) based playbacks."/>
diff --git a/tools/metrics/histograms/metadata/navigation/histograms.xml b/tools/metrics/histograms/metadata/navigation/histograms.xml
index e0b74bc..c965cb92 100644
--- a/tools/metrics/histograms/metadata/navigation/histograms.xml
+++ b/tools/metrics/histograms/metadata/navigation/histograms.xml
@@ -1238,9 +1238,9 @@
 </histogram>
 
 <histogram name="Navigation.Prerender.ActivationCommitDeferTime" units="ms"
-    expires_after="2023-06-04">
-  <owner>sreejakshetty@chromium.org</owner>
-  <owner>altimin@chromium.org</owner>
+    expires_after="2023-11-23">
+  <owner>nhiroki@chromium.org</owner>
+  <owner>chrome-prerendering@chromium.org</owner>
   <summary>
     Measures time a PrerenderCommitDeferringCondition defers activation waiting
     to commit an ongoing mainframe prerender navigation. Logged every time a
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index 9e269d4..e6b257e 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -14433,16 +14433,6 @@
   </summary>
 </histogram>
 
-<histogram base="true" name="WebFont.HttpCacheStatus" enum="HttpCachePattern"
-    expires_after="2021-11-08">
-  <owner>yaoxia@chromium.org</owner>
-  <owner>shivanisha@chromium.org</owner>
-  <summary>
-    For each http cache transaction for a font in Google Fonts, record the cache
-    status.
-  </summary>
-</histogram>
-
 <histogram name="WebFont.LoadLimitOnDiskCacheMiss" enum="WebFontLoadLimitState"
     expires_after="2021-03-21">
   <obsolete>
diff --git a/tools/metrics/histograms/metadata/profile/histograms.xml b/tools/metrics/histograms/metadata/profile/histograms.xml
index 9d420af..73fa137 100644
--- a/tools/metrics/histograms/metadata/profile/histograms.xml
+++ b/tools/metrics/histograms/metadata/profile/histograms.xml
@@ -371,7 +371,7 @@
 </histogram>
 
 <histogram name="Profile.Menu.ClickedActionableItem"
-    enum="ProfileMenuActionableItem" expires_after="2023-06-30">
+    enum="ProfileMenuActionableItem" expires_after="2024-06-30">
   <owner>droger@chromium.org</owner>
   <owner>msarda@chromium.org</owner>
   <owner>chrome-signin-team@google.com</owner>
diff --git a/tools/perf/benchmarks/speedometer2.py b/tools/perf/benchmarks/speedometer2.py
index f7952d0..0bc89856 100644
--- a/tools/perf/benchmarks/speedometer2.py
+++ b/tools/perf/benchmarks/speedometer2.py
@@ -131,6 +131,7 @@
   """Speedometer2.0 benchmark.
   Explicitly named version."""
 
+  # TODO(cbruni): update source folder name to speedometer20 here.
   _SOURCE_DIR = os.path.join(_PERF_TEST_DIR, 'speedometer')
 
   @classmethod
@@ -149,8 +150,7 @@
   """Speedometer2.1 benchmark.
   Explicitly named version."""
 
-  #TODO(cbruni): update path once new version is checked in.
-  _SOURCE_DIR = os.path.join(_PERF_TEST_DIR, 'speedometer')
+  _SOURCE_DIR = os.path.join(_PERF_TEST_DIR, 'speedometer21')
 
   @classmethod
   def GetStoryClass(cls):
diff --git a/tools/rust/build_rust.py b/tools/rust/build_rust.py
index 25257b5..f0628527 100755
--- a/tools/rust/build_rust.py
+++ b/tools/rust/build_rust.py
@@ -734,6 +734,10 @@
         # Cargo depends on OpenSSL.
         AddOpenSSLToEnv(args.build_mac_arm)
 
+    if sys.platform == 'win32':
+        # Use curl to prime Windows's root cert store (crbug.com/1448442).
+        RunCommand(['curl', '-I', 'https://static.rust-lang.org'])
+
     xpy = XPy(zlib_path, libxml2_dirs, args.build_mac_arm, args.gcc_toolchain,
               args.verbose)
 
diff --git a/tools/rust/update_rust.py b/tools/rust/update_rust.py
index db9735a..1700886 100755
--- a/tools/rust/update_rust.py
+++ b/tools/rust/update_rust.py
@@ -32,7 +32,7 @@
 
 # These fields are written by //tools/clang/scripts/upload_revision.py, and
 # should not be changed manually.
-RUST_REVISION = '2a8221dbdfd180a2d56d4b0089f4f3952d8c2bcd'
+RUST_REVISION = 'f3d597b31c0f101a02c230798afa31a36bdacbc6'
 RUST_SUB_REVISION = 1
 
 # Trunk on 2022-10-15.