diff --git a/tools/bisect-builds.py b/tools/bisect-builds.py
index 674fd09..3727afd 100755
--- a/tools/bisect-builds.py
+++ b/tools/bisect-builds.py
@@ -62,7 +62,7 @@
 CHROMIUM_SEARCH_PATTERN_OLD = (
     r'.*git-svn-id: svn://svn.chromium.org/chrome/trunk/src@(\d+) ')
 CHROMIUM_SEARCH_PATTERN = (
-    r'Cr-Commit-Position: refs/heads/master@{#(\d+)}')
+    r'Cr-Commit-Position: refs/heads/(?:master|main)@{#(\d+)}')
 
 # Search pattern to be matched in the json output from
 # BLINK_GITHASH_TO_SVN_URL to get the blink revision (svn revision).
diff --git a/tools/clang/scripts/build.py b/tools/clang/scripts/build.py
index 56c6fb93..f421cbc 100755
--- a/tools/clang/scripts/build.py
+++ b/tools/clang/scripts/build.py
@@ -471,15 +471,6 @@
 
   global CLANG_REVISION, PACKAGE_VERSION, LLVM_BUILD_DIR
 
-  # TODO(crbug.com/1233845): Remove in the next Clang roll.
-  if args.llvm_force_head_revision:
-    global RELEASE_VERSION
-    RELEASE_VERSION = '14.0.0'
-    old_lib_dir = os.path.join(LLVM_BUILD_DIR, 'lib', 'clang', '13.0.0')
-    if (os.path.isdir(old_lib_dir)):
-      print('Removing old lib dir: ' + old_lib_dir)
-      RmTree(old_lib_dir)
-
   if (args.pgo or args.thinlto) and not args.bootstrap:
     print('--pgo/--thinlto requires --bootstrap')
     return 1
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index b8f44d2..e592ae2 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -39,12 +39,11 @@
 # 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-13-init-15561-gf98ed74f'
+CLANG_REVISION = 'llvmorg-14-init-591-g7d9d926a'
 CLANG_SUB_REVISION = 1
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
-RELEASE_VERSION = '13.0.0'
-# TODO(crbug.com/1233845): Bump to 14.0.0 in the next Clang roll.
+RELEASE_VERSION = '14.0.0'
 
 CDS_URL = os.environ.get('CDS_CLANG_BUCKET_OVERRIDE',
     'https://commondatastorage.googleapis.com/chromium-browser-clang')
@@ -312,11 +311,6 @@
                       help='Verify that clang has the passed-in version.')
   args = parser.parse_args()
 
-  # TODO(crbug.com/1233845): Remove in the next Clang roll.
-  if args.llvm_force_head_revision:
-    global RELEASE_VERSION
-    RELEASE_VERSION = '14.0.0'
-
   if args.verify_version and args.verify_version != RELEASE_VERSION:
     print('RELEASE_VERSION is %s but --verify-version argument was %s.' % (
         RELEASE_VERSION, args.verify_version))
diff --git a/tools/ipc_fuzzer/message_lib/BUILD.gn b/tools/ipc_fuzzer/message_lib/BUILD.gn
index 7ee2596..6aca6eb 100644
--- a/tools/ipc_fuzzer/message_lib/BUILD.gn
+++ b/tools/ipc_fuzzer/message_lib/BUILD.gn
@@ -47,9 +47,6 @@
     public_deps += [ "//components/nacl/common" ]
   }
   if (enable_remoting) {
-    public_deps += [
-      "//remoting/host",
-      "//remoting/host:headers",
-    ]
+    public_deps += [ "//remoting/host" ]
   }
 }
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index 01a4e783..b777526c 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -101,13 +101,13 @@
       'android-weblayer-with-aosp-webview-x86-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_resource_allowlisting_disable_proguard_chrome_google',
       'android-weblayer-x86-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_disable_proguard_webview_google',
       'android-10-arm64-rel': 'android_release_bot_minimal_symbols_arm64_fastbuild_webview_google',
+      'android-11-x86-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_webview_google',
     },
 
     'chromium.android.fyi': {
       'Android ASAN (dbg) (reclient)': 'android_clang_asan_debug_bot_reclient',
       'Android arm64 Builder (dbg) (reclient)': 'android_webview_google_debug_static_bot_arm64_reclient',
       'Android WebView P FYI (rel)': 'android_release_bot_minimal_symbols_arm64_webview_google',
-      'android-11-x86-fyi-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_webview_google',
       'android-12-x64-fyi-rel': 'android_release_bot_minimal_symbols_x64_fastbuild_webview_google',
       'android-pie-arm64-wpt-rel-non-cq': 'android_release_bot_minimal_symbols_arm64_webview_google',
       'android-web-platform-pie-x86-fyi-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_webview_google',
@@ -824,7 +824,7 @@
       'android-weblayer-pie-x86-wpt-smoketest': 'android_release_trybot_x86_fastbuild_webview_google',
       'android-webview-pie-arm64-fyi-rel': 'android_release_trybot_arm64_webview_google',
       'android-10-arm64-rel': 'android_release_trybot_arm64_fastbuild_webview_google',
-      'android-11-x86-fyi-rel': 'android_release_trybot_x86_fastbuild_webview_google',
+      'android-11-x86-rel': 'android_release_trybot_x86_fastbuild_webview_google',
       'android-12-x64-fyi-rel': 'android_release_trybot_x64_fastbuild_webview_google',
       'android-webview-marshmallow-arm64-dbg': 'android_release_trybot_arm64_webview_google',
       'android-webview-nougat-arm64-dbg': 'android_release_trybot_arm64_webview_google',
diff --git a/tools/mb/mb_config_expectations/chromium.android.fyi.json b/tools/mb/mb_config_expectations/chromium.android.fyi.json
index 506d6dc2..6c06eae 100644
--- a/tools/mb/mb_config_expectations/chromium.android.fyi.json
+++ b/tools/mb/mb_config_expectations/chromium.android.fyi.json
@@ -41,23 +41,6 @@
       "use_rbe": true
     }
   },
-  "android-11-x86-fyi-rel": {
-    "gn_args": {
-      "dcheck_always_on": false,
-      "disable_android_lint": true,
-      "ffmpeg_branding": "Chrome",
-      "is_component_build": false,
-      "is_debug": false,
-      "proprietary_codecs": true,
-      "strip_debug_info": true,
-      "symbol_level": 1,
-      "system_webview_package_name": "com.google.android.webview",
-      "target_cpu": "x86",
-      "target_os": "android",
-      "use_errorprone_java_compiler": false,
-      "use_goma": true
-    }
-  },
   "android-12-x64-fyi-rel": {
     "gn_args": {
       "dcheck_always_on": false,
diff --git a/tools/mb/mb_config_expectations/chromium.android.json b/tools/mb/mb_config_expectations/chromium.android.json
index e841bf1..59931af0 100644
--- a/tools/mb/mb_config_expectations/chromium.android.json
+++ b/tools/mb/mb_config_expectations/chromium.android.json
@@ -114,6 +114,23 @@
       "use_goma": true
     }
   },
+  "android-11-x86-rel": {
+    "gn_args": {
+      "dcheck_always_on": false,
+      "disable_android_lint": true,
+      "ffmpeg_branding": "Chrome",
+      "is_component_build": false,
+      "is_debug": false,
+      "proprietary_codecs": true,
+      "strip_debug_info": true,
+      "symbol_level": 1,
+      "system_webview_package_name": "com.google.android.webview",
+      "target_cpu": "x86",
+      "target_os": "android",
+      "use_errorprone_java_compiler": false,
+      "use_goma": true
+    }
+  },
   "android-arm64-proguard-rel": {
     "gn_args": {
       "dcheck_always_on": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.android.json b/tools/mb/mb_config_expectations/tryserver.chromium.android.json
index d9f0c98..9f75201 100644
--- a/tools/mb/mb_config_expectations/tryserver.chromium.android.json
+++ b/tools/mb/mb_config_expectations/tryserver.chromium.android.json
@@ -17,7 +17,7 @@
       "use_goma": true
     }
   },
-  "android-11-x86-fyi-rel": {
+  "android-11-x86-rel": {
     "gn_args": {
       "blink_enable_generated_code_formatting": false,
       "dcheck_always_on": true,
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index c02a6bd..40e2ba5 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -33802,8 +33802,8 @@
   <int value="3711" label="BarcodeDetectorDetect"/>
   <int value="3712" label="FaceDetectorDetect"/>
   <int value="3713" label="TextDetectorDetect"/>
-  <int value="3714" label="LocalStorageFirstUsedBeforeFcp"/>
-  <int value="3715" label="LocalStorageFirstUsedAfterFcp"/>
+  <int value="3714" label="OBSOLETE_LocalStorageFirstUsedBeforeFcp"/>
+  <int value="3715" label="OBSOLETE_LocalStorageFirstUsedAfterFcp"/>
   <int value="3716" label="OBSOLETE_CSSPseudoHostCompoundList"/>
   <int value="3717" label="OBSOLETE_CSSPseudoHostContextCompoundList"/>
   <int value="3718" label="OBSOLETE_CSSPseudoHostDynamicSpecificity"/>
@@ -33885,8 +33885,8 @@
   <int value="3790" label="WindowScreenChange"/>
   <int value="3791" label="XRWebGLDepthInformationTextureAttribute"/>
   <int value="3792" label="XRWebGLBindingGetDepthInformation"/>
-  <int value="3793" label="SessionStorageFirstUsedBeforeFcp"/>
-  <int value="3794" label="SessionStorageFirstUsedAfterFcp"/>
+  <int value="3793" label="OBSOLETE_SessionStorageFirstUsedBeforeFcp"/>
+  <int value="3794" label="OBSOLETE_SessionStorageFirstUsedAfterFcp"/>
   <int value="3795" label="GravitySensorConstructor"/>
   <int value="3796" label="ElementInternalsStates"/>
   <int value="3797" label="WebPImage"/>
@@ -45184,7 +45184,7 @@
 </enum>
 
 <enum name="LaunchMode">
-  <int value="1" label="LM_AS_WEBAPP_WINDOW">
+  <int value="1" label="(DEPRECATED) LM_AS_WEBAPP_WINDOW">
     Launched as an installed web application in a standalone window
   </int>
   <int value="2" label="LM_WITH_URLS">Launched with urls in the cmd line</int>
@@ -45249,6 +45249,18 @@
   <int value="22" label="LM_UNKNOWN_WEBAPP">
     The requested web application was not installed
   </int>
+  <int value="23" label="LM_AS_WEBAPP_WINDOW_BY_URL">
+    Launched installed web app in standalone window from command line, using
+    --app flag.
+  </int>
+  <int value="24" label="LM_AS_WEBAPP_WINDOW_BY_APP_ID">
+    Launched installed web app in standalone window from command line, using
+    --app-id flag.
+  </int>
+  <int value="25" label="LM_AS_WEBAPP_WINDOW_OTHER">
+    Launched installed web app in standalone window by any method other than
+    command line or a platform shortcut.
+  </int>
 </enum>
 
 <enum name="LaunchSource">
@@ -49302,6 +49314,7 @@
       label="ChromeHomePersonalizedOmniboxSuggestions:enabled"/>
   <int value="84911198" label="ScanCardsInWebPayments:disabled"/>
   <int value="87886288" label="DiagnosticsApp:enabled"/>
+  <int value="88249612" label="CalendarView:enabled"/>
   <int value="88437020" label="FeaturePolicy:enabled"/>
   <int value="89357752" label="PdfXfaSupport:enabled"/>
   <int value="89758831" label="FontAccessChooser:enabled"/>
@@ -50223,6 +50236,7 @@
   <int value="835726069" label="NtpWebUI:disabled"/>
   <int value="836406476" label="EnableTouchableAppContextMenu:enabled"/>
   <int value="837350465" label="SystemProxyForSystemServices:enabled"/>
+  <int value="838300788" label="CalendarView:disabled"/>
   <int value="838887742" label="manual-enhanced-bookmarks"/>
   <int value="839230937" label="AutofillEnableCardNicknameUpstream:disabled"/>
   <int value="839798268" label="SafeBrowsingTelemetryForApkDownloads:disabled"/>
@@ -64387,6 +64401,9 @@
 </enum>
 
 <enum name="PeerConnectionOfferExtmapAllowMixed">
+  <obsolete>
+    Removed as of 2021-07-30.
+  </obsolete>
   <int value="0" label="Default"/>
   <int value="1" label="Enabled"/>
   <int value="2" label="Disabled"/>
@@ -66308,6 +66325,7 @@
   <int value="24" label="kStop"/>
   <int value="25" label="kSslCertificateError"/>
   <int value="26" label="kLoginAuthRequested"/>
+  <int value="27" label="kUaChangeRequiresReload"/>
 </enum>
 
 <enum name="PrerenderHoverEvent">
@@ -81716,7 +81734,7 @@
   <int value="28" label="kSettingsResetPromptLastTriggeredForHomepage"/>
   <int value="29" label="kMediaStorageIdSalt"/>
   <int value="30" label="kModuleBlocklistCacheMD5Digest"/>
-  <int value="32" label="kMediaCdmOrigin"/>
+  <int value="32" label="kMediaCdmOriginData"/>
 </enum>
 
 <enum name="TranslateAssistContentResult">
diff --git a/tools/metrics/histograms/extract_histograms.py b/tools/metrics/histograms/extract_histograms.py
index e996d42..c224700 100644
--- a/tools/metrics/histograms/extract_histograms.py
+++ b/tools/metrics/histograms/extract_histograms.py
@@ -21,7 +21,6 @@
   <owner>person@chromium.org</owner>
   <owner>some-team@chromium.org</owner>
   <summary>A brief description.</summary>
-  <details>This is a more thorough description of this histogram.</details>
 </histogram>
 
 <histogram name="HistogramEnum" enum="MyEnumType">
@@ -630,11 +629,6 @@
     if histogram.hasAttribute('units'):
       histogram_entry['units'] = histogram.getAttribute('units')
 
-    # Find <details> tag.
-    for node in IterElementsWithTag(histogram, 'details'):
-      histogram_entry['details'] = _GetTextFromChildNodes(node)
-      break
-
     # Handle enum types.
     if histogram.hasAttribute('enum'):
       enum_name = histogram.getAttribute('enum')
diff --git a/tools/metrics/histograms/histogram_configuration_model.py b/tools/metrics/histograms/histogram_configuration_model.py
index 0e7cda01..68dbd9e 100644
--- a/tools/metrics/histograms/histogram_configuration_model.py
+++ b/tools/metrics/histograms/histogram_configuration_model.py
@@ -14,7 +14,6 @@
 _OWNER_TYPE = models.TextNodeType('owner', single_line=True)
 _COMPONENT_TYPE = models.TextNodeType('component', single_line=True)
 _SUMMARY_TYPE = models.TextNodeType('summary', single_line=True)
-_DETAILS_TYPE = models.TextNodeType('details')
 
 # A key for sorting XML nodes by the lower case of the value of |attribute|.
 _LOWERCASE_FN = lambda attribute: (lambda node: node.get(attribute).lower())
@@ -145,7 +144,6 @@
         (_OWNER_TYPE.tag, _KEEP_ORDER),
         (_COMPONENT_TYPE.tag, _KEEP_ORDER),
         (_SUMMARY_TYPE.tag, _KEEP_ORDER),
-        (_DETAILS_TYPE.tag, _KEEP_ORDER),
         (_TOKEN_TYPE.tag, _KEEP_ORDER),
     ],
     extra_newlines=(1, 1, 1),
@@ -154,7 +152,6 @@
         models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True),
         models.ChildType(_COMPONENT_TYPE.tag, _COMPONENT_TYPE, multiple=True),
         models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False),
-        models.ChildType(_DETAILS_TYPE.tag, _DETAILS_TYPE, multiple=False),
         models.ChildType(_TOKEN_TYPE.tag, _TOKEN_TYPE, multiple=True),
     ])
 
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml
index a8bccce..ba54c53a 100644
--- a/tools/metrics/histograms/metadata/autofill/histograms.xml
+++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -1037,8 +1037,7 @@
   <summary>
     Autofill form events for address forms. These are recorded when the user
     interacts with a form requesting an address. {AutofillDataAvailability}
-  </summary>
-  <details>
+
     Important caveat about submission metrics: - Submission using autofill data
     is determined by simply evaluating if there was a fill operation in this
     page. So, if the user filled with local data, completed erased or modified
@@ -1048,7 +1047,7 @@
     the page load. So, if a user initially filled with local data and after that
     filled with server, we will only emit &quot;Submitted with server suggestion
     filled (once)&quot;.
-  </details>
+  </summary>
   <token key="AutofillDataAvailability" variants="AutofillDataAvailability">
     <variant name=""/>
   </token>
@@ -1060,8 +1059,7 @@
   <summary>
     Autofill form events for credit card forms on nonsecure pages. These are
     recorded when the user interacts with a form requesting a credit card.
-  </summary>
-  <details>
+
     Important caveat about submission metrics: - Submission using autofill data
     is determined by simply evaluating if there was a fill operation in this
     page. So, if the user filled with local data, completed erased or modified
@@ -1071,7 +1069,7 @@
     the page load. So, if a user initially filled with local data and after that
     filled with server, we will only emit &quot;Submitted with server suggestion
     filled (once)&quot;.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.FormEvents.CreditCard.WithOffer"
@@ -1096,15 +1094,14 @@
     Autofill form events for credit card forms. These are recorded when the user
     interacts with a form requesting a credit card, a dropdown of suggestions is
     shown and at least one of the suggestions has a server nickname available.
-  </summary>
-  <details>
+
     These metrics are used to measure the impact of the server card nickname
     experiment. They are used to calculate the suggestion selection rate with
     server nickname available. We will run the experiment on the same group of
     user who has server cards with nicknames to compare the selection rate. For
     enabled user, we will show nickname and log. For the other, we won't show
     nickname in suggestion but we still log to this histogram.
-  </details>
+  </summary>
 </histogram>
 
 <histogram
@@ -1133,8 +1130,7 @@
   <summary>
     Autofill form events for credit card forms. These are recorded when the user
     interacts with a form requesting a credit card. {AutofillDataAvailability}
-  </summary>
-  <details>
+
     Important caveat about submission metrics: - Submission using autofill data
     is determined by simply evaluating if there was a fill operation in this
     page. So, if the user filled with local data, completed erased or modified
@@ -1144,7 +1140,7 @@
     the page load. So, if a user initially filled with local data and after that
     filled with server, we will only emit &quot;Submitted with server suggestion
     filled (once)&quot;.
-  </details>
+  </summary>
   <token key="AutofillDataAvailability" variants="AutofillDataAvailability">
     <variant name=""/>
   </token>
diff --git a/tools/metrics/histograms/metadata/background/histograms.xml b/tools/metrics/histograms/metadata/background/histograms.xml
index 2fe7364..d825056 100644
--- a/tools/metrics/histograms/metadata/background/histograms.xml
+++ b/tools/metrics/histograms/metadata/background/histograms.xml
@@ -319,11 +319,10 @@
   <summary>
     Records whether a `sync` event succeeded or failed and whether the sync
     event finished in the foreground or background.
-  </summary>
-  <details>
+
     A `sync` event finished in the foreground if the associated Service Worker
     Registration has a client at the time that the event finished.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="BackgroundSync.Event.OneShotStartedInForeground"
@@ -344,11 +343,10 @@
   <summary>
     Records whether a periodic sync event succeeded or failed and whether the
     sync event finished in the foreground or background.
-  </summary>
-  <details>
+
     A sync event finished in the foreground if the associated Service Worker
     Registration has a client at the time that the event finished.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="BackgroundSync.Event.PeriodicStartedInForeground"
diff --git a/tools/metrics/histograms/metadata/blink/histograms.xml b/tools/metrics/histograms/metadata/blink/histograms.xml
index 24dd6825..21275cea 100644
--- a/tools/metrics/histograms/metadata/blink/histograms.xml
+++ b/tools/metrics/histograms/metadata/blink/histograms.xml
@@ -2910,14 +2910,13 @@
     or dynamically, from the time the page is initialised to when it is closed
     or navigated away from. Each property is counted at most once per page per
     view via PageLoadMetricsObserver.
-  </summary>
-  <details>
+
     This histogram counts CSS properties only when they are animated by a CSS
     Animation. Refer to Blink.UseCounter.CSSProperties for more details.
 
     As of M69, Blink.UseCounter.AnimatedCSSProperties is moved from the blink
     side to the browser side.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.CSSProperties" enum="MappedCSSProperties"
@@ -2933,8 +2932,7 @@
     dynamically, from the time the page is initialised to when it is closed or
     navigated away from. Each property is counted at most once per page per view
     via PageLoadMetricsObserver.
-  </summary>
-  <details>
+
     The first time a CSS property is parsed on a page, the histogram is updated
     to increment the counter. Each histogram bucket corresponds to a CSS
     property (eg. width, border-radius). The exception is the 'Total pages
@@ -2956,7 +2954,7 @@
 
     As of M69, Blink.UseCounter.AnimatedCSSProperties is moved from the blink
     side to the browser side.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.DocumentPolicy.Enforced"
@@ -3006,11 +3004,10 @@
     chrome-extension:// URL only. The PageVisits bucket is incremented for each
     page load, and the other buckets incremented at most once per PageVisit via
     the WebCore::UserCounter class.
-  </summary>
-  <details>
+
     Warning: This histogram represents pre-renderer metrics and so is flawed
     under OOPIF.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.FeaturePolicy.Allow"
@@ -3101,13 +3098,12 @@
     page. The PageVisits bucket is incremented for each page load, and the other
     buckets incremented at most once per PageVisit via blink::UseCounter and
     UseCounterPageLoadMetricsObserver.
-  </summary>
-  <details>
+
     Note that this histogram only counts page with HTTP/HTTPS URL scheme.
     Feature used in pages with other URL schemes might be counted in other
     histograms: &quot;extension://&quot; : Blink.UseCounter.Extensions.Features
     &quot;file://&quot; : Blink.UseCounter.File.Features
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.File.Features" enum="FeatureObserver"
@@ -3119,10 +3115,9 @@
     frames in the page. This histogram has the same semantics as
     &quot;Blink.UseCounter.Features&quot;, but applies only to `file:` URLs
     (which that histogram does not include).
-  </summary>
-  <details>
+
     Refer to &quot;Blink.UseCounter.Features&quot; for more details.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.MainFrame.Features" enum="FeatureObserver"
@@ -3137,11 +3132,10 @@
     page load and the other buckets incremented at most once per PageVisit via
     blink::UseCounter and UseCounterPageLoadMetricsObserver throughout the
     lifetime of a page load metrics observer.
-  </summary>
-  <details>
+
     This histogram counts usage of web features in main frame only. Refer to
     Blink.UseCounter.Features for more details.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.PermissionsPolicy.Allow"
diff --git a/tools/metrics/histograms/metadata/browser/histograms.xml b/tools/metrics/histograms/metadata/browser/histograms.xml
index 2948b7b4..0d9bd5f 100644
--- a/tools/metrics/histograms/metadata/browser/histograms.xml
+++ b/tools/metrics/histograms/metadata/browser/histograms.xml
@@ -89,10 +89,26 @@
   </summary>
 </histogram>
 
-<histogram name="Browser.ChromeOS.HatsStatus" enum="HatsStatus"
-    expires_after="2021-12-05">
+<histogram name="Browser.ChromeOS.HatsSatisfaction{Survey}" units="score"
+    expires_after="2022-08-01">
   <owner>aalsum@chromium.org</owner>
-  <owner>malaykeshav@chromium.org</owner>
+  <owner>cros-telemetry@google.com</owner>
+  <summary>
+    Records the overall satisfaction score for HaTS, to be analyzed against
+    other OS metrics like performance or number of crashes. There is one score
+    per survey type.
+  </summary>
+  <token key="Survey">
+    <variant name=".General"/>
+    <variant name=".OnboardingExperience"/>
+    <variant name=".Unlock"/>
+  </token>
+</histogram>
+
+<histogram name="Browser.ChromeOS.HatsStatus" enum="HatsStatus"
+    expires_after="2022-08-01">
+  <owner>aalsum@chromium.org</owner>
+  <owner>cros-telemetry@google.com</owner>
   <summary>
     Records the stage up to which the user interacted with the HaTS Chrome OS
     survey. This is needed in addition to the Hats metrics data since Chrome OS
@@ -699,7 +715,7 @@
 </histogram>
 
 <histogram name="Browser.Tabs.TotalIncompleteSwitchDuration{TabSwitchingType}"
-    units="ms" expires_after="2021-08-09">
+    units="ms" expires_after="2022-01-02">
   <owner>fdoray@chromium.org</owner>
   <owner>jonross@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/content/histograms.xml b/tools/metrics/histograms/metadata/content/histograms.xml
index 05cdf74b..97a05d1 100644
--- a/tools/metrics/histograms/metadata/content/histograms.xml
+++ b/tools/metrics/histograms/metadata/content/histograms.xml
@@ -28,12 +28,11 @@
   <summary>
     The time between a change in content and when the new capture is sent to the
     browser process.
-  </summary>
-  <details>
+
     A specific content change is hard to track. This is roughly calculated as
     the interval from the first content change after a prior capturing content
     to the first content being sent after the next capture of content.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="ContentCapture.CaptureContentTime" units="microseconds"
diff --git a/tools/metrics/histograms/metadata/cras/OWNER b/tools/metrics/histograms/metadata/cras/OWNER
deleted file mode 100644
index a1252a8..0000000
--- a/tools/metrics/histograms/metadata/cras/OWNER
+++ /dev/null
@@ -1,5 +0,0 @@
-per-file OWNERS=file://tools/metrics/histograms/histograms_xml/METRIC_REVIEWER_OWNERS
-
-# Prefer sending CLs to the owners listed below.
-# Use chromium-metrics-reviews@google.com as a backup.
-yuhsuan@chromium.org
diff --git a/tools/metrics/histograms/metadata/cras/OWNERS b/tools/metrics/histograms/metadata/cras/OWNERS
new file mode 100644
index 0000000..20475d6
--- /dev/null
+++ b/tools/metrics/histograms/metadata/cras/OWNERS
@@ -0,0 +1,5 @@
+per-file OWNERS=file://tools/metrics/histograms/metadata/METRIC_REVIEWER_OWNERS
+
+# Prefer sending CLs to the owners listed below.
+# Use chromium-metrics-reviews@google.com as a backup.
+yuhsuan@chromium.org
diff --git a/tools/metrics/histograms/metadata/cross_device/histograms.xml b/tools/metrics/histograms/metadata/cross_device/histograms.xml
index e1e78f6..2bb7c82 100644
--- a/tools/metrics/histograms/metadata/cross_device/histograms.xml
+++ b/tools/metrics/histograms/metadata/cross_device/histograms.xml
@@ -1172,11 +1172,10 @@
   <summary>
     The hash of the phone model used to successfully sign in or unlock using
     Smart Lock.
-  </summary>
-  <details>
+
     This hash is calculated by taking the first 4 bytes of the MD5 hash of the
     device model.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.AuthProximity.RollingRssi" units="dBm"
@@ -1187,8 +1186,7 @@
     Measures the exponentially weighted rolling average of the received signal
     strength indicator (RSSI) of the phone when the user successfully unlocks or
     signs in using Smart Lock.
-  </summary>
-  <details>
+
     The exponentially weighted averaging formula is:
 
     rollingRssi = (1 - weight) * rollingRssi + weight * currentRssi;
@@ -1197,7 +1195,7 @@
     value to work with as a heuristic for proximity.
 
     If no RSSI was read, then a sentinel value of 127 will be recorded.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.RemoteLockScreenState"
diff --git a/tools/metrics/histograms/metadata/disk/histograms.xml b/tools/metrics/histograms/metadata/disk/histograms.xml
index 2719ecd..cb35f13 100644
--- a/tools/metrics/histograms/metadata/disk/histograms.xml
+++ b/tools/metrics/histograms/metadata/disk/histograms.xml
@@ -342,11 +342,12 @@
 
 <histogram name="DiskCache.0.NumberOfReferences" units="?" expires_after="M85">
   <owner>rvargas@chromium.org</owner>
-  <summary>The number of open entry references at any given moment.</summary>
-  <details>
+  <summary>
+    The number of open entry references at any given moment.
+
     Closely related to AverageOpenEntries, but this one is not the average per
     client but instead a direct histogram updated every 30 secs.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="DiskCache.0.OpenTime" units="ms" expires_after="M85">
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml
index 3a48f0f2..d2e36e7 100644
--- a/tools/metrics/histograms/metadata/enterprise/histograms.xml
+++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -1144,7 +1144,7 @@
 </histogram>
 
 <histogram name="Enterprise.EnrollmentTime.Success" units="ms"
-    expires_after="2021-08-09">
+    expires_after="2022-02-01">
   <owner>raleksandrov@google.com</owner>
   <owner>cros-oac@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/ios/histograms.xml b/tools/metrics/histograms/metadata/ios/histograms.xml
index 44ea23c..35ceeea 100644
--- a/tools/metrics/histograms/metadata/ios/histograms.xml
+++ b/tools/metrics/histograms/metadata/ios/histograms.xml
@@ -667,7 +667,7 @@
 </histogram>
 
 <histogram name="IOS.MetricKit.ApplicationHangTime" units="ms"
-    expires_after="2021-09-15">
+    expires_after="2022-09-12">
   <owner>justincohen@chromium.org</owner>
   <owner>olivierrobin@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/memory/histograms.xml b/tools/metrics/histograms/metadata/memory/histograms.xml
index 9ad1142..7a26d2c 100644
--- a/tools/metrics/histograms/metadata/memory/histograms.xml
+++ b/tools/metrics/histograms/metadata/memory/histograms.xml
@@ -292,7 +292,7 @@
 </histogram>
 
 <histogram name="Memory.Browser.MemoryFootprint.Active.Over200MBWatermark"
-    enum="BooleanGreaterOrEqualThan200MB" expires_after="2021-08-27">
+    enum="BooleanGreaterOrEqualThan200MB" expires_after="2022-09-12">
   <owner>justincohen@chromium.org</owner>
   <owner>olivierrobin@chromium.org</owner>
   <summary>
@@ -308,7 +308,7 @@
 </histogram>
 
 <histogram name="Memory.Browser.MemoryFootprint.Background" units="MB"
-    expires_after="2021-08-27">
+    expires_after="2021-09-12">
   <owner>justincohen@chromium.org</owner>
   <owner>olivierrobin@chromium.org</owner>
   <summary>
@@ -324,7 +324,7 @@
 </histogram>
 
 <histogram name="Memory.Browser.MemoryFootprint.Inactive" units="MB"
-    expires_after="2021-08-27">
+    expires_after="2022-09-12">
   <owner>justincohen@chromium.org</owner>
   <owner>olivierrobin@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml
index 25e9800..86de09c 100644
--- a/tools/metrics/histograms/metadata/net/histograms.xml
+++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -568,6 +568,20 @@
   </summary>
 </histogram>
 
+<histogram name="Net.DNS.DnsConfig.AdditionalDnsQueryTypesEnabled"
+    enum="BooleanEnabled" expires_after="2022-08-14">
+  <owner>ericorth@chromium.org</owner>
+  <owner>dmcardle@chromium.org</owner>
+  <owner>src/net/OWNERS</owner>
+  <summary>
+    Whether or not `prefs::kAdditionalDnsQueryTypesEnabled` is enabled. Recorded
+    at startup if disabled or whenever Chrome is believed to be
+    enterprise-managed (per the same detection as the default disabling of DoH).
+    Measures whether or not enterprise admins are setting the disable,
+    potentially due to issues encoutered with HTTPS/INTEGRITY query experiments.
+  </summary>
+</histogram>
+
 <histogram name="Net.DNS.DnsConfig.Nsswitch.Compatible" enum="BooleanValid"
     expires_after="2022-01-15">
   <owner>ericorth@chromium.org</owner>
@@ -2389,10 +2403,9 @@
   <summary>
     Number of bytes read from the network on behalf of prefetch requests. This
     is prefilter, so before any decompression.
-  </summary>
-  <details>
+
     This applies to requests with RESOURCE_TYPE_PREFETCH.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.ProxyScriptFetcher.FirstByteDuration" units="ms"
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml
index 5dac9643..a33d3c96 100644
--- a/tools/metrics/histograms/metadata/network/histograms.xml
+++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -791,6 +791,16 @@
   </token>
 </histogram>
 
+<histogram name="Network.Radio.PossibleWakeupTrigger"
+    units="TrafficAnnotationUniqueIdHash" expires_after="2022-02-01">
+  <owner>bashi@chromium.org</owner>
+  <owner>blink-network-stack@google.com</owner>
+  <summary>
+    Records a traffic annotation ID hash when a URLLoader is created and the
+    radio state is dormant. Only recorded on Android.
+  </summary>
+</histogram>
+
 <histogram name="Network.Shill.Cellular.3GPPRegistrationDelayedDrop"
     enum="NetworkCellular3GPPRegistrationDelayedDrop"
     expires_after="2022-01-30">
diff --git a/tools/metrics/histograms/metadata/obsolete_histograms.xml b/tools/metrics/histograms/metadata/obsolete_histograms.xml
index e34edf4..2ac44e4 100644
--- a/tools/metrics/histograms/metadata/obsolete_histograms.xml
+++ b/tools/metrics/histograms/metadata/obsolete_histograms.xml
@@ -4780,8 +4780,7 @@
     field's signature changed, or a field was newly created. The reference
     period starts when Autofill parses the form for the first time, and ends
     when a navigation is committed or the frame is destructed.
-  </summary>
-  <details>
+
     Every form is observed for dynamic changes from the time it was first parsed
     by Autofill until either a navigation has been committed or the frame is
     destructed or the form's observation had to be flushed prematurely (the form
@@ -4791,7 +4790,7 @@
     the form's lifetime (its signature changed); the second bit is 1 iff a field
     was added (its renderer ID is new to the form); the highest bit is 1 iff the
     form was changed (its signature changed).
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.FormEvents.CreditCard.BankNameDisplayed"
@@ -4806,15 +4805,14 @@
     interacts with a form requesting a credit card, a dropdown of suggestions is
     shown and at least one of the suggestions has a bank name. Form events are
     logged at most once per page load.
-  </summary>
-  <details>
+
     These metrics are used to measure the impact of the bank name experiment.
     They are used to calculate the CTR of the autofill UI with bank names
     available. Not all credit cards will have bank names even if we launch the
     experiment. With these metrics we can run the experiment on 2 groups. For
     one group, we will show bank names if available. For the other, we won't
     shown.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.HasModifiedProfile.CreditCardFormSubmission"
@@ -5439,10 +5437,9 @@
   <summary>
     The number of Wallet addresses that were added to Chrome via Sync. Recorded
     when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
-  </summary>
-  <details>
+
     Can probably be removed around Q1 2019, after project Dice has rolled out.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.WalletAddressesAddedOrRemoved" units="addresses"
@@ -5456,10 +5453,9 @@
     The total number of Wallet addresses that were added to or removed from
     Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
     the Sync server.
-  </summary>
-  <details>
+
     Can probably be removed around Q1 2019, after project Dice has rolled out.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.WalletAddressesRemoved" units="addresses"
@@ -5472,10 +5468,9 @@
   <summary>
     The number of Wallet addresses that were removed from Chrome via Sync.
     Recorded when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
-  </summary>
-  <details>
+
     Can probably be removed around Q1 2019, after project Dice has rolled out.
-  </details>
+  </summary>
 </histogram>
 
 <histogram base="true" name="Autofill.WalletCards" units="credit cards"
@@ -5526,10 +5521,9 @@
   <summary>
     The number of Wallet credit cards that were added to Chrome via Sync.
     Recorded when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
-  </summary>
-  <details>
+
     Can probably be removed around Q1 2019, after project Dice has rolled out.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.WalletCardsAddedOrRemoved" units="credit cards"
@@ -5543,10 +5537,9 @@
     The total number of Wallet credit cards that were added to or removed from
     Chrome via Sync. Recorded when receiving an AUTOFILL_WALLET_DATA update from
     the Sync server.
-  </summary>
-  <details>
+
     Can probably be removed around Q1 2019, after project Dice has rolled out.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.WalletCardsRemoved" units="credit cards"
@@ -5559,10 +5552,9 @@
   <summary>
     The number of Wallet credit cards that were removed from Chrome via Sync.
     Recorded when receiving an AUTOFILL_WALLET_DATA update from the Sync server.
-  </summary>
-  <details>
+
     Can probably be removed around Q1 2019, after project Dice has rolled out.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Autofill.WalletUseDate.Address" units="ms" expires_after="M76">
@@ -7118,13 +7110,12 @@
     Count of how many page loads use various features. The PageVisits bucket is
     incremented for each page load, and the other buckets incremented at most
     once per PageVisit via the blink::UseCounter class.
-  </summary>
-  <details>
+
     This histogram recorded values in the renderer process. With the addition of
     OOPIF, the counts could be inaccurate due to multiple renderer processes for
     a page. It was replaced by an implementation that records values in the
     browser process.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.Features_TestBrowserProcessLogging"
@@ -7154,14 +7145,13 @@
   <summary>
     Like Blink.UseCounter.AnimatedCSSProperties but specifically for the case of
     CSS properties used inside of an SVG image.
-  </summary>
-  <details>
+
     Warning: This histogram represents pre-renderer metrics and so is flawed
     under OOPIF.
 
     This histogram counts usage of animated CSS properties only. Refer to
     Blink.UseCounter.SVGImage.CSSProperties for details.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.SVGImage.CSSProperties"
@@ -7175,8 +7165,7 @@
   <summary>
     Like Blink.UseCounter.CSSProperties but specifically for the case of CSS
     properties used inside of an SVG image.
-  </summary>
-  <details>
+
     Warning: This histogram represents pre-renderer metrics and so is flawed
     under OOPIF.
 
@@ -7184,7 +7173,7 @@
     is created. Note that the same SVG image can be used across multiple tabs in
     a single renderer but this counts as a single usage. See
     http://crbug.com/236262.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.UseCounter.SVGImage.Features" enum="FeatureObserver"
@@ -7201,8 +7190,7 @@
   <summary>
     Like Blink.UseCounter.Features except specifically for the case of SVG
     Images.
-  </summary>
-  <details>
+
     Warning: This histogram represents pre-renderer metrics and so is flawed
     under OOPIF.
 
@@ -7210,7 +7198,7 @@
     incremented each time a new SVG image is created. Note that the same SVG
     image can be used across multiple tabs in a single renderer but this counts
     as a single usage. See http://crbug.com/236262.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Blink.XHR.setRequestHeader.HeaderValueCategoryInRFC7230"
@@ -10505,14 +10493,15 @@
     Removed 04/2020. No longer used.
   </obsolete>
   <owner>ebeach@google.com</owner>
-  <summary>HTTP latency seen by the Connectivity Diagnostics.</summary>
-  <details>
+  <summary>
+    HTTP latency seen by the Connectivity Diagnostics.
+
     HTTP latency is computed using the chrome.socket API to make an HTTP GET
     request to the /generate_204 page of three randomly generated Google
     hostnames (*-ccd-testing-v4.metric.gstatic.com). The time taken from issuing
     the HTTP request to receiving a response is clocked in JavaScript and the
     arithmetic mean of the three times is used as the HTTP latency.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="ConnectivityDiagnostics.TestVerdict"
@@ -17907,15 +17896,14 @@
   <summary>
     Measures the time delta in milliseconds since the last zero RSSI value was
     read to when the user successfully unlocks or signs in using Smart Lock.
-  </summary>
-  <details>
+
     A zero RSSI value is special because both Bluetooth devices in a connection
     attempt to maintain by adjusting their transmit power levels. This time
     delta can be used as a possible heuristic to determine that the phone is
     close to the local device.
 
     If no RSSI was read, then an overflow value will be recorded.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.AuthProximity.TransmitPowerDelta" units="dBm"
@@ -17929,8 +17917,7 @@
     Measures the difference between the current transmit power and the maximum
     transmit power of the local device when the user successfully unlocks or
     signs in using Smart Lock.
-  </summary>
-  <details>
+
     Devices connected using classic Bluetooth adjust their transmit power
     dynamically to optimize power and signal strength. The difference between
     the current transmit power and maximum transmit power can be used as a
@@ -17941,7 +17928,7 @@
 
     If no transmit power was read, then a sentinel value of 127 will be
     recorded.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.BluetoothAvailability"
@@ -17952,15 +17939,14 @@
   <owner>bcwhite@chromium.org</owner>
   <summary>
     Reports the type of Bluetooth adapter present in the device.
-  </summary>
-  <details>
+
     Statistics about what Bluetooth capabilities are available will determine
     how the EasyUnlock feature gets developed and deployed across platforms.
 
     This value is logged only once during the lifetime of the Chrome process,
     shortly after it starts up. If a Bluetooth USB adapter is inserted after
     that point, the change will not be registered until Chrome restarts.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.ClickedButton" enum="EasyUnlockButton"
@@ -17994,12 +17980,11 @@
   <summary>
     The number of eligible devices that the CryptAuth server returns during the
     Smart Lock setup flow.
-  </summary>
-  <details>
+
     Note that a single user might report multiple values, for example if they
     try to complete the setup flow with a device in airplane mode, and then try
     again taking the device out of airplane mode.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.Setup.Devices.Count.Ineligible" units="units"
@@ -18011,12 +17996,11 @@
   <summary>
     The number of ineligible devices that the CryptAuth server returns during
     the Smart Lock setup flow.
-  </summary>
-  <details>
+
     Note that a single user might report multiple values, for example if they
     try to complete the setup flow with a device in airplane mode, and then try
     again taking the device out of airplane mode.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.Setup.Devices.HasSecureScreenLock"
@@ -18041,14 +18025,13 @@
     Whether the user's phone has a trust agent -- e.g. Smart Lock for Android --
     enabled. Recorded during Smart Lock (for Chrome) setup, when the user's
     phone first connects to the Chromebook.
-  </summary>
-  <details>
+
     Note that this histogram tracks whether the setting under Settings ~&gt;
     Security ~&gt; Trust agents ~&gt; Smart Lock (Google) (or any other trust
     agent) is enabled. The Smart Lock trust agent is enabled by default for
     users who have ascure lock screen. This metric does _not_ measure whether
     users have any Smart Lock trustlets enabled.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.Setup.Devices.IneligibilityReason"
@@ -18062,15 +18045,14 @@
     eligible as unlock keys for Smart Lock. This is recorded during the Smart
     Lock setup flow, only if the CryptAuth server returns no eligible devices
     for the user.
-  </summary>
-  <details>
+
     To be precise, this metric tracks the _least_ actionable _reason_ why the
     _most_ actionable _device_ is not eligible as an unlock key. For example,
     suppose that the user has 10 ineligible devices returned. This metric tries
     to identify the most likely candidate device for use as a Smart Lock key,
     and then records the most confounding reason why that device is still not
     eligible to be used as an unlock key.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.Setup.Progress.SansPromo"
@@ -18107,14 +18089,13 @@
   <owner>hansberry@chromium.org</owner>
   <summary>
     Measures user interactions with the Smart Lock promo notification.
-  </summary>
-  <details>
+
     Due to technical limitations of the implementation, it is hard to track
     precisely which users opened the setup app as a result of interacting with
     the promo notification. This metric measures setup app interactions from all
     users who click on the promo notification, and subsequently launch the setup
     app.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.SetupStateOnClose" enum="EasyUnlockSetupState"
@@ -18152,15 +18133,14 @@
   <summary>
     Records when the Easy Unlock trial run is launched, and when the user
     attempts to click on the lock icon during the trial run.
-  </summary>
-  <details>
+
     If a user clicks on the lock icon more than once, then the &quot;clicked
     lock icon&quot; event counter will be incremented more than once as well.
     Hence, the &quot;user count&quot; data shows how many users ever clicked on
     the lock icon during the trial run. From the raw (non-&quot;user
     count&quot;) data, we can also see whether users click on the icon multiple
     times.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="EasyUnlock.UnlockEvent" enum="EasyUnlockUnlockEvent"
@@ -40649,8 +40629,7 @@
   <owner>pasko@chromium.org</owner>
   <summary>
     The completion status of prefetches that have finished loading.
-  </summary>
-  <details>
+
     Measurement occurs at ResourceLoader::ResponseCompleted so requests canceled
     before that point are not registered.
 
@@ -40663,7 +40642,7 @@
     &quot;success already prefetched&quot; means that both was_cached() and
     unused_since_prefetch were true. Validated results are considered cached,
     even though a conditional network request is made.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.MTPR_GetProxyForUrl_Thread_Wait_Time" units="ms"
@@ -40978,8 +40957,7 @@
   <owner>csharrison@chromium.org</owner>
   <summary>
     When a preconnection is made, indicate what the motivation was.
-  </summary>
-  <details>
+
     Currently, the most common (only?) motivations are SELF_REFERAL,
     LEARNED_REFERAL and OMNIBOX. The SELF_REFERAL indicates that we made sure a
     second connection was available for a resource that either was never before
@@ -40989,7 +40967,7 @@
     search is being suggested, and we preconnect to the search provider.
     (WARNING: Prior to version 7.517.*, enums 7, 8, and 9 may be confused, as
     EARLY_LOAD_MOTIVATED was inserted new 6 value.)
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.PreconnectProxyStatus" enum="ProxyStatus"
@@ -41024,13 +41002,12 @@
   <summary>
     What did we decide to do about a predicted resource, based on the historical
     expected number of connection that this subresource will require.
-  </summary>
-  <details>
+
     This is basically the current thresholding of the SubresourceExpectation,
     relative to current static thresholds, and taking into account whether
     preconnection is enabled (i.e., if preconnection is disabled, we'll never
     decide to preconnect).
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.PreconnectSubresourceExpectation" units="units"
@@ -41042,12 +41019,11 @@
   <summary>
     The expected number of connections, times 100, that we'll make to a given
     subresource, based on learned history.
-  </summary>
-  <details>
+
     By comparing this to thresholds, we decide if we will preconnect,
     preresolve, or do nothing. This histogram can be used to select those static
     thresholds.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.PreconnectTriggerUsed" enum="PreconnectTriggerUsed"
@@ -41071,12 +41047,11 @@
   <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
   <summary>
     Indicate final utilization for each attempted socket connection.
-  </summary>
-  <details>
+
     We also include stats for non-speculative sockets. Some socket connections
     may never connect, and others may never be used (as the user may abort
     before then).
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.PreconnectUtilization2" enum="NetPreconnectUtilization"
@@ -41087,12 +41062,11 @@
   <owner>csharrison@chromium.org</owner>
   <summary>
     Indicate final utilization for each attempted socket connection.
-  </summary>
-  <details>
+
     We also include stats for non-speculative sockets. Some socket connections
     may never connect, and others may never be used (as the user may abort
     before then).
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.Predictor.MRUIndex" units="units"
@@ -41127,8 +41101,7 @@
   <owner>jkarlin@chromium.org</owner>
   <summary>
     The completion status of prefetches that have finished loading.
-  </summary>
-  <details>
+
     Measurement occurs at ResourceLoader::ResponseCompleted so requests canceled
     before that point are not registered.
 
@@ -41140,7 +41113,7 @@
     &quot;success already prefetched&quot; means that both was_cached() and
     unused_since_prefetch were true. Validated results are considered cached,
     even though a conditional network request is made.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.Prefetch.TimeBeforeCancel" units="ms"
@@ -41151,10 +41124,9 @@
   <owner>jkarlin@chromium.org</owner>
   <summary>
     Time spent on prefetch requests before the request was canceled.
-  </summary>
-  <details>
+
     This applies to requests with RESOURCE_TYPE_PREFETCH.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.Prefetch.TimeSpentOnPrefetchHit" units="ms"
@@ -41175,10 +41147,11 @@
     Removed July 2018
   </obsolete>
   <owner>jkarlin@chromium.org</owner>
-  <summary>Time spent on prefetch requests when fetched from cache.</summary>
-  <details>
+  <summary>
+    Time spent on prefetch requests when fetched from cache.
+
     This applies to requests with RESOURCE_TYPE_PREFETCH.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Net.Prefetch.TimeSpentPrefetchingFromNetwork" units="ms"
@@ -51244,13 +51217,14 @@
   </obsolete>
   <owner>rbyers@chromium.org</owner>
   <owner>mfomitchev@chromium.org</owner>
-  <summary>Completed overscroll gestures.</summary>
-  <details>
+  <summary>
+    Completed overscroll gestures.
+
     An overscroll gesture starts when user scrolls past the edge of the web page
     and continues scrolling in the same direction. An overscroll gesture is
     completed when user stops scrolling (e.g. by lifting the fingers from the
     touchscreen or touchpad).
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Overscroll.Navigated" enum="OverscrollMode"
@@ -74087,11 +74061,10 @@
   <summary>
     Amount of time between subsequent SessionService Save() operations (aka
     updates to session data).
-  </summary>
-  <details>
+
     Periods longer than 10 minutes are grouped together; see SaveLongPeriod for
     resolution.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="SessionRestore.SubFrameUniqueNameChangedBeforeFirstCommit"
@@ -85603,12 +85576,13 @@
     histograms.
   </obsolete>
   <owner>asvitkine@chromium.org</owner>
-  <summary>The server returned a 400 code, and we discarded a log.</summary>
-  <details>
+  <summary>
+    The server returned a 400 code, and we discarded a log.
+
     This tends to indicate that a syntax error is present in a log, such as
     would appear when a bogus XML tag is included, or the XML is not balanced
     and well structured.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="UMA.UploadCreation" enum="BooleanSuccess"
diff --git a/tools/metrics/histograms/metadata/oobe/histograms.xml b/tools/metrics/histograms/metadata/oobe/histograms.xml
index c1aa606..261f874 100644
--- a/tools/metrics/histograms/metadata/oobe/histograms.xml
+++ b/tools/metrics/histograms/metadata/oobe/histograms.xml
@@ -344,7 +344,7 @@
 </histogram>
 
 <histogram name="OOBE.SyncConsentScreen.ReviewFollowingSetup"
-    enum="BooleanChecked" expires_after="2021-08-09">
+    enum="BooleanChecked" expires_after="2022-02-01">
   <owner>raleksandrov@google.com</owner>
   <owner>cros-oac@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index a432a33..d86c858 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -3389,26 +3389,26 @@
   <summary>
     Connectivity Diagnostics App: WiFi signal strength recorded during
     NIC_SIGNAL_STRENGTH test.
-  </summary>
-  <details>
+
     The &quot;Strength&quot; property of a WiFi signal is a partially-reversible
     function that linearly maps the RSSI range -120dBm to -20dBm to Strength
     values from 0 to 100.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="ConnectivityDiagnostics.RESOLVER_LATENCY" units="ms"
     expires_after="M83">
   <owner>ebeach@google.com</owner>
-  <summary>Resolution latency seen by the Connectivity Diagnostics.</summary>
-  <details>
+  <summary>
+    Resolution latency seen by the Connectivity Diagnostics.
+
     Resolver latency is computed by using the chrome.dns API to query three
     randomly generated Google hostnames (*-ccd-testing-v4.metric.gstatic.com).
     The random hostnames guarantees that there will be no caching of DNS
     hostnames. The time taken from issuing the DNS request to receiving a
     response is clocked in JavaScript and the arithmetic mean of the three times
     is used as the resolver latency.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="ContextMenu.CancelSystemTouches" enum="BooleanHit"
@@ -4030,7 +4030,7 @@
 </histogram>
 
 <histogram name="CrashReport.BreakpadIOSUploadOutcome"
-    enum="FoundationPopularErrorCode" expires_after="2021-09-01">
+    enum="FoundationPopularErrorCode" expires_after="2022-09-12">
   <owner>justincohen@chromium.org</owner>
   <owner>olivierrobin@chromium.org</owner>
   <summary>
@@ -6472,7 +6472,7 @@
 </histogram>
 
 <histogram name="FirstUserAction.BackgroundTime" units="minutes"
-    expires_after="2021-08-22">
+    expires_after="2022-09-12">
 <!-- Name completed by histogram_suffixes name="FirstUserActionType" and name="FirstUserActionTypeDevice" -->
 
   <owner>justincohen@chromium.org</owner>
@@ -6504,7 +6504,7 @@
 </histogram>
 
 <histogram name="FirstUserAction.TabletUserActionType"
-    enum="FirstUserActionType" expires_after="2021-08-22">
+    enum="FirstUserActionType" expires_after="2022-09-12">
   <owner>justincohen@chromium.org</owner>
   <owner>olivierrobin@chromium.org</owner>
   <summary>
@@ -17547,14 +17547,13 @@
     the touch events enabled flag and the presence of a touchscreen.
 
     Team: input-dev@chromium.org.
-  </summary>
-  <details>
+
     NOTE: This metric was incorrectly recorded on Chrome OS for versions 42
     through 45, see http://crbug.com/499476 for more details. As of
     http://crbug.com/644318, we changed the internal name to
     TouchEventFeatureDetection, but we still keep the old histogram name here to
     keep consistensy.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="TPM.EarlyResetDuringCommand" units="count"
diff --git a/tools/metrics/histograms/metadata/tab/histograms.xml b/tools/metrics/histograms/metadata/tab/histograms.xml
index 7a08a71..ddc74f0 100644
--- a/tools/metrics/histograms/metadata/tab/histograms.xml
+++ b/tools/metrics/histograms/metadata/tab/histograms.xml
@@ -341,14 +341,13 @@
   <summary>
     Record the action executed when the user performs a pull down gesture. This
     feature is currently iOS only.
-  </summary>
-  <details>
+
     A pull down gesture is an action completed when the user scrolls past the
     edge of the web page and continues scrolling in the same direction revealing
     a specific UI on the header with multiple actions icons. The user can then
     choose an action by scrolling left or right and lift the finger or cancel by
     scrolling back up. This is currently an iOS specific feature.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tab.RendererCrashStatus" enum="TabRendererCrashStatus"
@@ -1478,13 +1477,12 @@
   <summary>
     The offset between the tab currently selected tab and the newly selected
     tab.
-  </summary>
-  <details>
+
     If the user switches to a tab to the left of their currently selected tab,
     we log a positive offset value indicating how many tabs to the left they
     moved. If the user switches to a tab to the right of their currently
     selected tab, we log a negative offset value.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.FirstSwitchedToForegroundCreationRank" units="units"
@@ -1534,11 +1532,12 @@
     expires_after="2020-07-31">
   <owner>mattsimmons@chromium.org</owner>
   <owner>memex-team@google.com</owner>
-  <summary>The number of entries/cards shown in the grid tab switcher.</summary>
-  <details>
+  <summary>
+    The number of entries/cards shown in the grid tab switcher.
+
     When the user is shown the grid tab switcher, logs the number of entries
     (tabs or tab groups) open in the grid tab switcher.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.MaxTabsInADay{BatteryState}" units="tabs"
@@ -1977,12 +1976,11 @@
   <summary>
     Recorded once per tab activation. The number of tabs that were activated
     while the tab was inactive.
-  </summary>
-  <details>
+
     This metric is to be removed after M46 hits stable. We don't expect this
     metric to change over release, so we will remove this once we have the
     numbers from stable.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.StateTransfer.TabDistanceInactiveToActive" units="tabs"
@@ -1991,12 +1989,11 @@
   <owner>tzik@chromium.org</owner>
   <summary>
     Number of tabs between the previously active tab and the new active tab.
-  </summary>
-  <details>
+
     This metric is to be removed after M46 hits stable. We don't expect this
     metric to change over release, so we will remove this once we have the
     numbers from stable.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.StateTransfer.Target" enum="TabStripState"
@@ -2006,10 +2003,9 @@
   <summary>
     The state to which a tab transitioned. Recorded when a tab transitions from
     the state in the histogram name to a new state.
-  </summary>
-  <details>
+
     kouhei@ and tzik@ will remove some variation of these once M46 hits stable.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.Suggestions.NumSuggestionsChanged{TabSuggestionType}"
@@ -2124,11 +2120,10 @@
   <owner>memex-team@google.com</owner>
   <summary>
     The number of tabs open when the grid tab switcher is shown.
-  </summary>
-  <details>
+
     When the user is shown the tab switcher, logs the total number of individual
     open tabs. Android only.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.TabCountOnStartScreenShown" units="tabs"
@@ -2138,11 +2133,10 @@
   <summary>
     The number of tabs open when the user is returned to the tab switcher on
     start.
-  </summary>
-  <details>
+
     When the user is returned to the tab switcher on starting Chrome due to
     inactivity, logs the overall number of tabs open. Android only.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.TabCountPerDomainPerLoad.{TotalTabCountBucket}"
@@ -2181,13 +2175,12 @@
   <summary>
     The number of tabs open in all browsers (counting app-mode windows) when a
     load completes.
-  </summary>
-  <details>
+
     This is basically the average number of tabs over time.
 
     See also MPArch.RPHCountPerLoad for the number of processes used by these
     tabs.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.TabCountPerWindow" units="tabs"
@@ -2197,11 +2190,10 @@
   <summary>
     The number of tabs open per window (counting app-mode windows) when a load
     completes.
-  </summary>
-  <details>
+
     This value will be recorded multiple times per load if more than one window
     is open.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="Tabs.TabCount{BatteryState}" units="tabs"
@@ -2223,8 +2215,7 @@
   <summary>
     How many tabs a user moved forward or backward in the Android tab switcher.
     {TabOffsetOfSwitchComponentList}
-  </summary>
-  <details>
+
     Logged by the Android tab switcher when a user switches tabs (other than by
     opening a new tab). If the user switches to an earlier tab in the stack, we
     log a positive offset value indicating how many tabs back they moved. If the
@@ -2232,7 +2223,7 @@
     stays on the same tab, we log 0. If the user switches to a tab in a
     different stack (i.e. they switch from normal to incognito or vice-versa),
     we don't log a value.
-  </details>
+  </summary>
   <token key="TabOffsetOfSwitchComponentList">
     <variant name="">
       <obsolete>
@@ -2906,13 +2897,12 @@
   <summary>
     The amount of time from cursor entering the tabstrip to first click on a tab
     to switch.
-  </summary>
-  <details>
+
     This will exclude some kinds of switching (hotkeys, between windows) where
     it would be difficult to define a start time. Entering the tabstrip is an
     approximation which will vary between users, but should still be useful for
     A/B comparison.
-  </details>
+  </summary>
 </histogram>
 
 <histogram name="TabStrip.UserStatus" enum="TabStripUserStatus"
diff --git a/tools/metrics/histograms/metadata/web_rtc/histograms.xml b/tools/metrics/histograms/metadata/web_rtc/histograms.xml
index f5fe8da..5ec451b8 100644
--- a/tools/metrics/histograms/metadata/web_rtc/histograms.xml
+++ b/tools/metrics/histograms/metadata/web_rtc/histograms.xml
@@ -1592,6 +1592,9 @@
 
 <histogram name="WebRTC.PeerConnection.OfferExtmapAllowMixed"
     enum="PeerConnectionOfferExtmapAllowMixed" expires_after="2022-01-02">
+  <obsolete>
+    Removed as of 2021-08-03.
+  </obsolete>
   <owner>kron@chromium.org</owner>
   <summary>
     What setting for the SDP attribute extmap-allow-mixed has been asked for by
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index e1b8b1f..7360b4c 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,20 +5,20 @@
             "remote_path": "perfetto_binaries/trace_processor_shell/linux_arm/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell"
         },
         "win": {
-            "hash": "f0284bbb5f297b609fef13bf60ef912d879c8831",
-            "remote_path": "perfetto_binaries/trace_processor_shell/win/b846a827ab0b47d0299bc3776d1fb5c067c50d94/trace_processor_shell.exe"
+            "hash": "2d32f8ca491ef981f1d4c4b512613e76ba1d1bee",
+            "remote_path": "perfetto_binaries/trace_processor_shell/win/00e6f338d036b5d1ad547b979b612ec008fe3165/trace_processor_shell.exe"
         },
         "mac": {
-            "hash": "2703fb07b6378e32d6d3ad287c4b65a1024547d7",
-            "remote_path": "perfetto_binaries/trace_processor_shell/mac/53ba4116486cf1a72004102abefd3f0f0c82b0e3/trace_processor_shell"
+            "hash": "e353596db4eeb16778697e6a9cdae30adf2842dd",
+            "remote_path": "perfetto_binaries/trace_processor_shell/mac/00e6f338d036b5d1ad547b979b612ec008fe3165/trace_processor_shell"
         },
         "linux_arm64": {
             "hash": "5074025a2898ec41a872e70a5719e417acb0a380",
             "remote_path": "perfetto_binaries/trace_processor_shell/linux_arm64/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell"
         },
         "linux": {
-            "hash": "518702cc772f7966e269023cd566080e3506a6c3",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/53ba4116486cf1a72004102abefd3f0f0c82b0e3/trace_processor_shell"
+            "hash": "6d8243db1d936c6f26a12d5f59b9460f4ef8c43d",
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/00e6f338d036b5d1ad547b979b612ec008fe3165/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/perf/diagnose_test_failure b/tools/perf/diagnose_test_failure
index fa96e40..58aad53 100755
--- a/tools/perf/diagnose_test_failure
+++ b/tools/perf/diagnose_test_failure
@@ -12,7 +12,7 @@
 
 
 _BUILD_REGEX = r'builds/(\d+)'
-_REVISION_REGEX = r'\nCr-Commit-Position: refs/heads/master@{#(\d+)}'
+_REVISION_REGEX = r'\nCr-Commit-Position: refs/heads/(?:master|main)@{#(\d+)}'
 
 
 class _Color(object):