diff --git a/DEPS b/DEPS
index b4dec4a2..8a4d510b 100644
--- a/DEPS
+++ b/DEPS
@@ -305,19 +305,19 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'src_internal_revision': '071ef845c356de3e160bebd58809123322e91fb2',
+  'src_internal_revision': 'fc0ea0f86ba750b89ededa08f1fa4b6c5aac3209',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '05c1f58034159ee906aa740552db93b8e18b8e02',
+  'skia_revision': 'c7f4bad47e455de3383c91e92fb946cb4e32ec9a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'b164296b607abfb076305350e31687d8bbcef466',
+  'v8_revision': '390bfaaf1e224a6c3c2b7cb40410d1722ec3d16e',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '1895857e24931c74b4fb96c4b3dcc925541306c6',
+  'angle_revision': 'b152eb304ffde70a8dff4eb3f9f089de49b93b96',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -329,7 +329,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
-  'boringssl_revision': '706742e482d89214f13a642ccfcdad596a24a32f',
+  'boringssl_revision': 'caf5961d5a28df7a18274b932ddfb7fe2272c2dd',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Fuchsia sdk
   # and whatever else without interference from each other.
@@ -349,11 +349,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling lss
   # and whatever else without interference from each other.
-  'lss_revision': 'ed31caa60f20a4f6569883b2d752ef7522de51e0',
+  'lss_revision': '29164a80da4d41134950d76d55199ea33fbb9613',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling breakpad
   # and whatever else without interference from each other.
-  'breakpad_revision': 'a1220f673dc44632e821bd1a217089e5a159a203',
+  'breakpad_revision': '5d89000703d413048bf74f4ad22afcd3e3d76367',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
@@ -397,7 +397,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': 'b69e0e75a2f47a34d6fc64468bdc4e2769de6943',
+  'devtools_frontend_revision': '9b36dc2ca2bc508b1e4904e959a1024f4fc19a2c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -421,7 +421,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': 'e213957fd428ed14f567ff1b58432b2c01433b73',
+  'dawn_revision': 'da556b4eb39e603729869c3eedbedd8643e1518e',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -429,11 +429,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ink
   # and whatever else without interference from each other.
-  'ink_revision': '4e6081ad7052f97df7d77e1d87cea2d70c18a47b',
+  'ink_revision': 'a262b2d58f1ab81ee6513d6c408965fd4336ba40',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ink_stroke_modeler
   # and whatever else without interference from each other.
-  'ink_stroke_modeler_revision': 'fe79520c9ad7d2d445d26d3c59fda6fc54eb4d5c',
+  'ink_stroke_modeler_revision': '2cd45e8683025c28fa2efcf672ad46607e8af869',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ios_webkit
   # and whatever else without interference from each other.
@@ -1201,7 +1201,7 @@
       'packages': [
           {
               'package': 'chromium/chrome/android/orderfiles/arm64',
-              'version': 'ijkJgugcuUcipjxtE27YQmvc6ehUvPtM8KgYz-BllcIC',
+              'version': '3TPm3sTxOiokYvWCy4XtvrEwZh8p7xNxHr8gzCs3BIAC',
           },
       ],
       'condition': 'checkout_android',
@@ -1223,7 +1223,7 @@
       'packages': [
           {
               'package': 'chromium/android_webview/tools/orderfiles/arm64',
-              'version': '-q6Z72nIcXpefSKZZuxQfqtm8Tab4jIYVCtYK-Rb67sC',
+              'version': '1NMClvSL7k1ePF4aEyJL0EuSi2qWIgmjtVQemk9V9bUC',
           },
       ],
       'condition': 'checkout_android',
@@ -1450,7 +1450,7 @@
       'packages': [
         {
           'package': 'chromium/third_party/updater/chromium_win_x86_64',
-          'version': 'version:2@1518050',
+          'version': 'version:2@1519012',
         },
       ],
   },
@@ -1608,7 +1608,7 @@
     'packages': [
       {
         'package': 'chromium/chrome/test/data/variations/cipd',
-        'version': 'nOE6-YSEd6XuxI3VWwMXrTq8BtlH2yBmEUc1uGpF7XkC',
+        'version': '57swhAIsKWt3DrGG0yq3HH5azkHUtzXNWaRJ9aFCVtUC',
       },
     ],
     'dep_type': 'cipd',
@@ -1619,7 +1619,7 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    '24561df488aa3b8908ad8a86a2da254890b567ea',
+    '2ebd4946cb192e6a4173bdc2341650bfa8401223',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -1719,7 +1719,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': '1FvKmUhVpSN9XjEp3Vj1nep6gkaaN4JRBO4u4fOTbBUC',
+          'version': 'f4JcOA4ipRRxZERfj-2B0SbI6tsQe626K53YPBsQpEEC',
       },
     ],
     'condition': 'checkout_android and non_git_source',
@@ -2023,7 +2023,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '52a376fbc1830ae28a762993a102e4dca7d02e16',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'e5ec238f59a5cdca68627e2c4a41789429c34bcc',
       'condition': 'checkout_chromeos',
   },
 
@@ -2044,7 +2044,7 @@
 
   # For Linux and Chromium OS.
   'src/third_party/cros_system_api': {
-      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'c33ff08e2b27ddaed22c8799fefd3a4b7d3c49a9',
+      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '2c31c25519405d3d2b107844fd5e8c8bc397dbf7',
       'condition': 'checkout_linux or checkout_chromeos',
   },
 
@@ -2055,7 +2055,7 @@
     Var('chromium_git') + '/chromium/web-tests.git' + '@' + Var('crossbench_web_tests_revision'),
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '3f15de2ac33315ac4f08c0da2cb723ccf07f8217',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '9fd9d31f9441c754dd8860bfea7ca1be7833eaae',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
@@ -2605,7 +2605,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + '0a10916ffdc4935c38237d4a62bbc8bca68d2b7c',
+    Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + '7d2ae96575efa97ddab72f0b962d22660c00a567',
 
   'src/base/tracing/test/data': {
     'bucket': 'perfetto',
@@ -2782,7 +2782,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'llWUebGsQPrzc7z3fwJF78NcrdGs1wrUhy0Y-0Wrb-4C',
+              'version': 'SS09E3kPRdP5W064MT-pNrNhXBshbdgO58WU9Y8yY38C',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -2924,16 +2924,16 @@
       'dep_type': 'cipd',
   },
 
-  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@9252990324db5bd9f8aaf270c1777173562db19e',
+  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@7bc87a4a45cf97006ec991d78c13d27e4ff2ea47',
   'src/third_party/glslang/src': '{chromium_git}/external/github.com/KhronosGroup/glslang@a57276bf558f5cf94d3a9854ebdf5a2236849a5a',
   'src/third_party/spirv-cross/src': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3',
   'src/third_party/spirv-headers/src': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Headers@01e0577914a75a2569c846778c2f93aa8e6feddd',
   'src/third_party/spirv-tools/src': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Tools@21b7f7385d0ef70c41314891d76926e022e5d407',
   'src/third_party/vulkan-headers/src': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Headers@a4f8ada9f4f97c45b8c89c57997be9cebaae65d2',
-  'src/third_party/vulkan-loader/src': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Loader@0b058dd7537945bdf09d28fd9188ed7639b90f2e',
+  'src/third_party/vulkan-loader/src': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Loader@0a278cc725089cb67bf6027076e5d72f97c04d86',
   'src/third_party/vulkan-tools/src': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Tools@5568ce14705e512113df5b459fc86d857b3d7789',
   'src/third_party/vulkan-utility-libraries/src': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@4d0b838ffcf1ef81151f0e7e11fad1d9ff859813',
-  'src/third_party/vulkan-validation-layers/src': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-ValidationLayers@c5afc61ad217fa7a119fc8673934962397930fbd',
+  'src/third_party/vulkan-validation-layers/src': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-ValidationLayers@df09d5013747cb28b30d8aa4b80748bb548aaa5f',
 
   'src/third_party/vulkan_memory_allocator':
     Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'cb0597213b0fcb999caa9ed08c2f88dc45eb7d50',
@@ -2976,7 +2976,7 @@
     Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'),
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '023f237a1163844875157a9fb06a2ae6470d52d6',
+    Var('webrtc_git') + '/src.git' + '@' + '8d5ed7732345fc1c470284a47c5c508f33a58417',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -3120,7 +3120,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'aYLH23zLjpFPw2a0CM98P4A4E2qn5wsTTsRi6CQ65IsC',
+        'version': 'QNpFLReRsREBBL-DHHowGjLKbb17cEg1-m26Rbq91bQC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -3131,7 +3131,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'HveMQ4Tk6Y46s8J_UqmZTIOtKmN8JtePDjqPJTJJRfgC',
+        'version': 'Z18WMdk_v5cTfPsAWXiNkK5T9N_L9jCh_pqlbD0e7SMC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -3191,7 +3191,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/android_deps/autorolled',
-              'version': 'wLnFVu0CQdIaPBbd-eB7LE7yQ51dNYj2oljIvwkb1psC',
+              'version': 'qR7IS1-GYP447dHXzKIWvUwI0SEpNGfKzlU-3AJSoU8C',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -3757,7 +3757,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        '815b45dca0ae9d763b871d2c1a4df5254ac87590',
+        '8151fa4276fa055bd93673299947ecc5572c1d50',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/WATCHLISTS b/WATCHLISTS
index bcaa73b..4b507d2 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -1467,7 +1467,8 @@
                   '|components/ip_protection/' \
                   '|components/privacy_sandbox/masked_domain_list/' \
                   '|services/network/ip_protection/' \
-                  '|services/network/network_service_proxy_delegate',
+                  '|services/network/network_service_proxy_delegate' \
+                  '|third_party/anonymous_tokens/',
     },
     'ipcz': {
       'filepath': 'third_party/ipcz/',
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index 0fbb590..14bcb58f 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -1284,6 +1284,55 @@
   ]
 }
 
+declare_args() {
+  # Location of the orderfile to use for WebView. If empty, no orderfile will be
+  # linked.
+  webview_orderfile_path = ""
+
+  # Calculate the orderfile path for the standalone WebView
+  # The orderfile is trained on PGO builds (for arm64) and AFDO builds (for
+  # arm32), so apply them only in these cases.
+  if (((current_cpu == "arm64" || current_cpu == "x64") &&
+       chrome_pgo_phase == 2) ||
+      ((current_cpu == "arm" || current_cpu == "x86") &&
+       chrome_pgo_phase == 0 && is_official_build)) {
+    if (enable_chrome_android_internal) {
+      # We generate separate orderfiles for 32-bit and 64-bit architectures
+      # to improve performance and reduce memory usage.
+      # - WebView and Chrome ARM64, see https://crbug.com/41490637.
+      # - WebView and Chrome x86, see https://crbug.com/967343.
+      # *IMPORTANT*: The x86 and x64 architectures are used to test orderfile
+      # logic more easily on an emulator, so the decision to use the arm64
+      # orderfile for x64 (instead of arm32) is somewhat arbitrary. We just
+      # needed to use some real orderfile.
+      if (is_desktop_android && current_cpu == "x64") {
+        # For Android Desktop x64, orderfile is disabled, see
+        # https://crbug.com/422005929.
+        webview_orderfile_path = ""
+      } else if (current_cpu == "arm64" || current_cpu == "x64") {
+        webview_orderfile_path =
+            "//android_webview/tools/orderfiles/arm64/orderfile.arm64.out"
+      } else if (current_cpu == "arm" || current_cpu == "x86") {
+        webview_orderfile_path =
+            "//android_webview/tools/orderfiles/arm/orderfile.arm.out"
+      }
+    }
+  }
+}
+
+config("webview_orderfile_config") {
+  if (webview_orderfile_path != "") {
+    assert(use_lld)
+    _rebased_orderfile = rebase_path(webview_orderfile_path, root_build_dir)
+    ldflags = [
+      "-Wl,--symbol-ordering-file",
+      "-Wl,$_rebased_orderfile",
+      "-Wl,--no-warn-symbol-ordering",
+    ]
+    inputs = [ webview_orderfile_path ]
+  }
+}
+
 template("webview_chromium_library") {
   chrome_common_shared_library(target_name) {
     forward_variables_from(invoker, "*")
@@ -1310,6 +1359,7 @@
 
 # The shared library used by standalone WebView.
 webview_chromium_library("libwebviewchromium") {
+  use_webview_orderfile = true
 }
 
 if (_is_default_toolchain && enable_resource_allowlist_generation) {
diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc
index f543e4d..e017a06 100644
--- a/android_webview/browser/aw_browser_context.cc
+++ b/android_webview/browser/aw_browser_context.cc
@@ -203,7 +203,10 @@
       is_default_(is_default),
       context_storage_path_(BuildStoragePath(relative_path_)),
       http_cache_path_(BuildHttpCachePath(relative_path_)),
-      simple_factory_key_(GetPath(), IsOffTheRecord()) {
+      simple_factory_key_(GetPath(), IsOffTheRecord()),
+      cookie_encryption_provider_(
+          std::make_unique<CookieEncryptionProviderImpl>(
+              AwBrowserProcess::GetInstance()->GetOSCryptAsync())) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   TRACE_EVENT("startup", "AwBrowserContext::AwBrowserContext", "name", name_);
 
@@ -584,6 +587,8 @@
           switches::kWebViewEnableModernCookieSameSite)
           ? network::mojom::CookieAccessDelegateType::ALWAYS_NONLEGACY
           : network::mojom::CookieAccessDelegateType::ALWAYS_LEGACY;
+  context_params->cookie_encryption_provider =
+      cookie_encryption_provider_->BindNewRemote();
 
   context_params->initial_ssl_config = network::mojom::SSLConfig::New();
   // Allow SHA-1 to be used for locally-installed trust anchors, as WebView
diff --git a/android_webview/browser/aw_browser_context.h b/android_webview/browser/aw_browser_context.h
index 41f199a..eccfcf91 100644
--- a/android_webview/browser/aw_browser_context.h
+++ b/android_webview/browser/aw_browser_context.h
@@ -37,6 +37,7 @@
 #include "content/public/browser/zoom_level_delegate.h"
 #include "net/http/http_request_headers.h"
 #include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom-forward.h"
+#include "services/network/public/cpp/cookie_encryption_provider_impl.h"
 #include "services/network/public/mojom/url_loader.mojom.h"
 #include "third_party/blink/public/mojom/permissions/permission_status.mojom-shared.h"
 
@@ -301,6 +302,8 @@
   // In generally, use GetCookieManager() rather than using this directly.
   std::unique_ptr<CookieManager> cookie_manager_;
 
+  std::unique_ptr<CookieEncryptionProviderImpl> cookie_encryption_provider_;
+
   std::unique_ptr<AwPrefetchManager> prefetch_manager_;
   std::unique_ptr<AwPreconnector> preconnector_;
 
diff --git a/android_webview/java/src/org/chromium/android_webview/AndroidProtocolHandler.java b/android_webview/java/src/org/chromium/android_webview/AndroidProtocolHandler.java
index 5635371..f0466bd9 100644
--- a/android_webview/java/src/org/chromium/android_webview/AndroidProtocolHandler.java
+++ b/android_webview/java/src/org/chromium/android_webview/AndroidProtocolHandler.java
@@ -19,6 +19,8 @@
 
 import org.chromium.android_webview.common.Lifetime;
 import org.chromium.base.ContextUtils;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.url.GURL;
 
 import java.io.IOException;
@@ -27,12 +29,10 @@
 import java.util.List;
 import java.util.zip.GZIPInputStream;
 
-/**
- * Implements the Java side of Android URL protocol jobs.
- * See android_protocol_handler.cc.
- */
+/** Implements the Java side of Android URL protocol jobs. See android_protocol_handler.cc. */
 @Lifetime.Singleton
 @JNINamespace("android_webview")
+@NullMarked
 public class AndroidProtocolHandler {
     private static final String TAG = "AndroidProtocolHandler";
 
@@ -48,12 +48,14 @@
      * @return An InputStream to the Android resource.
      */
     @CalledByNative
-    public static InputStream open(GURL url) {
+    public static @Nullable InputStream open(@Nullable GURL url) {
         Uri uri = verifyUrl(url);
         if (uri == null) {
             return null;
         }
         InputStream stream = openByScheme(uri);
+        assert uri.getLastPathSegment() != null
+                : "URI should have a path because it is hierarchical.";
         if (stream != null && uri.getLastPathSegment().endsWith(".svgz")) {
             try {
                 stream = new GZIPInputStream(stream);
@@ -65,10 +67,12 @@
         return stream;
     }
 
-    private static InputStream openByScheme(Uri uri) {
+    private static @Nullable InputStream openByScheme(Uri uri) {
         try {
+            assert uri.getScheme() != null : "URI should have a scheme because it is not relative.";
             if (uri.getScheme().equals(FILE_SCHEME)) {
                 String path = uri.getPath();
+                assert path != null : "URI should have a path because it is hierarchical.";
                 if (path.startsWith(AndroidProtocolHandlerJni.get().getAndroidAssetPath())) {
                     return openAsset(uri);
                 } else if (path.startsWith(
@@ -86,7 +90,7 @@
 
     // Assumes input string is in the format "foo.bar.baz" and strips out the last component.
     // Returns null on failure.
-    private static String removeOneSuffix(String input) {
+    private static @Nullable String removeOneSuffix(@Nullable String input) {
         if (input == null) return null;
         int lastDotIndex = input.lastIndexOf('.');
         if (lastDotIndex == -1) return null;
@@ -145,7 +149,8 @@
         return value.type;
     }
 
-    private static InputStream openResource(Uri uri) {
+    private static @Nullable InputStream openResource(Uri uri) {
+        assert uri.getScheme() != null : "URI should have a scheme because it is not relative.";
         assert uri.getScheme().equals(FILE_SCHEME);
         assert uri.getPath() != null;
         assert uri.getPath().startsWith(AndroidProtocolHandlerJni.get().getAndroidResourcePath());
@@ -193,7 +198,8 @@
         }
     }
 
-    private static InputStream openAsset(Uri uri) {
+    private static @Nullable InputStream openAsset(Uri uri) {
+        assert uri.getScheme() != null : "URI should have a scheme because it is not relative.";
         assert uri.getScheme().equals(FILE_SCHEME);
         assert uri.getPath() != null;
         assert uri.getPath().startsWith(AndroidProtocolHandlerJni.get().getAndroidAssetPath());
@@ -210,7 +216,8 @@
         }
     }
 
-    private static InputStream openContent(Uri uri) {
+    private static @Nullable InputStream openContent(Uri uri) {
+        assert uri.getScheme() != null : "URI should have a scheme because it is not relative.";
         assert uri.getScheme().equals(CONTENT_SCHEME);
         try {
             return ContextUtils.getApplicationContext().getContentResolver().openInputStream(uri);
@@ -228,13 +235,16 @@
      * @return The mime type or null if the type is unknown.
      */
     @CalledByNative
-    public static @JniType("std::string") String getMimeType(InputStream stream, GURL url) {
+    public static @JniType("std::string") @Nullable String getMimeType(
+            InputStream stream, @Nullable GURL url) {
         Uri uri = verifyUrl(url);
         if (uri == null) {
             return null;
         }
         try {
             String path = uri.getPath();
+            assert uri.getScheme() != null : "URI should have a scheme because it is not relative.";
+            assert path != null : "URI should have a path because it is hierarchical.";
             // The content URL type can be queried directly.
             if (uri.getScheme().equals(CONTENT_SCHEME)) {
                 return ContextUtils.getApplicationContext().getContentResolver().getType(uri);
@@ -272,7 +282,7 @@
      *
      * @return a Uri instance, or null if the URL was invalid.
      */
-    private static Uri verifyUrl(GURL url) {
+    private static @Nullable Uri verifyUrl(@Nullable GURL url) {
         if (url == null) return null;
         if (url.isEmpty()) return null;
         // Never null. parse() doesn't actually parse or verify anything.
diff --git a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolate.java b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolate.java
index 641a1a99..853f1932 100644
--- a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolate.java
+++ b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolate.java
@@ -20,6 +20,8 @@
 import org.chromium.android_webview.js_sandbox.common.IJsSandboxIsolateClient;
 import org.chromium.android_webview.js_sandbox.common.IJsSandboxIsolateSyncCallback;
 import org.chromium.base.Log;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicReference;
@@ -28,19 +30,20 @@
 
 /** Service that provides methods for Javascript execution. */
 @JNINamespace("android_webview")
+@NullMarked
 public class JsSandboxIsolate extends IJsSandboxIsolate.Stub {
     private static final String TAG = "JsSandboxIsolate";
     // mLock must never be held whilst (synchronously) calling back into the client/embedding
     // application, otherwise it's entirely possible for the embedder to then call back into service
     // code (on another thread) and then try to take mLock again and therefore deadlock.
     private final Object mLock = new Object();
-    private final AtomicReference<IJsSandboxConsoleCallback> mConsoleCallback =
-            new AtomicReference<IJsSandboxConsoleCallback>();
+    private final AtomicReference<@Nullable IJsSandboxConsoleCallback> mConsoleCallback =
+            new AtomicReference<@Nullable IJsSandboxConsoleCallback>();
 
     @GuardedBy("mLock")
     private long mJsSandboxIsolate;
 
-    private final IJsSandboxIsolateClient mIsolateClient;
+    @Nullable private final IJsSandboxIsolateClient mIsolateClient;
 
     JsSandboxIsolate() {
         this(0);
@@ -50,7 +53,7 @@
         this(maxHeapSizeBytes, null);
     }
 
-    JsSandboxIsolate(long maxHeapSizeBytes, IJsSandboxIsolateClient isolateClient) {
+    JsSandboxIsolate(long maxHeapSizeBytes, @Nullable IJsSandboxIsolateClient isolateClient) {
         mIsolateClient = isolateClient;
         mJsSandboxIsolate =
                 JsSandboxIsolateJni.get()
@@ -136,7 +139,7 @@
     //
     // maxCodePoints must be > 0.
     private static String truncateUnicodeString(String original, int maxLength) {
-        if (original == null || original.length() <= maxLength) {
+        if (original.length() <= maxLength) {
             return original;
         }
         if (Character.isHighSurrogate(original.charAt(maxLength - 1))) {
@@ -190,7 +193,7 @@
 
     // Checks for errors thrown by client side while reading the stream and closes the Pfd.
     @CalledByNative
-    private static String checkStreamingErrorAndClosePfd(ParcelFileDescriptor pfd) {
+    private static @Nullable String checkStreamingErrorAndClosePfd(ParcelFileDescriptor pfd) {
         try {
             if (pfd.canDetectErrors()) {
                 try {
@@ -212,7 +215,7 @@
     }
 
     @Override
-    public void setConsoleCallback(IJsSandboxConsoleCallback callback) {
+    public void setConsoleCallback(@Nullable IJsSandboxConsoleCallback callback) {
         synchronized (mLock) {
             if (mJsSandboxIsolate == 0) {
                 throw new IllegalStateException("setConsoleCallback() called after close()");
diff --git a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateCallback.java b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateCallback.java
index f1c2fe8f..b594fcd 100644
--- a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateCallback.java
+++ b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateCallback.java
@@ -11,9 +11,11 @@
 
 import org.chromium.android_webview.js_sandbox.common.IJsSandboxIsolateCallback;
 import org.chromium.base.Log;
+import org.chromium.build.annotations.NullMarked;
 
 /** Callback interface for the native code to report a JavaScript evaluation outcome. */
 @JNINamespace("android_webview")
+@NullMarked
 public class JsSandboxIsolateCallback {
     private static final String TAG = "JsSandboxIsolateCallback";
 
diff --git a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateFdCallback.java b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateFdCallback.java
index 90cefe2..1c0d978d6 100644
--- a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateFdCallback.java
+++ b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxIsolateFdCallback.java
@@ -13,11 +13,13 @@
 
 import org.chromium.android_webview.js_sandbox.common.IJsSandboxIsolateSyncCallback;
 import org.chromium.base.Log;
+import org.chromium.build.annotations.NullMarked;
 
 import java.io.IOException;
 
 /** Callback for the native code to report a JavaScript evaluation outcome using FDs. */
 @JNINamespace("android_webview")
+@NullMarked
 public class JsSandboxIsolateFdCallback {
     private static final String TAG = "JsSandboxIsolateFdCallback";
 
diff --git a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxService.java b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxService.java
index d0cb265..188fed8 100644
--- a/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxService.java
+++ b/android_webview/js_sandbox/java/src/org/chromium/android_webview/js_sandbox/service/JsSandboxService.java
@@ -13,11 +13,13 @@
 import org.chromium.android_webview.js_sandbox.common.IJsSandboxService;
 import org.chromium.base.library_loader.LibraryLoader;
 import org.chromium.base.library_loader.LibraryProcessType;
+import org.chromium.build.annotations.NullMarked;
 
 import java.util.Arrays;
 import java.util.List;
 
 /** Service that creates a Isolate for Javascript execution. */
+@NullMarked
 public class JsSandboxService extends Service {
     private static final String TAG = "JsSandboxService";
 
diff --git a/base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java b/base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java
index 6cae5b1..ba03873e 100644
--- a/base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java
+++ b/base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java
@@ -14,6 +14,7 @@
 import android.hardware.display.DisplayManager;
 import android.util.SparseArray;
 import android.view.View;
+import android.view.ViewConfiguration;
 import android.view.Window;
 
 import org.chromium.build.annotations.NullMarked;
@@ -25,6 +26,12 @@
 @NullMarked
 public interface AconfigFlaggedApiDelegate {
     /**
+     * The default text cursor blink interval in milliseconds. This value is used as a fallback in
+     * public Chromium builds where the real implementation is not available.
+     */
+    int DEFAULT_TEXT_CURSOR_BLINK_INTERVAL_MS = 500;
+
+    /**
      * Prefer to use this to get a instance instead of calling ServiceLoaderUtil. If possible, avoid
      * caching the return value in member or global variables as it allows more compile time
      * optimizations.
@@ -137,6 +144,16 @@
             Context context, ServiceConnection connection, BindServiceFlags flags) {}
 
     /**
+     * Calls the {@link android.view.ViewConfiguration#getTextCursorBlinkIntervalMillis()} method if
+     * an implementation is available, otherwise returns a default value.
+     *
+     * @param viewConfiguration The {@link android.view.ViewConfiguration} instance to use.
+     */
+    default int getTextCursorBlinkInterval(ViewConfiguration viewConfiguration) {
+        return DEFAULT_TEXT_CURSOR_BLINK_INTERVAL_MS;
+    }
+
+    /**
      * Calls {@link android.view.View#requestRectangleOnScreen(Rect, boolean, int)} if supported,
      * with focus type of {@link android.view.View#RECTANGLE_ON_SCREEN_REQUEST_SOURCE_INPUT_FOCUS}.
      *
diff --git a/base/android/java/src/org/chromium/base/ApkInfo.java b/base/android/java/src/org/chromium/base/ApkInfo.java
index 60161f13..3a3a025 100644
--- a/base/android/java/src/org/chromium/base/ApkInfo.java
+++ b/base/android/java/src/org/chromium/base/ApkInfo.java
@@ -236,6 +236,7 @@
             mIApkInfo.hostVersionCode = String.valueOf(assumeNonNull(providedHostVersionCode));
             mIApkInfo.packageVersionName = assumeNonNull(providedPackageVersionName);
             mIApkInfo.packageName = assumeNonNull(providedPackageName);
+            mBrowserApplicationInfo = appInfo;
         } else {
             // The SDK Qualified package name will retrieve the same information as
             // appInstalledPackageName but prefix it with the SDK Sandbox process so that we can
@@ -270,16 +271,16 @@
                 mIApkInfo.hostVersionCode = String.valueOf(PackageUtils.packageVersionCode(pi));
                 mIApkInfo.packageName = sBrowserPackageInfo.packageName;
                 mIApkInfo.packageVersionName = nullToEmpty(sBrowserPackageInfo.versionName);
-                appInfo = sBrowserPackageInfo.applicationInfo;
+                mBrowserApplicationInfo = sBrowserPackageInfo.applicationInfo;
                 sBrowserPackageInfo = null;
             } else {
                 mIApkInfo.packageName = appContextPackageName;
                 mIApkInfo.hostVersionCode = String.valueOf(BuildConfig.VERSION_CODE);
                 mIApkInfo.packageVersionName = VersionInfo.getProductVersion();
+                mBrowserApplicationInfo = appInfo;
             }
         }
-        assert appInfo != null;
-        mBrowserApplicationInfo = appInfo;
+        assert mBrowserApplicationInfo != null;
 
         mIApkInfo.installerPackageName =
                 nullToEmpty(pm.getInstallerPackageName(appInstalledPackageName));
@@ -300,6 +301,9 @@
             }
         }
         mIApkInfo.resourcesVersion = currentResourcesVersion;
+        // Important that we do not pull this from the Browser application info - if we are
+        // currently in WebView, the host application's targetSdk is what we care about, to enable
+        // compatibility modes.
         mIApkInfo.targetSdkVersion = appInfo.targetSdkVersion;
     }
 
diff --git a/build/android/unused_resources/UnusedResources.java b/build/android/unused_resources/UnusedResources.java
index be7a08e..95876851 100644
--- a/build/android/unused_resources/UnusedResources.java
+++ b/build/android/unused_resources/UnusedResources.java
@@ -59,10 +59,12 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ExecutionException;
+import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
@@ -400,48 +402,70 @@
 
     private void recordClassUsages(File file, String name, byte[] bytes) {
         assert name.endsWith(DOT_DEX);
-        ReferenceChecker callback = new ReferenceChecker() {
-            @Override
-            public boolean shouldProcess(String internalName) {
-                // We do not need to ignore R subclasses since R8 now removes
-                // unused resource id fields in R subclasses thus their
-                // remaining presence means real usage.
-                return true;
-            }
-
-            @Override
-            public void referencedInt(int value) {
-                UnusedResources.this.referencedInt("dex", value, file, name);
-            }
-
-            @Override
-            public void referencedString(String value) {
-                // do nothing.
-            }
-
-            @Override
-            public void referencedStaticField(String internalName, String fieldName) {
-                Resource resource = getResourceFromCode(internalName, fieldName);
-                if (resource != null) {
-                    ResourceUsageModel.markReachable(resource);
-                    if (mDebugPrinter != null) {
-                        mDebugPrinter.println("Marking " + stringifyResource(resource)
-                                + " reachable: referenced from dex"
-                                + " in " + file + ":" + name + " (static field access "
-                                + internalName + "." + fieldName + ")");
+        ReferenceChecker callback =
+                new ReferenceChecker() {
+                    @Override
+                    public boolean shouldProcess(String internalName) {
+                        // We do not need to ignore R subclasses since R8 now removes
+                        // unused resource id fields in R subclasses thus their
+                        // remaining presence means real usage.
+                        return true;
                     }
-                }
-            }
 
-            @Override
-            public void referencedMethod(
-                    String internalName, String methodName, String methodDescriptor) {
-                // Do nothing.
-            }
-        };
-        ProgramResource resource = ProgramResource.fromBytes(
-                new PathOrigin(file.toPath()), ProgramResource.Kind.DEX, bytes, null);
-        ProgramResourceProvider provider = () -> Arrays.asList(resource);
+                    @Override
+                    public void referencedInt(int value) {
+                        UnusedResources.this.referencedInt("dex", value, file, name);
+                    }
+
+                    @Override
+                    public void referencedString(String value) {
+                        // do nothing.
+                    }
+
+                    @Override
+                    public void referencedStaticField(String internalName, String fieldName) {
+                        Resource resource = getResourceFromCode(internalName, fieldName);
+                        if (resource != null) {
+                            ResourceUsageModel.markReachable(resource);
+                            if (mDebugPrinter != null) {
+                                mDebugPrinter.println(
+                                        "Marking "
+                                                + stringifyResource(resource)
+                                                + " reachable: referenced from dex"
+                                                + " in "
+                                                + file
+                                                + ":"
+                                                + name
+                                                + " (static field access "
+                                                + internalName
+                                                + "."
+                                                + fieldName
+                                                + ")");
+                            }
+                        }
+                    }
+
+                    @Override
+                    public void referencedMethod(
+                            String internalName, String methodName, String methodDescriptor) {
+                        // Do nothing.
+                    }
+                };
+        ProgramResource resource =
+                ProgramResource.fromBytes(
+                        new PathOrigin(file.toPath()), ProgramResource.Kind.DEX, bytes, null);
+        ProgramResourceProvider provider =
+                new ProgramResourceProvider() {
+                    @Override
+                    public Collection<ProgramResource> getProgramResources() {
+                        return Arrays.asList(resource);
+                    }
+
+                    @Override
+                    public void getProgramResources(Consumer<ProgramResource> consumer) {
+                        consumer.accept(resource);
+                    }
+                };
         try {
             Command command =
                     (new ResourceShrinker.Builder()).addProgramResourceProvider(provider).build();
diff --git a/cc/animation/keyframe_model.h b/cc/animation/keyframe_model.h
index 38124df..de9345a 100644
--- a/cc/animation/keyframe_model.h
+++ b/cc/animation/keyframe_model.h
@@ -9,12 +9,15 @@
 #include <string>
 
 #include "base/check.h"
-#include "base/time/time.h"
 #include "cc/animation/animation_export.h"
 #include "cc/paint/element_id.h"
 #include "cc/paint/paint_worklet_input.h"
 #include "ui/gfx/animation/keyframe/keyframe_model.h"
 
+namespace base {
+class TimeTicks;
+}  // namespace base
+
 namespace cc {
 
 // A KeyframeModel contains all the state required to play an AnimationCurve.
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 179593d..d7deb1de 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -3120,6 +3120,7 @@
   }
 
   viz::CompositorFrameMetadata metadata = MakeCompositorFrameMetadata();
+  bool has_view_transition_with_animate = false;
 
   // Don't compute transition directives in TreesInViz mode because
   // the requests will be sent over to viz to compute them.
@@ -3167,6 +3168,14 @@
       } else {
         metadata.transition_directives.push_back(request->ConstructDirective(
             view_transition_element_map, display_color_spaces));
+        if (request->maybe_cross_frame_sink() &&
+            features::ShouldAckCOREarlyForViewTransition()) {
+          OnCompositorFrameTransitionDirectiveProcessed(request->sequence_id());
+          if (request->type() ==
+              ViewTransitionRequest::Type::kAnimateRenderer) {
+            has_view_transition_with_animate = true;
+          }
+        }
       }
     }
   } else {
@@ -3178,14 +3187,34 @@
     if (active_tree_->HasViewTransitionRequests()) {
       active_tree_->set_needs_update_draw_properties();
     }
+    if (features::ShouldAckCOREarlyForViewTransition()) {
+      for (auto& request : active_tree_->view_transition_requests()) {
+        if (request->maybe_cross_frame_sink()) {
+          OnCompositorFrameTransitionDirectiveProcessed(request->sequence_id());
+          if (request->type() ==
+              ViewTransitionRequest::Type::kAnimateRenderer) {
+            has_view_transition_with_animate = true;
+          }
+        }
+      }
+    }
   }
 
   PopulateMetadataContentColorUsage(frame, &metadata);
   metadata.has_shared_element_resources = frame->has_shared_element_resources;
-  metadata.deadline = viz::FrameDeadline(
-      CurrentBeginFrameArgs().frame_time,
-      frame->deadline_in_frames.value_or(0u), CurrentBeginFrameArgs().interval,
-      frame->use_default_lower_bound_deadline);
+  uint32_t frame_deadline = frame->deadline_in_frames.value_or(0u);
+  // Set a higher frame deadline for ViewTransitions with `kAnimateRenderer` to
+  // wait for animations from old RenderFrame, in case there are issues with old
+  // RenderFrame being stuck, and we send CopyOutputRequest Ack early for
+  // fast-path ViewTransition navigations.
+  if (features::ShouldAckCOREarlyForViewTransition() &&
+      has_view_transition_with_animate) {
+    frame_deadline = 240;
+  }
+  metadata.deadline =
+      viz::FrameDeadline(CurrentBeginFrameArgs().frame_time, frame_deadline,
+                         CurrentBeginFrameArgs().interval,
+                         frame->use_default_lower_bound_deadline);
   metadata.frame_interval_inputs.frame_time =
       CurrentBeginFrameArgs().frame_time;
   metadata.frame_interval_inputs.has_input = has_input_for_frame_interval_;
diff --git a/cc/trees/mutator_host.h b/cc/trees/mutator_host.h
index e1b25c72..b607bb08 100644
--- a/cc/trees/mutator_host.h
+++ b/cc/trees/mutator_host.h
@@ -8,13 +8,17 @@
 #include <memory>
 #include <vector>
 
-#include "base/time/time.h"
 #include "cc/paint/element_id.h"
 #include "cc/trees/layer_tree_mutator.h"
 #include "cc/trees/mutator_host_client.h"
 #include "ui/gfx/geometry/point_f.h"
 #include "ui/gfx/geometry/vector2d_f.h"
 
+namespace base {
+class TimeDelta;
+class TimeTicks;
+}  // namespace base
+
 namespace cc {
 
 class MutatorEvents;
diff --git a/chrome/VERSION b/chrome/VERSION
index 7f40761..13bf499 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=143
 MINOR=0
-BUILD=7448
+BUILD=7449
 PATCH=0
diff --git a/chrome/android/chrome_common_shared_library.gni b/chrome/android/chrome_common_shared_library.gni
index a75598b..38942aca 100644
--- a/chrome/android/chrome_common_shared_library.gni
+++ b/chrome/android/chrome_common_shared_library.gni
@@ -32,6 +32,8 @@
   forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
   _is_monochrome = defined(invoker.is_monochrome) && invoker.is_monochrome
   _is_webview = defined(invoker.is_webview) && invoker.is_webview
+  _use_webview_orderfile =
+      defined(invoker.use_webview_orderfile) && invoker.use_webview_orderfile
   _collect_inputs_only =
       defined(invoker.collect_inputs_only) && invoker.collect_inputs_only
 
@@ -93,7 +95,12 @@
       configs -= [ "//build/config/compiler:thinlto_optimize_default" ]
       configs += [ "//build/config/compiler:thinlto_optimize_max" ]
     }
-    configs += [ "//build/config/compiler:chrome_orderfile_config" ]
+
+    if (_use_webview_orderfile) {
+      configs += [ "//android_webview:webview_orderfile_config" ]
+    } else {
+      configs += [ "//build/config/compiler:chrome_orderfile_config" ]
+    }
 
     # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and
     # enable the diagnostic by removing this line.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
index 6712005..86d5627 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -636,7 +636,16 @@
                 @Override
                 public void onTabPinnedStateChanged(Tab tab, boolean isPinned) {
                     int index = mModelList.indexFromTabId(tab.getId());
+                    int finalIndex =
+                            mModelList.indexOfNthTabCard(
+                                    mCurrentTabGroupModelFilterSupplier
+                                            .get()
+                                            .getTabModel()
+                                            .indexOf(tab));
                     updateTab(index, tab, /* isUpdatingId= */ false, /* quickMode= */ false);
+                    if (index != finalIndex) {
+                        mModelList.move(index, finalIndex);
+                    }
                 }
             };
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherGroupSuggestionServiceFactory.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherGroupSuggestionServiceFactory.java
index 66ef42a9..79a805d 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherGroupSuggestionServiceFactory.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherGroupSuggestionServiceFactory.java
@@ -4,10 +4,11 @@
 
 package org.chromium.chrome.browser.tasks.tab_management;
 
+import static org.chromium.chrome.browser.tab_ui.TabSwitcherGroupSuggestionService.recordGroupSuggestionHistogram;
+
 import android.app.Activity;
 
 import org.chromium.base.CallbackUtils;
-import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
@@ -18,6 +19,7 @@
 import org.chromium.chrome.browser.tab_ui.SuggestionLifecycleObserverHandler;
 import org.chromium.chrome.browser.tab_ui.TabSwitcherGroupSuggestionService;
 import org.chromium.chrome.browser.tab_ui.TabSwitcherGroupSuggestionService.SuggestionLifecycleObserver;
+import org.chromium.chrome.browser.tab_ui.TabSwitcherGroupSuggestionService.SuggestionUiEvent;
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
 import org.chromium.chrome.browser.tabwindow.WindowId;
 
@@ -68,22 +70,18 @@
 
                     @Override
                     public void onSuggestionAccepted() {
-                        RecordUserAction.record(
-                                TabSwitcherGroupSuggestionService.USER_ACTION_PREFIX + ".Accepted");
+                        recordGroupSuggestionHistogram(SuggestionUiEvent.ACCEPTED);
                     }
 
                     @Override
                     public void onSuggestionDismissed() {
-                        RecordUserAction.record(
-                                TabSwitcherGroupSuggestionService.USER_ACTION_PREFIX
-                                        + ".Dismissed");
+                        recordGroupSuggestionHistogram(SuggestionUiEvent.REJECTED);
                     }
 
                     @Override
                     public void onSuggestionIgnored() {
                         messageService.dismissMessage(CallbackUtils.emptyRunnable());
-                        RecordUserAction.record(
-                                TabSwitcherGroupSuggestionService.USER_ACTION_PREFIX + ".Ignored");
+                        recordGroupSuggestionHistogram(SuggestionUiEvent.IGNORED);
                     }
 
                     @Override
@@ -94,8 +92,7 @@
 
                         tabListHighlighter.highlightTabs(new HashSet<>(tabIdsSortedByIndex));
                         messageService.addGroupMessageForTabs(tabIdsSortedByIndex, handler);
-                        RecordUserAction.record(
-                                TabSwitcherGroupSuggestionService.USER_ACTION_PREFIX + ".Shown");
+                        recordGroupSuggestionHistogram(SuggestionUiEvent.SHOWN);
 
                         tabListCoordinator.scrollToPosition(lastCardIndex);
                     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java
index 18e101bb..73d2c18 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinator.java
@@ -5,6 +5,7 @@
 package org.chromium.chrome.browser.tasks.tab_management;
 
 import static org.chromium.build.NullUtil.assumeNonNull;
+import static org.chromium.chrome.browser.tab_ui.TabSwitcherGroupSuggestionService.recordGroupSuggestionHistogram;
 import static org.chromium.chrome.browser.tasks.tab_management.TabKeyEventHandler.onPageKeyEvent;
 import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.ALL_KEYS;
 import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.BROWSER_CONTROLS_STATE_PROVIDER;
@@ -61,6 +62,7 @@
 import org.chromium.chrome.browser.tab_ui.TabContentManager;
 import org.chromium.chrome.browser.tab_ui.TabSwitcherCustomViewManager;
 import org.chromium.chrome.browser.tab_ui.TabSwitcherGroupSuggestionService;
+import org.chromium.chrome.browser.tab_ui.TabSwitcherGroupSuggestionService.SuggestionUiEvent;
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
 import org.chromium.chrome.browser.tabmodel.TabList;
 import org.chromium.chrome.browser.tasks.tab_management.PriceWelcomeMessageController.PriceMessageUpdateObserver;
@@ -803,6 +805,7 @@
 
     private void onTabSwitcherShown() {
         if (ChromeFeatureList.sTabSwitcherGroupSuggestionsAndroid.isEnabled()) {
+            recordGroupSuggestionHistogram(SuggestionUiEvent.TAB_SWITCHER_OPENED);
             showGroupSuggestionsAfterAnimations();
         }
 
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
index ddc92608..1db55da 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
@@ -4426,6 +4426,88 @@
     }
 
     @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_PINNED_TABS)
+    public void testOnTabPinnedStateChanged_MovesTab() {
+        mMediator.setComponentNameForTesting(TabSwitcherPaneCoordinator.COMPONENT_NAME);
+
+        Tab tab3 = prepareTab(TAB3_ID, TAB3_TITLE, TAB3_URL);
+        doReturn(false).when(mTab1).getIsPinned();
+        doReturn(false).when(mTab2).getIsPinned();
+        doReturn(false).when(tab3).getIsPinned();
+
+        when(mTabModel.getCount()).thenReturn(3);
+        when(mTabModel.getTabAt(0)).thenReturn(mTab1);
+        when(mTabModel.getTabAt(1)).thenReturn(mTab2);
+        when(mTabModel.getTabAt(2)).thenReturn(tab3);
+        when(mTabModel.iterator()).thenAnswer(invocation -> List.of(mTab1, mTab2, tab3).iterator());
+
+        when(mTabModel.indexOf(mTab1)).thenReturn(0);
+        when(mTabModel.indexOf(mTab2)).thenReturn(1);
+        when(mTabModel.indexOf(tab3)).thenReturn(2);
+
+        when(mTabGroupModelFilter.getIndividualTabAndGroupCount()).thenReturn(3);
+        when(mTabGroupModelFilter.getRepresentativeTabAt(0)).thenReturn(mTab1);
+        when(mTabGroupModelFilter.getRepresentativeTabAt(1)).thenReturn(mTab2);
+        when(mTabGroupModelFilter.getRepresentativeTabAt(2)).thenReturn(tab3);
+
+        List<Tab> tabsInModel = new ArrayList<>(Arrays.asList(mTab1, mTab2, tab3));
+        mMediator.resetWithListOfTabs(tabsInModel, null, false);
+        assertEquals(TAB1_ID, mModelList.get(0).model.get(TabProperties.TAB_ID));
+        assertEquals(TAB2_ID, mModelList.get(1).model.get(TabProperties.TAB_ID));
+        assertEquals(TAB3_ID, mModelList.get(2).model.get(TabProperties.TAB_ID));
+        assertFalse(mModelList.get(1).model.get(TabProperties.IS_PINNED));
+
+        // Pin mTab2. It should move to the front.
+        doReturn(true).when(mTab2).getIsPinned();
+        when(mTabModel.indexOf(mTab2)).thenReturn(0);
+        when(mTabModel.indexOf(mTab1)).thenReturn(1);
+        when(mTabModel.indexOf(tab3)).thenReturn(2);
+
+        mTabObserverCaptor.getValue().onTabPinnedStateChanged(mTab2, true);
+
+        // Verify mTab2 is now at the front and pinned.
+        assertEquals(TAB2_ID, mModelList.get(0).model.get(TabProperties.TAB_ID));
+        assertTrue(mModelList.get(0).model.get(TabProperties.IS_PINNED));
+        assertEquals(TAB1_ID, mModelList.get(1).model.get(TabProperties.TAB_ID));
+        assertEquals(TAB3_ID, mModelList.get(2).model.get(TabProperties.TAB_ID));
+        assertEquals(
+                TabActionButtonType.PIN,
+                mModelList.get(0).model.get(TabProperties.TAB_ACTION_BUTTON_DATA).type);
+
+        // Pin mTab1. It should not move.
+        doReturn(true).when(mTab1).getIsPinned();
+        when(mTabModel.indexOf(mTab2)).thenReturn(0);
+        when(mTabModel.indexOf(mTab1)).thenReturn(1);
+        when(mTabModel.indexOf(tab3)).thenReturn(2);
+
+        mTabObserverCaptor.getValue().onTabPinnedStateChanged(mTab1, true);
+
+        assertEquals(TAB2_ID, mModelList.get(0).model.get(TabProperties.TAB_ID));
+        assertEquals(TAB1_ID, mModelList.get(1).model.get(TabProperties.TAB_ID));
+        assertTrue(mModelList.get(1).model.get(TabProperties.IS_PINNED));
+        assertEquals(TAB3_ID, mModelList.get(2).model.get(TabProperties.TAB_ID));
+        assertEquals(
+                TabActionButtonType.PIN,
+                mModelList.get(1).model.get(TabProperties.TAB_ACTION_BUTTON_DATA).type);
+
+        // Unpin mTab2. It should return to its original position.
+        doReturn(false).when(mTab2).getIsPinned();
+        when(mTabModel.indexOf(mTab1)).thenReturn(0);
+        when(mTabModel.indexOf(mTab2)).thenReturn(1);
+        when(mTabModel.indexOf(tab3)).thenReturn(2);
+
+        mTabObserverCaptor.getValue().onTabPinnedStateChanged(mTab2, false);
+
+        assertEquals(TAB1_ID, mModelList.get(0).model.get(TabProperties.TAB_ID));
+        assertEquals(TAB2_ID, mModelList.get(1).model.get(TabProperties.TAB_ID));
+        assertFalse(mModelList.get(1).model.get(TabProperties.IS_PINNED));
+        assertEquals(TAB3_ID, mModelList.get(2).model.get(TabProperties.TAB_ID));
+        assertNotEquals(
+                TabActionButtonType.PIN,
+                mModelList.get(1).model.get(TabProperties.TAB_ACTION_BUTTON_DATA).type);
+    }
+
+    @Test
     public void testOnMenuItemClickedCallback_CloseGroupInTabSwitcher_NullListViewTouchTracker() {
         testOnMenuItemClickedCallback_CloseOrDeleteGroupInTabSwitcher(
                 R.id.close_tab_group,
diff --git a/chrome/android/java/res/layout/autofill_billing_address_dropdown.xml b/chrome/android/java/res/layout/autofill_billing_address_dropdown.xml
index 7f7d3c4..a9e6802 100644
--- a/chrome/android/java/res/layout/autofill_billing_address_dropdown.xml
+++ b/chrome/android/java/res/layout/autofill_billing_address_dropdown.xml
@@ -16,6 +16,7 @@
         android:textAppearance="@style/TextAppearance.TextSmall.Secondary"
         android:text="@string/autofill_credit_card_editor_billing_address" />
 
+    <!--        TODO(crbug.com/439911511): Legacy dropdown.-->
     <androidx.appcompat.widget.AppCompatSpinner
         android:id="@+id/autofill_credit_card_editor_billing_address_spinner"
         android:layout_width="match_parent"
@@ -31,4 +32,24 @@
     <View style="@style/PreferenceSpinnerUnderlineView"
         android:layout_marginStart="@dimen/pref_autofill_field_horizontal_padding"
         android:layout_marginEnd="@dimen/pref_autofill_field_horizontal_padding" />
-</merge>
+
+    <com.google.android.material.textfield.TextInputLayout
+        android:id="@+id/autofill_credit_card_editor_billing_address_outlined_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/pref_autofill_field_top_margin"
+        android:layout_marginStart="@dimen/pref_autofill_field_horizontal_padding"
+        android:layout_marginEnd="@dimen/pref_autofill_field_horizontal_padding"
+        style="@style/Widget.Material3.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
+        android:visibility="gone">
+
+        <AutoCompleteTextView
+            android:id="@+id/autofill_credit_card_editor_billing_address_spinner_outlined"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:inputType="none"
+            android:hint="@string/autofill_credit_card_editor_billing_address"
+            android:textDirection="locale" />
+
+    </com.google.android.material.textfield.TextInputLayout>
+</merge>
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCreditCardEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCreditCardEditor.java
index fa72553..d884efa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCreditCardEditor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCreditCardEditor.java
@@ -13,6 +13,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
 import android.widget.Spinner;
 
 import org.chromium.build.annotations.NullMarked;
@@ -23,13 +24,16 @@
 import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
 import org.chromium.chrome.browser.autofill.PersonalDataManagerFactory;
 import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.settings.ProfileDependentSetting;
 import org.chromium.components.autofill.AutofillProfile;
 import org.chromium.components.autofill.FieldType;
+import org.chromium.ui.KeyboardVisibilityDelegate;
 import org.chromium.ui.modaldialog.DialogDismissalCause;
 import org.chromium.ui.modaldialog.ModalDialogManager;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.function.Supplier;
 
@@ -41,7 +45,13 @@
     private @Nullable Supplier<@Nullable ModalDialogManager> mModalDialogManagerSupplier;
 
     protected CreditCard mCard;
-    protected Spinner mBillingAddress;
+    // These fields are mutually exclusive. Only one is non-null depending on whether
+    // ChromeFeatureList.sAndroidSettingsContainment is enabled.
+    protected @Nullable Spinner mBillingAddressSpinner;
+    protected @Nullable AutoCompleteTextView mBillingAddressDropdown;
+    protected @Nullable AutofillProfile mInitialBillingProfile;
+
+    protected @Nullable AutofillProfile mSelectedBillingProfile;
     protected int mInitialBillingAddressPos;
 
     @Override
@@ -51,61 +61,102 @@
             @Nullable Bundle savedInstanceState) {
         View v = super.onCreateView(inflater, container, savedInstanceState);
 
-        // Populate the billing address dropdown.
-        ArrayAdapter<AutofillProfile> profilesAdapter =
-                new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item);
-        profilesAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
-        AutofillProfile noSelection = AutofillProfile.builder().build();
-        noSelection.setLabel(getActivity().getString(R.string.select));
-        profilesAdapter.add(noSelection);
-
         PersonalDataManager personalDataManager =
                 PersonalDataManagerFactory.getForProfile(getProfile());
+        mCard = personalDataManager.getCreditCard(mGUID);
         List<AutofillProfile> profiles = personalDataManager.getProfilesForSettings();
-        for (int i = 0; i < profiles.size(); i++) {
-            AutofillProfile profile = profiles.get(i);
+
+        List<AutofillProfile> billingAddresses = new ArrayList<>();
+        AutofillProfile noSelection = AutofillProfile.builder().build();
+        noSelection.setLabel(getActivity().getString(R.string.select));
+        billingAddresses.add(noSelection);
+
+        for (AutofillProfile profile : profiles) {
             if (!TextUtils.isEmpty(profile.getInfo(FieldType.ADDRESS_HOME_STREET_ADDRESS))) {
-                profilesAdapter.add(profile);
+                billingAddresses.add(profile);
             }
         }
 
-        mBillingAddress = v.findViewById(R.id.autofill_credit_card_editor_billing_address_spinner);
-        mBillingAddress.setAdapter(profilesAdapter);
-
-        // TODO(rouslan): Use an [+ ADD ADDRESS] button instead of disabling the dropdown.
-        // http://crbug.com/623629
-        if (profilesAdapter.getCount() == 1) mBillingAddress.setEnabled(false);
-
-        mCard = personalDataManager.getCreditCard(mGUID);
-        if (mCard != null) {
-            if (!TextUtils.isEmpty(mCard.getBillingAddressId())) {
-                for (int i = 0; i < mBillingAddress.getAdapter().getCount(); i++) {
-                    AutofillProfile profile =
-                            (AutofillProfile) mBillingAddress.getAdapter().getItem(i);
-                    if (TextUtils.equals(profile.getGUID(), mCard.getBillingAddressId())) {
-                        mInitialBillingAddressPos = i;
-                        mBillingAddress.setSelection(i);
-                        break;
-                    }
+        if (mCard != null && !TextUtils.isEmpty(mCard.getBillingAddressId())) {
+            for (int i = 0; i < billingAddresses.size(); i++) {
+                AutofillProfile profile = billingAddresses.get(i);
+                if (profile != null
+                        && TextUtils.equals(profile.getGUID(), mCard.getBillingAddressId())) {
+                    mInitialBillingAddressPos = i;
+                    mInitialBillingProfile = profile;
+                    mSelectedBillingProfile = profile;
+                    break;
                 }
             }
         }
 
+        if (ChromeFeatureList.sAndroidSettingsContainment.isEnabled()) {
+            v.findViewById(R.id.autofill_credit_card_editor_billing_address_spinner)
+                    .setVisibility(View.GONE);
+            v.findViewById(R.id.autofill_credit_card_editor_billing_address_outlined_layout)
+                    .setVisibility(View.VISIBLE);
+            mBillingAddressDropdown =
+                    v.findViewById(
+                            R.id.autofill_credit_card_editor_billing_address_spinner_outlined);
+            ArrayAdapter<AutofillProfile> adapter =
+                    new ArrayAdapter<>(
+                            getActivity(),
+                            android.R.layout.simple_dropdown_item_1line,
+                            billingAddresses);
+            mBillingAddressDropdown.setAdapter(adapter);
+            if (mInitialBillingProfile != null) {
+                mBillingAddressDropdown.setText(mInitialBillingProfile.getLabel(), false);
+            }
+        } else {
+            mBillingAddressSpinner =
+                    v.findViewById(R.id.autofill_credit_card_editor_billing_address_spinner);
+            ArrayAdapter<AutofillProfile> adapter =
+                    new ArrayAdapter<>(
+                            getActivity(), android.R.layout.simple_spinner_item, billingAddresses);
+            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+            mBillingAddressSpinner.setAdapter(adapter);
+            mBillingAddressSpinner.setSelection(mInitialBillingAddressPos);
+            // TODO(rouslan): Use an [+ ADD ADDRESS] button instead of disabling the dropdown.
+            // http://crbug.com/623629
+            if (adapter.getCount() == 1) mBillingAddressSpinner.setEnabled(false);
+        }
+
         return v;
     }
 
     @Override
     protected void initializeButtons(View v) {
         super.initializeButtons(v);
-
-        mBillingAddress.setOnItemSelectedListener(this);
-
-        // Listen for touch events on billing address field. We clear the keyboard when user touches
-        // the billing address field because it is a drop down menu.
-        mBillingAddress.setOnTouchListener(this);
+        if (ChromeFeatureList.sAndroidSettingsContainment.isEnabled()) {
+            assert mBillingAddressDropdown != null;
+            mBillingAddressDropdown.setOnItemClickListener(
+                    (parent, view, position, id) -> {
+                        mSelectedBillingProfile =
+                                (AutofillProfile) parent.getItemAtPosition(position);
+                        onBillingAddressSelected(mSelectedBillingProfile);
+                    });
+            mBillingAddressDropdown.setOnFocusChangeListener(
+                    (view, hasFocus) -> {
+                        if (hasFocus) {
+                            KeyboardVisibilityDelegate.getInstance().hideKeyboard(view);
+                        }
+                    });
+        } else {
+            assert mBillingAddressSpinner != null;
+            mBillingAddressSpinner.setOnItemSelectedListener(this);
+            // Listen for touch events on billing address field. We clear the keyboard when user
+            // touches the billing address field because it is a drop down menu.
+            mBillingAddressSpinner.setOnTouchListener(this);
+        }
     }
 
+    /**
+     * Called when a new billing address is selected.
+     *
+     * @param profile The newly selected billing address.
+     */
+    protected void onBillingAddressSelected(AutofillProfile profile) {}
+
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == R.id.delete_menu_id) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java
index c993542..4ddaadb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java
@@ -438,7 +438,15 @@
             card.setYear((String) mExpirationYear.getSelectedItem());
         }
 
-        card.setBillingAddressId(((AutofillProfile) mBillingAddress.getSelectedItem()).getGUID());
+        if (ChromeFeatureList.sAndroidSettingsContainment.isEnabled()) {
+            card.setBillingAddressId(
+                    mSelectedBillingProfile != null ? mSelectedBillingProfile.getGUID() : "");
+        } else {
+            assert mBillingAddressSpinner != null;
+            AutofillProfile selectedProfile =
+                    (AutofillProfile) mBillingAddressSpinner.getSelectedItem();
+            card.setBillingAddressId(selectedProfile != null ? selectedProfile.getGUID() : "");
+        }
         card.setNickname(mNicknameText.getText().toString().trim());
 
         // Get the current card count before setting the new card.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java
index 08857d61..41faa24 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java
@@ -7,6 +7,7 @@
 import static org.chromium.build.NullUtil.assumeNonNull;
 
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -29,6 +30,7 @@
 import org.chromium.chrome.browser.autofill.AutofillUiUtils;
 import org.chromium.chrome.browser.autofill.PersonalDataManagerFactory;
 import org.chromium.chrome.browser.customtabs.CustomTabActivity;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
 import org.chromium.components.autofill.AutofillProfile;
 import org.chromium.components.autofill.ImageSize;
@@ -333,8 +335,18 @@
     }
 
     @Override
+    protected void onBillingAddressSelected(AutofillProfile profile) {
+        if (mInitialBillingProfile != null
+                && !TextUtils.equals(profile.getGUID(), mInitialBillingProfile.getGUID())) {
+            Button button = assumeNonNull(getView()).findViewById(R.id.button_primary);
+            button.setEnabled(true);
+        }
+    }
+
+    @Override
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-        if (parent == mBillingAddress && position != mInitialBillingAddressPos) {
+        assert mBillingAddressSpinner != null;
+        if (parent == mBillingAddressSpinner && position != mInitialBillingAddressPos) {
             Button button = assumeNonNull(getView()).findViewById(R.id.button_primary);
             button.setEnabled(true);
         }
@@ -342,12 +354,21 @@
 
     @Override
     protected boolean saveEntry() {
-        if (mBillingAddress.getSelectedItem() != null
-                && mBillingAddress.getSelectedItem() instanceof AutofillProfile) {
-            mCard.setBillingAddressId(
-                    ((AutofillProfile) mBillingAddress.getSelectedItem()).getGUID());
-            PersonalDataManagerFactory.getForProfile(getProfile())
-                    .updateServerCardBillingAddress(mCard);
+        if (ChromeFeatureList.sAndroidSettingsContainment.isEnabled()) {
+            if (mSelectedBillingProfile != null) {
+                mCard.setBillingAddressId(mSelectedBillingProfile.getGUID());
+                PersonalDataManagerFactory.getForProfile(getProfile())
+                        .updateServerCardBillingAddress(mCard);
+            }
+        } else {
+            assert mBillingAddressSpinner != null;
+            if (mBillingAddressSpinner.getSelectedItem() != null
+                    && mBillingAddressSpinner.getSelectedItem() instanceof AutofillProfile) {
+                mCard.setBillingAddressId(
+                        ((AutofillProfile) mBillingAddressSpinner.getSelectedItem()).getGUID());
+                PersonalDataManagerFactory.getForProfile(getProfile())
+                        .updateServerCardBillingAddress(mCard);
+            }
         }
         return true;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
index cf217b77..c1cb9f0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -6,7 +6,6 @@
 
 import android.app.Activity;
 import android.content.Context;
-import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.graphics.Point;
 import android.graphics.Rect;
@@ -56,9 +55,9 @@
 import org.chromium.chrome.browser.omnibox.status.StatusProperties;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
+import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout;
 import org.chromium.chrome.browser.suggestions.tile.TileGroup;
 import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate;
-import org.chromium.chrome.browser.suggestions.tile.TilesLinearLayout;
 import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider;
 import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate;
 import org.chromium.chrome.browser.util.BrowserUiUtils;
@@ -142,12 +141,7 @@
 
     private FeedSurfaceScrollDelegate mScrollDelegate;
 
-    private final int mTileViewWidth;
-    private @Nullable Integer mInitialTileNum;
-    private @Nullable Boolean mIsMvtAllFilledLandscape;
-    private @Nullable Boolean mIsMvtAllFilledPortrait;
-    private final int mTileViewIntervalPaddingTablet;
-    private final int mTileViewEdgePaddingTablet;
+    private boolean mMvtContentFits;
     private float mTransitionEndOffset;
     private boolean mIsTablet;
     private ObservableSupplier<Integer> mTabStripHeightSupplier;
@@ -183,12 +177,6 @@
         super(context, attrs);
         mContext = context;
         Resources resources = getResources();
-        mTileViewWidth = resources.getDimensionPixelOffset(R.dimen.tile_view_width);
-        mTileViewIntervalPaddingTablet =
-                resources.getDimensionPixelOffset(R.dimen.tile_view_padding_interval_tablet);
-        mTileViewEdgePaddingTablet =
-                resources.getDimensionPixelOffset(R.dimen.tile_view_padding_edge_tablet);
-
         mNtpSearchBoxTopMarginWithoutLogo =
                 resources.getDimensionPixelSize(R.dimen.mvt_container_top_margin);
         mNtpSearchBoxTransitionStartOffset =
@@ -695,31 +683,12 @@
     }
 
     /** Updates the width of the MV tiles container when used in NTP on the tablet. */
-    private void calculateTabletMvtWidth(int widthMeasureSpec) {
+    private void calculateTabletMvtWidth(int totalWidth) {
         if (mMvTilesContainerLayout.getVisibility() == GONE) return;
 
-        if (mInitialTileNum == null) {
-            mInitialTileNum =
-                    ((TilesLinearLayout) findViewById(R.id.mv_tiles_layout)).getTileCount();
-        }
-
-        int currentOrientation = getResources().getConfiguration().orientation;
-        if ((currentOrientation == Configuration.ORIENTATION_LANDSCAPE
-                        && mIsMvtAllFilledLandscape == null)
-                || (currentOrientation == Configuration.ORIENTATION_PORTRAIT
-                        && mIsMvtAllFilledPortrait == null)) {
-            boolean isAllFilled =
-                    mInitialTileNum * mTileViewWidth
-                                    + (mInitialTileNum - 1) * mTileViewIntervalPaddingTablet
-                                    + 2 * mTileViewEdgePaddingTablet
-                            <= widthMeasureSpec;
-            if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
-                mIsMvtAllFilledLandscape = isAllFilled;
-            } else {
-                mIsMvtAllFilledPortrait = isAllFilled;
-            }
-            updateMvtOnTablet();
-        }
+        MostVisitedTilesLayout mvTilesLayout = findViewById(R.id.mv_tiles_layout);
+        mMvtContentFits = mvTilesLayout.contentFitsOnTablet(totalWidth);
+        updateMvtOnTablet();
     }
 
     public void onSwitchToForeground() {
@@ -1284,14 +1253,10 @@
     private void updateMvtOnTablet() {
         MarginLayoutParams marginLayoutParams =
                 (MarginLayoutParams) mMvTilesContainerLayout.getLayoutParams();
-        marginLayoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
-        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
-            if (mIsMvtAllFilledLandscape != null && mIsMvtAllFilledLandscape) {
-                marginLayoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT;
-            }
-        } else if (mIsMvtAllFilledPortrait != null && mIsMvtAllFilledPortrait) {
-            marginLayoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT;
-        }
+        marginLayoutParams.width =
+                mMvtContentFits
+                        ? ViewGroup.LayoutParams.WRAP_CONTENT
+                        : ViewGroup.LayoutParams.MATCH_PARENT;
 
         int lateralPaddingId =
                 mIsInNarrowWindowOnTablet
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java
index 98465ed..cd20c2ce 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java
@@ -30,12 +30,10 @@
 public class MostVisitedTilesLayout extends TilesLinearLayout {
 
     private final boolean mIsTablet;
-    private final @Px int mTileViewWidthPx;
+    private final @Px int mTileViewWidth;
     private final @Px int mIntervalPaddingsTablet;
     private final @Px int mEdgePaddingsTablet;
     private final @Px int mTileViewDividerWidth;
-    private Integer mInitialTileCount;
-    private Integer mInitialChildCount;
     private @Nullable Integer mTileToMoveInViewIdx;
     private @Nullable Runnable mTriggerIphTask;
     private @Nullable SuggestionsTileVerticalDivider mDivider;
@@ -47,7 +45,7 @@
         mIsTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(context);
 
         Resources resources = getResources();
-        mTileViewWidthPx = resources.getDimensionPixelOffset(R.dimen.tile_view_width);
+        mTileViewWidth = resources.getDimensionPixelSize(R.dimen.tile_view_width);
         mIntervalPaddingsTablet =
                 resources.getDimensionPixelSize(R.dimen.tile_view_padding_interval_tablet);
         mEdgePaddingsTablet =
@@ -81,16 +79,14 @@
     }
 
     @Override
-    public void addNonTileViewWithWidth(View view, float widthDp) {
-        super.addNonTileViewWithWidth(view, widthDp);
+    public void addDivider(SuggestionsTileVerticalDivider divider) {
+        super.addDivider(divider);
         if (mDivider != null) return;
 
         // Take the first divider found and assume it's the only one.
-        if (view instanceof SuggestionsTileVerticalDivider divider) {
-            mDivider = divider;
-            mDividerIndex = getChildCount() - 1;
-            mDivider.hide(/* isAnimated= */ false);
-        }
+        mDivider = divider;
+        mDividerIndex = getChildCount() - 1;
+        mDivider.hide(/* isAnimated= */ false);
     }
 
     void destroy() {
@@ -107,35 +103,35 @@
     }
 
     /**
+     * Returns whether all the tiles and non-tiles, with a small margin would fit within a container
+     * with the given {@param totalWidth} without the need to scroll. For tablets only.
+     */
+    public boolean contentFitsOnTablet(int totalWidth) {
+        return totalWidth >= 2 * mEdgePaddingsTablet + getTabletContentWidth();
+    }
+
+    /** Returns the total width of tiles, UI Views, and interval paddings. */
+    @Px
+    int getTabletContentWidth() {
+        return (int)
+                (mTileViewWidth * getTileCount()
+                        + mUiViewsTotalWidth
+                        + mIntervalPaddingsTablet * (mTileAndUiViewCount - 1));
+    }
+
+    /**
      * Adjusts the edge margin of the tile elements when they are displayed in the center of the NTP
      * on the tablet.
      *
      * @param totalWidth The width of the mv tiles container.
      */
     void updateEdgeMarginTablet(int totalWidth) {
-        boolean isFullFilled =
-                totalWidth
-                                - mTileViewWidthPx * mInitialTileCount
-                                - getNonTileViewsTotalWidthPx()
-                                - mIntervalPaddingsTablet * (mInitialChildCount - 1)
-                                - 2 * mEdgePaddingsTablet
-                        >= 0;
-        if (!isFullFilled) {
-            // When splitting the window, this function is invoked with a different totalWidth value
-            // during the process. Therefore, we must update the edge padding with the appropriate
-            // value once the correct totalWidth is provided at the end of the split.
-            setEdgeMargins(mEdgePaddingsTablet);
-            return;
-        }
-
-        int tileCount = getTileCount();
-        int childCount = getChildCount();
+        // If content fits within `totalWidth`, then return the required margin to center it. Else
+        // scrolling would be needed, so return a fixed margin for the scrolled content.
         int edgeMargin =
-                (totalWidth
-                                - mTileViewWidthPx * tileCount
-                                - getNonTileViewsTotalWidthPx()
-                                - mIntervalPaddingsTablet * (childCount - 1))
-                        / 2;
+                contentFitsOnTablet(totalWidth)
+                        ? (totalWidth - getTabletContentWidth()) / 2
+                        : mEdgePaddingsTablet;
         setEdgeMargins(edgeMargin);
     }
 
@@ -176,14 +172,8 @@
     @Override
     @Initializer
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        if (mInitialTileCount == null) {
-            mInitialTileCount = getTileCount();
-        }
-        if (mInitialChildCount == null) {
-            mInitialChildCount = getChildCount();
-        }
         if (mIsTablet) {
-            updateEdgeMarginTablet(widthMeasureSpec);
+            updateEdgeMarginTablet(MeasureSpec.getSize(widthMeasureSpec));
         }
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
     }
@@ -229,7 +219,7 @@
         }
         // If scroll position is too low so that the tile is out-of-view / truncated, scroll right
         // so that the tile appears on the right edge (RTL doesn't matter).
-        @Px int scrollXLoPx = (int) (tileXPx + mTileViewWidthPx - scrollView.getWidth());
+        @Px int scrollXLoPx = (int) (tileXPx + mTileViewWidth - scrollView.getWidth());
         if (scrollXPx < scrollXLoPx) {
             return scrollXLoPx;
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
index d712d6c8..982daec 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
@@ -72,8 +72,7 @@
     private @Nullable Profile mProfile;
 
     @LayoutRes private final int mTileLayoutResId;
-    private final float mTileWidthDp;
-    private final float mDividerWidthDp;
+    private final float mTileWidth;
 
     private class LargeIconCallbackImpl implements LargeIconBridge.LargeIconCallback {
         private final WeakReference<Tile> mTile;
@@ -152,8 +151,7 @@
         mMinIconSize = Math.min(mDesiredIconSize, minIconSize);
 
         mTileLayoutResId = getTileLayoutResId();
-        mTileWidthDp = res.getDimension(getTileWidthDimenResId());
-        mDividerWidthDp = res.getDimension(R.dimen.tile_view_divider_width);
+        mTileWidth = res.getDimension(getTileWidthDimenResId());
 
         int iconColor = mContext.getColor(R.color.default_favicon_background_color);
         int iconTextSize = res.getDimensionPixelSize(R.dimen.tile_view_icon_text_size);
@@ -214,7 +212,7 @@
                 if (prevTile != null
                         && (prevTile.getData().source == TileSource.CUSTOM_LINKS)
                                 != (tile.getData().source == TileSource.CUSTOM_LINKS)) {
-                    parent.addNonTileViewWithWidth(buildDivider(parent), mDividerWidthDp);
+                    parent.addDivider(buildDivider(parent));
                 }
                 parent.addTile(tileView);
                 if (focusedUrl != null && focusedUrl.equals(tile.getUrl().getSpec())) {
@@ -230,7 +228,7 @@
 
             if (shouldShowAddNewButton(sectionTiles)) {
                 TileView addCustomLinksButton = buildAddCustomLinksButton(parent, setupDelegate);
-                parent.addNonTileViewWithWidth(addCustomLinksButton, mTileWidthDp);
+                parent.addUiView(addCustomLinksButton, mTileWidth);
             }
         }
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java
index 7761f3f3..28f0393 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java
@@ -14,22 +14,29 @@
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
 import org.chromium.components.browser_ui.widget.tile.TileView;
-import org.chromium.ui.base.ViewUtils;
 
 import java.util.ArrayList;
 import java.util.List;
 
 /**
- * LinearLayout with helpers to add and visit tile Views (TileView). A container View for tiles can
- * extend this class, and add a mixture of {tile, non-tile} Views as children. To visit tile Views
- * only, one would use {@link #getTileCount()} and {@link #getTileAt()} instead of {@link
- * #getChildCount()} and {@link #getChildAt()}.
+ * LinearLayout with helpers to add and visit tile Views (TileView) mixed with other Views:
+ *
+ * <ul>
+ *   <li>Tiles: MVT tiles with known width, separated by interval margin.
+ *   <li>Dividers: Non-tiles that squeezes inside an interval margin, thus consuming no width.
+ *   <li>UI Views: Non-tiles with arbitary width, separated by interval margin.
+ * </ul>
+ *
+ * A container View for tiles can extend this class. To visit tile Views only, one would use {@link
+ * #getTileCount()} and {@link #getTileAt()} instead of {@link #getChildCount()} and {@link
+ * #getChildAt()}.
  */
 @NullMarked
 public class TilesLinearLayout extends LinearLayout {
     private final List<TileView> mTileList = new ArrayList<>();
 
-    protected float mNonTileViewsTotalWidthDp;
+    protected int mTileAndUiViewCount;
+    protected @Px float mUiViewsTotalWidth;
 
     public TilesLinearLayout(Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
@@ -38,7 +45,8 @@
     @Override
     public void removeAllViews() {
         mTileList.clear();
-        mNonTileViewsTotalWidthDp = 0f;
+        mTileAndUiViewCount = 0;
+        mUiViewsTotalWidth = 0f;
         super.removeAllViews();
     }
 
@@ -74,8 +82,30 @@
      * @param tileView The tile View to add.
      */
     public void addTile(TileView tileView) {
-        super.addView(tileView);
+        addView(tileView);
         mTileList.add(tileView);
+        ++mTileAndUiViewCount;
+    }
+
+    /**
+     * Specialized addView() for dividers.
+     *
+     * @param divider The divider View to add.
+     */
+    public void addDivider(SuggestionsTileVerticalDivider divider) {
+        addView(divider);
+    }
+
+    /**
+     * Specialized addView() for UI Views.
+     *
+     * @param view The UI View to add.
+     * @param width The width of the added View, in Px.
+     */
+    public void addUiView(View uiView, @Px float width) {
+        addView(uiView);
+        mUiViewsTotalWidth += width;
+        ++mTileAndUiViewCount;
     }
 
     /**
@@ -96,22 +126,6 @@
         return mTileList.get(index);
     }
 
-    /**
-     * Specialized addView() for non-tile Views.
-     *
-     * @param view The View to add.
-     * @param widthDp The width of the View to add, in dp.
-     */
-    public void addNonTileViewWithWidth(View view, float widthDp) {
-        super.addView(view);
-        mNonTileViewsTotalWidthDp += widthDp;
-    }
-
-    /** Returns the total width of non-tile Views added, in pixel. */
-    public int getNonTileViewsTotalWidthPx() {
-        return ViewUtils.dpToPx(getContext(), mNonTileViewsTotalWidthDp);
-    }
-
     protected void updateViewStartMargin(View view, @Px int newStartMargin) {
         MarginLayoutParams layoutParams = (MarginLayoutParams) view.getLayoutParams();
         if (newStartMargin != layoutParams.getMarginStart()) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
index 3135f82..1d4720e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
@@ -50,6 +50,7 @@
 import org.chromium.content_public.browser.LifecycleState;
 import org.chromium.content_public.browser.NavigationHandle;
 import org.chromium.content_public.browser.Page;
+import org.chromium.content_public.browser.RenderCoordinates;
 import org.chromium.content_public.browser.WebContents;
 import org.chromium.content_public.browser.WebContentsObserver;
 import org.chromium.net.NetError;
@@ -438,7 +439,19 @@
             View view = mTab.getView();
             if (view == null) return;
 
-            Rect boundsInView = new Rect(leftInView, topInView, rightInView, bottomInView);
+            // Correct bounds for page scale and browser UI offset to place in view coordinates
+            WebContents webContents = mTab.getWebContents();
+            if (webContents == null) return;
+
+            RenderCoordinates coords = RenderCoordinates.fromWebContents(webContents);
+            final int topOffset = coords.getContentOffsetYPixInt();
+
+            Rect boundsInView =
+                    new Rect(
+                            (int) coords.fromLocalCssToPix(leftInView),
+                            ((int) coords.fromLocalCssToPix(topInView)) + topOffset,
+                            (int) coords.fromLocalCssToPix(rightInView),
+                            ((int) coords.fromLocalCssToPix(bottomInView)) + topOffset);
             if (boundsInView.isEmpty()) return;
 
             // TODO(aaronmoss): when Baklava 36.1 support lands in Clank, remove delegate
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
index a7596bb..e01483a1 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
@@ -44,6 +44,7 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 
@@ -3542,6 +3543,11 @@
     @Feature({"Preferences"})
     @CommandLineFlags.Add(BaseSwitches.ENABLE_LOW_END_DEVICE_MODE)
     @EnableFeatures(ChromeFeatureList.PERMISSION_SITE_SETTING_RADIO_BUTTON)
+    @DisableIf.Build(
+            sdk_equals = Build.VERSION_CODES.Q,
+            message =
+                    "https://crbug.com/448715624: Test is crashing with"
+                            + " --disable-field-trial-config")
     public void testAddingJavascriptOptimizerExceptionsBlockedIfNotEnoughRam() {
         final SettingsActivity settingsActivity =
                 SiteSettingsTestUtils.startSiteSettingsCategory(
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/video/VideoTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/video/VideoTest.java
index 8f839d9..c034af6 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/video/VideoTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/video/VideoTest.java
@@ -4,17 +4,18 @@
 
 package org.chromium.chrome.browser.video;
 
+import android.os.Build;
+
 import androidx.test.filters.LargeTest;
 
 import org.junit.Assert;
-import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.CommandLine;
 import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.DisableIf;
 import org.chromium.base.test.util.Feature;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.tab.Tab;
@@ -46,10 +47,10 @@
     @Test
     @Feature({"Media", "Media-Video", "Main"})
     @LargeTest
+    @DisableIf.Build(
+            sdk_equals = Build.VERSION_CODES.Q,
+            message = "crbug.com/447426928, crashing emulator with --disable-field-trial-config")
     public void testLoadMediaUrl() throws TimeoutException {
-        // TODO(crbug.com/447426928): Test is crashing with --disable-field-trial-config.
-        Assume.assumeTrue(!CommandLine.getInstance().hasSwitch("disable-field-trial-config"));
-
         Tab tab = mPage.getTab();
         TabTitleObserver titleObserver = new TabTitleObserver(tab, "ready_to_play");
         mActivityTestRule.loadUrl(
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditorTest.java
index 450a7687..32fb6ead 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditorTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditorTest.java
@@ -13,6 +13,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -71,6 +72,7 @@
 import org.chromium.chrome.browser.settings.SettingsActivity;
 import org.chromium.chrome.browser.settings.SettingsIntentUtil;
 import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
+import org.chromium.components.autofill.AutofillProfile;
 import org.chromium.components.autofill.VirtualCardEnrollmentState;
 import org.chromium.components.browser_ui.settings.SettingsNavigation;
 import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -1101,4 +1103,81 @@
 
         verify(mMockScannerManager).fieldEdited(FieldType.UNKNOWN);
     }
+
+    @Test
+    @MediumTest
+    @DisableFeatures({ChromeFeatureList.ANDROID_SETTINGS_CONTAINMENT})
+    public void saveCard_withBillingAddress_SettingsContainmentDisabled() {
+        CreditCard card = getSampleLocalCard();
+        List<AutofillProfile> profiles = setupBillingAddressProfiles();
+        initFragment(card);
+
+        mCardEditor.mBillingAddressSpinner.setSelection(
+                2); // 0 is "Select", 1 is address1, 2 is address2
+        mDoneButton.performClick();
+
+        verify(mMockPersonalDataManager)
+                .setCreditCard(
+                        argThat(
+                                c -> {
+                                    assertThat(c.getBillingAddressId())
+                                            .isEqualTo(profiles.get(1).getGUID());
+                                    return true;
+                                }));
+    }
+
+    @Test
+    @MediumTest
+    @EnableFeatures({ChromeFeatureList.ANDROID_SETTINGS_CONTAINMENT})
+    public void saveCard_withBillingAddress_SettingsContainmentEnabled() {
+        CreditCard card = getSampleLocalCard();
+        List<AutofillProfile> profiles = setupBillingAddressProfiles();
+        initFragment(card);
+
+        // Simulate that the user has selected the second billing address.
+        // We set the text for visual confirmation and directly set the selected profile
+        // to bypass the complexities of simulating a dropdown item click in Robolectric.
+        mCardEditor.mBillingAddressDropdown.setText(profiles.get(1).getLabel(), false);
+        mCardEditor.mSelectedBillingProfile = profiles.get(1);
+        mDoneButton.performClick();
+
+        verify(mMockPersonalDataManager)
+                .setCreditCard(
+                        argThat(
+                                c -> {
+                                    assertThat(c.getBillingAddressId())
+                                            .isEqualTo(profiles.get(1).getGUID());
+                                    return true;
+                                }));
+    }
+
+    @Test
+    @MediumTest
+    @EnableFeatures({ChromeFeatureList.ANDROID_SETTINGS_CONTAINMENT})
+    public void saveCard_noBillingAddressSelected_SettingsContainmentEnabled() {
+        CreditCard card = getSampleLocalCard();
+        setupBillingAddressProfiles();
+        initFragment(card);
+
+        // Do not simulate a selection. The default (no selection) should result in an empty GUID.
+        mDoneButton.performClick();
+
+        verify(mMockPersonalDataManager)
+                .setCreditCard(
+                        argThat(
+                                c -> {
+                                    assertThat(c.getBillingAddressId()).isEmpty();
+                                    return true;
+                                }));
+    }
+
+    private List<AutofillProfile> setupBillingAddressProfiles() {
+        AutofillProfile billingAddress1 =
+                AutofillProfile.builder().setGUID("guid-1").setStreetAddress("1 Main St").build();
+        AutofillProfile billingAddress2 =
+                AutofillProfile.builder().setGUID("guid-2").setStreetAddress("2 Main St").build();
+        List<AutofillProfile> profiles = List.of(billingAddress1, billingAddress2);
+        when(mMockPersonalDataManager.getProfilesForSettings()).thenReturn(profiles);
+        return profiles;
+    }
 }
diff --git a/chrome/android/modules/readaloud/public/java/src/org/chromium/chrome/modules/readaloud/contentjs/Highlighter.java b/chrome/android/modules/readaloud/public/java/src/org/chromium/chrome/modules/readaloud/contentjs/Highlighter.java
index 7d0b8366..d3a904b 100644
--- a/chrome/android/modules/readaloud/public/java/src/org/chromium/chrome/modules/readaloud/contentjs/Highlighter.java
+++ b/chrome/android/modules/readaloud/public/java/src/org/chromium/chrome/modules/readaloud/contentjs/Highlighter.java
@@ -49,7 +49,7 @@
 
         public Config(Context context) {
             // Color format: AARRGGBB
-            @ColorInt int color = SemanticColorUtils.getDefaultTextColorLink(context);
+            @ColorInt int color = SemanticColorUtils.getColorPrimary(context);
             // when converting to RRGGBBAA hex also add 25% opacity per UI specs.
             mHighlightBackgroundColorHex = String.format("#%06X", (0x00FFFFFF & color)) + "40";
         }
diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h
index b29d6c88..6e16d866 100644
--- a/chrome/app/chrome_command_ids.h
+++ b/chrome/app/chrome_command_ids.h
@@ -110,6 +110,7 @@
 #define IDC_CLOSE_TAB_GROUP           34104
 #define IDC_GROUP_UNGROUPED_TABS      34105
 #define IDC_CREATE_NEW_TAB_GROUP_TOP_LEVEL 34106
+#define IDC_ADD_NEW_TAB_RECENT_GROUP 34107
 
 // Page-related commands
 #define IDC_BOOKMARK_THIS_TAB           35000
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 88ea46c9..4b6067a 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -768,8 +768,6 @@
     "net/chrome_report_sender.h",
     "net/convert_explicitly_allowed_network_ports_pref.cc",
     "net/convert_explicitly_allowed_network_ports_pref.h",
-    "net/cookie_encryption_provider_impl.cc",
-    "net/cookie_encryption_provider_impl.h",
     "net/default_dns_over_https_config_source.cc",
     "net/default_dns_over_https_config_source.h",
     "net/dns_over_https_config_source.h",
@@ -2327,6 +2325,7 @@
     "//components/password_manager/core/browser/sharing",
     "//components/password_manager/core/common",
     "//components/payments/content:utils",
+    "//components/payments/content/browser_binding:browser_bound_key_deleter",
     "//components/payments/core",
     "//components/pdf/common:constants",
     "//components/pdf/common:util",
@@ -3281,19 +3280,6 @@
       "supervised_user/android/website_parent_approval.h",
       "supervised_user/child_accounts/child_account_service_android.cc",
       "supervised_user/child_accounts/child_account_service_android.h",
-      "tab/android_tab_package.cc",
-      "tab/android_tab_package.h",
-      "tab/tab_state_storage_backend.cc",
-      "tab/tab_state_storage_backend.h",
-      "tab/tab_state_storage_database.cc",
-      "tab/tab_state_storage_database.h",
-      "tab/tab_state_storage_service.cc",
-      "tab/tab_state_storage_service.h",
-      "tab/tab_storage_package.cc",
-      "tab/tab_storage_package.h",
-      "tab/tab_storage_packager.h",
-      "tab/web_contents_state.cc",
-      "tab/web_contents_state.h",
       "tab_group_suggestion/group_suggestion_service_factory_android.cc",
       "tab_group_sync/android/tab_group_sync_service_factory_android.cc",
       "tab_group_sync/android/tab_group_sync_utils_android.cc",
@@ -3438,6 +3424,8 @@
       "//chrome/browser/supervised_user:supervised_user_service_platform_delegate_jni_headers",
       "//chrome/browser/supervised_user:website_parent_approval_jni_headers",
       "//chrome/browser/sync/android:jni_headers",
+      "//chrome/browser/tab",
+      "//chrome/browser/tab:impl",
       "//chrome/browser/tab:jni_headers",
       "//chrome/browser/tab/protocol",
       "//chrome/browser/tab_group_sync:android",
@@ -3533,7 +3521,6 @@
       "//components/payments/content/android",
       "//components/payments/content/android:jni_headers",
       "//components/payments/content/android/ui",
-      "//components/payments/content/browser_binding:browser_bound_keys_deleter_factory",
       "//components/permissions/android:native",
       "//components/plus_addresses/core/browser/resources/strings",
       "//components/plus_addresses/core/common:features",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 7206910..17901bc3 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1664,13 +1664,11 @@
     {"ShowContextMenu", "true"},
 };
 const FeatureEntry::FeatureParam kShowNextRealboxTall[] = {
-    {"ShowContextMenu", "true"},
-    {"RealboxLayoutMode", ntp_composebox::kRealboxLayoutModeTall},
+    {"RealboxLayoutMode", ntp_realbox::kRealboxLayoutModeTall},
     {"CyclingPlaceholders", "true"},
 };
 const FeatureEntry::FeatureParam kShowNextRealboxCompact[] = {
-    {"ShowContextMenu", "true"},
-    {"RealboxLayoutMode", ntp_composebox::kRealboxLayoutModeCompact},
+    {"RealboxLayoutMode", ntp_realbox::kRealboxLayoutModeCompact},
     {"CyclingPlaceholders", "true"},
 };
 const FeatureEntry::FeatureParam kComposeboxShowContextMenuAndZpsMultiFile[] = {
@@ -1708,10 +1706,6 @@
      std::size(kComposeboxShowContextMenu), nullptr},
     {"- Show Contextual Input Menu and ZPS", kComposeboxShowContextMenuAndZps,
      std::size(kComposeboxShowContextMenuAndZps), nullptr},
-    {"- Show Next Realbox (Tall)", kShowNextRealboxTall,
-     std::size(kShowNextRealboxTall), nullptr},
-    {"- Show Next Realbox (Compact)", kShowNextRealboxCompact,
-     std::size(kShowNextRealboxCompact), nullptr},
     {"- Show Contextual Input Menu and ZPS 5 File Limit",
      kComposeboxShowContextMenuAndZpsMultiFile,
      std::size(kComposeboxShowContextMenuAndZpsMultiFile), nullptr},
@@ -1725,6 +1719,13 @@
      std::size(kShowCreateImageTool), nullptr},
 };
 
+const FeatureEntry::FeatureVariation kNtpRealboxNextVariations[] = {
+    {"- Show Next Realbox (Tall)", kShowNextRealboxTall,
+     std::size(kShowNextRealboxTall), nullptr},
+    {"- Show Next Realbox (Compact)", kShowNextRealboxCompact,
+     std::size(kShowNextRealboxCompact), nullptr},
+};
+
 #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ||
         // BUILDFLAG(IS_WIN)
 
@@ -3829,19 +3830,6 @@
 
 #endif  // !BUILDFLAG(IS_ANDROID)
 
-#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
-const FeatureEntry::FeatureParam
-    kEnableBoundSessionCredentialsWithMultiSessionSupport[] = {
-        {"exclusive-registration-path", ""}};
-
-const FeatureEntry::FeatureVariation
-    kEnableBoundSessionCredentialsVariations[] = {
-        {"with multi-session",
-         kEnableBoundSessionCredentialsWithMultiSessionSupport,
-         std::size(kEnableBoundSessionCredentialsWithMultiSessionSupport),
-         nullptr}};
-#endif  // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
-
 #if BUILDFLAG(IS_ANDROID)
 const FeatureEntry::FeatureParam kEdgeToEdgeTabletFeatureParams[] = {
     {"e2e_tablet_invisible_bottom_chin_min_width", "768"}};
@@ -7552,6 +7540,12 @@
                                     kNtpComposeboxVariations,
                                     "NtpComposebox")},
 
+    {"ntp-realbox-next", flag_descriptions::kNtpRealboxNextName,
+     flag_descriptions::kNtpRealboxNextDescription, kOsDesktop,
+     FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_realbox::kNtpRealboxNext,
+                                    kNtpRealboxNextVariations,
+                                    "NtpRealboxNext")},
+
     {"composebox-uses-chrome-compose-client",
      flag_descriptions::kNtpComposeboxUsesChromeComposeClientName,
      flag_descriptions::kNtpComposeboxUsesChromeComposeClientDescription,
@@ -10263,6 +10257,10 @@
      flag_descriptions::kWebUIOmniboxPopupDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(omnibox::kWebUIOmniboxPopup)},
 
+    {"webui-omnibox-full-popup", flag_descriptions::kWebUIOmniboxFullPopupName,
+     flag_descriptions::kWebUIOmniboxFullPopupDescription, kOsDesktop,
+     FEATURE_VALUE_TYPE(omnibox::kWebUIOmniboxFullPopup)},
+
     {"webui-omnibox-popup-debug",
      flag_descriptions::kWebUIOmniboxPopupDebugName,
      flag_descriptions::kWebUIOmniboxPopupDebugDescription, kOsDesktop,
@@ -10664,6 +10662,12 @@
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillEnableFpanRiskBasedAuthentication)},
 
+    {"ack-copy-output-request-early-for-view-transition",
+     flag_descriptions::kAckCopyOutputRequestEarlyForViewTransitionName,
+     flag_descriptions::kAckCopyOutputRequestEarlyForViewTransitionDescription,
+     kOsAll,
+     FEATURE_VALUE_TYPE(features::kAckCopyOutputRequestEarlyForViewTransition)},
+
     {"ack-on-surface-activation-when-interactive",
      flag_descriptions::kAckOnSurfaceActivationWhenInteractiveName,
      flag_descriptions::kAckOnSurfaceActivationWhenInteractiveDescription,
@@ -10718,10 +10722,8 @@
     {"enable-bound-session-credentials",
      flag_descriptions::kEnableBoundSessionCredentialsName,
      flag_descriptions::kEnableBoundSessionCredentialsDescription,
-     kOsMac | kOsWin | kOsLinux,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kEnableBoundSessionCredentials,
-                                    kEnableBoundSessionCredentialsVariations,
-                                    "EnableBoundSessionCredentials")},
+     kOsMac | kOsLinux,
+     FEATURE_VALUE_TYPE(switches::kEnableBoundSessionCredentials)},
     {"enable-bound-session-credentials-software-keys-for-manual-testing",
      flag_descriptions::
          kEnableBoundSessionCredentialsSoftwareKeysForManualTestingName,
@@ -11953,7 +11955,7 @@
     {"enable-chrome-refresh-token-binding",
      flag_descriptions::kEnableChromeRefreshTokenBindingName,
      flag_descriptions::kEnableChromeRefreshTokenBindingDescription,
-     kOsMac | kOsWin | kOsLinux,
+     kOsMac | kOsLinux,
      FEATURE_VALUE_TYPE(switches::kEnableChromeRefreshTokenBinding)},
 #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT)
 
diff --git a/chrome/browser/actor/BUILD.gn b/chrome/browser/actor/BUILD.gn
index f639d12..169f367 100644
--- a/chrome/browser/actor/BUILD.gn
+++ b/chrome/browser/actor/BUILD.gn
@@ -147,6 +147,7 @@
     "//components/password_manager/core/browser/features:password_features",
     "//components/safe_browsing:buildflags",
     "//components/safe_browsing/core/common:safe_browsing_prefs",
+    "//components/tracing:tracing_metrics",
     "//components/variations/service",
     "//content/public/browser",
     "//net",
diff --git a/chrome/browser/actor/aggregated_journal_serializer.cc b/chrome/browser/actor/aggregated_journal_serializer.cc
index e2a8ea1..4a1d66b4 100644
--- a/chrome/browser/actor/aggregated_journal_serializer.cc
+++ b/chrome/browser/actor/aggregated_journal_serializer.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/actor/aggregated_journal_serializer.h"
 
 #include "base/containers/span.h"
+#include "components/tracing/common/system_profile_metadata_recorder.h"
 #include "third_party/abseil-cpp/absl/strings/str_format.h"
 #include "third_party/perfetto/include/perfetto/ext/tracing/core/trace_packet.h"
 #include "third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h"
@@ -12,6 +13,7 @@
 #include "third_party/perfetto/protos/perfetto/config/data_source_config.pbzero.h"
 #include "third_party/perfetto/protos/perfetto/config/trace_config.pbzero.h"
 #include "third_party/perfetto/protos/perfetto/config/track_event/track_event_config.gen.h"
+#include "third_party/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pbzero.h"
 #include "third_party/perfetto/protos/perfetto/trace/clock_snapshot.pbzero.h"
 #include "third_party/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pbzero.h"
 #include "third_party/perfetto/protos/perfetto/trace/trace_packet.pbzero.h"
@@ -88,6 +90,13 @@
     service_event->set_all_data_sources_started(true);
     WriteTracePacket(msg.SerializeAsArray());
   }
+
+  // Record the system info in the actor journal.
+  {
+    protozero::HeapBuffered<perfetto::protos::pbzero::TracePacket> msg;
+    tracing::RecordSystemProfileMetadata(msg->set_chrome_events());
+    WriteTracePacket(msg.SerializeAsArray());
+  }
 }
 
 AggregatedJournalSerializer::~AggregatedJournalSerializer() {
diff --git a/chrome/browser/actor/browser_action_util.cc b/chrome/browser/actor/browser_action_util.cc
index 04f6448..925843a 100644
--- a/chrome/browser/actor/browser_action_util.cc
+++ b/chrome/browser/actor/browser_action_util.cc
@@ -12,6 +12,7 @@
 #include "base/barrier_closure.h"
 #include "base/base64.h"
 #include "base/functional/callback_helpers.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/notimplemented.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/trace_event/trace_event.h"
@@ -716,6 +717,10 @@
         (fetch_result.annotated_page_content_result.value().end_time -
          start_time)
             .InMilliseconds());
+    base::UmaHistogramMediumTimes(
+        "Actor.PageContext.APC.Duration",
+        fetch_result.annotated_page_content_result.value().end_time -
+            fetch_context_time);
   }
 
   {
@@ -727,6 +732,9 @@
     latency_step->set_latency_stop_ms(
         (fetch_result.screenshot_result.value().end_time - start_time)
             .InMilliseconds());
+    base::UmaHistogramMediumTimes(
+        "Actor.PageContext.Screenshot.Duration",
+        fetch_result.screenshot_result.value().end_time - fetch_context_time);
   }
 
   // TODO(khushalsagar): Remove this once consumers use ActionResults for script
@@ -874,6 +882,8 @@
                        actions_start_time, base::TimeTicks::Now(),
                        base::Unretained(latency_info)));
   }
+  base::UmaHistogramCounts1000("Actor.PageContext.TabCount",
+                               tabs_to_fetch.size());
 }
 
 apc::ActionsResult BuildErrorActionsResult(
diff --git a/chrome/browser/actor/tools/drag_and_release_tool_browsertest.cc b/chrome/browser/actor/tools/drag_and_release_tool_browsertest.cc
index 1fea8bd..6d0dfd0 100644
--- a/chrome/browser/actor/tools/drag_and_release_tool_browsertest.cc
+++ b/chrome/browser/actor/tools/drag_and_release_tool_browsertest.cc
@@ -167,16 +167,8 @@
   EXPECT_EQ(50, GetRangeValue(*main_frame(), "#offscreenRange"));
 }
 
-// TODO(crbug.com/447000769): Flaky on Windows.
-#if BUILDFLAG(IS_WIN)
-#define MAYBE_DragAndReleaseTool_CrossOriginSubframe \
-  DISABLED_DragAndReleaseTool_CrossOriginSubframe
-#else
-#define MAYBE_DragAndReleaseTool_CrossOriginSubframe \
-  DragAndReleaseTool_CrossOriginSubframe
-#endif
 IN_PROC_BROWSER_TEST_P(ActorDragAndReleaseToolBrowserTest,
-                       MAYBE_DragAndReleaseTool_CrossOriginSubframe) {
+                       DragAndReleaseTool_CrossOriginSubframe) {
   const GURL url = embedded_https_test_server().GetURL(
       "/actor/positioned_iframe_no_scroll.html");
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
@@ -213,7 +205,13 @@
   actor_task().Act(ToRequestList(action), result_success.GetCallback());
   ExpectOkResult(result_success);
 
+#if BUILDFLAG(IS_WIN)
+  // TODO(crbug.com/447000769): Allow 1 pixel of slop - probably due to
+  // different display densities and the ToFlooredPoint above.
+  EXPECT_NEAR(50, GetRangeValue(*subframe, "#range"), 1);
+#else
   EXPECT_EQ(50, GetRangeValue(*subframe, "#range"));
+#endif
 }
 
 }  // namespace
diff --git a/chrome/browser/actor/tools/scroll_tool_request.cc b/chrome/browser/actor/tools/scroll_tool_request.cc
index 3086db2..9e3c1ba 100644
--- a/chrome/browser/actor/tools/scroll_tool_request.cc
+++ b/chrome/browser/actor/tools/scroll_tool_request.cc
@@ -6,18 +6,12 @@
 
 #include <optional>
 
-#include "base/time/time.h"
 #include "chrome/browser/actor/tools/tool_request_visitor_functor.h"
 #include "chrome/common/actor.mojom.h"
 #include "chrome/common/actor/actor_utils.h"
 
 namespace actor {
 
-namespace {
-// The default maximum duration for a scroll animation is 700ms.
-constexpr base::TimeDelta kPageStabilityStartDelay = base::Milliseconds(700);
-}  // namespace
-
 using ::tabs::TabHandle;
 
 ScrollToolRequest::ScrollToolRequest(TabHandle tab_handle,
@@ -66,17 +60,4 @@
   return std::make_unique<ScrollToolRequest>(*this);
 }
 
-std::optional<ObservationDelayController::PageStabilityConfig>
-ScrollToolRequest::GetObservationPageStabilityConfig() const {
-  if (UseGeneralPageStabilityAllTools()) {
-    // TODO(b/447308187): Consider optimization and only delay for smooth
-    // scrolls.
-    return ObservationDelayController::PageStabilityConfig{
-        .start_delay = kPageStabilityStartDelay,
-    };
-  } else {
-    return std::nullopt;
-  }
-}
-
 }  // namespace actor
diff --git a/chrome/browser/actor/tools/scroll_tool_request.h b/chrome/browser/actor/tools/scroll_tool_request.h
index 0c9f833..91434042 100644
--- a/chrome/browser/actor/tools/scroll_tool_request.h
+++ b/chrome/browser/actor/tools/scroll_tool_request.h
@@ -32,8 +32,6 @@
 
   // ToolRequest
   std::string JournalEvent() const override;
-  std::optional<ObservationDelayController::PageStabilityConfig>
-  GetObservationPageStabilityConfig() const override;
 
   // PageToolRequest
   mojom::ToolActionPtr ToMojoToolAction(
diff --git a/chrome/browser/actor/ui/actor_ui_state_manager.cc b/chrome/browser/actor/ui/actor_ui_state_manager.cc
index 883dc58..eb555c9 100644
--- a/chrome/browser/actor/ui/actor_ui_state_manager.cc
+++ b/chrome/browser/actor/ui/actor_ui_state_manager.cc
@@ -37,7 +37,7 @@
 // to be shared with tab controller.
 const UiTabState& GetActorControlledUiTabState() {
   static const UiTabState kActorState = {
-      .actor_overlay = ActorOverlayState(/*is_active=*/true),
+      .actor_overlay = {.is_active = true, .border_glow_visible = true},
       .handoff_button = {.is_active = true, .controller = kActor},
       .tab_indicator_visible = true,
       .border_glow_visible = true,
@@ -47,7 +47,7 @@
 
 const UiTabState& GetPausedUiTabState() {
   static const UiTabState kPausedState = {
-      .actor_overlay = ActorOverlayState(/*is_active=*/false),
+      .actor_overlay = {.is_active = false, .border_glow_visible = false},
       .handoff_button = {.is_active = true, .controller = kClient},
       .tab_indicator_visible = false,
       .border_glow_visible = false,
@@ -57,7 +57,7 @@
 
 const UiTabState& GetCompletedUiTabState() {
   static const UiTabState kCompletedState = {
-      .actor_overlay = ActorOverlayState(/*is_active=*/false),
+      .actor_overlay = {.is_active = false, .border_glow_visible = false},
       .handoff_button = {.is_active = false, .controller = kClient},
       .tab_indicator_visible = false,
       .border_glow_visible = false,
diff --git a/chrome/browser/actor/ui/actor_ui_state_manager_unittest.cc b/chrome/browser/actor/ui/actor_ui_state_manager_unittest.cc
index e8b3e51..df70964 100644
--- a/chrome/browser/actor/ui/actor_ui_state_manager_unittest.cc
+++ b/chrome/browser/actor/ui/actor_ui_state_manager_unittest.cc
@@ -219,49 +219,49 @@
   actor_ui_state_manager()->OnUiEvent(TaskStateChanged(task_id, task_state));
 }
 
-const auto kActorTaskTestValues =
-    std::vector<std::tuple<ActorTask::State, UiTabState>>{
-        {ActorTask::State::kActing,
-         UiTabState{
-             .actor_overlay = ActorOverlayState(/*is_active=*/true),
-             .handoff_button = {.is_active = true, .controller = kActor},
-             .tab_indicator_visible = true,
-             .border_glow_visible = true,
-         }},
-        {ActorTask::State::kReflecting,
-         UiTabState{
-             .actor_overlay = ActorOverlayState(/*is_active=*/true),
-             .handoff_button = {.is_active = true, .controller = kActor},
-             .tab_indicator_visible = true,
-             .border_glow_visible = true,
-         }},
-        {ActorTask::State::kPausedByActor,
-         UiTabState{
-             .actor_overlay = ActorOverlayState(/*is_active=*/false),
-             .handoff_button = {.is_active = true, .controller = kClient},
-             .tab_indicator_visible = false,
-             .border_glow_visible = false,
-         }},
-        {ActorTask::State::kPausedByUser,
-         UiTabState{
-             .actor_overlay = ActorOverlayState(/*is_active=*/false),
-             .handoff_button = {.is_active = true, .controller = kClient},
-             .tab_indicator_visible = false,
-             .border_glow_visible = false,
-         }},
-        {ActorTask::State::kCancelled,
-         UiTabState{
-             .actor_overlay = ActorOverlayState(/*is_active=*/false),
-             .handoff_button = {.is_active = false},
-             .tab_indicator_visible = false,
-         }},
-        {ActorTask::State::kFinished,
-         UiTabState{
-             .actor_overlay = ActorOverlayState(/*is_active=*/false),
-             .handoff_button = {.is_active = false},
-             .tab_indicator_visible = false,
-             .border_glow_visible = false,
-         }}};
+const auto kActorTaskTestValues = std::vector<
+    std::tuple<ActorTask::State, UiTabState>>{
+    {ActorTask::State::kActing,
+     UiTabState{
+         .actor_overlay = {.is_active = true, .border_glow_visible = true},
+         .handoff_button = {.is_active = true, .controller = kActor},
+         .tab_indicator_visible = true,
+         .border_glow_visible = true,
+     }},
+    {ActorTask::State::kReflecting,
+     UiTabState{
+         .actor_overlay = {.is_active = true, .border_glow_visible = true},
+         .handoff_button = {.is_active = true, .controller = kActor},
+         .tab_indicator_visible = true,
+         .border_glow_visible = true,
+     }},
+    {ActorTask::State::kPausedByActor,
+     UiTabState{
+         .actor_overlay = {.is_active = false, .border_glow_visible = false},
+         .handoff_button = {.is_active = true, .controller = kClient},
+         .tab_indicator_visible = false,
+         .border_glow_visible = false,
+     }},
+    {ActorTask::State::kPausedByUser,
+     UiTabState{
+         .actor_overlay = {.is_active = false, .border_glow_visible = false},
+         .handoff_button = {.is_active = true, .controller = kClient},
+         .tab_indicator_visible = false,
+         .border_glow_visible = false,
+     }},
+    {ActorTask::State::kCancelled,
+     UiTabState{
+         .actor_overlay = {.is_active = false, .border_glow_visible = false},
+         .handoff_button = {.is_active = false},
+         .tab_indicator_visible = false,
+     }},
+    {ActorTask::State::kFinished,
+     UiTabState{
+         .actor_overlay = {.is_active = false, .border_glow_visible = false},
+         .handoff_button = {.is_active = false},
+         .tab_indicator_visible = false,
+         .border_glow_visible = false,
+     }}};
 
 INSTANTIATE_TEST_SUITE_P(ActorUiStateManagerActorTaskUiTabScopedTest,
                          ActorUiStateManagerActorTaskUiTabScopedTest,
@@ -286,7 +286,7 @@
 TEST_F(ActorUiStateManagerUiEventUiTabScopedTest,
        OnStartingToActOnTab_UpdatesUiCorrectly) {
   UiTabState expected_ui_tab_state{
-      .actor_overlay = ActorOverlayState(/*is_active=*/true),
+      .actor_overlay = {.is_active = true, .border_glow_visible = true},
       .handoff_button = {.is_active = true, .controller = kActor},
       .tab_indicator_visible = true,
       .border_glow_visible = true,
@@ -298,7 +298,7 @@
 TEST_F(ActorUiStateManagerUiEventUiTabScopedTest,
        OnStoppedActingOnTab_UpdatesUiCorrectly) {
   UiTabState expected_ui_tab_state{
-      .actor_overlay = ActorOverlayState(/*is_active=*/false),
+      .actor_overlay = {.is_active = false},
       .handoff_button = {.is_active = false},
       .tab_indicator_visible = false,
       .border_glow_visible = false,
@@ -310,9 +310,10 @@
 TEST_F(ActorUiStateManagerUiEventUiTabScopedTest,
        OnMouseMove_UpdatesUiCorrectly) {
   UiTabState expected_ui_tab_state{
-      .actor_overlay = ActorOverlayState(
-          /*is_active=*/true, /*mouse_down=*/false,
-          /*mouse_target=*/gfx::Point(100, 200)),
+      .actor_overlay = {.is_active = true,
+                        .border_glow_visible = true,
+                        .mouse_down = false,
+                        .mouse_target = gfx::Point(100, 200)},
       .handoff_button = {.is_active = true, .controller = kActor},
       .tab_indicator_visible = true,
       .border_glow_visible = true,
@@ -325,8 +326,9 @@
 TEST_F(ActorUiStateManagerUiEventUiTabScopedTest,
        OnMouseClick_UpdatesUiCorrectly) {
   UiTabState expected_ui_tab_state{
-      .actor_overlay =
-          ActorOverlayState(/*is_active=*/true, /*mouse_down=*/true),
+      .actor_overlay = {.is_active = true,
+                        .border_glow_visible = true,
+                        .mouse_down = true},
       .handoff_button = {.is_active = true, .controller = kActor},
       .tab_indicator_visible = true,
       .border_glow_visible = true,
diff --git a/chrome/browser/actor/ui/actor_ui_tab_controller_interface.h b/chrome/browser/actor/ui/actor_ui_tab_controller_interface.h
index d31182a..2885c3c 100644
--- a/chrome/browser/actor/ui/actor_ui_tab_controller_interface.h
+++ b/chrome/browser/actor/ui/actor_ui_tab_controller_interface.h
@@ -21,6 +21,8 @@
   ActorOverlayState actor_overlay;
   HandoffButtonState handoff_button;
   bool tab_indicator_visible = false;
+  // TODO(crbug.com/447114657) Deprecate the Tab Level border_glow_visible as it
+  // is now part of the Overlay.
   bool border_glow_visible = false;
 };
 
diff --git a/chrome/browser/actor/ui/actor_ui_tab_controller_unittest.cc b/chrome/browser/actor/ui/actor_ui_tab_controller_unittest.cc
index 02a3c01..0ead36a 100644
--- a/chrome/browser/actor/ui/actor_ui_tab_controller_unittest.cc
+++ b/chrome/browser/actor/ui/actor_ui_tab_controller_unittest.cc
@@ -236,7 +236,7 @@
 
   HandoffButtonState handoff_button_state(
       true, HandoffButtonState::ControlOwnership::kActor);
-  ActorOverlayState actor_overlay_state(true, false, std::nullopt);
+  ActorOverlayState actor_overlay_state{.is_active = true};
   UiTabState ui_tab_state_glow_on(actor_overlay_state, handoff_button_state,
                                   /*tab_indicator_visible=*/false,
                                   /*border_glow_visible=*/true);
@@ -276,8 +276,7 @@
 
 TEST_F(ActorUiTabControllerTest,
        OnUiTabStateChange_SameStateRunsCallbackOnceAndDoesNotUpdateState) {
-  ActorOverlayState actor_overlay_state(
-      /*is_active=*/true, /*mouse_down=*/false, /*mouse_target=*/std::nullopt);
+  ActorOverlayState actor_overlay_state{.is_active = true};
   HandoffButtonState handoff_button_state(
       /*is_active=*/true,
       /*control_ownership=*/HandoffButtonState::ControlOwnership::kActor);
diff --git a/chrome/browser/actor/ui/states/actor_overlay_state.h b/chrome/browser/actor/ui/states/actor_overlay_state.h
index 0bf8cd0a..de4c433 100644
--- a/chrome/browser/actor/ui/states/actor_overlay_state.h
+++ b/chrome/browser/actor/ui/states/actor_overlay_state.h
@@ -17,6 +17,8 @@
   // This member is intended to be used alongside the relevant tab's visibility
   // status to determine whether or not the actor overlay should be shown.
   bool is_active = false;
+  // Whether or not the border glow should be visible.
+  bool border_glow_visible = false;
   // A magic mouse click was triggered.
   bool mouse_down = false;
   // The target at which the magic mouse should be over.
diff --git a/chrome/browser/ai/ai_crx_component.cc b/chrome/browser/ai/ai_crx_component.cc
index 1cdda7f9..84f176d 100644
--- a/chrome/browser/ai/ai_crx_component.cc
+++ b/chrome/browser/ai/ai_crx_component.cc
@@ -104,7 +104,8 @@
     return;
   }
 
-  SetDownloadedBytes(item.downloaded_bytes);
+  // Crx components may send downloaded_bytes that exceed the total_bytes.
+  SetDownloadedBytes(std::min(item.downloaded_bytes, item.total_bytes));
   SetTotalBytes(item.total_bytes);
 }
 
diff --git a/chrome/browser/ai/ai_crx_component_unittest.cc b/chrome/browser/ai/ai_crx_component_unittest.cc
index 048bbd64..fa7f1649 100644
--- a/chrome/browser/ai/ai_crx_component_unittest.cc
+++ b/chrome/browser/ai/ai_crx_component_unittest.cc
@@ -223,4 +223,28 @@
   }
 }
 
+TEST_F(AICrxComponentTest, DownloadedBytesWontExceedTotalBytes) {
+  AIModelDownloadProgressManager manager;
+  AITestUtils::FakeMonitor monitor;
+  AITestUtils::FakeComponent& component = CreateComponent("component_id", 100);
+
+  manager.AddObserver(monitor.BindNewPipeAndPassRemote(),
+                      AICrxComponent::FromComponentIds(
+                          &component_update_service_, {component.id()}));
+
+  // Send a zero, so that the `AIModelDownloadProgressManager` sends the first
+  // update. This ensures that the already downloaded bytes is zero.
+  SendUpdate(component, ComponentState::kDownloading, 0);
+  monitor.ExpectReceivedNormalizedUpdate(0, component.total_bytes());
+  FastForwardBy(base::Milliseconds(51));
+
+  // Sending an update that exceeds the component's total bytes is clamped to
+  // the component's total bytes.
+  SendUpdate(component, ComponentState::kDownloading,
+             component.total_bytes() * 2);
+  monitor.ExpectReceivedNormalizedUpdate(component.total_bytes(),
+                                         component.total_bytes());
+  FastForwardBy(base::Milliseconds(51));
+}
+
 }  // namespace on_device_ai
diff --git a/chrome/browser/android/tab_state_storage_service_android.cc b/chrome/browser/android/tab_state_storage_service_android.cc
index 7dda972..ac993ed 100644
--- a/chrome/browser/android/tab_state_storage_service_android.cc
+++ b/chrome/browser/android/tab_state_storage_service_android.cc
@@ -18,6 +18,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/token.h"
 #include "chrome/browser/android/tab_android.h"
+#include "chrome/browser/tab/protocol/tab_state.pb.h"
 #include "chrome/browser/tab/tab_state_storage_backend.h"
 #include "chrome/browser/tab/tab_state_storage_service.h"
 
diff --git a/chrome/browser/apps/app_service/chrome_app_deprecation/chrome_app_deprecation.cc b/chrome/browser/apps/app_service/chrome_app_deprecation/chrome_app_deprecation.cc
index f17c253..d5ebf36 100644
--- a/chrome/browser/apps/app_service/chrome_app_deprecation/chrome_app_deprecation.cc
+++ b/chrome/browser/apps/app_service/chrome_app_deprecation/chrome_app_deprecation.cc
@@ -35,144 +35,282 @@
              base::FEATURE_ENABLED_BY_DEFAULT);
 
 namespace {
-constexpr auto kCommonAllowlist = base::MakeFixedFlatSet<std::string_view>(
-    {"aakfkoilmhehmmadlkedfbcelkbamdkj", "acdafoiapclbpdkhnighhilgampkglpc",
-     "aepgaekjheajlcifmpjcnpbjcencoefn", "afoipjmffplafpbfjopglheidddioiai",
-     "afpnehpifljbjjplppeplamalioanmio", "ahpbemfdnadmigmdjhebofmeaonbpfmc",
-     "anjihnbmjbbpofafpmklejenkgnjfcdi", "aoijoapjiidlaapoinclpjkmpaeckiff",
-     "aphendncpdekdkepekckjkiloclamieb", "baifnloidiaigliddpkifgokjemcbcei",
-     "bajigdlccokpmeadnhpfhpehdefbgaen", "bbkieeoaobjflkeakhemifofdbbfhnic",
-     "bhfbomkadeplbpgfmiihpglmenahkmao", "bikbageiaongkigeijiahadjbcgindbj",
-     "bnkchehofckdmggiknjidlamlpokbodf", "bpmgmelggoioalpijejanjhbjkfeehbg",
-     "cahbpjmendhigemdnlifkfmdhnipbdil", "cajomgbhgfomgakdejohnkomlblhhlmo",
-     "cdebpoondplobcgjepkgplleeeeojmpa", "cdgdgmknjolkacdiheibdjmidfkooodf",
-     "cedlmaejgblmkmnddjikaagkhbfonihp", "cgpnjolncgemfdgbfokgdbmhpondgjmm",
-     "coomdpjcngcbdefihidllngfemgnmlhh", "dcfnglblnliiebcjiffpnecdkjnomjbl",
-     "demfodeljeofljmbplgpcncaebjmboog", "demlnppodlnndiacjgbijdjnnnoninak",
-     "denipklgekfpcdmbahmbpnmokgajnhma", "deokbmklnlnlikckmachjjhgnidefhhg",
-     "dgmhhjhnkhlmooconggnbjhlmpkpliij", "djkbhkgnbiknnlinckcclejmjkddokhl",
-     "djobiocnmcaeodjcdhbhjgjndhiadgod", "eaghkdkaebflfmmhidgnldnncfpknpne",
-     "ealfhldampafeomimeidejkicmipkgkh", "eblkmenpohbbmbelfaggegpjfjokihke",
-     "ecgoodkkapeinahfgidbfknincokmhdg", "efadkfcohfppfffgblnflcakfhfdjiig",
-     "ejbidlmioeopgmjieecjihnlgacicoie", "ejoilaclhpbfooagcjdkkmklhjipgmll",
-     "ekiflcmfallbndjhecchfcipbaajdfhl", "ekigfkofdacepchbgkogfedfapdekjgp",
-     "emejfeljcemojhhcmobdeflgjabpafip", "emlbfhdjchamibhjgcokeipljabljheo",
-     "enfpdhommpcbfiojillmflopkkjbcjmf", "faidilipbonmepcjdkhjfencfaaccgic",
-     "famkiocmnjimafojaajdngnidmgnacme", "fecgcoakonfhepcppcbddeefeoekhbah",
-     "fenegagmedfckampfgjbeoflcpcpdppc", "ffhbnjlppmbnhahkbkcjgapgfinabjgb",
-     "fhohelmkloeoheiminpldlhkdfcmjbfm", "fjdejbdegplidjpkgcblpdibepibfifg",
-     "fmfiolcdkhopmhgjbmlgpfcpfbeneope", "fnbgnnegegboidihpleofgakpegcidim",
-     "fooeehkjmkcohfidagefenolegldgmpp", "gbfihfamagomeondkhooeamjajjadpio",
-     "geopjmggmojbcnjlkcnfbgdniomaioif", "gfajignjkjbleogeegcgjimnkooihmdm",
-     "ggaabodlngcnbdcpkfacegoacchkalmn", "ggddmkhlbkollcjopbnkbbhnikncfena",
-     "gjenjmcioeobmpllaeopaoibabhgcohi", "glcdffonolecglhbodpaeijkhgdfkbon",
-     "gnddkmpjjjcimefninepfmmddpgaaado", "gngadipbljmmcgcjjflidckpbgebnhod",
-     "gnogkjfeajjnafijfmffnkgenhnkdnfp", "gpgnoonhefbmngkiafpedbligiiekfcp",
-     "haeblkpifdemlfnkogkipmghfcbonief", "haiffjcadagjlijoggckpgfnoeiflnem",
-     "hanegekdenjamflmdgcbjlobfkijeblp", "hclmbafbgpncekjmadbbcpekilflmkfg",
-     "hgdemhjioannjiccnfgmllghllhpncpm", "hginjgofkfbdfpkjcchdklbkkdbigpna",
-     "hhcgnlnhaapiekdelngjichnccjfkbnc", "hkamnlhnogggfddmjomgbdokdkgfelgg",
-     "hkmlofdlheebfpgfcmgbdjddnoniccno", "hmpdelcfcndndcoldocpdmakeabbihgb",
-     "hnlanngibjpmdolooednhkedmfbdbmhc", "hpdnjcbgolagabfgcgjpicbknmgefakl",
-     "hplnogolijklhfbbfogccgickedplpeo", "iedihkacboebiliakaicmedjmajmjiep",
-     "ighapdcohmkppihdjdejlbkolhbgnlfm", "ihlmfpkjommgamcgofmdmojpeolimlfe",
-     "iiaffmacblgjekhogmghdjfflchkjmmg", "iilndnicahkogiklibnnibmmeikacnfo",
-     "iinmojhiolplpndeijdkfoghkokbfadb", "iiopclfeneoimifgocjnhcjpjgaojhho",
-     "ijdoledcajbpfbkiafmmimjhmkmdppjo", "ikfcpmgefdpheiiomgmhlmmkihchmdlj",
-     "ikgemedabaijdochaempgdpfebllgfcc", "iknkgipmikbpldmppngljbedofgmanfm",
-     "inaonhfifmcnldmdnlbnfpikjndebkbj", "jfhndkehlkceadabhedbcclclbclhnbh",
-     "jgafcpolgeedpieaadaeeaoanackiina", "jglaiblkoeelgfdabnhpcpdnodjonclf",
-     "jjkgijommndbjlekbalbbiiidnigcgfl", "jjlhmikmcgmheddmlfeckndcedkmcpng",
-     "jjnejapcbafplbdkbombhmmjnafplkon", "jjoncgfekjbknjfejfonaochdpdedbka",
-     "jlgegmdnodfhciolbdjciihnlaljdbjo", "jnnkgopblccifpnkfpfkmdafjebjlhcc",
-     "jnojnnofimbdpeihiddafgagckdlnlpe", "jpmngkkdajjfkdknhbifjbglkckbklee",
-     "kahkblckpdgogkogmfhfnldpjhdpfiia", "kdbdkbbfhghbggpjmpapmobihghkdmkh",
-     "kdndmepchimlohdcdkokdddpbnniijoa", "kenkpdjcfppbccchillfdjkjnejjgand",
-     "kflikliicodcopdhibchdfaninnhbalf", "kfllildicglifipmhpnlmpfbkdponghk",
-     "khpfeaanjngmcnplbdlpegiifgpfgdco", "khplkoflcklpnlofodhlnjeiodbmejoe",
-     "kjceddihhogmglodncbmpembbclhnpda", "kjfhgcncjdebkoofmbjoiemiboifnpbo",
-     "kljahdaehfmgddhnibkikcjfppjcjjcn", "kmfbmibhlikajdfjbddlolmdkkbiephg",
-     "lbfgjakkeeccemhonnolnmglmfmccaag", "ldmpofkllgeicjiihkimgeccbhghhmfj",
-     "lemoeliioheohdcoogohonkamhloahbb", "likeoemlchnioaoaklldmcnilhhpjamo",
-     "lkbhffjfgpmpeppncnimiiikojibkhnm", "lknebpkncfibkhjkimejlgppnjgemobn",
-     "lmhpnmjggoibofacnookchiemlihmjdd", "lnnghenlbgaeloipgjlafjhlccipbpnm",
-     "maegcedffmoidlccpjahiglkaacbncnn", "mclaaifjbcglkbdhdkaamamplpjoabih",
-     "mdmkkicfmmkgmpkmkdikhlbggogpicma", "medpmkohocjidlghgmnnkpfigfpddaok",
-     "mhbelemjphdecdagmmengimkkiefmcej", "mhfhafklkbgalhbdihiccegaldefdigp",
-     "mhjpnpdhahbahbjedoihlganncneknfo", "millmignkmpaolllendlllaibmeehohd",
-     "mkjgggeeejocddadcegdhcchhmemokcn", "mndakpenoffnhdmpcpnajekhpbonggeo",
-     "moklfjoegmpoolceggbebbmgbddlhdgp", "mpjaajdhcmmkeikfdgffdpdjncdnmhmk",
-     "ncjnakhgkcldedboafigaailhldnellf", "ndlolfeihajiaklmehdnajjoblphkppd",
-     "nenolmmehjhaggnamcglapjjdofcojao", "nghoaommfphpdlipedlebgcnmphedhdb",
-     "ngiaihbicdcdflfkhilnaaeobnchggkk", "nhebofpemjfflnkmaneaopjickpliokk",
-     "njofdhegeeccijokfiijflbfajgjclch", "oanbapfpojpdpjppgcmdhcjehacnccbm",
-     "ocnncjgbkiomppnchhbmmcpblifejpco", "odcalbcbcmnepllckjhdndgmolpnddjo",
-     "oefoedhdllfdpfpjhhccdiglflemnfdb", "oflckobdemeldmjddmlbaiaookhhcngo",
-     "ofmlpkdeaopippomdfamngkpnbagkdem", "ogmfbebknnapidhhefcdgmoafjeblnjo",
-     "okaiidkcbkpimeiebofglgpobdafmmeb", "ondpjadajoodngapikdebdcnjcjkeecc",
-     "opalidednimmhdfbcpdmoihhpkahgkak", "pdgbdkbnajhamggjjlhlapedeolflpgm",
-     "pdpgalakpabfiiadeiimoolhemoleaeg", "pgolnnkmmlpbnhfcfbephcnkooejbcep",
-     "pifpopligmljinioeacaccciabhbbpjo", "plhmjahmpikllpphfaoopdhnkbpffccm",
-     "pnclfbefcgmenbbbpljbhbdacgkgkjlh", "ppkfnjlimknmjoaemnpidmdlfchhehel"});
+constexpr auto kCommonAllowlist = base::MakeFixedFlatSet<std::string_view>({
+    // go/keep-sorted start
+    "aakfkoilmhehmmadlkedfbcelkbamdkj",
+    "acdafoiapclbpdkhnighhilgampkglpc",
+    "aepgaekjheajlcifmpjcnpbjcencoefn",
+    "afoipjmffplafpbfjopglheidddioiai",
+    "afpnehpifljbjjplppeplamalioanmio",
+    "ahpbemfdnadmigmdjhebofmeaonbpfmc",
+    "anjihnbmjbbpofafpmklejenkgnjfcdi",
+    "aoijoapjiidlaapoinclpjkmpaeckiff",
+    "aphendncpdekdkepekckjkiloclamieb",
+    "baifnloidiaigliddpkifgokjemcbcei",
+    "bajigdlccokpmeadnhpfhpehdefbgaen",
+    "bbkieeoaobjflkeakhemifofdbbfhnic",
+    "bhfbomkadeplbpgfmiihpglmenahkmao",
+    "bikbageiaongkigeijiahadjbcgindbj",
+    "bnkchehofckdmggiknjidlamlpokbodf",
+    "bpmgmelggoioalpijejanjhbjkfeehbg",
+    "cahbpjmendhigemdnlifkfmdhnipbdil",
+    "cajomgbhgfomgakdejohnkomlblhhlmo",
+    "cdebpoondplobcgjepkgplleeeeojmpa",
+    "cdgdgmknjolkacdiheibdjmidfkooodf",
+    "cedlmaejgblmkmnddjikaagkhbfonihp",
+    "cgpnjolncgemfdgbfokgdbmhpondgjmm",
+    "coomdpjcngcbdefihidllngfemgnmlhh",
+    "dcfnglblnliiebcjiffpnecdkjnomjbl",
+    "demfodeljeofljmbplgpcncaebjmboog",
+    "demlnppodlnndiacjgbijdjnnnoninak",
+    "denipklgekfpcdmbahmbpnmokgajnhma",
+    "deokbmklnlnlikckmachjjhgnidefhhg",
+    "dgmhhjhnkhlmooconggnbjhlmpkpliij",
+    "djkbhkgnbiknnlinckcclejmjkddokhl",
+    "djobiocnmcaeodjcdhbhjgjndhiadgod",
+    "eaghkdkaebflfmmhidgnldnncfpknpne",
+    "ealfhldampafeomimeidejkicmipkgkh",
+    "eblkmenpohbbmbelfaggegpjfjokihke",
+    "ecgoodkkapeinahfgidbfknincokmhdg",
+    "efadkfcohfppfffgblnflcakfhfdjiig",
+    "ejbidlmioeopgmjieecjihnlgacicoie",
+    "ejoilaclhpbfooagcjdkkmklhjipgmll",
+    "ekiflcmfallbndjhecchfcipbaajdfhl",
+    "ekigfkofdacepchbgkogfedfapdekjgp",
+    "emejfeljcemojhhcmobdeflgjabpafip",
+    "emlbfhdjchamibhjgcokeipljabljheo",
+    "enfpdhommpcbfiojillmflopkkjbcjmf",
+    "faidilipbonmepcjdkhjfencfaaccgic",
+    "famkiocmnjimafojaajdngnidmgnacme",
+    "fecgcoakonfhepcppcbddeefeoekhbah",
+    "fenegagmedfckampfgjbeoflcpcpdppc",
+    "ffhbnjlppmbnhahkbkcjgapgfinabjgb",
+    "fhohelmkloeoheiminpldlhkdfcmjbfm",
+    "fjdejbdegplidjpkgcblpdibepibfifg",
+    "fmfiolcdkhopmhgjbmlgpfcpfbeneope",
+    "fnbgnnegegboidihpleofgakpegcidim",
+    "fooeehkjmkcohfidagefenolegldgmpp",
+    "gbfihfamagomeondkhooeamjajjadpio",
+    "geopjmggmojbcnjlkcnfbgdniomaioif",
+    "gfajignjkjbleogeegcgjimnkooihmdm",
+    "ggaabodlngcnbdcpkfacegoacchkalmn",
+    "ggddmkhlbkollcjopbnkbbhnikncfena",
+    "gjenjmcioeobmpllaeopaoibabhgcohi",
+    "glcdffonolecglhbodpaeijkhgdfkbon",
+    "gnddkmpjjjcimefninepfmmddpgaaado",
+    "gngadipbljmmcgcjjflidckpbgebnhod",
+    "gnogkjfeajjnafijfmffnkgenhnkdnfp",
+    "gpgnoonhefbmngkiafpedbligiiekfcp",
+    "haeblkpifdemlfnkogkipmghfcbonief",
+    "haiffjcadagjlijoggckpgfnoeiflnem",
+    "hanegekdenjamflmdgcbjlobfkijeblp",
+    "hclmbafbgpncekjmadbbcpekilflmkfg",
+    "hgdemhjioannjiccnfgmllghllhpncpm",
+    "hginjgofkfbdfpkjcchdklbkkdbigpna",
+    "hhcgnlnhaapiekdelngjichnccjfkbnc",
+    "hkamnlhnogggfddmjomgbdokdkgfelgg",
+    "hkmlofdlheebfpgfcmgbdjddnoniccno",
+    "hmpdelcfcndndcoldocpdmakeabbihgb",
+    "hnlanngibjpmdolooednhkedmfbdbmhc",
+    "hpdnjcbgolagabfgcgjpicbknmgefakl",
+    "hplnogolijklhfbbfogccgickedplpeo",
+    "iedihkacboebiliakaicmedjmajmjiep",
+    "ighapdcohmkppihdjdejlbkolhbgnlfm",
+    "ihlmfpkjommgamcgofmdmojpeolimlfe",
+    "iiaffmacblgjekhogmghdjfflchkjmmg",
+    "iilndnicahkogiklibnnibmmeikacnfo",
+    "iinmojhiolplpndeijdkfoghkokbfadb",
+    "iiopclfeneoimifgocjnhcjpjgaojhho",
+    "ijdoledcajbpfbkiafmmimjhmkmdppjo",
+    "ikfcpmgefdpheiiomgmhlmmkihchmdlj",
+    "ikgemedabaijdochaempgdpfebllgfcc",
+    "iknkgipmikbpldmppngljbedofgmanfm",
+    "inaonhfifmcnldmdnlbnfpikjndebkbj",
+    "jfhndkehlkceadabhedbcclclbclhnbh",
+    "jgafcpolgeedpieaadaeeaoanackiina",
+    "jglaiblkoeelgfdabnhpcpdnodjonclf",
+    "jjkgijommndbjlekbalbbiiidnigcgfl",
+    "jjlhmikmcgmheddmlfeckndcedkmcpng",
+    "jjnejapcbafplbdkbombhmmjnafplkon",
+    "jjoncgfekjbknjfejfonaochdpdedbka",
+    "jlgegmdnodfhciolbdjciihnlaljdbjo",
+    "jnnkgopblccifpnkfpfkmdafjebjlhcc",
+    "jnojnnofimbdpeihiddafgagckdlnlpe",
+    "jpmngkkdajjfkdknhbifjbglkckbklee",
+    "kahkblckpdgogkogmfhfnldpjhdpfiia",
+    "kdbdkbbfhghbggpjmpapmobihghkdmkh",
+    "kdndmepchimlohdcdkokdddpbnniijoa",
+    "kenkpdjcfppbccchillfdjkjnejjgand",
+    "kflikliicodcopdhibchdfaninnhbalf",
+    "kfllildicglifipmhpnlmpfbkdponghk",
+    "khpfeaanjngmcnplbdlpegiifgpfgdco",
+    "khplkoflcklpnlofodhlnjeiodbmejoe",
+    "kjceddihhogmglodncbmpembbclhnpda",
+    "kjfhgcncjdebkoofmbjoiemiboifnpbo",
+    "kljahdaehfmgddhnibkikcjfppjcjjcn",
+    "kmfbmibhlikajdfjbddlolmdkkbiephg",
+    "lbfgjakkeeccemhonnolnmglmfmccaag",
+    "ldmpofkllgeicjiihkimgeccbhghhmfj",
+    "lemoeliioheohdcoogohonkamhloahbb",
+    "likeoemlchnioaoaklldmcnilhhpjamo",
+    "lkbhffjfgpmpeppncnimiiikojibkhnm",
+    "lknebpkncfibkhjkimejlgppnjgemobn",
+    "lmhpnmjggoibofacnookchiemlihmjdd",
+    "lnnghenlbgaeloipgjlafjhlccipbpnm",
+    "maegcedffmoidlccpjahiglkaacbncnn",
+    "mclaaifjbcglkbdhdkaamamplpjoabih",
+    "mdmkkicfmmkgmpkmkdikhlbggogpicma",
+    "medpmkohocjidlghgmnnkpfigfpddaok",
+    "mhbelemjphdecdagmmengimkkiefmcej",
+    "mhfhafklkbgalhbdihiccegaldefdigp",
+    "mhjpnpdhahbahbjedoihlganncneknfo",
+    "millmignkmpaolllendlllaibmeehohd",
+    "mkjgggeeejocddadcegdhcchhmemokcn",
+    "mndakpenoffnhdmpcpnajekhpbonggeo",
+    "moklfjoegmpoolceggbebbmgbddlhdgp",
+    "mpjaajdhcmmkeikfdgffdpdjncdnmhmk",
+    "ncjnakhgkcldedboafigaailhldnellf",
+    "ndlolfeihajiaklmehdnajjoblphkppd",
+    "nenolmmehjhaggnamcglapjjdofcojao",
+    "nghoaommfphpdlipedlebgcnmphedhdb",
+    "ngiaihbicdcdflfkhilnaaeobnchggkk",
+    "nhebofpemjfflnkmaneaopjickpliokk",
+    "njofdhegeeccijokfiijflbfajgjclch",
+    "oanbapfpojpdpjppgcmdhcjehacnccbm",
+    "ocnncjgbkiomppnchhbmmcpblifejpco",
+    "odcalbcbcmnepllckjhdndgmolpnddjo",
+    "oefoedhdllfdpfpjhhccdiglflemnfdb",
+    "oflckobdemeldmjddmlbaiaookhhcngo",
+    "ofmlpkdeaopippomdfamngkpnbagkdem",
+    "ogmfbebknnapidhhefcdgmoafjeblnjo",
+    "okaiidkcbkpimeiebofglgpobdafmmeb",
+    "ondpjadajoodngapikdebdcnjcjkeecc",
+    "opalidednimmhdfbcpdmoihhpkahgkak",
+    "pdgbdkbnajhamggjjlhlapedeolflpgm",
+    "pdpgalakpabfiiadeiimoolhemoleaeg",
+    "pgolnnkmmlpbnhfcfbephcnkooejbcep",
+    "pifpopligmljinioeacaccciabhbbpjo",
+    "plhmjahmpikllpphfaoopdhnkbpffccm",
+    "pnclfbefcgmenbbbpljbhbdacgkgkjlh",
+    "ppkfnjlimknmjoaemnpidmdlfchhehel"
+    // go/keep-sorted end
+});
 
 constexpr auto kUserInstalledAllowlist = base::flat_set<std::string_view>();
 
-constexpr auto kKioskSessionAllowlist = base::MakeFixedFlatSet<
-    std::string_view>(
-    {"adbijfidmjidmkkpiglnfkflcoblkfmn", "adpfhflbokfdhnfakijgjkpkjegncbpl",
-     "agkggapglfgffelalcfgbjmhkaljnbmn", "alaoimaeafbgfglpffgcidfgbjnekifp",
-     "alhlkpgheiefedomljbenmkpconkffhk", "amdpebpoiccejfcnocgebkidfmkcdfei",
-     "aoebmljacknghkklaholjkflllbghhnj", "bgldcjbajnkfkephalfogfgklkgjnjeo",
-     "bhcnmihmgdljpnnoobnbdmdjhmfgcpio", "bloholppicibpgbagaebcaagiikicjbn",
-     "cafpcfibibiomlehdnmabchhekeifbgb", "cdomppfkcljjopjijjdchhjfioljaeph",
-     "cgihdamofndnjjlglmcaabdafhmoconf", "ckmkndfplnldgohnnkhmeokbmedpdbjl",
-     "clbgknjcblogheibmcbbdlpkollmgofh", "cmhiajbopgbagidplpiaclnpglmhbhka",
-     "cpbpbhkfonocjjamhjeabdihibkoajlc", "dakemaookmhkdfgcgebakflmhgdhille",
-     "dakmgckkclepfbfeldlgenikiobflcne", "ddhhodggehedggajomidnmgchfnbeold",
-     "dfjigmapgofdlgieniibjdcddlaafick", "dinalfjmfmjkdnkgbbjncgchmghijpgl",
-     "ealpglkmnpenllgjjgdojoemohidefdm", "edhlcbaemfhpoblalbdgeegmaddjdcae",
-     "edpaojhfdnnebhmmhdlpnpomoaopfjod", "efdahhfldoeikfglgolhibmdidbnpneo",
-     "emlbcjpcbepfnhpkiidenlnfdjbghmpg", "fammfnbkkollpklfkachppebochgakjg",
-     "fcichhfeoaikaoldkncmggipmpcbgffg", "fdlpibjfnlhnmeckjjhfiejfdghkmkdm",
-     "gbecpjnejcnafnkgfciepngjcndodann", "gbgncgdjjnelalecmmkimnlgfpmbihog",
-     "gcefeoeohcoeoofmehgjfipjiepodlhg", "gdehbmmmjkddbonbmknngoigkleicpec",
-     "genfdmkliekafjhadcpnhefgicceohhd", "gmdgbdlpbnhiogedlhmdiceocbgcbpgi",
-     "gobhocmdcdpfebockbogdfhnebgmemnf", "hadonmdpeimgfpmmmeldbmjiknnbfdhk",
-     "hbcogfhdhehbfnedbbboiiddpkkjjnio", "hbfbekdejbpmnpilhdnfokjehnianfeb",
-     "hblfbmjdaalalhifaajnnodlkiloengc", "hchdcamjekgapahefjapegmaapggeafe",
-     "hebfpdlglfmneladiogocbflmbjneeoh", "hgkaljnpgngpcgnaonmbdgaolefknaaj",
-     "hhbmmipodfklmbmiaegcbmbfmmfbngnf", "hjbkdjhfdcinjcljfbealemkioalnfao",
-     "ibboejlnnenbhpjfpgoglholgpdjjeff", "icfpencnfmadodjpbbdipkkkljmamine",
-     "iflkfmkmpafjfdkkokpkjpjmiogkdjjl", "igknghlgndjihblholjbbhjbcfilkilb",
-     "ilehifjdadbblbcnciiggmcbmobkikcb", "jamdkebjilnlfjndffcnekbipcfkhmem",
-     "jcgamccimilnfjpbkbadommjcaplmfod", "jefdfinffojbalcgpkigjjijghmllgil",
-     "jiecdjmgkgmgmbonhifblhfaaecnomcj", "jifdnnnegbhoagepoobbmajnpkmcbjig",
-     "jjlmjgfhdijljijikefhmgmhbchnkmnm", "jmiabaaccndlngedakcjbpbgokhgcpfd",
-     "jnlegeoomaehdodfmpmlflpjapebjjjl", "jnlhnplbndpohngdfjhmdinlpofclhdp",
-     "kacodfanpfkedlelnagnbgfbaabjfddn", "kbkcdgjhbdlplagmlcpafgamnapneoba",
-     "kcdfcljkllboedjeoaicmmabopnnaoaa", "kdffphekpginklcnoefcelkjclbjnbmi",
-     "kedeaijhpgoggdafoabafeldkoolemig", "kgoklcfigmpofpbkdglgbhfgpjdjgppl",
-     "kjbdapadhmcgplddmcggjkhacdnpjmod", "kpjcmnnhdgonbhjnfhebgapnkicknmpp",
-     "lfemdemifjedlccfbhpocnicmjlcgmce", "lgpjgoglfmjggeggfelogaboagbcaklg",
-     "lmdoekjmofbfghllkonahbfdcckmgjlf", "lnokaenamkoojjbhehhpggplknlbejmi",
-     "mbkamiddebohpehiafofidepfffpffln", "mfejnceblfpkdodajfohmjimcbipnhhh",
-     "mfgkakkfpnhfmnipnbehiglkjijancnk", "mhboapffkffmmcggindghkakhdhmjcje",
-     "mhdohnfjdghnpjmhnlodibcnjlaeinap", "mkgbgfehlfaioaejpaedngdohcpdpbpd",
-     "nanoidlkencgghkphophigbmnohnbbcb", "nclhjadnjgfjocbnfmlcfnagnieialof",
-     "nddaogoljagaikdogplnajkdggkfmgei", "ngpbnegpinocjhpnppjeppllflpgafkk",
-     "nhlaojpmboioihghmmdbhgcbjgmcicdk", "nickmpjdfebcopckkfjmflblnmijbiom",
-     "nloplhgjobaomjdppnbcdjfgbefifbdo", "obgbgecgadcagmhnanalmklenjajimld",
-     "oblnbnkmblikfegpcngkcbppphcenhjj", "ocljbfllcpgnlnnaommbmaphaagjmkmj",
-     "odjaaghiehpobimgdjjfofmablbaleem", "ofaokfiblaffkgcapcilcehdhlidehcd",
-     "olaaocfpicpjiocmoklnbfpdlbglbadp", "omkghcboodpimaoimdkmigofhjcpmpeb",
-     "omlplbdgdcpaaknjnkodikcklbkhefoh", "oopdabjckchhklpldcdjllmedcdnbdio",
-     "pjdhfcpflabeafmgdpgdfdejbhkdcgja", "pjicdfmcmiihceiefbmioikgkcicochj",
-     "plebdlehcdhfkmidnmfpolcifjngmdck", "pmcgpdpmlgkeociebbpdbppimbeheoli"});
+constexpr auto kKioskSessionAllowlist =
+    base::MakeFixedFlatSet<std::string_view>({
+        // go/keep-sorted start
+        "adbijfidmjidmkkpiglnfkflcoblkfmn",
+        "adpfhflbokfdhnfakijgjkpkjegncbpl",
+        "agkggapglfgffelalcfgbjmhkaljnbmn",
+        "alaoimaeafbgfglpffgcidfgbjnekifp",
+        "alhlkpgheiefedomljbenmkpconkffhk",
+        "amdpebpoiccejfcnocgebkidfmkcdfei",
+        "aoebmljacknghkklaholjkflllbghhnj",
+        "bgldcjbajnkfkephalfogfgklkgjnjeo",
+        "bhcnmihmgdljpnnoobnbdmdjhmfgcpio",
+        "bloholppicibpgbagaebcaagiikicjbn",
+        "cafpcfibibiomlehdnmabchhekeifbgb",
+        "cdomppfkcljjopjijjdchhjfioljaeph",
+        "cgihdamofndnjjlglmcaabdafhmoconf",
+        "ckmkndfplnldgohnnkhmeokbmedpdbjl",
+        "clbgknjcblogheibmcbbdlpkollmgofh",
+        "cmhiajbopgbagidplpiaclnpglmhbhka",
+        "cpbpbhkfonocjjamhjeabdihibkoajlc",
+        "dakemaookmhkdfgcgebakflmhgdhille",
+        "dakmgckkclepfbfeldlgenikiobflcne",
+        "ddhhodggehedggajomidnmgchfnbeold",
+        "dfjigmapgofdlgieniibjdcddlaafick",
+        "dinalfjmfmjkdnkgbbjncgchmghijpgl",
+        "ealpglkmnpenllgjjgdojoemohidefdm",
+        "edhlcbaemfhpoblalbdgeegmaddjdcae",
+        "edpaojhfdnnebhmmhdlpnpomoaopfjod",
+        "efdahhfldoeikfglgolhibmdidbnpneo",
+        "emlbcjpcbepfnhpkiidenlnfdjbghmpg",
+        "fammfnbkkollpklfkachppebochgakjg",
+        "fcichhfeoaikaoldkncmggipmpcbgffg",
+        "fdlpibjfnlhnmeckjjhfiejfdghkmkdm",
+        "gbecpjnejcnafnkgfciepngjcndodann",
+        "gbgncgdjjnelalecmmkimnlgfpmbihog",
+        "gcefeoeohcoeoofmehgjfipjiepodlhg",
+        "gdehbmmmjkddbonbmknngoigkleicpec",
+        "genfdmkliekafjhadcpnhefgicceohhd",
+        "gmdgbdlpbnhiogedlhmdiceocbgcbpgi",
+        "gobhocmdcdpfebockbogdfhnebgmemnf",
+        "hadonmdpeimgfpmmmeldbmjiknnbfdhk",
+        "hbcogfhdhehbfnedbbboiiddpkkjjnio",
+        "hbfbekdejbpmnpilhdnfokjehnianfeb",
+        "hblfbmjdaalalhifaajnnodlkiloengc",
+        "hchdcamjekgapahefjapegmaapggeafe",
+        "hebfpdlglfmneladiogocbflmbjneeoh",
+        "hgkaljnpgngpcgnaonmbdgaolefknaaj",
+        "hhbmmipodfklmbmiaegcbmbfmmfbngnf",
+        "hjbkdjhfdcinjcljfbealemkioalnfao",
+        "ibboejlnnenbhpjfpgoglholgpdjjeff",
+        "icfpencnfmadodjpbbdipkkkljmamine",
+        "iflkfmkmpafjfdkkokpkjpjmiogkdjjl",
+        "igknghlgndjihblholjbbhjbcfilkilb",
+        "ilehifjdadbblbcnciiggmcbmobkikcb",
+        "jamdkebjilnlfjndffcnekbipcfkhmem",
+        "jcgamccimilnfjpbkbadommjcaplmfod",
+        "jefdfinffojbalcgpkigjjijghmllgil",
+        "jiecdjmgkgmgmbonhifblhfaaecnomcj",
+        "jifdnnnegbhoagepoobbmajnpkmcbjig",
+        "jjlmjgfhdijljijikefhmgmhbchnkmnm",
+        "jmiabaaccndlngedakcjbpbgokhgcpfd",
+        "jnlegeoomaehdodfmpmlflpjapebjjjl",
+        "jnlhnplbndpohngdfjhmdinlpofclhdp",
+        "kacodfanpfkedlelnagnbgfbaabjfddn",
+        "kbkcdgjhbdlplagmlcpafgamnapneoba",
+        "kcdfcljkllboedjeoaicmmabopnnaoaa",
+        "kdffphekpginklcnoefcelkjclbjnbmi",
+        "kedeaijhpgoggdafoabafeldkoolemig",
+        "kgoklcfigmpofpbkdglgbhfgpjdjgppl",
+        "kjbdapadhmcgplddmcggjkhacdnpjmod",
+        "kpjcmnnhdgonbhjnfhebgapnkicknmpp",
+        "lfemdemifjedlccfbhpocnicmjlcgmce",
+        "lgpjgoglfmjggeggfelogaboagbcaklg",
+        "lmdoekjmofbfghllkonahbfdcckmgjlf",
+        "lnokaenamkoojjbhehhpggplknlbejmi",
+        "mbkamiddebohpehiafofidepfffpffln",
+        "mfejnceblfpkdodajfohmjimcbipnhhh",
+        "mfgkakkfpnhfmnipnbehiglkjijancnk",
+        "mhboapffkffmmcggindghkakhdhmjcje",
+        "mhdohnfjdghnpjmhnlodibcnjlaeinap",
+        "mkgbgfehlfaioaejpaedngdohcpdpbpd",
+        "nanoidlkencgghkphophigbmnohnbbcb",
+        "nclhjadnjgfjocbnfmlcfnagnieialof",
+        "nddaogoljagaikdogplnajkdggkfmgei",
+        "ngpbnegpinocjhpnppjeppllflpgafkk",
+        "nhlaojpmboioihghmmdbhgcbjgmcicdk",
+        "nickmpjdfebcopckkfjmflblnmijbiom",
+        "nloplhgjobaomjdppnbcdjfgbefifbdo",
+        "obgbgecgadcagmhnanalmklenjajimld",
+        "oblnbnkmblikfegpcngkcbppphcenhjj",
+        "ocljbfllcpgnlnnaommbmaphaagjmkmj",
+        "odjaaghiehpobimgdjjfofmablbaleem",
+        "ofaokfiblaffkgcapcilcehdhlidehcd",
+        "olaaocfpicpjiocmoklnbfpdlbglbadp",
+        "omkghcboodpimaoimdkmigofhjcpmpeb",
+        "omlplbdgdcpaaknjnkodikcklbkhefoh",
+        "oopdabjckchhklpldcdjllmedcdnbdio",
+        "pjdhfcpflabeafmgdpgdfdejbhkdcgja",
+        "pjicdfmcmiihceiefbmioikgkcicochj",
+        "plebdlehcdhfkmidnmfpolcifjngmdck",
+        "pmcgpdpmlgkeociebbpdbppimbeheoli"
+        // go/keep-sorted end
+    });
 
 // Add only allowlisted test app ids.
 constexpr auto kTestAllowlist = {
-    "aajgmlihcokkalfjbangebcffdoanjfo", "epeagdmdgnhlibpbnhalblaohdhhkpne",
-    "fimgekdokgldflggeacgijngdienfdml", "kjecmldfmbflidigcdfdnegjgkgggoih"};
+    // go/keep-sorted start
+    "aajgmlihcokkalfjbangebcffdoanjfo",
+    "epeagdmdgnhlibpbnhalblaohdhhkpne",
+    "fimgekdokgldflggeacgijngdienfdml",
+    "kjecmldfmbflidigcdfdnegjgkgggoih"
+    // go/keep-sorted end
+};
 
 struct DeprecationState {
   std::unordered_set<std::string> common_allowlist_from_component_updater;
diff --git a/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc b/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
index 8d46c411..497bcf0 100644
--- a/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
+++ b/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
@@ -789,6 +789,18 @@
     ::testing::Values(SpokenFeedbackTestConfig(ManifestVersion::kTwo,
                                                kTestAsGuestUser)));
 
+INSTANTIATE_TEST_SUITE_P(
+    ManifestV3NormalUser,
+    SpokenFeedbackTest,
+    ::testing::Values(SpokenFeedbackTestConfig(ManifestVersion::kThree,
+                                               kTestAsNormalUser)));
+
+INSTANTIATE_TEST_SUITE_P(
+    ManifestV3GuestUser,
+    SpokenFeedbackTest,
+    ::testing::Values(SpokenFeedbackTestConfig(ManifestVersion::kThree,
+                                               kTestAsGuestUser)));
+
 IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, EnableSpokenFeedback) {
   chromevox_test_utils()->EnableChromeVox();
   sm()->Replay();
@@ -1262,6 +1274,9 @@
   sm()->Replay();
 }
 
+// TODO(https://crbug.com/388867840): Re-enable this test on MSAN. Note that
+// MAYBE_ doesn't work well with parameterized tests.
+#if !defined(MEMORY_SANITIZER)
 IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, OpenSettingsFromPanel) {
   chromevox_test_utils()->EnableChromeVox();
   base::RunLoop waiter;
@@ -1284,8 +1299,9 @@
   // We should have tried to open the settings subpage.
   waiter.Run();
 }
+#endif  // !defined(MEMORY_SANITIZER)
 
-// Fails on ASAN. See http://crbug.com/776308 . (Note MAYBE_ doesn't work well
+// Fails on ASAN. See http://crbug.com/776308. (Note MAYBE_ doesn't work well
 // with parameterized tests).
 #if !defined(ADDRESS_SANITIZER)
 IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, NavigateSystemTray) {
diff --git a/chrome/browser/ash/login/oobe_metrics_helper.cc b/chrome/browser/ash/login/oobe_metrics_helper.cc
index d229580..5cff43d 100644
--- a/chrome/browser/ash/login/oobe_metrics_helper.cc
+++ b/chrome/browser/ash/login/oobe_metrics_helper.cc
@@ -7,6 +7,7 @@
 #include <map>
 
 #include "base/check.h"
+#include "base/check_deref.h"
 #include "base/debug/dump_without_crashing.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/strings/string_util.h"
@@ -138,14 +139,13 @@
   return false;
 }
 
-std::string GetOnboardingTypeSuffix() {
-  base::Time oobe_time =
-      g_browser_process->local_state()->GetTime(prefs::kOobeStartTime);
+std::string GetOnboardingTypeSuffix(PrefService& local_state) {
+  base::Time oobe_time = local_state.GetTime(prefs::kOobeStartTime);
   return oobe_time.is_null() ? kUmaSubsequentOnboardingSuffix
                              : kUmaFirstOnboardingSuffix;
 }
 
-std::string GetMetricsClientID() {
+std::string GetMetricsClientID(PrefService& local_state) {
   std::string client_id;
   if (g_browser_process->metrics_service()) {
     client_id = g_browser_process->metrics_service()->GetClientId();
@@ -155,8 +155,8 @@
   // string. If that's the case look for the client ID in the preference
   // `kMetricsProvisionalClientID`.
   if (client_id.empty()) {
-    client_id = g_browser_process->local_state()->GetString(
-        metrics::prefs::kMetricsProvisionalClientID);
+    client_id =
+        local_state.GetString(metrics::prefs::kMetricsProvisionalClientID);
   }
 
   return client_id;
@@ -164,7 +164,25 @@
 
 }  // namespace
 
-OobeMetricsHelper::OobeMetricsHelper() {
+OobeMetricsHelper::OobeMetricsHelper(PrefService* local_state)
+    : local_state_getter_(base::BindRepeating(
+          [](PrefService* local_state) { return local_state; },
+          local_state)) {
+  CHECK(local_state);
+
+  Initialize();
+}
+
+OobeMetricsHelper::OobeMetricsHelper(
+    base::PassKey<LoginDisplayHostCommon>,
+    LocalStateGetterCallback local_state_getter)
+    : local_state_getter_(std::move(local_state_getter)) {
+  Initialize();
+}
+
+OobeMetricsHelper::~OobeMetricsHelper() = default;
+
+void OobeMetricsHelper::Initialize() {
   if (StatsReportingController::IsInitialized()) {
     stats_reporting_subscription_ =
         StatsReportingController::Get()->AddObserver(base::BindRepeating(
@@ -173,8 +191,6 @@
   }
 }
 
-OobeMetricsHelper::~OobeMetricsHelper() = default;
-
 void OobeMetricsHelper::RecordScreenShownStatus(OobeScreenId screen,
                                                 ScreenShownStatus status) {
   // Notify registered observers.
@@ -200,7 +216,8 @@
   std::string screen_name = GetCaptializedScreenName(screen);
   std::string histogram_name = kUmaScreenShownStatusName2 + screen_name;
   if (!IsOobeOnlyScreen(screen)) {
-    histogram_name += "." + GetOnboardingTypeSuffix();
+    histogram_name +=
+        "." + GetOnboardingTypeSuffix(CHECK_DEREF(local_state_getter_.Run()));
   }
   base::UmaHistogramEnumeration(histogram_name, status);
 }
@@ -239,7 +256,8 @@
   std::string screen_name = GetCaptializedScreenName(screen);
   std::string histogram_name = kUmaScreenCompletionTimeName2 + screen_name;
   if (!IsOobeOnlyScreen(screen)) {
-    histogram_name += "." + GetOnboardingTypeSuffix();
+    histogram_name +=
+        "." + GetOnboardingTypeSuffix(CHECK_DEREF(local_state_getter_.Run()));
   }
   base::UmaHistogramCustomTimes(histogram_name, step_time,
                                 base::Milliseconds(10), base::Minutes(10), 100);
@@ -254,17 +272,18 @@
   // Record `False` to report the `Started` bucket.
   base::UmaHistogramBoolean(kUmaOobeFlowStatus, false);
 
+  PrefService& local_state = CHECK_DEREF(local_state_getter_.Run());
+
   // Store the metrics client ID to be later compared to the metrics
   // client ID at the end of OOBE.
-  g_browser_process->local_state()->SetString(
-      prefs::kOobeMetricsClientIdAtOobeStart, GetMetricsClientID());
+  local_state.SetString(prefs::kOobeMetricsClientIdAtOobeStart,
+                        GetMetricsClientID(local_state));
 
   // With pre-consent metrics feature, the consent status before first user sign
   // in is set to true. OobeMetricsHelper needs to record the consent status
   // when OOBE first starts.
   if (StatsReportingController::Get()->IsEnabled()) {
-    g_browser_process->local_state()->SetBoolean(
-        prefs::kOobeMetricsReportedAsEnabled, true);
+    local_state.SetBoolean(prefs::kOobeMetricsReportedAsEnabled, true);
   }
 }
 
@@ -313,7 +332,9 @@
 
   // Record `False` to report the `Started` bucket.
   base::UmaHistogramBoolean(
-      kUmaOnboardingFlowStatus + GetOnboardingTypeSuffix(), false);
+      kUmaOnboardingFlowStatus +
+          GetOnboardingTypeSuffix(CHECK_DEREF(local_state_getter_.Run())),
+      false);
 }
 
 void OobeMetricsHelper::RecordOnboadingComplete(
@@ -323,6 +344,8 @@
     observer.OnOnboardingCompleted();
   }
 
+  PrefService& local_state = CHECK_DEREF(local_state_getter_.Run());
+
   if (!oobe_start_time.is_null()) {
     // Record `True` to report the `Completed` bucket.
     base::UmaHistogramBoolean(kUmaOobeFlowStatus, true);
@@ -330,15 +353,15 @@
                                 base::Time::Now() - oobe_start_time);
 
     // Record `Metrics Client ID Reset` histograms.
-    std::string initial_id = g_browser_process->local_state()->GetString(
-        prefs::kOobeMetricsClientIdAtOobeStart);
+    std::string initial_id =
+        local_state.GetString(prefs::kOobeMetricsClientIdAtOobeStart);
 
     if (initial_id.empty()) {
       base::UmaHistogramEnumeration(
           kUmaOobeMetricsClientIdReset2,
           OobeMetricsClientIdResetState::kInitialIDMissing);
     } else {
-      std::string current_id = GetMetricsClientID();
+      std::string current_id = GetMetricsClientID(local_state);
       if (current_id.empty()) {
         base::UmaHistogramEnumeration(
             kUmaOobeMetricsClientIdReset2,
@@ -362,17 +385,15 @@
     // Record whether `StatsReportingController` reported a reset during OOBE.
     base::UmaHistogramBoolean(
         kUmaOobeStatsReportingControllerReportedReset,
-        g_browser_process->local_state()->GetBoolean(
+        local_state.GetBoolean(
             prefs::kOobeStatsReportingControllerReportedReset));
 
-    g_browser_process->local_state()->ClearPref(
-        prefs::kOobeMetricsReportedAsEnabled);
-    g_browser_process->local_state()->ClearPref(
-        prefs::kOobeStatsReportingControllerReportedReset);
+    local_state.ClearPref(prefs::kOobeMetricsReportedAsEnabled);
+    local_state.ClearPref(prefs::kOobeStatsReportingControllerReportedReset);
   }
 
   if (!onboarding_start_time.is_null()) {
-    std::string type = GetOnboardingTypeSuffix();
+    std::string type = GetOnboardingTypeSuffix(local_state);
 
     // Record `True` to report the `Completed` bucket.
     base::UmaHistogramBoolean(kUmaOnboardingFlowStatus + type, true);
@@ -421,8 +442,8 @@
 }
 
 void OobeMetricsHelper::RecordEnrollingUserType() {
-  bool is_consumer = g_browser_process->local_state()->GetBoolean(
-      prefs::kOobeIsConsumerSegment);
+  PrefService& local_state = CHECK_DEREF(local_state_getter_.Run());
+  bool is_consumer = local_state.GetBoolean(prefs::kOobeIsConsumerSegment);
   base::UmaHistogramBoolean("OOBE.Enrollment.IsUserEnrollingAConsumer",
                             is_consumer);
 }
@@ -439,27 +460,25 @@
 }
 
 void OobeMetricsHelper::OnStatsReportingSettingUpdated() {
+  PrefService& local_state = CHECK_DEREF(local_state_getter_.Run());
+
   // Return if the method was called outside of OOBE or the first onboarding
   // experience.
-  if (g_browser_process->local_state()
-          ->GetTime(prefs::kOobeStartTime)
-          .is_null()) {
+  if (local_state.GetTime(prefs::kOobeStartTime).is_null()) {
     return;
   }
 
   bool enabled = StatsReportingController::Get()->IsEnabled();
   if (enabled) {
-    g_browser_process->local_state()->SetBoolean(
-        prefs::kOobeMetricsReportedAsEnabled, true);
-  } else if (g_browser_process->local_state()->GetBoolean(
-                 prefs::kOobeMetricsReportedAsEnabled)) {
+    local_state.SetBoolean(prefs::kOobeMetricsReportedAsEnabled, true);
+  } else if (local_state.GetBoolean(prefs::kOobeMetricsReportedAsEnabled)) {
     base::debug::DumpWithoutCrashing();
 
     // It's possible that the `dump` will never be uploaded due to the client
     // ID reset, therefore, store that metrics was reset in OOBE to report it
     // at at later time.
-    g_browser_process->local_state()->SetBoolean(
-        prefs::kOobeStatsReportingControllerReportedReset, true);
+    local_state.SetBoolean(prefs::kOobeStatsReportingControllerReportedReset,
+                           true);
   }
 }
 
diff --git a/chrome/browser/ash/login/oobe_metrics_helper.h b/chrome/browser/ash/login/oobe_metrics_helper.h
index 4762973..3ca8864f 100644
--- a/chrome/browser/ash/login/oobe_metrics_helper.h
+++ b/chrome/browser/ash/login/oobe_metrics_helper.h
@@ -10,12 +10,17 @@
 #include "base/observer_list.h"
 #include "base/observer_list_types.h"
 #include "base/time/time.h"
+#include "base/types/pass_key.h"
 #include "chrome/browser/ash/login/oobe_screen.h"
 #include "chrome/browser/ash/settings/stats_reporting_controller.h"
 #include "chrome/browser/ui/webui/ash/login/gaia_screen_handler.h"
 
+class PrefService;
+
 namespace ash {
 
+class LoginDisplayHostCommon;
+
 // Handles metrics for OOBE.
 class OobeMetricsHelper {
  public:
@@ -80,7 +85,16 @@
     virtual void OnChoobeResumed() {}
   };
 
-  OobeMetricsHelper();
+  // For common use.
+  //
+  // `local_state` instance must be non-null and must outlive |this|.
+  explicit OobeMetricsHelper(PrefService* local_state);
+
+  // Workaround of the timing issue for short term.
+  using LocalStateGetterCallback = base::RepeatingCallback<PrefService*()>;
+  OobeMetricsHelper(base::PassKey<LoginDisplayHostCommon>,
+                    LocalStateGetterCallback local_state_getter);
+
   ~OobeMetricsHelper();
   OobeMetricsHelper(const OobeMetricsHelper& other) = delete;
   OobeMetricsHelper& operator=(const OobeMetricsHelper&) = delete;
@@ -142,6 +156,8 @@
   void RemoveObserver(Observer* observer);
 
  private:
+  void Initialize();
+
   void RecordUpdatedStepShownStatus(OobeScreenId screen,
                                     ScreenShownStatus status);
   void RecordUpdatedStepCompletionTime(OobeScreenId screen,
@@ -159,6 +175,8 @@
   base::CallbackListSubscription stats_reporting_subscription_;
 
   base::ObserverList<Observer> observers_;
+
+  LocalStateGetterCallback local_state_getter_;
 };
 
 }  // namespace ash
diff --git a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc
index 0fee6e4c..5db106b 100644
--- a/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc
+++ b/chrome/browser/ash/policy/core/user_cloud_policy_token_forwarder_unittest.cc
@@ -18,7 +18,7 @@
 #include "base/test/test_mock_time_task_runner.h"
 #include "base/test/test_simple_task_runner.h"
 #include "base/time/time.h"
-#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
+#include "chrome/browser/ash/login/users/scoped_account_id_annotator.h"
 #include "chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h"
 #include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
 #include "chrome/test/base/testing_browser_process.h"
@@ -34,7 +34,9 @@
 #include "components/signin/public/identity_manager/identity_test_environment.h"
 #include "components/signin/public/identity_manager/scope_set.h"
 #include "components/sync_preferences/pref_service_syncable.h"
+#include "components/user_manager/fake_user_manager_delegate.h"
 #include "components/user_manager/scoped_user_manager.h"
+#include "components/user_manager/test_helper.h"
 #include "components/user_manager/user_manager.h"
 #include "components/user_manager/user_type.h"
 #include "content/public/test/browser_task_environment.h"
@@ -98,15 +100,12 @@
       const UserCloudPolicyTokenForwarderTest&) = delete;
 
  protected:
-  static ash::FakeChromeUserManager* GetFakeUserManager() {
-    return static_cast<ash::FakeChromeUserManager*>(
-        user_manager::UserManager::Get());
-  }
-
   UserCloudPolicyTokenForwarderTest()
       : mock_time_task_runner_(
             base::MakeRefCounted<base::TestMockTimeTaskRunner>()),
-        user_manager_enabler_(std::make_unique<ash::FakeChromeUserManager>()),
+        user_manager_(std::make_unique<user_manager::UserManagerImpl>(
+            std::make_unique<user_manager::FakeUserManagerDelegate>(),
+            TestingBrowserProcess::GetGlobal()->GetTestingLocalState())),
         profile_manager_(std::make_unique<TestingProfileManager>(
             TestingBrowserProcess::GetGlobal())),
         store_(std::make_unique<MockCloudPolicyStore>()) {}
@@ -130,6 +129,29 @@
   void CreateUserWithType(user_manager::UserType user_type) {
     const AccountId account_id =
         AccountId::FromUserEmailGaiaId(kEmail, kGaiaId);
+    {
+      user_manager::TestHelper test_helper(user_manager::UserManager::Get());
+      switch (user_type) {
+        case user_manager::UserType::kRegular:
+          CHECK(test_helper.AddRegularUser(account_id));
+          break;
+        case user_manager::UserType::kChild:
+          CHECK(test_helper.AddChildUser(account_id));
+          break;
+        case user_manager::UserType::kGuest:
+        case user_manager::UserType::kPublicAccount:
+        case user_manager::UserType::kKioskChromeApp:
+        case user_manager::UserType::kKioskWebApp:
+        case user_manager::UserType::kKioskIWA:
+        case user_manager::UserType::kKioskArcvmApp:
+          LOG(FATAL) << "unsupported UserType: " << user_type;
+      }
+    }
+    user_manager_->UserLoggedIn(
+        account_id, user_manager::TestHelper::GetFakeUsernameHash(account_id));
+
+    ash::ScopedAccountIdAnnotator annotator(profile_manager_->profile_manager(),
+                                            account_id);
     TestingProfile* profile = profile_manager_->CreateTestingProfile(
         account_id.GetUserEmail(),
         std::unique_ptr<sync_preferences::PrefServiceSyncable>(),
@@ -142,11 +164,7 @@
     identity_test_env_profile_adaptor_->identity_test_env()
         ->MakePrimaryAccountAvailable(kEmail, signin::ConsentLevel::kSignin);
 
-    auto* user_manager = GetFakeUserManager();
-    user_manager->AddUserWithAffiliationAndTypeAndProfile(
-        account_id, false /* is_affiliated */, user_type, profile);
-    user_manager->SwitchActiveUser(account_id);
-    ASSERT_TRUE(user_manager->GetActiveUser());
+    ASSERT_TRUE(user_manager_->GetActiveUser());
 
     user_policy_manager_ = std::make_unique<MockUserCloudPolicyManagerAsh>(
         profile, account_id, mock_time_task_runner_);
@@ -206,7 +224,7 @@
   scoped_refptr<base::TestMockTimeTaskRunner> mock_time_task_runner_;
 
  private:
-  user_manager::ScopedUserManager user_manager_enabler_;
+  user_manager::ScopedUserManager user_manager_;
 
   std::unique_ptr<TestingProfileManager> profile_manager_;
   std::unique_ptr<IdentityTestEnvironmentProfileAdaptor>
diff --git a/chrome/browser/ash/policy/enrollment/enrollment_config_unittest.cc b/chrome/browser/ash/policy/enrollment/enrollment_config_unittest.cc
index 7d6de67..42952d9 100644
--- a/chrome/browser/ash/policy/enrollment/enrollment_config_unittest.cc
+++ b/chrome/browser/ash/policy/enrollment/enrollment_config_unittest.cc
@@ -52,7 +52,13 @@
   base::test::ScopedCommandLine command_line_;
   test::EnrollmentTestHelper enrollment_test_helper_{&command_line_,
                                                      &statistics_provider_};
-  ash::FakeLoginDisplayHost fake_login_display_host_;
+
+  // TODO(crbug.com/332587367): Because the process spawn by DEATH_CHECK's
+  // do not instantiate TestingBrowserProcess, FakeLoginDisplayHost can not call
+  // out to TestingBrowserProcess::GetGlobal()->local_state() to
+  // get a PrefService instance. For this reason, the instance is passed in
+  // here.
+  ash::FakeLoginDisplayHost fake_login_display_host_{&local_state_};
 };
 
 TEST_F(EnrollmentConfigTest, TokenEnrollmentModeWithNoTokenYieldsModeNone) {
diff --git a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc
index 08080fc7..51164e2 100644
--- a/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc
+++ b/chrome/browser/ash/policy/scheduled_task_handler/test/device_scheduled_reboot_handler_unittest.cc
@@ -16,7 +16,6 @@
 #include "base/time/clock.h"
 #include "base/time/time.h"
 #include "base/values.h"
-#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/browser/ash/policy/scheduled_task_handler/scheduled_task_executor_impl.h"
 #include "chrome/browser/ash/policy/scheduled_task_handler/scheduled_task_util.h"
 #include "chrome/browser/ash/policy/scheduled_task_handler/test/fake_reboot_notifications_scheduler.h"
@@ -29,8 +28,10 @@
 #include "chromeos/dbus/power/fake_power_manager_client.h"
 #include "chromeos/dbus/power/power_manager_client.h"
 #include "components/prefs/testing_pref_service.h"
+#include "components/user_manager/fake_user_manager_delegate.h"
 #include "components/user_manager/scoped_user_manager.h"
 #include "components/user_manager/test_helper.h"
+#include "components/user_manager/user_manager.h"
 #include "services/device/public/cpp/test/test_wake_lock_provider.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -92,7 +93,9 @@
   DeviceScheduledRebootHandlerTest()
       : task_environment_(base::test::TaskEnvironment::MainThreadType::IO,
                           base::test::TaskEnvironment::TimeSource::MOCK_TIME),
-        user_manager_enabler_(std::make_unique<ash::FakeChromeUserManager>()),
+        user_manager_(std::make_unique<user_manager::UserManagerImpl>(
+            std::make_unique<user_manager::FakeUserManagerDelegate>(),
+            TestingBrowserProcess::GetGlobal()->GetTestingLocalState())),
         prefs_(std::make_unique<TestingPrefServiceSimple>()),
         notifications_scheduler_(task_environment_.GetMockClock(),
                                  task_environment_.GetMockTickClock(),
@@ -177,13 +180,8 @@
             task_environment_.GetMockClock()->Now());
   }
 
-  ash::FakeChromeUserManager* GetFakeUserManager() {
-    return static_cast<ash::FakeChromeUserManager*>(
-        user_manager::UserManager::Get());
-  }
-
   base::test::TaskEnvironment task_environment_;
-  user_manager::ScopedUserManager user_manager_enabler_;
+  user_manager::ScopedUserManager user_manager_;
   raw_ptr<FakeScheduledTaskExecutor, DanglingUntriaged>
       scheduled_task_executor_;
   std::unique_ptr<DeviceScheduledRebootHandlerForTest>
@@ -197,9 +195,9 @@
 
 TEST_F(DeviceScheduledRebootHandlerTest,
        CheckIfDailyRebootIsScheduledForKiosk) {
-  auto* user_manager = GetFakeUserManager();
+  auto* user_manager = user_manager::UserManager::Get();
   auto* user =
-      user_manager->AddKioskChromeAppUser(AccountId::FromUserEmail(kKioskName));
+      user_manager::TestHelper(user_manager).AddKioskChromeAppUser(kKioskName);
   user_manager->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
@@ -239,8 +237,10 @@
 
 TEST_F(DeviceScheduledRebootHandlerTest,
        CheckIfMonthlyRebootIsScheduledForKiosk) {
-  auto* user_manager = GetFakeUserManager();
-  auto* user = user_manager->AddUser(AccountId::FromUserEmail(kTestName));
+  auto* user_manager = user_manager::UserManager::Get();
+  auto* user = user_manager::TestHelper(user_manager)
+                   .AddRegularUser(AccountId::FromUserEmailGaiaId(
+                       kTestName, GaiaId::Literal("123456789")));
   user_manager->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
@@ -273,27 +273,6 @@
   expected_scheduled_reboots += 1;
   task_environment_.FastForwardBy(small_delay);
   EXPECT_TRUE(CheckStats(expected_scheduled_reboots, expected_reboot_requests));
-
-  // The next reboot should happen at the same day of month next month. Switch
-  // to the kiosk mode and verify the reboot is executed.
-  auto* kiosk_user =
-      user_manager->AddKioskChromeAppUser(AccountId::FromUserEmail(kKioskName));
-  user_manager->UserLoggedIn(kiosk_user->GetAccountId(),
-                             user_manager::TestHelper::GetFakeUsernameHash(
-                                 kiosk_user->GetAccountId()));
-  user_manager->SwitchActiveUser(kiosk_user->GetAccountId());
-  expected_scheduled_reboots += 1;
-  expected_reboot_requests += 1;
-  EXPECT_TRUE(scheduled_task_test_util::AdvanceTimeAndSetDayOfMonth(
-      scheduled_reboot_data->day_of_month.value(),
-      first_reboot_icu_time.get()));
-  base::Time second_reboot_time =
-      scheduled_task_test_util::IcuToBaseTime(*first_reboot_icu_time);
-  std::optional<base::TimeDelta> second_reboot_delay =
-      second_reboot_time - scheduled_task_executor_->GetCurrentTime();
-  ASSERT_TRUE(second_reboot_delay.has_value());
-  task_environment_.FastForwardBy(second_reboot_delay.value());
-  EXPECT_TRUE(CheckStats(expected_scheduled_reboots, expected_reboot_requests));
 }
 
 TEST_F(DeviceScheduledRebootHandlerTest,
@@ -345,9 +324,10 @@
   // Set device uptime to 10 minutes and enable kiosk mode. We don't apply grace
   // period to kiosks, so reboot should occur.
   task_environment_.FastForwardBy(base::Minutes(10));
-  auto* user_manager = GetFakeUserManager();
+
+  auto* user_manager = user_manager::UserManager::Get();
   auto* user =
-      user_manager->AddKioskChromeAppUser(AccountId::FromUserEmail(kKioskName));
+      user_manager::TestHelper(user_manager).AddKioskChromeAppUser(kKioskName);
   user_manager->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
@@ -381,8 +361,10 @@
 
 TEST_F(DeviceScheduledRebootHandlerTest,
        EnableForceRebootFeatureNonKioskSession) {
-  auto* user_manager = GetFakeUserManager();
-  auto* user = user_manager->AddUser(AccountId::FromUserEmail(kTestName));
+  auto* user_manager = user_manager::UserManager::Get();
+  auto* user = user_manager::TestHelper(user_manager)
+                   .AddRegularUser(AccountId::FromUserEmailGaiaId(
+                       kTestName, GaiaId::Literal("123456789")));
   user_manager->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
@@ -435,8 +417,10 @@
 }
 
 TEST_F(DeviceScheduledRebootHandlerTest, SimulateNotificationButtonClick) {
-  auto* user_manager = GetFakeUserManager();
-  auto* user = user_manager->AddUser(AccountId::FromUserEmail(kTestName));
+  auto* user_manager = user_manager::UserManager::Get();
+  auto* user = user_manager::TestHelper(user_manager)
+                   .AddRegularUser(AccountId::FromUserEmailGaiaId(
+                       kTestName, GaiaId::Literal("123456789")));
   user_manager->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
diff --git a/chrome/browser/ash/policy/status_collector/BUILD.gn b/chrome/browser/ash/policy/status_collector/BUILD.gn
index 8e817d7..fb7ac6ef 100644
--- a/chrome/browser/ash/policy/status_collector/BUILD.gn
+++ b/chrome/browser/ash/policy/status_collector/BUILD.gn
@@ -145,6 +145,7 @@
     "//chrome/browser/web_applications",
     "//chrome/browser/web_applications:web_applications_test_support",
     "//chrome/test:test_support",
+    "//chromeos/ash/components/browser_context_helper",
     "//chromeos/ash/components/dbus/attestation",
     "//chromeos/ash/components/dbus/seneschal",
     "//chromeos/ash/components/dbus/session_manager",
diff --git a/chrome/browser/ash/policy/status_collector/child_status_collector_unittest.cc b/chrome/browser/ash/policy/status_collector/child_status_collector_unittest.cc
index b055295..d69ea7a 100644
--- a/chrome/browser/ash/policy/status_collector/child_status_collector_unittest.cc
+++ b/chrome/browser/ash/policy/status_collector/child_status_collector_unittest.cc
@@ -36,7 +36,7 @@
 #include "chrome/browser/ash/child_accounts/time_limits/app_time_controller.h"
 #include "chrome/browser/ash/child_accounts/time_limits/app_time_limits_policy_builder.h"
 #include "chrome/browser/ash/child_accounts/time_limits/app_types.h"
-#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
+#include "chrome/browser/ash/login/users/scoped_account_id_annotator.h"
 #include "chrome/browser/ash/ownership/fake_owner_settings_service.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/ash/settings/scoped_testing_cros_settings.h"
@@ -66,6 +66,7 @@
 #include "components/services/app_service/public/cpp/app_types.h"
 #include "components/session_manager/core/fake_session_manager_delegate.h"
 #include "components/session_manager/core/session_manager.h"
+#include "components/user_manager/fake_user_manager_delegate.h"
 #include "components/user_manager/scoped_user_manager.h"
 #include "components/user_manager/test_helper.h"
 #include "components/user_manager/user_type.h"
@@ -175,9 +176,7 @@
 
 class ChildStatusCollectorTest : public testing::Test {
  public:
-  ChildStatusCollectorTest()
-      : user_manager_enabler_(std::make_unique<ash::FakeChromeUserManager>()),
-        user_data_dir_override_(chrome::DIR_USER_DATA) {
+  ChildStatusCollectorTest() : user_data_dir_override_(chrome::DIR_USER_DATA) {
     scoped_stub_install_attributes_.Get()->SetCloudManaged("managed.com",
                                                            "device_id");
 
@@ -191,16 +190,12 @@
     ash::SeneschalClient::InitializeFake();
     chromeos::PowerManagerClient::InitializeFake();
     ash::LoginState::Initialize();
-
-    AddChildUser(AccountId::FromUserEmail("user0@gmail.com"));
   }
 
   ~ChildStatusCollectorTest() override {
     ash::LoginState::Shutdown();
     chromeos::PowerManagerClient::Shutdown();
     ash::SeneschalClient::Shutdown();
-    // |testing_profile_| must be destructed while ConciergeClient is alive.
-    testing_profile_.reset();
     ash::ConciergeClient::Shutdown();
     ash::CiceroneClient::Shutdown();
     ash::UpdateEngineClient::Shutdown();
@@ -213,6 +208,13 @@
   ChildStatusCollectorTest& operator=(const ChildStatusCollectorTest&) = delete;
 
   void SetUp() override {
+    profile_manager_ = std::make_unique<TestingProfileManager>(
+        TestingBrowserProcess::GetGlobal());
+    ASSERT_TRUE(profile_manager_->SetUp());
+
+    AddChildUser(
+        AccountId::FromUserEmailGaiaId("user0@gmail.com", GaiaId("123456789")));
+
     RestartStatusCollector(base::BindRepeating(&GetEmptyAndroidStatus));
 
     // Disable network reporting since it requires additional setup.
@@ -228,7 +230,12 @@
     FastForwardTo(start_time);
   }
 
-  void TearDown() override { status_collector_.reset(); }
+  void TearDown() override {
+    status_collector_.reset();
+
+    testing_profile_ = nullptr;
+    profile_manager_.reset();
+  }
 
  protected:
   // States tracked to calculate a child's active time.
@@ -242,11 +249,6 @@
     kPeriodicCheckTriggered
   };
 
-  ash::FakeChromeUserManager* GetFakeUserManager() {
-    return static_cast<ash::FakeChromeUserManager*>(
-        user_manager::UserManager::Get());
-  }
-
   void SimulateStateChanges(DeviceStateTransitions* states, int len) {
     for (int i = 0; i < len; i++) {
       switch (states[i]) {
@@ -338,27 +340,25 @@
     run_loop_->Quit();
   }
 
-  void AddUserWithTypeAndAffiliation(const AccountId& account_id,
-                                     user_manager::UserType user_type,
-                                     bool is_affiliated) {
+  bool AddChildUser(const AccountId& account_id) {
+    auto* user =
+        user_manager::TestHelper(user_manager_.Get()).AddChildUser(account_id);
+    if (!user) {
+      return false;
+    }
+
+    user_manager_->UserLoggedIn(
+        account_id, user_manager::TestHelper::GetFakeUsernameHash(account_id));
+
+    ash::ScopedAccountIdAnnotator account_id_annotator(
+        profile_manager_->profile_manager(), account_id);
+
     // Build a profile with profile name=account e-mail because our testing
     // version of GetDMTokenForProfile returns the profile name.
-    TestingProfile::Builder profile_builder;
-    profile_builder.SetProfileName(account_id.GetUserEmail());
-    testing_profile_ = profile_builder.Build();
-
-    auto* user_manager = GetFakeUserManager();
-    auto* user = user_manager->AddUserWithAffiliationAndTypeAndProfile(
-        account_id, is_affiliated, user_type, testing_profile_.get());
-    user_manager->UserLoggedIn(
-        user->GetAccountId(),
-        user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
-  }
-
-  void AddChildUser(const AccountId& account_id) {
-    AddUserWithTypeAndAffiliation(account_id, user_manager::UserType::kChild,
-                                  false);
-    GetFakeUserManager()->set_current_user_child(true);
+    CHECK(!testing_profile_);
+    testing_profile_ =
+        profile_manager_->CreateTestingProfile(account_id.GetUserEmail());
+    return true;
   }
 
   // Convenience method.
@@ -411,8 +411,12 @@
   ash::ScopedTestingCrosSettings scoped_testing_cros_settings_;
   ash::FakeOwnerSettingsService owner_settings_service_{
       scoped_testing_cros_settings_.device_settings(), nullptr};
-  std::unique_ptr<TestingProfile> testing_profile_;
-  user_manager::ScopedUserManager user_manager_enabler_;
+  user_manager::ScopedUserManager user_manager_{
+      std::make_unique<user_manager::UserManagerImpl>(
+          std::make_unique<user_manager::FakeUserManagerDelegate>(),
+          TestingBrowserProcess::GetGlobal()->GetTestingLocalState())};
+  std::unique_ptr<TestingProfileManager> profile_manager_;
+  raw_ptr<TestingProfile> testing_profile_ = nullptr;
   em::ChildStatusReportRequest child_status_;
   std::unique_ptr<TestingChildStatusCollector> status_collector_;
   base::ScopedPathOverride user_data_dir_override_;
diff --git a/chrome/browser/ash/policy/status_collector/device_status_collector_unittest.cc b/chrome/browser/ash/policy/status_collector/device_status_collector_unittest.cc
index 7ce4124..0a31f72 100644
--- a/chrome/browser/ash/policy/status_collector/device_status_collector_unittest.cc
+++ b/chrome/browser/ash/policy/status_collector/device_status_collector_unittest.cc
@@ -58,7 +58,7 @@
 #include "chrome/browser/ash/guest_os/guest_os_registry_service.h"
 #include "chrome/browser/ash/guest_os/guest_os_registry_service_factory.h"
 #include "chrome/browser/ash/login/demo_mode/demo_mode_test_utils.h"
-#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
+#include "chrome/browser/ash/login/users/scoped_account_id_annotator.h"
 #include "chrome/browser/ash/ownership/fake_owner_settings_service.h"
 #include "chrome/browser/ash/policy/core/device_local_account.h"
 #include "chrome/browser/ash/policy/core/reporting_user_tracker.h"
@@ -73,6 +73,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/ash/components/audio/cras_audio_handler.h"
+#include "chromeos/ash/components/browser_context_helper/annotated_account_id.h"
 #include "chromeos/ash/components/dbus/attestation/attestation_client.h"
 #include "chromeos/ash/components/dbus/cicerone/cicerone_client.h"
 #include "chromeos/ash/components/dbus/concierge/concierge_client.h"
@@ -115,6 +116,7 @@
 #include "components/session_manager/core/fake_session_manager_delegate.h"
 #include "components/session_manager/core/session_manager.h"
 #include "components/upload_list/upload_list.h"
+#include "components/user_manager/fake_user_manager_delegate.h"
 #include "components/user_manager/scoped_user_manager.h"
 #include "components/user_manager/test_helper.h"
 #include "components/user_manager/user_manager.h"
@@ -292,16 +294,19 @@
 // Time delta representing 1 hour time interval.
 constexpr base::TimeDelta kHour = base::Hours(1);
 
-const char kKioskAccountId[] = "kiosk_user@localhost";
-const char kWebKioskAccountId[] = "web_kiosk_user@localhost";
-const char kIwaKioskAccountId[] = "iwa_kiosk_user@localhost";
+const char kKioskAccountId[] = "kiosk_user@kiosk-apps.device-local.localhost";
+const char kWebKioskAccountId[] =
+    "web_kiosk_user@web-kiosk-apps.device-local.localhost";
+const char kIwaKioskAccountId[] =
+    "iwa_kiosk_user@isolated-kiosk-apps.device-local.localhost";
 const char kKioskAppId[] = "kiosk_app_id";
 const char kWebKioskAppUrl[] = "http://example.com";
 const char kIwaKioskWebBundleId[] =
     "aerugqztij5biqquuk3mfwpsaibuegaqcitgfchwuosuofdjabzqaaic";
 const char kIwaKioskUpdateUrl[] = "https://example.com/update.json";
 const char kExternalMountPoint[] = "/a/b/c";
-const char kPublicAccountId[] = "public_user@localhost";
+const char kPublicAccountId[] =
+    "public_user@public-accounts.device-local.localhost";
 const char kArcStatus[] = R"(
 {
    "applications":[
@@ -837,9 +842,11 @@
  public:
   // TODO(b/216186861) Default all policies to false for each unit test
   DeviceStatusCollectorTest()
-      : user_manager_(std::make_unique<ash::FakeChromeUserManager>()),
-        reporting_user_tracker_(std::make_unique<ReportingUserTracker>(
-            user_manager::UserManager::Get())),
+      : user_manager_(std::make_unique<user_manager::UserManagerImpl>(
+            std::make_unique<user_manager::FakeUserManagerDelegate>(),
+            TestingBrowserProcess::GetGlobal()->GetTestingLocalState())),
+        reporting_user_tracker_(
+            std::make_unique<ReportingUserTracker>(user_manager_.Get())),
         got_session_status_(false),
         fake_kiosk_device_local_account_(
             DeviceLocalAccountType::kKioskApp,
@@ -922,8 +929,6 @@
   ~DeviceStatusCollectorTest() override {
     ash::SeneschalClient::Shutdown();
     kiosk_chrome_app_manager_.reset();
-    // |testing_profile_| must be destroyed while ConciergeClient is alive.
-    testing_profile_.reset();
     ash::ConciergeClient::Shutdown();
     ash::CiceroneClient::Shutdown();
     ash::LoginState::Shutdown();
@@ -943,6 +948,10 @@
   }
 
   void SetUp() override {
+    profile_manager_ = std::make_unique<TestingProfileManager>(
+        TestingBrowserProcess::GetGlobal());
+    ASSERT_TRUE(profile_manager_->SetUp());
+
     // Disable network interface reporting since it requires additional setup.
     scoped_testing_cros_settings_.device_settings()->SetBoolean(
         ash::kReportDeviceNetworkStatus, false);
@@ -955,14 +964,19 @@
   void TearDown() override {
     status_collector_.reset();
     managed_session_service_.reset();
+
+    if (testing_profile_) {
+      if (auto* account_id =
+              ash::AnnotatedAccountId::Get(testing_profile_.get())) {
+        user_manager_->OnUserProfileWillBeDestroyed(*account_id);
+      }
+    }
+
+    testing_profile_ = nullptr;
+    profile_manager_.reset();
   }
 
  protected:
-  ash::FakeChromeUserManager* GetFakeChromeUserManager() {
-    return static_cast<ash::FakeChromeUserManager*>(
-        user_manager::UserManager::Get());
-  }
-
   void AddMountPoint(const std::string& mount_point) {
     mount_point_map_.insert(
         {mount_point, mount_point, ash::MountType::kDevice});
@@ -971,9 +985,9 @@
   virtual void RestartStatusCollector(
       std::unique_ptr<TestingDeviceStatusCollectorOptions> options) {
     status_collector_ = std::make_unique<TestingDeviceStatusCollector>(
-        GetFakeChromeUserManager()->GetLocalState(),
-        reporting_user_tracker_.get(), &fake_statistics_provider_,
-        managed_session_service_.get(), std::move(options), &test_clock_);
+        user_manager_->GetLocalState(), reporting_user_tracker_.get(),
+        &fake_statistics_provider_, managed_session_service_.get(),
+        std::move(options), &test_clock_);
   }
 
   void DisableDefaultSettings() {
@@ -1054,54 +1068,58 @@
     run_loop_->Quit();
   }
 
-  void MockUserWithTypeAndAffiliation(const AccountId& account_id,
-                                      user_manager::UserType user_type,
-                                      bool is_affiliated) {
-    // Build a profile with profile name=account e-mail because our testing
-    // version of GetDMTokenForProfile returns the profile name.
-    TestingProfile::Builder profile_builder;
-    profile_builder.SetProfileName(account_id.GetUserEmail());
-    testing_profile_ = profile_builder.Build();
-
-    auto* user_manager = GetFakeChromeUserManager();
-    user_manager->AddUserWithAffiliationAndTypeAndProfile(
-        account_id, is_affiliated, user_type, testing_profile_.get());
-    user_manager->UserLoggedIn(
-        account_id, user_manager::TestHelper::GetFakeUsernameHash(account_id));
-  }
-
   void MockRegularUserWithAffiliation(const AccountId& account_id,
                                       bool is_affiliated) {
-    MockUserWithTypeAndAffiliation(account_id, user_manager::UserType::kRegular,
-                                   is_affiliated);
+    ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                    .AddRegularUser(account_id));
+    user_manager_->UserLoggedIn(
+        account_id, user_manager::TestHelper::GetFakeUsernameHash(account_id));
+
+    ash::ScopedAccountIdAnnotator account_id_annotator(
+        profile_manager_->profile_manager(), account_id);
+    CHECK(!testing_profile_);
+    testing_profile_ =
+        profile_manager_->CreateTestingProfile(account_id.GetUserEmail());
+    user_manager_->SetUserPolicyStatus(account_id,
+                                       /*is_managed=*/is_affiliated,
+                                       is_affiliated);
+    user_manager_->OnUserProfileCreated(account_id,
+                                        testing_profile_->GetPrefs());
   }
 
   void MockRunningKioskApp(const DeviceLocalAccount& account,
                            const DeviceLocalAccountType& type) {
     user_manager::User* user = nullptr;
-    auto* user_manager = GetFakeChromeUserManager();
-    AccountId account_id = AccountId::FromUserEmail(account.user_id);
     switch (type) {
       case DeviceLocalAccountType::kKioskApp:
-        user = user_manager->AddKioskChromeAppUser(account_id);
+        user = user_manager::TestHelper(user_manager_.Get())
+                   .AddKioskChromeAppUser(account.user_id);
         break;
       case DeviceLocalAccountType::kWebKioskApp:
-        user = user_manager->AddKioskWebAppUser(account_id);
+        user = user_manager::TestHelper(user_manager_.Get())
+                   .AddKioskWebAppUser(account.user_id);
         break;
       case DeviceLocalAccountType::kKioskIsolatedWebApp:
-        user = user_manager->AddKioskIwaUser(account_id);
+        user = user_manager::TestHelper(user_manager_.Get())
+                   .AddKioskIwaUser(account.user_id);
         break;
       default:
         FAIL() << "Unexpected kiosk app type.";
     }
     DCHECK(user);
 
-    testing_profile_ = std::make_unique<TestingProfile>();
-    ash::ProfileHelper::Get()->SetUserToProfileMappingForTesting(
-        user, testing_profile_.get());
+    user_manager_->UserLoggedIn(
+        user->GetAccountId(),
+        user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
+
+    ash::ScopedAccountIdAnnotator account_id_annotator(
+        profile_manager_->profile_manager(), user->GetAccountId());
+    CHECK(!testing_profile_);
+    testing_profile_ = profile_manager_->CreateTestingProfile(
+        user->GetAccountId().GetUserEmail());
+    user_manager_->OnUserProfileCreated(user->GetAccountId(),
+                                        testing_profile_->GetPrefs());
     SetDeviceLocalAccountsForTesting(&owner_settings_service_, {account});
-    user_manager->UserLoggedIn(
-        account_id, user_manager::TestHelper::GetFakeUsernameHash(account_id));
   }
 
   std::unique_ptr<ScopedChromeOSVersionInfo> MockPlatformVersion(
@@ -1208,10 +1226,15 @@
   DiskMountManager::MountPoints mount_point_map_;
   ash::ScopedStubInstallAttributes scoped_stub_install_attributes_;
   ash::ScopedTestingCrosSettings scoped_testing_cros_settings_;
+  user_manager::ScopedUserManager user_manager_{
+      std::make_unique<user_manager::UserManagerImpl>(
+          std::make_unique<user_manager::FakeUserManagerDelegate>(),
+          TestingBrowserProcess::GetGlobal()->GetTestingLocalState())};
+  std::unique_ptr<TestingProfileManager> profile_manager_;
+  raw_ptr<TestingProfile> testing_profile_ = nullptr;
   ash::FakeOwnerSettingsService owner_settings_service_{
       scoped_testing_cros_settings_.device_settings(), nullptr};
   // Only set after MockRunningKioskApp was called.
-  std::unique_ptr<TestingProfile> testing_profile_;
   ash::KioskCryptohomeRemover kiosk_cryptohome_remover_{
       TestingBrowserProcess::GetGlobal()->local_state()};
   // Only set after MockAutoLaunchWebKioskApp was called.
@@ -1221,7 +1244,6 @@
   // Only set after MockAutoLaunchKioskAppWithRequiredPlatformVersion was
   // called.
   std::unique_ptr<ash::KioskChromeAppManager> kiosk_chrome_app_manager_;
-  user_manager::ScopedUserManager user_manager_;
   std::unique_ptr<ReportingUserTracker> reporting_user_tracker_;
   em::DeviceStatusReportRequest device_status_;
   em::SessionStatusReportRequest session_status_;
@@ -1537,9 +1559,10 @@
       ash::kReportDeviceUsers, true);
   const AccountId public_account_id(AccountId::FromUserEmail(
       "public@public-accounts.device-local.localhost"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddPublicAccountUser(public_account_id);
-  user_manager->UserLoggedIn(
+
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddPublicAccountUser(public_account_id.GetUserEmail()));
+  user_manager_->UserLoggedIn(
       public_account_id,
       user_manager::TestHelper::GetFakeUsernameHash(public_account_id));
 
@@ -1562,13 +1585,11 @@
       ash::kReportDeviceActivityTimes, true);
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceUsers, true);
-  const AccountId public_account_id(
-      AccountId::FromUserEmail("public@web-kiosk-apps.device-local.localhost"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddPublicAccountUser(public_account_id);
-  user_manager->UserLoggedIn(
-      public_account_id,
-      user_manager::TestHelper::GetFakeUsernameHash(public_account_id));
+  const AccountId account_id = AccountId::FromUserEmail(kWebKioskAccountId);
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddKioskWebAppUser(account_id.GetUserEmail()));
+  user_manager_->UserLoggedIn(
+      account_id, user_manager::TestHelper::GetFakeUsernameHash(account_id));
 
   EXPECT_FALSE(status_collector_->IsReportingActivityTimes());
   EXPECT_FALSE(status_collector_->IsReportingUsers());
@@ -1591,9 +1612,9 @@
       ash::kReportDeviceUsers, true);
   const AccountId kiosk_account_id(AccountId::FromUserEmail(
       "public@isolated-kiosk-apps.device-local.localhost"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddPublicAccountUser(kiosk_account_id);
-  user_manager->UserLoggedIn(
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddKioskIwaUser(kiosk_account_id.GetUserEmail()));
+  user_manager_->UserLoggedIn(
       kiosk_account_id,
       user_manager::TestHelper::GetFakeUsernameHash(kiosk_account_id));
 
@@ -1616,12 +1637,15 @@
       ash::kReportDeviceActivityTimes, true);
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceUsers, true);
-  const AccountId account_id0(AccountId::FromUserEmail("user0@managed.com"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id0, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
+  const AccountId account_id0(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddRegularUser(account_id0));
+  user_manager_->UserLoggedIn(
       account_id0, user_manager::TestHelper::GetFakeUsernameHash(account_id0));
+  user_manager_->SetUserPolicyStatus(account_id0,
+                                     /*is_managed=*/true,
+                                     /*is_affiliated=*/true);
 
   EXPECT_TRUE(status_collector_->IsReportingActivityTimes());
   EXPECT_TRUE(status_collector_->IsReportingUsers());
@@ -1656,11 +1680,11 @@
       ash::kReportDeviceActivityTimes, true);
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceUsers, true);
-  const AccountId account_id0(AccountId::FromUserEmail("user0@managed.com"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id0, false, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
+  const AccountId account_id0(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddRegularUser(account_id0));
+  user_manager_->UserLoggedIn(
       account_id0, user_manager::TestHelper::GetFakeUsernameHash(account_id0));
 
   EXPECT_FALSE(status_collector_->IsReportingActivityTimes());
@@ -1840,78 +1864,6 @@
   EXPECT_NE("", device_status_.browser_version());
 }
 
-TEST_F(DeviceStatusCollectorTest, ReportUsers) {
-  const AccountId public_account_id(
-      AccountId::FromUserEmail("public@localhost"));
-  const AccountId account_id0(AccountId::FromUserEmail("user0@managed.com"));
-  const AccountId account_id1(AccountId::FromUserEmail("user1@managed.com"));
-  const AccountId account_id2(AccountId::FromUserEmail("user2@managed.com"));
-  const AccountId account_id3(AccountId::FromUserEmail("user3@unmanaged.com"));
-  const AccountId account_id4(AccountId::FromUserEmail("user4@managed.com"));
-  const AccountId account_id5(AccountId::FromUserEmail("user5@managed.com"));
-
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddPublicAccountUser(public_account_id);
-  user_manager->UserLoggedIn(
-      public_account_id,
-      user_manager::TestHelper::GetFakeUsernameHash(public_account_id));
-
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id0, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
-      account_id0, user_manager::TestHelper::GetFakeUsernameHash(account_id0));
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id1, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
-      account_id1, user_manager::TestHelper::GetFakeUsernameHash(account_id1));
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id2, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
-      account_id2, user_manager::TestHelper::GetFakeUsernameHash(account_id2));
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id3, false, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
-      account_id3, user_manager::TestHelper::GetFakeUsernameHash(account_id3));
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id4, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
-      account_id4, user_manager::TestHelper::GetFakeUsernameHash(account_id4));
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id5, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
-      account_id5, user_manager::TestHelper::GetFakeUsernameHash(account_id5));
-
-  // Verify that users are reported by default.
-  GetStatus();
-  EXPECT_EQ(6, device_status_.users_size());
-
-  // Verify that users are reported after enabling the setting.
-  DisableDefaultSettings();
-  scoped_testing_cros_settings_.device_settings()->SetBoolean(
-      ash::kReportDeviceUsers, true);
-  GetStatus();
-  EXPECT_EQ(6, device_status_.users_size());
-  EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, device_status_.users(0).type());
-  EXPECT_EQ(account_id0.GetUserEmail(), device_status_.users(0).email());
-  EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, device_status_.users(1).type());
-  EXPECT_EQ(account_id1.GetUserEmail(), device_status_.users(1).email());
-  EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, device_status_.users(2).type());
-  EXPECT_EQ(account_id2.GetUserEmail(), device_status_.users(2).email());
-  EXPECT_EQ(em::DeviceUser::USER_TYPE_UNMANAGED,
-            device_status_.users(3).type());
-  EXPECT_FALSE(device_status_.users(3).has_email());
-  EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, device_status_.users(4).type());
-  EXPECT_EQ(account_id4.GetUserEmail(), device_status_.users(4).email());
-  EXPECT_EQ(em::DeviceUser::USER_TYPE_MANAGED, device_status_.users(5).type());
-  EXPECT_EQ(account_id5.GetUserEmail(), device_status_.users(5).email());
-
-  // Verify that users are no longer reported if setting is disabled.
-  scoped_testing_cros_settings_.device_settings()->SetBoolean(
-      ash::kReportDeviceUsers, false);
-  GetStatus();
-  EXPECT_EQ(0, device_status_.users_size());
-}
-
 TEST_F(DeviceStatusCollectorTest, TestVolumeInfo) {
   DisableDefaultSettings();
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
@@ -2193,7 +2145,8 @@
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo);
   RestartStatusCollector(std::move(options));
 
-  const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(prefs::kReportArcStatusEnabled,
                                            true);
@@ -2213,7 +2166,8 @@
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo);
   RestartStatusCollector(std::move(options));
 
-  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId(kCrostiniUserEmail, GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(
       crostini::prefs::kReportCrostiniUsageEnabled, true);
@@ -2241,7 +2195,8 @@
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo);
   RestartStatusCollector(std::move(options));
 
-  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId(kCrostiniUserEmail, GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(
       crostini::prefs::kReportCrostiniUsageEnabled, true);
@@ -2261,7 +2216,8 @@
   RestartStatusCollector(std::move(options));
 
   // Prerequisites for any Crostini reporting to take place:
-  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId(kCrostiniUserEmail, GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(
       crostini::prefs::kReportCrostiniUsageEnabled, true);
@@ -2289,7 +2245,8 @@
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo);
   RestartStatusCollector(std::move(options));
 
-  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId(kCrostiniUserEmail, GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(
       crostini::prefs::kReportCrostiniUsageEnabled, true);
@@ -2358,7 +2315,8 @@
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo);
   RestartStatusCollector(std::move(options));
 
-  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId(kCrostiniUserEmail, GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(
       crostini::prefs::kReportCrostiniUsageEnabled, true);
@@ -2392,7 +2350,8 @@
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo);
   RestartStatusCollector(std::move(options));
 
-  const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
 
   GetStatus();
@@ -2411,7 +2370,8 @@
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo);
   RestartStatusCollector(std::move(options));
 
-  const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, false);
   testing_profile_->GetPrefs()->SetBoolean(prefs::kReportArcStatusEnabled,
                                            true);
@@ -2559,7 +2519,8 @@
 
 TEST_F(DeviceStatusCollectorTest, NoTimeZoneReporting) {
   // Time zone is not reported in enterprise reports.
-  const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
 
   GetStatus();
@@ -3795,7 +3756,8 @@
 
 TEST_F(DeviceStatusCollectorTest, GenerateAppInfo) {
   DisableDefaultSettings();
-  const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
+  const AccountId account_id(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
   MockRegularUserWithAffiliation(account_id, true);
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceAppInfo, true);
@@ -4181,11 +4143,11 @@
   // Network interfaces should be reported for unaffiliated users.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkConfiguration, true);
-  const AccountId account_id0(AccountId::FromUserEmail("user0@managed.com"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id0, false, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
+  const AccountId account_id0(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddRegularUser(account_id0));
+  user_manager_->UserLoggedIn(
       account_id0, user_manager::TestHelper::GetFakeUsernameHash(account_id0));
 
   GetStatus();
@@ -4196,12 +4158,15 @@
   // Network interfaces should be reported for affiliated users.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkConfiguration, true);
-  const AccountId account_id0(AccountId::FromUserEmail("user0@managed.com"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id0, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
+  const AccountId account_id0(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddRegularUser(account_id0));
+  user_manager_->UserLoggedIn(
       account_id0, user_manager::TestHelper::GetFakeUsernameHash(account_id0));
+  user_manager_->SetUserPolicyStatus(account_id0,
+                                     /*is_managed=*/true,
+                                     /*is_affiliated=*/true);
 
   GetStatus();
   VerifyReporting();
@@ -4211,10 +4176,10 @@
   // Network interfaces should be reported if in public session.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkConfiguration, true);
-  auto* user_manager = GetFakeChromeUserManager();
-  auto* user = user_manager->AddPublicAccountUser(
-      AccountId::FromUserEmail(kPublicAccountId));
-  user_manager->UserLoggedIn(
+  auto* user = user_manager::TestHelper(user_manager_.Get())
+                   .AddPublicAccountUser(kPublicAccountId);
+  ASSERT_TRUE(user);
+  user_manager_->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
 
@@ -4226,8 +4191,8 @@
   // Network interfaces should be reported if in kiosk mode.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkConfiguration, true);
-  GetFakeChromeUserManager()->AddKioskChromeAppUser(
-      AccountId::FromUserEmail(kKioskAccountId));
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddKioskChromeAppUser(kKioskAccountId));
 
   GetStatus();
   VerifyReporting();
@@ -4312,10 +4277,10 @@
   // Mock that the device is in kiosk mode to report network state.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkStatus, true);
-  auto* user_manager = GetFakeChromeUserManager();
-  auto* user = user_manager->AddKioskChromeAppUser(
-      AccountId::FromUserEmail(kKioskAccountId));
-  user_manager->UserLoggedIn(
+  auto* user = user_manager::TestHelper(user_manager_.Get())
+                   .AddKioskChromeAppUser(kKioskAccountId);
+  ASSERT_TRUE(user);
+  user_manager_->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
 
@@ -4351,11 +4316,11 @@
   // Network state shouldn't be reported for unaffiliated users.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkStatus, true);
-  const AccountId account_id0(AccountId::FromUserEmail("user0@managed.com"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id0, false, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
+  const AccountId account_id0(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddRegularUser(account_id0));
+  user_manager_->UserLoggedIn(
       account_id0, user_manager::TestHelper::GetFakeUsernameHash(account_id0));
 
   GetStatus();
@@ -4366,12 +4331,15 @@
   // Network state should be reported for affiliated users.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkStatus, true);
-  const AccountId account_id0(AccountId::FromUserEmail("user0@managed.com"));
-  auto* user_manager = GetFakeChromeUserManager();
-  user_manager->AddUserWithAffiliationAndTypeAndProfile(
-      account_id0, true, user_manager::UserType::kRegular, nullptr);
-  user_manager->UserLoggedIn(
+  const AccountId account_id0(
+      AccountId::FromUserEmailGaiaId("user0@managed.com", GaiaId("123456789")));
+  ASSERT_TRUE(user_manager::TestHelper(user_manager_.Get())
+                  .AddRegularUser(account_id0));
+  user_manager_->UserLoggedIn(
       account_id0, user_manager::TestHelper::GetFakeUsernameHash(account_id0));
+  user_manager_->SetUserPolicyStatus(account_id0,
+                                     /*is_managed=*/true,
+                                     /*is_affiliated=*/true);
 
   GetStatus();
   VerifyReporting();
@@ -4381,10 +4349,10 @@
   // Network state should be reported if in public session.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkStatus, true);
-  auto* user_manager = GetFakeChromeUserManager();
-  auto* user = user_manager->AddPublicAccountUser(
-      AccountId::FromUserEmail(kPublicAccountId));
-  user_manager->UserLoggedIn(
+  auto* user = user_manager::TestHelper(user_manager_.Get())
+                   .AddPublicAccountUser(kPublicAccountId);
+  ASSERT_TRUE(user);
+  user_manager_->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
 
@@ -4396,10 +4364,10 @@
   // Network state should be reported if in kiosk mode.
   scoped_testing_cros_settings_.device_settings()->SetBoolean(
       ash::kReportDeviceNetworkStatus, true);
-  auto* user_manager = GetFakeChromeUserManager();
-  auto* user = user_manager->AddKioskChromeAppUser(
-      AccountId::FromUserEmail(kKioskAccountId));
-  user_manager->UserLoggedIn(
+  auto* user = user_manager::TestHelper(user_manager_.Get())
+                   .AddKioskChromeAppUser(kKioskAccountId);
+  ASSERT_TRUE(user);
+  user_manager_->UserLoggedIn(
       user->GetAccountId(),
       user_manager::TestHelper::GetFakeUsernameHash(user->GetAccountId()));
 
diff --git a/chrome/browser/autofill/captured_sites_test_utils.cc b/chrome/browser/autofill/captured_sites_test_utils.cc
index 1a63ead..c7ced340 100644
--- a/chrome/browser/autofill/captured_sites_test_utils.cc
+++ b/chrome/browser/autofill/captured_sites_test_utils.cc
@@ -2157,15 +2157,24 @@
     return false;
   }
   for (const std::string& assertion : assertions) {
-    if (!EvalJs(frame, base::StringPrintf("(function() {"
-                                          "  try {"
-                                          "    %s"
-                                          "  } catch (ex) {}"
-                                          "  return false;"
-                                          "})();",
-                                          assertion.c_str()))
-             .ExtractBool()) {
-      VLOG(1) << "'" << assertion << "' failed!";
+    content::EvalJsResult result =
+        EvalJs(frame, base::StringPrintf("(function() {"
+                                         "  try {"
+                                         "    %s"
+                                         "  } catch (ex) {}"
+                                         "  return false;"
+                                         "})();",
+                                         assertion.c_str()));
+    if (!result.is_ok()) {
+      VLOG(1) << "'" << assertion << "' failed: " << result.ExtractError();
+      return false;
+    }
+    if (!result.is_bool()) {
+      VLOG(1) << "'" << assertion << "' failed: Did not return boolean.";
+      return false;
+    }
+    if (!result.ExtractBool()) {
+      VLOG(1) << "'" << assertion << "' failed: Returned false.";
       return false;
     }
   }
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index 70381ea..643f8802 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -120,8 +120,8 @@
 #include "components/password_manager/core/browser/password_manager_metrics_util.h"
 #include "components/password_manager/core/browser/password_store/password_store_interface.h"
 #include "components/password_manager/core/browser/password_store/smart_bubble_stats_store.h"
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter.h"
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter_factory.h"
 #include "components/payments/content/web_payments_web_data_service.h"
 #include "components/performance_manager/public/user_tuning/prefs.h"
 #include "components/permissions/permission_actions_history.h"
@@ -732,13 +732,11 @@
     }
 #endif  // !BUILDFLAG(IS_ANDROID)
 
-#if BUILDFLAG(IS_ANDROID)
     if (payments::BrowserBoundKeyDeleter* browser_bound_key_deleter =
             payments::BrowserBoundKeyDeleterFactory::GetForBrowserContext(
                 profile_)) {
       browser_bound_key_deleter->RemoveInvalidBBKs();
     }
-#endif  // BUILDFLAG(IS_ANDROID)
 
 #if BUILDFLAG(IS_CHROMEOS)
     if (base::FeatureList::IsEnabled(
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
index 3f8bec07..895a32a 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -221,8 +221,8 @@
 #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
 #include "chrome/browser/ui/android/tab_model/tab_model_test_helper.h"
 #include "components/password_manager/core/browser/split_stores_and_local_upm.h"
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h"
-#include "components/payments/content/browser_binding/mock_browser_bound_keys_deleter.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter_factory.h"
+#include "components/payments/content/browser_binding/mock_browser_bound_key_deleter.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #else
 #include "base/task/current_thread.h"
@@ -4548,8 +4548,8 @@
 // Verify that clearing cookies will also trigger removing invalid browser bound
 // keys.
 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
-       ClearInvalidBrowserBoundKeysForSecurePaymentConfirmation) {
-  auto* mock_browser_bound_keys_deleter = static_cast<
+       ClearInvalidBrowserBoundKeyForSecurePaymentConfirmation) {
+  auto* mock_browser_bound_key_deleter = static_cast<
       payments::MockBrowserBoundKeyDeleter*>(
       payments::BrowserBoundKeyDeleterFactory::GetInstance()
           ->SetTestingFactoryAndUse(
@@ -4559,7 +4559,7 @@
                 return std::make_unique<payments::MockBrowserBoundKeyDeleter>();
               })));
 
-  EXPECT_CALL(*mock_browser_bound_keys_deleter, RemoveInvalidBBKs());
+  EXPECT_CALL(*mock_browser_bound_key_deleter, RemoveInvalidBBKs());
   BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(),
                                 content::BrowsingDataRemover::DATA_TYPE_COOKIES,
                                 false);
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 20396a2..1dbe54d 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -7772,6 +7772,12 @@
         kBlockInsteadOfWarn;
   }
 
+  if (profile->GetPrefs()->GetBoolean(
+          prefs::kManagedLocalNetworkAccessRestrictionsTemporaryOptOut)) {
+    return content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride::
+        kWarnInsteadOfBlock;
+  }
+
   return content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride::
       kDefault;
 }
diff --git a/chrome/browser/download/bubble/download_bubble_ui_controller.cc b/chrome/browser/download/bubble/download_bubble_ui_controller.cc
index ac198bd2..d1022a2 100644
--- a/chrome/browser/download/bubble/download_bubble_ui_controller.cc
+++ b/chrome/browser/download/bubble/download_bubble_ui_controller.cc
@@ -363,9 +363,6 @@
   if (!download_manager) {
     return;
   }
-  RecordDownloadRetry(
-      OfflineItemUtils::ConvertFailStateToDownloadInterruptReason(
-          model->GetLastFailState()));
 
   net::NetworkTrafficAnnotationTag traffic_annotation =
       net::DefineNetworkTrafficAnnotation("download_bubble_retry_download", R"(
diff --git a/chrome/browser/educational_tip/BUILD.gn b/chrome/browser/educational_tip/BUILD.gn
index dfff03fb..0db306c 100644
--- a/chrome/browser/educational_tip/BUILD.gn
+++ b/chrome/browser/educational_tip/BUILD.gn
@@ -36,6 +36,7 @@
     "//chrome/browser/segmentation_platform:factory_java",
     "//chrome/browser/signin/services/android:java",
     "//chrome/browser/sync/android:java",
+    "//chrome/browser/tab:java",
     "//chrome/browser/tab_group_sync:factory_java",
     "//chrome/browser/tab_group_sync:features_java",
     "//chrome/browser/tab_ui/android:java",
@@ -50,7 +51,6 @@
     "//components/signin/public/android:java",
     "//components/sync/android:sync_java",
     "//third_party/androidx:androidx_annotation_annotation_java",
-    "//third_party/androidx:androidx_annotation_annotation_java",
     "//ui/android:ui_java",
   ]
   resources_package = "org.chromium.chrome.browser.educational_tip"
diff --git a/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java b/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java
index c684aa2b..0a5a4785 100644
--- a/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java
+++ b/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java
@@ -111,8 +111,18 @@
      * Otherwise, it returns 0.0f.
      */
     private static float tabGroupExists(EducationTipModuleActionDelegate actionDelegate) {
-        TabGroupModelFilterProvider provider =
-                actionDelegate.getTabModelSelector().getTabGroupModelFilterProvider();
+        TabModelSelector tabModelSelector = actionDelegate.getTabModelSelector();
+        if (!tabModelSelector.isTabStateInitialized()
+                || tabModelSelector.isReparentingInProgress()) {
+            return 0.0f;
+        }
+
+        if (tabModelSelector.getCurrentModel().getTabById(tabModelSelector.getCurrentTabId())
+                == null) {
+            return 0.0f;
+        }
+
+        TabGroupModelFilterProvider provider = tabModelSelector.getTabGroupModelFilterProvider();
         TabGroupModelFilter normalFilter =
                 provider.getTabGroupModelFilter(/* isIncognito= */ false);
         assumeNonNull(normalFilter);
diff --git a/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java b/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java
index 5e0a671..f50f4826 100644
--- a/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java
+++ b/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java
@@ -30,6 +30,8 @@
 import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tab.TabId;
 import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncFeatures;
 import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncFeaturesJni;
 import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncServiceFactory;
@@ -50,6 +52,7 @@
 @Config(manifest = Config.NONE)
 public class EducationalTipCardProviderSignalHandlerUnitTest {
     private static final String SYNC_ID = "sync_id";
+    private static final @TabId int TAB_ID = 1;
 
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
@@ -67,6 +70,8 @@
     @Mock private TabGroupSyncFeatures.Natives mTabGroupSyncFeaturesJniMock;
     @Mock private IdentityServicesProvider mIdentityServicesProvider;
     @Mock private IdentityManager mIdentityManagerMock;
+    @Mock private TabModel mTabModel;
+    @Mock private Tab mTab;
 
     private Context mContext;
 
@@ -172,6 +177,12 @@
     public void testCreateInputContext_TabGroupPromoCard_TabGroupExists() {
         assertTrue(ChromeFeatureList.sEducationalTipModule.isEnabled());
 
+        when(mTabModelSelector.isTabStateInitialized()).thenReturn(true);
+        when(mTabModelSelector.isReparentingInProgress()).thenReturn(false);
+        when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel);
+        when(mTabModelSelector.getCurrentTabId()).thenReturn(TAB_ID);
+        when(mTabModel.getTabById(TAB_ID)).thenReturn(mTab);
+
         InputContext inputContext =
                 EducationalTipCardProviderSignalHandler.createInputContext(
                         ModuleType.TAB_GROUP_PROMO, mActionDelegate, mProfile, mTracker);
@@ -202,6 +213,10 @@
 
         // Test cases when tab state is already initialized.
         when(mTabModelSelector.isTabStateInitialized()).thenReturn(true);
+        when(mTabModelSelector.isReparentingInProgress()).thenReturn(false);
+        when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel);
+        when(mTabModelSelector.getCurrentTabId()).thenReturn(TAB_ID);
+        when(mTabModel.getTabById(TAB_ID)).thenReturn(mTab);
         when(mNormalModel.getCount()).thenReturn(0);
         when(mIncognitoModel.getCount()).thenReturn(0);
         inputContext =
diff --git a/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.cc b/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.cc
index 6fff144..4700279 100644
--- a/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.cc
+++ b/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.cc
@@ -7,30 +7,47 @@
 #include "base/feature_list.h"
 #include "base/no_destructor.h"
 #include "base/task/sequenced_task_runner.h"
+#include "base/time/time.h"
 #include "chrome/browser/enterprise/data_protection/data_protection_features.h"
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
+#include "components/safe_browsing/core/common/proto/realtimeapi.pb.h"
 #include "components/sessions/content/session_tab_helper.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 
-namespace enterprise_data_protection {
+namespace {
 
-void OnRealTimeLookupComplete(
-    LookupCallback callback,
-    const std::string& identifier,
-    bool is_success,
-    bool is_cached,
-    std::unique_ptr<safe_browsing::RTLookupResponse> rt_lookup_response) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  if (!is_success) {
-    rt_lookup_response.reset();
+int GetCacheDurationSec(safe_browsing::RTLookupResponse* rt_lookup_response) {
+  DCHECK(rt_lookup_response);
+  const auto& threat_infos = rt_lookup_response->threat_info();
+
+  // Defensive check
+  if (threat_infos.empty()) {
+    return 0;
   }
 
-  std::move(callback).Run(std::move(rt_lookup_response));
+  // We do not check for matched rules, because that would exclude safe verdicts
+  int cache_duration_sec = threat_infos[0].cache_duration_sec();
+  for (int i = 1; i < threat_infos.size(); ++i) {
+    const auto& threat_info = threat_infos[i];
+    if (threat_info.cache_duration_sec() < cache_duration_sec) {
+      cache_duration_sec = threat_info.cache_duration_sec();
+    }
+  }
+  return cache_duration_sec;
 }
 
-DataProtectionUrlLookupService::DataProtectionUrlLookupService() = default;
+}  // namespace
+namespace enterprise_data_protection {
+
+DataProtectionUrlLookupService::Verdict::Verdict() = default;
+DataProtectionUrlLookupService::Verdict::Verdict(Verdict&&) = default;
+DataProtectionUrlLookupService::Verdict::~Verdict() = default;
+
+DataProtectionUrlLookupService::DataProtectionUrlLookupService()
+    : verdict_cache_(GetVerdictCacheMaxSize()) {}
+
 DataProtectionUrlLookupService::~DataProtectionUrlLookupService() = default;
 
 void DataProtectionUrlLookupService::DoLookup(
@@ -43,9 +60,23 @@
   DCHECK(web_contents);
   DCHECK(callback);
 
+  auto cached_verdict = verdict_cache_.Peek(url.spec());
+  if (cached_verdict != verdict_cache_.end() &&
+      !IsVerdictExpired(cached_verdict->second)) {
+    // Proto assignment has deep copy semantics. There is room to optimize by
+    // implementing shared ownership (both this service and
+    // `DataProtectionPageUserData` own a ptr to RTLookupResponse).
+    std::unique_ptr<safe_browsing::RTLookupResponse> response =
+        std::make_unique<safe_browsing::RTLookupResponse>(
+            *cached_verdict->second.response);
+    std::move(callback).Run(std::move(response));
+    return;
+  }
+
   lookup_service->StartMaybeCachedLookup(
       url,
-      base::BindOnce(&OnRealTimeLookupComplete, std::move(callback),
+      base::BindOnce(&DataProtectionUrlLookupService::OnRealTimeLookupComplete,
+                     weak_factory_.GetWeakPtr(), std::move(callback), url,
                      identifier),
       base::SequencedTaskRunner::GetCurrentDefault(),
       sessions::SessionTabHelper::IdForTab(web_contents),
@@ -53,6 +84,38 @@
       !base::FeatureList::IsEnabled(kEnableSinglePageAppDataProtection));
 }
 
+void DataProtectionUrlLookupService::OnRealTimeLookupComplete(
+    LookupCallback callback,
+    const GURL& url,
+    const std::string& identifier,
+    bool is_success,
+    bool is_cached,
+    std::unique_ptr<safe_browsing::RTLookupResponse> rt_lookup_response) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+  if (!is_success) {
+    rt_lookup_response.reset();
+  } else if (base::FeatureList::IsEnabled(kEnableVerdictCache) &&
+             rt_lookup_response) {
+    // Guarantee that verdict cache contents are non-empty.
+    int cache_duration_sec = GetCacheDurationSec(rt_lookup_response.get());
+    if (cache_duration_sec > 0) {
+      Verdict verdict;
+      verdict.response = std::make_unique<safe_browsing::RTLookupResponse>(
+          *rt_lookup_response);
+      verdict.expiry_time =
+          base::Time::Now() + base::Seconds(cache_duration_sec);
+      verdict_cache_.Put(url.spec(), std::move(verdict));
+    }
+  }
+
+  std::move(callback).Run(std::move(rt_lookup_response));
+}
+
+// static
+bool DataProtectionUrlLookupService::IsVerdictExpired(const Verdict& verdict) {
+  return base::Time::Now() > verdict.expiry_time;
+}
+
 // ====================================================
 // DataProtectionUrlLookupServiceFactory implementation
 // ====================================================
@@ -85,4 +148,12 @@
   return std::make_unique<DataProtectionUrlLookupService>();
 }
 
+// static
+size_t DataProtectionUrlLookupService::GetVerdictCacheMaxSize() {
+  size_t max_value = enterprise_data_protection::kVerdictCacheMaxSize.Get();
+  return max_value > 0
+             ? max_value
+             : enterprise_data_protection::kVerdictCacheMaxSize.default_value;
+}
+
 }  // namespace enterprise_data_protection
diff --git a/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.h b/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.h
index 9bd8e50..5c88106c 100644
--- a/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.h
+++ b/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.h
@@ -7,6 +7,8 @@
 #include <memory>
 #include <string>
 
+#include "base/containers/lru_cache.h"
+#include "base/time/time.h"
 #include "chrome/browser/profiles/profile_keyed_service_factory.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/safe_browsing/core/browser/realtime/url_lookup_service_base.h"
@@ -34,6 +36,34 @@
                 const std::string& identifier,
                 LookupCallback callback,
                 content::WebContents* web_contents);
+
+ private:
+  struct Verdict {
+    Verdict();
+    Verdict(Verdict&&);
+    ~Verdict();
+
+    std::unique_ptr<safe_browsing::RTLookupResponse> response;
+    base::Time expiry_time;
+  };
+
+  void OnRealTimeLookupComplete(
+      LookupCallback callback,
+      const GURL& url,
+      const std::string& identifier,
+      bool is_success,
+      bool is_cached,
+      std::unique_ptr<safe_browsing::RTLookupResponse> rt_lookup_response);
+
+  static size_t GetVerdictCacheMaxSize();
+
+  static bool IsVerdictExpired(const Verdict& verdict);
+
+  // cache which maps the full URL specification string to the safe-browsing
+  // verdict, and its expiry time.
+  base::LRUCache<std::string, Verdict> verdict_cache_;
+
+  base::WeakPtrFactory<DataProtectionUrlLookupService> weak_factory_{this};
 };
 
 // =====================================
diff --git a/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service_unittest.cc b/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service_unittest.cc
new file mode 100644
index 0000000..a9173da
--- /dev/null
+++ b/chrome/browser/enterprise/data_protection/data_protection_url_lookup_service_unittest.cc
@@ -0,0 +1,160 @@
+// 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.
+
+#include "chrome/browser/enterprise/data_protection/data_protection_url_lookup_service.h"
+
+#include "base/test/scoped_feature_list.h"
+#include "chrome/browser/enterprise/data_protection/data_protection_features.h"
+#include "chrome/test/base/testing_profile.h"
+#include "components/safe_browsing/core/browser/realtime/fake_url_lookup_service.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/test/test_renderer_host.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace {
+
+constexpr char kUrl[] = "someurl.com";
+constexpr char kIdentifier[] = "someuser@example.com";
+
+safe_browsing::RTLookupResponse::ThreatInfo GetTestThreatInfo(
+    int cache_duration_sec) {
+  safe_browsing::RTLookupResponse::ThreatInfo threat_info;
+  threat_info.set_verdict_type(
+      safe_browsing::RTLookupResponse::ThreatInfo::SAFE);
+  threat_info.set_cache_duration_sec(cache_duration_sec);
+  return threat_info;
+}
+
+std::unique_ptr<safe_browsing::RTLookupResponse> CreateRTLookupResponse(
+    int cache_duration_sec) {
+  auto response = std::make_unique<safe_browsing::RTLookupResponse>();
+  safe_browsing::RTLookupResponse::ThreatInfo* new_threat_info =
+      response->add_threat_info();
+  *new_threat_info = GetTestThreatInfo(cache_duration_sec);
+  return response;
+}
+
+class MockRealTimeUrlLookupService
+    : public safe_browsing::testing::FakeRealTimeUrlLookupService {
+ public:
+  MOCK_METHOD(void, LookupCalled, ());
+
+  void StartMaybeCachedLookup(
+      const GURL& url,
+      safe_browsing::RTLookupResponseCallback response_callback,
+      scoped_refptr<base::SequencedTaskRunner> callback_task_runner,
+      SessionID session_id,
+      std::optional<safe_browsing::internal::ReferringAppInfo>
+          referring_app_info,
+      bool use_cache) override {
+    LookupCalled();
+    std::move(response_callback)
+        .Run(true, true, CreateRTLookupResponse(cache_duration_sec_));
+  }
+
+  void set_cache_duration_sec(int cache_duration_sec) {
+    cache_duration_sec_ = cache_duration_sec;
+  }
+
+ private:
+  int cache_duration_sec_ = 0;
+};
+
+}  // namespace
+
+namespace enterprise_data_protection {
+
+struct UrlLookupTestCase {
+  bool verdict_cache_enabled;
+  int cache_duration_sec;
+  int second_do_lookup_delay_sec;
+  int do_lookup_call_count;
+};
+
+UrlLookupTestCase kUrlLookupTestCases[] = {{.verdict_cache_enabled = true,
+                                            .cache_duration_sec = 90,
+                                            .second_do_lookup_delay_sec = 0,
+                                            .do_lookup_call_count = 1},
+                                           {.verdict_cache_enabled = false,
+                                            .cache_duration_sec = 90,
+                                            .second_do_lookup_delay_sec = 0,
+                                            .do_lookup_call_count = 2},
+                                           {.verdict_cache_enabled = true,
+                                            .cache_duration_sec = 90,
+                                            .second_do_lookup_delay_sec = 100,
+                                            .do_lookup_call_count = 2}};
+
+// The RenderViewHostTestHarness is used to obtain a test WebContents instance
+class DataProtectionUrlLookupServiceTest
+    : public content::RenderViewHostTestHarness,
+      public testing::WithParamInterface<UrlLookupTestCase> {
+ public:
+  DataProtectionUrlLookupServiceTest()
+      : content::RenderViewHostTestHarness(
+            base::test::TaskEnvironment::TimeSource::MOCK_TIME) {}
+  void SetUp() override { content::RenderViewHostTestHarness::SetUp(); }
+
+  void TearDown() override { content::RenderViewHostTestHarness::TearDown(); }
+
+  void CreateLookupService() {
+    service_ = std::make_unique<DataProtectionUrlLookupService>();
+  }
+
+  DataProtectionUrlLookupService* GetLookupService() {
+    if (!service_) {
+      CreateLookupService();
+    }
+    return service_.get();
+  }
+
+  // content::RenderViewHostTestHarness:
+  std::unique_ptr<content::BrowserContext> CreateBrowserContext() override {
+    return std::make_unique<TestingProfile>();
+  }
+
+ private:
+  std::unique_ptr<DataProtectionUrlLookupService> service_;
+};
+
+TEST_P(DataProtectionUrlLookupServiceTest, VerdictCachePopulated) {
+  base::test::ScopedFeatureList scoped_features;
+  UrlLookupTestCase test_case = GetParam();
+
+  if (test_case.verdict_cache_enabled) {
+    scoped_features.InitAndEnableFeature(
+        enterprise_data_protection::kEnableVerdictCache);
+  } else {
+    scoped_features.InitAndDisableFeature(
+        enterprise_data_protection::kEnableVerdictCache);
+  }
+
+  SetContents(CreateTestWebContents());
+
+  // create the mock lookup
+  MockRealTimeUrlLookupService lookup_service;
+  lookup_service.set_cache_duration_sec(test_case.cache_duration_sec);
+  EXPECT_CALL(lookup_service, LookupCalled)
+      .Times(test_case.do_lookup_call_count);
+
+  // create the service
+  auto* dp_lookup_service = GetLookupService();
+
+  // call DoLookup, passing the fake
+  GURL url(kUrl);
+  dp_lookup_service->DoLookup(&lookup_service, url, kIdentifier,
+                              base::DoNothing(), web_contents());
+
+  task_environment()->FastForwardBy(
+      base::Seconds(test_case.second_do_lookup_delay_sec));
+
+  // second call to the same url ensure value is fetched from cache
+  dp_lookup_service->DoLookup(&lookup_service, url, kIdentifier,
+                              base::DoNothing(), web_contents());
+}
+
+INSTANTIATE_TEST_SUITE_P(,
+                         DataProtectionUrlLookupServiceTest,
+                         testing::ValuesIn(kUrlLookupTestCases));
+
+}  // namespace enterprise_data_protection
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
index 2d7d2e20..560668fc 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
@@ -7,6 +7,7 @@
 #include "base/barrier_closure.h"
 #include "base/files/file_util.h"
 #include "base/memory/ref_counted.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/thread_pool.h"
@@ -354,6 +355,14 @@
       .GetByID(id);
 }
 
+DeveloperPrivateAPIFunction::ResponseValue
+DeveloperPrivateAPIFunction::LogNoSuchExtensionFoundAndReturn() {
+  base::UmaHistogramSparse(
+      "Extensions.Functions.DeveloperPrivate.NoSuchExtensionErrorThrown",
+      histogram_value());
+  return Error(ErrorUtils::FormatErrorMessage(kNoSuchExtensionError, name()));
+}
+
 DeveloperPrivateAutoUpdateFunction::~DeveloperPrivateAutoUpdateFunction() =
     default;
 
@@ -436,7 +445,7 @@
 void DeveloperPrivateGetExtensionInfoFunction::OnInfosGenerated(
     ExtensionInfoGenerator::ExtensionInfoList list) {
   DCHECK_LE(1u, list.size());
-  Respond(list.empty() ? Error(kNoSuchExtensionError)
+  Respond(list.empty() ? LogNoSuchExtensionFoundAndReturn()
                        : WithArguments(list[0].ToValue()));
 }
 
@@ -454,7 +463,7 @@
 
   const Extension* extension = GetExtensionById(params->id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   extensions::path_util::CalculateAndFormatExtensionDirectorySize(
@@ -530,7 +539,7 @@
 
   const Extension* extension = GetExtensionById(update.extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   // The chrome://extensions page uses toggles which, when dragged, do not
@@ -633,7 +642,7 @@
 
   const Extension* extension = GetExtensionById(params->extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   reloading_extension_path_ = extension->path();
@@ -1036,7 +1045,7 @@
   EXTENSION_FUNCTION_VALIDATE(params);
   const Extension* extension = GetEnabledExtensionById(params->extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   if (OptionsPageInfo::GetOptionsPage(extension).is_empty()) {
@@ -1060,7 +1069,7 @@
   EXTENSION_FUNCTION_VALIDATE(params);
   const Extension* extension = GetExtensionById(params->extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   // We explicitly show manifest.json in order to work around an issue in OSX
@@ -1128,7 +1137,7 @@
 
   const Extension* extension = GetExtensionById(params->extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   if (!PermissionsManager::Get(browser_context())
@@ -1173,7 +1182,7 @@
 
   const Extension* extension = GetExtensionById(params->extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   PermissionsManager* manager = PermissionsManager::Get(browser_context());
@@ -1502,7 +1511,7 @@
   for (const auto& update : params->updates) {
     const Extension* extension = GetExtensionById(update.id);
     if (!extension) {
-      return RespondNow(Error(kNoSuchExtensionError));
+      return RespondNow(LogNoSuchExtensionFoundAndReturn());
     }
     if (!permissions_manager->CanAffectExtension(*extension)) {
       return RespondNow(Error(kCannotChangeHostPermissions));
@@ -1869,7 +1878,7 @@
       params_->properties;
   const Extension* extension = GetExtensionById(properties.extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   // Under no circumstances should we ever need to reference a file outside of
@@ -1898,7 +1907,7 @@
       params_->properties;
   const Extension* extension = GetExtensionById(properties.extension_id);
   if (!extension) {
-    Respond(Error(kNoSuchExtensionError));
+    Respond(LogNoSuchExtensionFoundAndReturn());
     return;
   }
 
@@ -1953,7 +1962,7 @@
       properties.is_service_worker && *properties.is_service_worker;
   if (is_service_worker) {
     if (!extension) {
-      return RespondNow(Error(kNoSuchExtensionError));
+      return RespondNow(LogNoSuchExtensionFoundAndReturn());
     }
     if (!BackgroundInfo::IsServiceWorkerBased(extension)) {
       return RespondNow(Error(kInvalidLazyBackgroundPageParameter));
@@ -1972,7 +1981,7 @@
   if (properties.render_process_id == -1) {
     // This is for a lazy background page.
     if (!extension) {
-      return RespondNow(Error(kNoSuchExtensionError));
+      return RespondNow(LogNoSuchExtensionFoundAndReturn());
     }
     if (!BackgroundInfo::HasLazyBackgroundPage(extension)) {
       return RespondNow(Error(kInvalidRenderProcessId));
@@ -2044,7 +2053,7 @@
   EXTENSION_FUNCTION_VALIDATE(params);
   const Extension* extension = GetExtensionById(params->extension_id);
   if (!extension) {
-    return RespondNow(Error(kNoSuchExtensionError));
+    return RespondNow(LogNoSuchExtensionFoundAndReturn());
   }
 
   if (!ExtensionPrefs::Get(browser_context())
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.h b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.h
index d59e885..007ab86 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.h
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.h
@@ -33,7 +33,8 @@
   // These constants here are only temporarily during Android desktop
   // development and we can move these constants to an anonymous namespace once
   // we finish it.
-  static constexpr char kNoSuchExtensionError[] = "No such extension.";
+  static constexpr char kNoSuchExtensionError[] =
+      "No such extension found for call to *.";
   static constexpr char kRequiresUserGestureError[] =
       "This action requires a user gesture.";
   static constexpr char kCouldNotShowSelectFileDialogError[] =
@@ -116,6 +117,10 @@
   // Returns the extension with the given `id` from the registry, only checking
   // enabled extensions.
   const Extension* GetEnabledExtensionById(const ExtensionId& id);
+
+  // Called when there is no extension that exists for a specified ID in a
+  // function. Logs the function name and returns an error.
+  ResponseValue LogNoSuchExtensionFoundAndReturn();
 };
 
 class DeveloperPrivateAutoUpdateFunction : public DeveloperPrivateAPIFunction {
diff --git a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
index ad40032..0ce56bd 100644
--- a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
+++ b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
@@ -115,6 +115,22 @@
 
 }  // namespace
 
+class IdentityGetAuthTokenFunction::RefreshTokensLoadedWaiter
+    : public signin::IdentityManager::Observer {
+ public:
+  RefreshTokensLoadedWaiter(signin::IdentityManager& identity_manager,
+                            base::OnceClosure callback);
+
+  // signin::IdentityManager::Observer:
+  void OnRefreshTokensLoaded() override;
+
+ private:
+  base::OnceClosure callback_;
+  base::ScopedObservation<signin::IdentityManager,
+                          signin::IdentityManager::Observer>
+      identity_manager_observation_{this};
+};
+
 IdentityGetAuthTokenFunction::IdentityGetAuthTokenFunction() = default;
 
 IdentityGetAuthTokenFunction::~IdentityGetAuthTokenFunction() {
@@ -975,22 +991,6 @@
   return IdentityGetAuthTokenError(state);
 }
 
-class IdentityGetAuthTokenFunction::RefreshTokensLoadedWaiter
-    : public signin::IdentityManager::Observer {
- public:
-  RefreshTokensLoadedWaiter(signin::IdentityManager& identity_manager,
-                            base::OnceClosure callback);
-
-  // signin::IdentityManager::Observer:
-  void OnRefreshTokensLoaded() override;
-
- private:
-  base::OnceClosure callback_;
-  base::ScopedObservation<signin::IdentityManager,
-                          signin::IdentityManager::Observer>
-      identity_manager_observation_{this};
-};
-
 IdentityGetAuthTokenFunction::RefreshTokensLoadedWaiter::
     RefreshTokensLoadedWaiter(signin::IdentityManager& identity_manager,
                               base::OnceClosure callback)
diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc
index 415d4f6..c82ab1c 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api.cc
@@ -1339,6 +1339,26 @@
   return RespondNow(NoArguments());
 }
 
+class TabsRemoveFunction::WebContentsDestroyedObserver
+    : public content::WebContentsObserver {
+ public:
+  WebContentsDestroyedObserver(extensions::TabsRemoveFunction* owner,
+                               content::WebContents* watched_contents)
+      : content::WebContentsObserver(watched_contents), owner_(owner) {}
+
+  ~WebContentsDestroyedObserver() override = default;
+  WebContentsDestroyedObserver(const WebContentsDestroyedObserver&) = delete;
+  WebContentsDestroyedObserver& operator=(const WebContentsDestroyedObserver&) =
+      delete;
+
+  // WebContentsObserver
+  void WebContentsDestroyed() override { owner_->TabDestroyed(); }
+
+ private:
+  // Guaranteed to outlive this object.
+  raw_ptr<TabsRemoveFunction> owner_;
+};
+
 TabsRemoveFunction::TabsRemoveFunction() = default;
 TabsRemoveFunction::~TabsRemoveFunction() = default;
 
@@ -1433,26 +1453,6 @@
   Release();
 }
 
-class TabsRemoveFunction::WebContentsDestroyedObserver
-    : public content::WebContentsObserver {
- public:
-  WebContentsDestroyedObserver(extensions::TabsRemoveFunction* owner,
-                               content::WebContents* watched_contents)
-      : content::WebContentsObserver(watched_contents), owner_(owner) {}
-
-  ~WebContentsDestroyedObserver() override = default;
-  WebContentsDestroyedObserver(const WebContentsDestroyedObserver&) = delete;
-  WebContentsDestroyedObserver& operator=(const WebContentsDestroyedObserver&) =
-      delete;
-
-  // WebContentsObserver
-  void WebContentsDestroyed() override { owner_->TabDestroyed(); }
-
- private:
-  // Guaranteed to outlive this object.
-  raw_ptr<TabsRemoveFunction> owner_;
-};
-
 ExtensionFunction::ResponseAction TabsDetectLanguageFunction::Run() {
   std::optional<tabs::DetectLanguage::Params> params =
       tabs::DetectLanguage::Params::Create(args());
diff --git a/chrome/browser/extensions/chrome_extension_cookies.cc b/chrome/browser/extensions/chrome_extension_cookies.cc
index 22eac75..fc13abe 100644
--- a/chrome/browser/extensions/chrome_extension_cookies.cc
+++ b/chrome/browser/extensions/chrome_extension_cookies.cc
@@ -6,6 +6,7 @@
 
 #include <optional>
 
+#include "chrome/browser/browser_process.h"
 #include "chrome/browser/content_settings/cookie_settings_factory.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/extensions/chrome_extension_cookies_factory.h"
@@ -48,7 +49,9 @@
         profile_->GetPath().Append(chrome::kExtensionsCookieFilename),
         profile_->ShouldRestoreOldSessionCookies(),
         profile_->ShouldPersistSessionCookies()));
-    creation_config->crypto_delegate = cookie_config::GetCookieCryptoDelegate();
+    creation_config->crypto_delegate = cookie_config::GetCookieCryptoDelegate(
+        g_browser_process->os_crypt_async(),
+        content::GetUIThreadTaskRunner({}));
   }
   creation_config->cookieable_schemes.push_back(extensions::kExtensionScheme);
 
diff --git a/chrome/browser/extensions/error_console/error_console_browsertest.cc b/chrome/browser/extensions/error_console/error_console_browsertest.cc
index c6025af..888bc35 100644
--- a/chrome/browser/extensions/error_console/error_console_browsertest.cc
+++ b/chrome/browser/extensions/error_console/error_console_browsertest.cc
@@ -32,7 +32,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 #include "chrome/browser/extensions/extension_action_runner.h"
 #endif
 
@@ -208,7 +208,7 @@
   enum Action {
     // Navigate to a (non-chrome) page to allow a content script to run.
     ACTION_NAVIGATE,
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
     // Simulate a browser action click.
     // TODO(crbug.com/395160734): Port ExtensionActionRunner to desktop Android.
     ACTION_BROWSER_ACTION,
@@ -261,7 +261,7 @@
         content::WaitForLoadStop(web_contents);
         break;
       }
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
       case ACTION_BROWSER_ACTION: {
         ExtensionActionRunner::GetForWebContents(web_contents)
             ->RunAction(*extension, true);
diff --git a/chrome/browser/extensions/extension_context_menu_model.cc b/chrome/browser/extensions/extension_context_menu_model.cc
index 9f9f356..f22b9a9 100644
--- a/chrome/browser/extensions/extension_context_menu_model.cc
+++ b/chrome/browser/extensions/extension_context_menu_model.cc
@@ -30,6 +30,7 @@
 #include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/extensions/extensions_container.h"
+#include "chrome/browser/ui/tabs/tab_list_interface.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/common/pref_names.h"
@@ -515,7 +516,7 @@
       UninstallDialogHelper::UninstallExtension(
           profile_, browser_->GetWindow()->GetNativeWindow(), extension);
 #else
-      // TODO(crbug.com/441744719): Make it possible to uninstall extensions
+      // TODO(crbug.com/448879321): Make it possible to uninstall extensions
       // from here on Desktop Android.
       NOTIMPLEMENTED();
 #endif
@@ -1035,8 +1036,10 @@
 
 content::WebContents* ExtensionContextMenuModel::GetActiveWebContents() const {
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-  return browser_->GetActiveTabInterface()->GetContents();
+  return TabListInterface::From(browser_)->GetActiveTab()->GetContents();
 #else
+  // TODO(crbug.com/448879321): Use the web contents from the browser window
+  // interface for Android.
   return web_contents_;
 #endif
 }
diff --git a/chrome/browser/extensions/extension_incognito_apitest.cc b/chrome/browser/extensions/extension_incognito_apitest.cc
index e7ac568..6b2b96bc 100644
--- a/chrome/browser/extensions/extension_incognito_apitest.cc
+++ b/chrome/browser/extensions/extension_incognito_apitest.cc
@@ -19,7 +19,7 @@
 #include "net/dns/mock_host_resolver.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #endif
@@ -148,7 +148,7 @@
   EXPECT_TRUE(event_router->HasNonLazyEventListenerForTesting(kEvent));
 }
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 // Tests that an extension which is enabled for incognito mode doesn't
 // accidentally create an incognito profile.
 // TODO(https://crbug.com/390226690): Enable on Android when chrome.windows
diff --git a/chrome/browser/extensions/extension_install_prompt_browsertest.cc b/chrome/browser/extensions/extension_install_prompt_browsertest.cc
index b51f493..2c453ce 100644
--- a/chrome/browser/extensions/extension_install_prompt_browsertest.cc
+++ b/chrome/browser/extensions/extension_install_prompt_browsertest.cc
@@ -16,7 +16,7 @@
 #include "extensions/common/extension_builder.h"
 #include "ui/gfx/native_ui_types.h"
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/tabs/tab_enums.h"
@@ -63,7 +63,7 @@
   EXPECT_EQ(ExtensionInstallPrompt::Result::ABORTED, helper.result());
 }
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 // Test that ExtensionInstallPrompt aborts the install if the gfx::NativeWindow
 // which is passed to the ExtensionInstallPrompt constructor is destroyed.
 // TODO(crbug.com/397754565): Port to desktop Android when the install UI is
@@ -92,7 +92,7 @@
   run_loop.Run();
   EXPECT_EQ(ExtensionInstallPrompt::Result::ABORTED, helper.result());
 }
-#endif  // !BUILDFLAG(IS_ANDROID)
+#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
 // Test that ExtensionInstallPrompt shows the dialog normally if no parent
 // web contents or parent gfx::NativeWindow is passed to the
diff --git a/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc b/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc
index 44baf41..2b2fed2 100644
--- a/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc
+++ b/chrome/browser/extensions/forced_extensions/force_installed_metrics.cc
@@ -23,6 +23,7 @@
 
 #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
 #include "chrome/browser/extensions/management/management_util.h"
+#include "extensions/browser/blocklist_extension_prefs.h"
 #endif
 
 #if BUILDFLAG(IS_CHROMEOS)
@@ -40,6 +41,20 @@
 // Timeout to report UMA if not all force-installed extension were loaded.
 constexpr base::TimeDelta kInstallationTimeout = base::Minutes(5);
 
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+// Returns whether the management environment for the profile is low-trust.
+bool IsLowTrustEnvironment(Profile* profile) {
+  switch (GetHigherManagementAuthorityTrustworthiness(profile)) {
+    case policy::ManagementAuthorityTrustworthiness::NONE:
+    case policy::ManagementAuthorityTrustworthiness::LOW:
+      return true;
+    case policy::ManagementAuthorityTrustworthiness::TRUSTED:
+    case policy::ManagementAuthorityTrustworthiness::FULLY_TRUSTED:
+      return false;
+  }
+}
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+
 #if BUILDFLAG(IS_CHROMEOS)
 // Converts user_manager::UserType to InstallStageTracker::UserType for
 // histogram purposes.
@@ -431,6 +446,26 @@
                            smallest_disable_reason);
 }
 
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+void ForceInstalledMetrics::ReportGreylistedStateByTrustLevel(
+    const ExtensionId& extension_id,
+    bool is_low_trust_environment) {
+  if (!blocklist_prefs::IsExtensionGreylisted(extension_id,
+                                              ExtensionPrefs::Get(profile_))) {
+    return;
+  }
+  if (is_low_trust_environment) {
+    base::UmaHistogramBoolean(
+        "Extensions.GreylistedForceInstalled.LowTrust.Enabled",
+        registry_->enabled_extensions().Contains(extension_id));
+  } else {
+    base::UmaHistogramBoolean(
+        "Extensions.GreylistedForceInstalled.HighTrust.Enabled",
+        registry_->enabled_extensions().Contains(extension_id));
+  }
+}
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+
 void ForceInstalledMetrics::ReportMetricsOnExtensionsReady() {
   for (const auto& extension : tracker_->extensions()) {
     if (extension.second.status != ExtensionStatus::kReady)
@@ -449,6 +484,15 @@
 void ForceInstalledMetrics::ReportMetrics() {
   base::UmaHistogramCounts100("Extensions.ForceInstalledTotalCandidateCount",
                               tracker_->extensions().size());
+
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+  const bool is_low_trust_environment = IsLowTrustEnvironment(profile_);
+  for (const auto& extension : tracker_->extensions()) {
+    ReportGreylistedStateByTrustLevel(extension.first,
+                                      is_low_trust_environment);
+  }
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+
   std::set<ExtensionId> missing_forced_extensions;
   InstallStageTracker* install_stage_tracker =
       InstallStageTracker::Get(profile_);
diff --git a/chrome/browser/extensions/forced_extensions/force_installed_metrics.h b/chrome/browser/extensions/forced_extensions/force_installed_metrics.h
index a23c7cb5..84cb6ea8 100644
--- a/chrome/browser/extensions/forced_extensions/force_installed_metrics.h
+++ b/chrome/browser/extensions/forced_extensions/force_installed_metrics.h
@@ -79,11 +79,17 @@
       ExtensionDownloaderDelegate::CacheStatus cache_status) override;
 
  private:
-
   // Reports disable reasons for the extensions which are installed but not
   // loaded.
   void ReportDisableReason(const ExtensionId& extension_id);
 
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+  // Reports whether the greylisted force-installed extensions are enabled in
+  // high/low trust environments.
+  void ReportGreylistedStateByTrustLevel(const ExtensionId& extension_id,
+                                         bool is_low_trust_environment);
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+
   // If `kInstallationTimeout` report time elapsed for extensions load,
   // otherwise amount of not yet loaded extensions and reasons
   // why they were not installed.
diff --git a/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc b/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
index 175deab..2371928 100644
--- a/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
+++ b/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
@@ -52,6 +52,7 @@
 #include "chrome/browser/enterprise/browser_management/management_service_factory.h"
 #include "components/policy/core/common/management/management_service.h"
 #include "components/policy/core/common/management/scoped_management_service_override_for_testing.h"
+#include "extensions/browser/blocklist_extension_prefs.h"
 #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
 
 static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
@@ -1606,6 +1607,79 @@
                     policy::EnterpriseManagementAuthority::COMPUTER_LOCAL,
                     policy::EnterpriseManagementAuthority::CLOUD,
                     policy::EnterpriseManagementAuthority::CLOUD_DOMAIN));
+
+class GreylistedForceInstalledMetricsTest
+    : public ForceInstalledMetricsTest,
+      public testing::WithParamInterface<
+          std::tuple<policy::EnterpriseManagementAuthority, bool>> {
+ public:
+  GreylistedForceInstalledMetricsTest() {
+    std::tie(management_authority_, enabled_) = GetParam();
+  }
+
+ protected:
+  policy::EnterpriseManagementAuthority management_authority_;
+  bool enabled_;
+};
+
+TEST_P(GreylistedForceInstalledMetricsTest,
+       ReportsEnabledStateForGreylistedExtension) {
+  SetupForceList(ExtensionOrigin::kWebStore);
+  policy::ScopedManagementServiceOverrideForTesting browser_management(
+      policy::ManagementServiceFactory::GetForPlatform(),
+      management_authority_);
+  scoped_refptr<const Extension> extension = CreateNewExtension(
+      kExtensionName1, kExtensionId1, ExtensionStatus::kPending);
+  // Greylist the extension by setting a non-malware blocklist state.
+  blocklist_prefs::SetSafeBrowsingExtensionBlocklistState(
+      kExtensionId1, BitMapBlocklistState::BLOCKLISTED_CWS_POLICY_VIOLATION,
+      ExtensionPrefs::Get(profile()));
+  if (enabled_) {
+    registry()->AddEnabled(extension.get());
+  } else {
+    registry()->AddDisabled(extension.get());
+  }
+
+  // Create a second extension with loaded status to trigger the
+  // OnForceInstalledExtensionsLoaded() callback which invokes the
+  // ReportMetrics() that logs the greylist histograms.
+  scoped_refptr<const Extension> extension2 = CreateNewExtension(
+      kExtensionName2, kExtensionId2, ExtensionStatus::kLoaded);
+
+  // ForceInstalledMetrics should still keep running as kExtensionId1 is
+  // installed but not loaded.
+  EXPECT_TRUE(fake_timer_->IsRunning());
+  fake_timer_->Fire();
+
+  std::string trust_level;
+  switch (management_authority_) {
+    case policy::EnterpriseManagementAuthority::NONE:
+    case policy::EnterpriseManagementAuthority::COMPUTER_LOCAL:
+      trust_level = "LowTrust";
+      break;
+    case policy::EnterpriseManagementAuthority::DOMAIN_LOCAL:
+    case policy::EnterpriseManagementAuthority::CLOUD:
+    case policy::EnterpriseManagementAuthority::CLOUD_DOMAIN:
+      trust_level = "HighTrust";
+      break;
+  }
+  histogram_tester_.ExpectUniqueSample(
+      "Extensions.GreylistedForceInstalled." + trust_level + ".Enabled",
+      enabled_, 1);
+}
+
+// Note: It should not be possible for greylisted force installed extensions
+// to be disabled in high trust environments. If we see the metric being logged
+// in this case, it indicates a bug and should be investigated.
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    GreylistedForceInstalledMetricsTest,
+    testing::Combine(
+        testing::Values(policy::EnterpriseManagementAuthority::NONE,
+                        policy::EnterpriseManagementAuthority::COMPUTER_LOCAL,
+                        policy::EnterpriseManagementAuthority::CLOUD,
+                        policy::EnterpriseManagementAuthority::CLOUD_DOMAIN),
+        testing::Bool()));
 #endif
 
 }  // namespace extensions
diff --git a/chrome/browser/extensions/test_resources_browsertest.cc b/chrome/browser/extensions/test_resources_browsertest.cc
index 78070b5..d5a607e 100644
--- a/chrome/browser/extensions/test_resources_browsertest.cc
+++ b/chrome/browser/extensions/test_resources_browsertest.cc
@@ -18,17 +18,13 @@
 #include "extensions/common/url_pattern.h"
 #include "extensions/test/test_extension_dir.h"
 
-#if !BUILDFLAG(IS_ANDROID)
-#include "chrome/browser/extensions/extension_browsertest.h"
-#endif
-
 static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
 
 namespace extensions {
 
 namespace {
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 constexpr char kComponentExtensionKey[] =
     "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+uU63MD6T82Ldq5wjrDFn5mGmPnnnj"
     "WZBWxYXfpG4kVf0s+p24VkXwTXsxeI12bRm8/ft9sOq0XiLfgQEh5JrVUZqvFlaZYoS+g"
@@ -97,7 +93,7 @@
 
 // TODO(crbug.com/356905053): Enable the tests for component extensions on
 // desktop android.
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 // Tests that resources from _test_resources work in component extensions
 // (which have a slightly different load path).
 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest,
@@ -184,7 +180,7 @@
   EXPECT_EQ(URLPattern(URLPattern::SCHEME_ALL, test_domain2),
             *info2->matches.begin());
 }
-#endif  // !BUILDFLAG(IS_ANDROID)
+#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
 // Tests that resources from _test_resources can be loaded from different
 // directories. Though the default is chrome/test/data/extensions, a test class
diff --git a/chrome/browser/extensions/web_accessible_resources_browsertest.cc b/chrome/browser/extensions/web_accessible_resources_browsertest.cc
index b65e3f6..9b1cec5b 100644
--- a/chrome/browser/extensions/web_accessible_resources_browsertest.cc
+++ b/chrome/browser/extensions/web_accessible_resources_browsertest.cc
@@ -34,7 +34,7 @@
 #include "net/dns/mock_host_resolver.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
 #include "chrome/browser/ui/browser.h"
 #include "chrome/test/base/ui_test_utils.h"
 #endif
@@ -290,11 +290,10 @@
   }
 }
 
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+// Navigate to a web page and then try to load an extension subresource.
 // TODO(crbug.com/390687767): Port to desktop Android. Currently the redirect
 // doesn't happen.
-
-// Navigate to a web page and then try to load an extension subresource.
 IN_PROC_BROWSER_TEST_F(WebAccessibleResourcesBrowserTest,
                        SubresourceReachabilityAfterServerRedirect) {
   // Load extension.
@@ -373,6 +372,8 @@
 }
 
 // Server redirect to a web accessible resource whereby `matches` doesn't match.
+// TODO(crbug.com/390687767): Port to desktop Android. Currently the redirect
+// doesn't happen.
 IN_PROC_BROWSER_TEST_F(WebAccessibleResourcesBrowserTest,
                        ServerRedirectSubresource) {
   // Load extension.
@@ -440,6 +441,8 @@
 }
 
 // Server redirect to a web accessible resource whereby `matches` doesn't match.
+// TODO(crbug.com/390687767): Port to desktop Android. Currently the redirect
+// doesn't happen.
 IN_PROC_BROWSER_TEST_F(WebAccessibleResourcesBrowserTest,
                        ServerRedirectMainframe) {
   // Load extension.
@@ -472,9 +475,6 @@
   EXPECT_EQ(net::ERR_BLOCKED_BY_CLIENT, observer.last_net_error_code());
 }
 
-#endif  // !BUILDFLAG(IS_ANDROID)
-
-#if !BUILDFLAG(IS_ANDROID)
 // DNR, WAR, and use_dynamic_url with the extension feature. DNR does not
 // currently succeed when redirecting to a resource using use_dynamic_url with
 // query parameters.
@@ -527,7 +527,7 @@
     EXPECT_TRUE(navigation_observer.last_navigation_succeeded());
   }
 }
-#endif  // !BUILDFLAG(IS_ANDROID)
+#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
 // Verify setting script.src from a content script that relies on web request to
 // redirect to a web accessible resource. It's important to set `script.src`
diff --git a/chrome/browser/fingerprinting_protection/canvas_interventions_browsertest.cc b/chrome/browser/fingerprinting_protection/canvas_interventions_browsertest.cc
index 4743d378..1e945a3a 100644
--- a/chrome/browser/fingerprinting_protection/canvas_interventions_browsertest.cc
+++ b/chrome/browser/fingerprinting_protection/canvas_interventions_browsertest.cc
@@ -6,12 +6,19 @@
 #include <string>
 
 #include "base/run_loop.h"
+#include "base/scoped_observation.h"
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/privacy_sandbox/tracking_protection_settings_factory.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
+#include "components/privacy_sandbox/tracking_protection_settings.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/service_worker_context.h"
+#include "content/public/browser/service_worker_context_observer.h"
+#include "content/public/browser/storage_partition.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test.h"
@@ -64,6 +71,41 @@
   ShouldHaveToken should_browsing_mode_have_token;
 };
 
+// ServiceWorkerContextObserver that waits until any service worker is finished
+// running. Useful for tests that tests for service worker lifecycles.
+class ServiceWorkerVersionStopper
+    : public content::ServiceWorkerContextObserver {
+ public:
+  explicit ServiceWorkerVersionStopper(content::ServiceWorkerContext* context) {
+    DCHECK(context);
+    scoped_observation_.Observe(context);
+  }
+
+  ServiceWorkerVersionStopper(const ServiceWorkerVersionStopper&) = delete;
+  ServiceWorkerVersionStopper& operator=(const ServiceWorkerVersionStopper&) =
+      delete;
+
+  void StopAndWaitWorkerStoppedRunning() {
+    base::RunLoop outer_loop;
+    content::ServiceWorkerContext* context = scoped_observation_.GetSource();
+    context->StopAllServiceWorkers(outer_loop.QuitClosure());
+    outer_loop.Run();
+    run_loop_.Run();
+  }
+
+ protected:
+  // content::ServiceWorkerContextObserver:
+  void OnVersionStoppedRunning(int64_t version_id) override {
+    run_loop_.Quit();
+  }
+
+ private:
+  base::RunLoop run_loop_;
+  base::ScopedObservation<content::ServiceWorkerContext,
+                          content::ServiceWorkerContextObserver>
+      scoped_observation_{this};
+};
+
 class CanvasInterventionsBrowserTest
     : public InProcessBrowserTest,
       public testing::WithParamInterface<TestConfiguration> {
@@ -123,6 +165,14 @@
 
   Browser* GetBrowser() const { return browser_; }
 
+  void CreateChildFrame() {
+    std::string script =
+        "var iframe = document.createElement('iframe');"
+        "document.body.appendChild(iframe);";
+    ASSERT_TRUE(ExecJs(web_contents(), script));
+    ASSERT_TRUE(WaitForLoadStop(web_contents()));
+  }
+
   std::optional<blink::NoiseToken> GetBrowserTokenFromPage(
       const content::ToRenderFrameHost& to_rfh) {
     return content::GetCanvasNoiseTokenForPage(
@@ -194,6 +244,13 @@
     return ParseTokenFromJsResult(js_result);
   }
 
+  content::ServiceWorkerContext* service_worker_context() {
+    return web_contents()
+        ->GetBrowserContext()
+        ->GetDefaultStoragePartition()
+        ->GetServiceWorkerContext();
+  }
+
  private:
   std::optional<blink::NoiseToken> ParseTokenFromJsResult(
       const content::EvalJsResult& js_result) {
@@ -224,7 +281,7 @@
      ShouldHaveToken(true)}};
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest, MainFrame) {
-  GURL url(embedded_https_test_server().GetURL("a.com", "/empty.html"));
+  const GURL url(embedded_https_test_server().GetURL("a.com", "/empty.html"));
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
 
   EXPECT_EQ(GetRendererTokenFromJs(web_contents()),
@@ -239,8 +296,8 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
-                       SubframeSameSiteSameToken) {
-  GURL url(embedded_https_test_server().GetURL("a.com", "/iframe.html"));
+                       SubframeSameOriginSameToken) {
+  const GURL url(embedded_https_test_server().GetURL("a.com", "/iframe.html"));
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
 
   auto* iframe = content::ChildFrameAt(web_contents(), 0);
@@ -257,8 +314,8 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
-                       SubframeCrossSiteSameToken) {
-  GURL url(
+                       SubframeCrossOriginSameToken) {
+  const GURL url(
       embedded_https_test_server().GetURL("a.com", "/iframe_cross_site.html"));
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
 
@@ -277,7 +334,7 @@
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
                        SubframeAboutBlankSameToken) {
-  GURL url =
+  const GURL url =
       embedded_https_test_server().GetURL("a.com", "/iframe_about_blank.html");
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
 
@@ -295,9 +352,11 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
-                       WithinTabCrossSiteDifferentToken) {
-  GURL url_a = embedded_https_test_server().GetURL("a.com", "/empty.html");
-  GURL url_b = embedded_https_test_server().GetURL("b.com", "/empty.html");
+                       WithinTabCrossOriginDifferentToken) {
+  const GURL url_a =
+      embedded_https_test_server().GetURL("a.com", "/empty.html");
+  const GURL url_b =
+      embedded_https_test_server().GetURL("b.com", "/empty.html");
 
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url_a));
   auto token_a = GetRendererTokenFromJs(web_contents());
@@ -313,8 +372,8 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
-                       WithinTabSameSiteSameToken) {
-  GURL url = embedded_https_test_server().GetURL("a.com", "/empty.html");
+                       WithinTabSameOriginSameToken) {
+  const GURL url = embedded_https_test_server().GetURL("a.com", "/empty.html");
 
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
   auto token_a = GetRendererTokenFromJs(web_contents());
@@ -328,9 +387,11 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
-                       AcrossTabsCrossSiteDifferentToken) {
-  GURL url_a = embedded_https_test_server().GetURL("a.com", "/empty.html");
-  GURL url_b = embedded_https_test_server().GetURL("b.com", "/empty.html");
+                       AcrossTabsCrossOriginDifferentToken) {
+  const GURL url_a =
+      embedded_https_test_server().GetURL("a.com", "/empty.html");
+  const GURL url_b =
+      embedded_https_test_server().GetURL("b.com", "/empty.html");
 
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url_a));
   auto token_a = GetRendererTokenFromJs(web_contents());
@@ -349,8 +410,8 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
-                       AcrossTabsSameSiteSameToken) {
-  GURL url = embedded_https_test_server().GetURL("a.com", "/empty.html");
+                       AcrossTabsSameOriginSameToken) {
+  const GURL url = embedded_https_test_server().GetURL("a.com", "/empty.html");
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
   auto token_a = GetRendererTokenFromJs(web_contents());
   ASSERT_EQ(token_a.has_value(), should_browsing_mode_have_token());
@@ -371,7 +432,7 @@
     GTEST_SKIP() << "This test tests both profiles";
   }
 
-  GURL url = embedded_https_test_server().GetURL("a.com", "/empty.html");
+  const GURL url = embedded_https_test_server().GetURL("a.com", "/empty.html");
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
   auto regular_token = GetRendererTokenFromJs(web_contents());
   ASSERT_EQ(regular_token.has_value(), should_browsing_mode_have_token());
@@ -392,14 +453,14 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest, ServiceWorkerSameToken) {
-  GURL url = embedded_https_test_server().GetURL(
+  const GURL url = embedded_https_test_server().GetURL(
       "a.com", "/service_worker/create_service_worker.html");
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
   ASSERT_TRUE(RegisterServiceWorker(web_contents()));
 
   if (should_browsing_mode_have_token()) {
     EXPECT_NE(GetRendererTokenFromServiceWorker(web_contents()), std::nullopt);
-    // TODO(https://crbug.com/442616874): change to EXPECT_EQ once we key canvas
+    // TODO(https://crbug.com/442616874): Change to EXPECT_EQ once we key canvas
     // noise tokens with StorageKey.
     EXPECT_NE(GetRendererTokenFromServiceWorker(web_contents()),
               GetBrowserTokenFromPage(web_contents()));
@@ -410,7 +471,7 @@
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
                        ServiceWorkerSubframeSameToken) {
-  GURL main_frame_url = embedded_https_test_server().GetURL(
+  const GURL main_frame_url = embedded_https_test_server().GetURL(
       "a.com", "/service_worker/create_service_worker.html");
   ASSERT_TRUE(content::NavigateToURL(web_contents(), main_frame_url));
 
@@ -418,16 +479,11 @@
   ASSERT_TRUE(RegisterServiceWorker(web_contents()));
   auto main_frame_sw_token = GetRendererTokenFromServiceWorker(web_contents());
 
-  std::string script =
-      "var iframe = document.createElement('iframe');"
-      "document.body.appendChild(iframe);";
-  EXPECT_TRUE(ExecJs(web_contents(), script));
-  EXPECT_TRUE(WaitForLoadStop(web_contents()));
-
+  CreateChildFrame();
   auto* iframe = content::ChildFrameAt(web_contents(), 0);
   ASSERT_TRUE(iframe);
 
-  GURL iframe_url = embedded_https_test_server().GetURL(
+  const GURL iframe_url = embedded_https_test_server().GetURL(
       "b.com", "/service_worker/create_service_worker.html");
   ASSERT_TRUE(content::NavigateToURLFromRenderer(iframe, iframe_url));
   iframe = content::ChildFrameAt(web_contents(), 0);
@@ -439,7 +495,7 @@
   if (should_browsing_mode_have_token()) {
     EXPECT_NE(iframe_sw_token, std::nullopt);
     EXPECT_EQ(iframe_sw_token, main_frame_sw_token);
-    // TODO(https://crbug.com/442616874): change to EXPECT_EQ once we key canvas
+    // TODO(https://crbug.com/442616874): Change to EXPECT_EQ once we key canvas
     // noise tokens with StorageKey.
     EXPECT_NE(iframe_sw_token, GetBrowserTokenFromPage(web_contents()));
   } else {
@@ -448,8 +504,177 @@
 }
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
+                       ServiceWorkerSameOriginUpdatesSameToken) {
+  const GURL url = embedded_https_test_server().GetURL(
+      "a.com", "/service_worker/create_service_worker.html");
+  ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
+
+  auto* tracking_protection_settings =
+      TrackingProtectionSettingsFactory::GetForProfile(GetBrowser()->profile());
+
+  // Register a Service Worker in the main frame.
+  ASSERT_TRUE(RegisterServiceWorker(web_contents()));
+  auto sw_token = GetRendererTokenFromServiceWorker(web_contents());
+
+  if (should_browsing_mode_have_token()) {
+    EXPECT_NE(sw_token, std::nullopt);
+    // TODO(https://crbug.com/442616874): Change to EXPECT_EQ once we key canvas
+    // noise tokens with StorageKey.
+    EXPECT_NE(sw_token, GetBrowserTokenFromPage(web_contents()));
+  } else {
+    EXPECT_EQ(sw_token, std::nullopt);
+  }
+
+  // Adding tracking protection settings for this url means we bypass canvas
+  // noising, therefore the updated token should be changed to nullopt and
+  // passed to the service worker.
+  tracking_protection_settings->AddTrackingProtectionException(url);
+  // Refresh the page to simulate user bypass behavior.
+  ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
+  auto flipped_sw_token = GetRendererTokenFromServiceWorker(web_contents());
+
+  EXPECT_EQ(flipped_sw_token, std::nullopt);
+  if (should_browsing_mode_have_token()) {
+    EXPECT_NE(sw_token, flipped_sw_token);
+  } else {
+    // Adding/removing urls from TrackingProtectionSettings shouldn't do
+    // anything.
+    EXPECT_EQ(sw_token, flipped_sw_token);
+  }
+
+  // Now re-enable canvas noise for the top url.
+  tracking_protection_settings->RemoveTrackingProtectionException(url);
+  flipped_sw_token = GetRendererTokenFromServiceWorker(web_contents());
+
+  if (should_browsing_mode_have_token()) {
+    // TODO(https://crbug.com/442616874): Change to EXPECT_EQ once we key canvas
+    // noise tokens with StorageKey.
+    EXPECT_EQ(sw_token, flipped_sw_token);
+    EXPECT_NE(flipped_sw_token, GetBrowserTokenFromPage(web_contents()));
+    EXPECT_NE(flipped_sw_token, std::nullopt);
+  } else {
+    // Adding/removing urls from TrackingProtectionSettings shouldn't do
+    // anything.
+    EXPECT_EQ(sw_token, flipped_sw_token);
+  }
+}
+
+IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
+                       ServiceWorkerSubframeUpdatesSameToken) {
+  const GURL main_frame_url = embedded_https_test_server().GetURL(
+      "a.com", "/service_worker/create_service_worker.html");
+  ASSERT_TRUE(content::NavigateToURL(web_contents(), main_frame_url));
+
+  auto* tracking_protection_settings =
+      TrackingProtectionSettingsFactory::GetForProfile(GetBrowser()->profile());
+
+  // Register a Service Worker in the main frame.
+  ASSERT_TRUE(RegisterServiceWorker(web_contents()));
+  auto main_frame_sw_token = GetRendererTokenFromServiceWorker(web_contents());
+
+  CreateChildFrame();
+  auto* iframe = content::ChildFrameAt(web_contents(), 0);
+  ASSERT_TRUE(iframe);
+
+  const GURL iframe_url = embedded_https_test_server().GetURL(
+      "b.com", "/service_worker/create_service_worker.html");
+  ASSERT_TRUE(content::NavigateToURLFromRenderer(iframe, iframe_url));
+  iframe = content::ChildFrameAt(web_contents(), 0);
+  ASSERT_TRUE(iframe);
+
+  ASSERT_TRUE(RegisterServiceWorker(iframe));
+  auto iframe_sw_token = GetRendererTokenFromServiceWorker(iframe);
+
+  if (should_browsing_mode_have_token()) {
+    EXPECT_NE(iframe_sw_token, std::nullopt);
+    EXPECT_EQ(iframe_sw_token, main_frame_sw_token);
+    // TODO(https://crbug.com/442616874): Change to EXPECT_EQ once we key canvas
+    // noise tokens with StorageKey.
+    EXPECT_NE(iframe_sw_token, GetBrowserTokenFromPage(web_contents()));
+  } else {
+    EXPECT_EQ(main_frame_sw_token, std::nullopt);
+    EXPECT_EQ(iframe_sw_token, std::nullopt);
+  }
+
+  // Adding tracking protection settings for this url means we bypass canvas
+  // noising, therefore the updated token should be changed to nullopt and
+  // passed to the service worker.
+  tracking_protection_settings->AddTrackingProtectionException(main_frame_url);
+  // Refresh the page to simulate user bypass behavior.
+  ASSERT_TRUE(content::NavigateToURL(web_contents(), main_frame_url));
+  CreateChildFrame();
+  ASSERT_TRUE(content::NavigateToURLFromRenderer(
+      content::ChildFrameAt(web_contents(), 0), iframe_url));
+  iframe = content::ChildFrameAt(web_contents(), 0);
+  ASSERT_TRUE(iframe);
+
+  auto flipped_main_frame_sw_token =
+      GetRendererTokenFromServiceWorker(web_contents());
+  auto flipped_iframe_sw_token = GetRendererTokenFromServiceWorker(iframe);
+  EXPECT_EQ(flipped_main_frame_sw_token, std::nullopt);
+  EXPECT_EQ(flipped_main_frame_sw_token, flipped_iframe_sw_token);
+
+  if (should_browsing_mode_have_token()) {
+    EXPECT_NE(flipped_main_frame_sw_token, main_frame_sw_token);
+    EXPECT_NE(flipped_iframe_sw_token, iframe_sw_token);
+  } else {
+    // Adding/removing urls from TrackingProtectionSettings shouldn't do
+    // anything.
+    EXPECT_EQ(flipped_main_frame_sw_token, main_frame_sw_token);
+    EXPECT_EQ(flipped_iframe_sw_token, iframe_sw_token);
+  }
+
+  // Now re-enable canvas noise for the top url.
+  tracking_protection_settings->RemoveTrackingProtectionException(
+      main_frame_url);
+  flipped_main_frame_sw_token =
+      GetRendererTokenFromServiceWorker(web_contents());
+  flipped_iframe_sw_token = GetRendererTokenFromServiceWorker(iframe);
+
+  if (should_browsing_mode_have_token()) {
+    EXPECT_NE(flipped_main_frame_sw_token, std::nullopt);
+  } else {
+    // Adding/removing urls from TrackingProtectionSettings shouldn't do
+    // anything.
+    EXPECT_EQ(flipped_main_frame_sw_token, std::nullopt);
+  }
+
+  EXPECT_EQ(flipped_main_frame_sw_token, main_frame_sw_token);
+  EXPECT_EQ(flipped_iframe_sw_token, iframe_sw_token);
+  EXPECT_EQ(flipped_main_frame_sw_token, flipped_iframe_sw_token);
+}
+
+IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
+                       ServiceWorkerStoppedDoesNotUpdateToken) {
+  const GURL url = embedded_https_test_server().GetURL(
+      "a.com", "/service_worker/create_service_worker.html");
+  ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
+  auto* tracking_protection_settings =
+      TrackingProtectionSettingsFactory::GetForProfile(GetBrowser()->profile());
+  // Register a Service Worker in the main frame.
+  ASSERT_TRUE(RegisterServiceWorker(web_contents()));
+  auto sw_token = GetRendererTokenFromServiceWorker(web_contents());
+
+  if (should_browsing_mode_have_token()) {
+    EXPECT_NE(sw_token, std::nullopt);
+    // TODO(https://crbug.com/442616874): Change to EXPECT_EQ once we key canvas
+    // noise tokens with StorageKey.
+    EXPECT_NE(sw_token, GetBrowserTokenFromPage(web_contents()));
+  } else {
+    EXPECT_EQ(sw_token, std::nullopt);
+  }
+
+  ServiceWorkerVersionStopper worker_stopper(service_worker_context());
+  worker_stopper.StopAndWaitWorkerStoppedRunning();
+  EXPECT_EQ(service_worker_context()->GetRunningServiceWorkerInfos().size(), 0);
+
+  // This should not crash.
+  tracking_protection_settings->AddTrackingProtectionException(url);
+}
+
+IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
                        DedicatedWorkerSameToken) {
-  GURL url = embedded_https_test_server().GetURL(
+  const GURL url = embedded_https_test_server().GetURL(
       "a.com",
       "/workers/create_dedicated_worker.html?worker_url=/"
       "fingerprinting_protection/canvas_noise_token_worker.js");
@@ -466,13 +691,13 @@
 
 IN_PROC_BROWSER_TEST_P(CanvasInterventionsBrowserTest,
                        DedicatedWorkerSubframeSameToken) {
-  GURL url = embedded_https_test_server().GetURL("a.com", "/iframe.html");
+  const GURL url = embedded_https_test_server().GetURL("a.com", "/iframe.html");
   ASSERT_TRUE(content::NavigateToURL(web_contents(), url));
 
   auto* iframe = content::ChildFrameAt(web_contents(), 0);
   ASSERT_TRUE(iframe);
 
-  GURL iframe_url = embedded_https_test_server().GetURL(
+  const GURL iframe_url = embedded_https_test_server().GetURL(
       "b.com",
       "/workers/create_dedicated_worker.html?worker_url=/"
       "fingerprinting_protection/canvas_noise_token_worker.js");
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index d4369e8..aa9cbfac 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -44,6 +44,11 @@
     "expiry_milestone": 138
   },
   {
+    "name": "ack-copy-output-request-early-for-view-transition",
+    "owners": [ "hitawala@chromium.org", "vasilyt@chromium.org", "jonross@chromium.org" ],
+    "expiry_milestone": 150
+  },
+  {
     "name": "ack-on-surface-activation-when-interactive",
     "owners": [ "vollick@chromium.org", "jonross@chromium.org" ],
     "expiry_milestone": 145
@@ -1901,7 +1906,7 @@
   {
     "name": "content-push-notifications",
     "owners": [ "sczs@chromium.org", "guiperez@google.com", "chrome-sherlock@google.com"],
-    "expiry_milestone": 135
+    "expiry_milestone": 144
   },
   {
     "name": "content-settings-partitioning",
@@ -3033,12 +3038,12 @@
   {
     "name": "enable-bound-session-credentials",
     "owners": [ "alexilin@chromium.org", "msalama@chromium.org", "chrome-signin-team@google.com" ],
-    "expiry_milestone": 143
+    "expiry_milestone": 146
   },
   {
     "name": "enable-bound-session-credentials-software-keys-for-manual-testing",
     "owners": [ "alexilin@chromium.org", "msalama@chromium.org", "chrome-signin-team@google.com" ],
-    "expiry_milestone": 143
+    "expiry_milestone": 146
   },
   {
     "name": "enable-brightness-control-in-settings",
@@ -3095,7 +3100,7 @@
   {
     "name": "enable-chrome-refresh-token-binding",
     "owners": ["alexilin@chromium.org", "chrome-signin-team@google.com"],
-    "expiry_milestone": 143
+    "expiry_milestone": 146
   },
   {"name": "enable-chromeos-live-translate",
    "owners": ["robsc@chromium.org", "amoylan@chromium.org", "zufeng@google.com"],
@@ -6216,11 +6221,6 @@
     "expiry_milestone": 144
   },
   {
-    "name": "ios-shared-highlighting-color-change",
-    "owners": [ "cheickcisse@google.com" ],
-    "expiry_milestone": 95
-  },
-  {
     "name": "ios-shop-card",
     "owners": [
       "davidjm@google.com",
@@ -6260,6 +6260,26 @@
     "expiry_milestone": 136
   },
   {
+    "name": "ios-tab-group-entry-point-overflow-menu",
+    "owners": ["bmcclure@google.com", "bling-pandamonium@google.com"],
+    "expiry_milestone": 147
+  },
+  {
+    "name": "ios-tab-group-entry-point-tab-icon",
+    "owners": ["bmcclure@google.com", "bling-pandamonium@google.com"],
+    "expiry_milestone": 147
+  },
+  {
+    "name": "ios-tab-group-entry-point-tab-recall",
+    "owners": ["bmcclure@google.com", "bling-pandamonium@google.com"],
+    "expiry_milestone": 147
+  },
+  {
+    "name": "ios-tab-group-entry-point-tab-switcher",
+    "owners": ["bmcclure@google.com", "bling-pandamonium@google.com"],
+    "expiry_milestone": 147
+  },
+  {
     "name": "ios-trusted-vault-notification",
     "owners": [ "ylahodiuk@google.com", "rgod@google.com" ],
     "expiry_milestone": 143
@@ -7313,6 +7333,11 @@
     "expiry_milestone": 125
   },
   {
+    "name": "ntp-realbox-next",
+    "owners": [ "romanarora@chromium.com", "chrome-desktop-ntp@google.com" ],
+    "expiry_milestone": 155
+  },
+  {
     "name": "ntp-realbox-pedals",
     "owners": [ "mahmadi@chromium.org", "mfacey@chromium.org" ],
     "expiry_milestone": 120
@@ -8230,16 +8255,6 @@
     "expiry_milestone": 135
   },
   {
-    "name": "price-insights-high-price-ios",
-    "owners": [ "cheickcisse@google.com", "bling-flags@google.com" ],
-    "expiry_milestone": 130
-  },
-  {
-    "name": "price-insights-ios",
-    "owners": [ "cheickcisse@google.com", "bling-flags@google.com" ],
-    "expiry_milestone": 130
-  },
-  {
     "name": "price-tracking-subscription-service-locale-key",
     "owners": [ "qib@google.com", "chrommerce-eng@google.com" ],
     "expiry_milestone": 135
@@ -9249,11 +9264,6 @@
     "expiry_milestone": 150
   },
   {
-    "name": "shared-highlighting-amp",
-    "owners": ["cheickcisse@google.com", "sczs@chromium.org"],
-    "expiry_milestone": 120
-  },
-  {
     "name": "shared-highlighting-ios",
     "owners": ["tmartino@chromium.org"],
     "expiry_milestone": 101
@@ -10698,6 +10708,11 @@
     "expiry_milestone": -1
   },
   {
+    "name": "webui-omnibox-full-popup",
+    "owners": [ "mahmadi@chromium.org", "kylixrd@chromium.org", "chrome-desktop-search@google.com" ],
+    "expiry_milestone": 150
+  },
+  {
     "name": "webui-omnibox-popup",
     "owners": [ "mahmadi@chromium.org", "chrome-desktop-search@google.com" ],
     "expiry_milestone": 150
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index b1140853..1907c33d 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2167,6 +2167,13 @@
     "https://github.com/whatwg/fs/blob/main/proposals/FileSystemObserver.md "
     "for more information.";
 
+const char kAckCopyOutputRequestEarlyForViewTransitionName[] =
+    "Ack CopyOutputRequest early for View Transition";
+const char kAckCopyOutputRequestEarlyForViewTransitionDescription[] =
+    "If enabled, send acks for CopyOutputRequest completion immediately to "
+    "unblock navigation for ViewTransitions while CopyOutputRequests are in "
+    "progress. This is a fast-path for ViewTransitions.";
+
 const char kAckOnSurfaceActivationWhenInteractiveName[] =
     "Ack On Surface Activation When Interactive";
 const char kAckOnSurfaceActivationWhenInteractiveDescription[] =
@@ -3139,6 +3146,11 @@
     "Enables limits on the total number of suggestions, as well as separate "
     "limits for search and URL suggestions in the omnibox.";
 
+const char kWebUIOmniboxFullPopupName[] = "WebUI Omnibox Full Popup";
+const char kWebUIOmniboxFullPopupDescription[] =
+    "If enabled, shows the omnibox suggestions and the search input in the "
+    "popup in WebUI.";
+
 const char kWebUIOmniboxPopupName[] = "WebUI Omnibox Popup";
 const char kWebUIOmniboxPopupDescription[] =
     "If enabled, shows the omnibox suggestions in the popup in WebUI.";
@@ -5837,6 +5849,10 @@
     "Composebox will use chrome-compose client when querying suggest for "
     "unimodal typed inputs instead of chrome-omni.";
 
+const char kNtpRealboxNextName[] = "NTP Realbox Next";
+const char kNtpRealboxNextDescription[] =
+    "Enables the Realbox 'Next' experience.";
+
 const char kNtpSearchboxComposeEntrypointName[] = "NTP Compose Entrypoint";
 const char kNtpSearchboxComposeEntrypointDescription[] =
     "Shows the Compose entrypoint on the New Tab Page Searchbox.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index fe425851..bb24f41 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1265,6 +1265,9 @@
 extern const char kFileSystemObserverName[];
 extern const char kFileSystemObserverDescription[];
 
+extern const char kAckCopyOutputRequestEarlyForViewTransitionName[];
+extern const char kAckCopyOutputRequestEarlyForViewTransitionDescription[];
+
 extern const char kAckOnSurfaceActivationWhenInteractiveName[];
 extern const char kAckOnSurfaceActivationWhenInteractiveDescription[];
 
@@ -1831,6 +1834,9 @@
 extern const char kOmniboxUIMaxAutocompleteMatchesName[];
 extern const char kOmniboxUIMaxAutocompleteMatchesDescription[];
 
+extern const char kWebUIOmniboxFullPopupName[];
+extern const char kWebUIOmniboxFullPopupDescription[];
+
 extern const char kWebUIOmniboxPopupName[];
 extern const char kWebUIOmniboxPopupDescription[];
 
@@ -3366,6 +3372,9 @@
 extern const char kNtpComposeboxName[];
 extern const char kNtpComposeboxDescription[];
 
+extern const char kNtpRealboxNextName[];
+extern const char kNtpRealboxNextDescription[];
+
 extern const char kNtpComposeboxUsesChromeComposeClientName[];
 extern const char kNtpComposeboxUsesChromeComposeClientDescription[];
 
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index 11cbff41..165e66a 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -1097,7 +1097,7 @@
 // and more" screen in the Chrome settings that don't apply in third party mode
 // and would confuse the user.
 BASE_FEATURE(kThirdPartyDisableChromeAutofillSettingsScreen,
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 BASE_FEATURE(kToolbarPhoneAnimationRefactor, base::FEATURE_DISABLED_BY_DEFAULT);
 
diff --git a/chrome/browser/glic/BUILD.gn b/chrome/browser/glic/BUILD.gn
index 02b2b58d..79ba2dff 100644
--- a/chrome/browser/glic/BUILD.gn
+++ b/chrome/browser/glic/BUILD.gn
@@ -171,6 +171,8 @@
     "service/glic_ui_embedder.h",
     "widget/application_hotkey_delegate.cc",
     "widget/application_hotkey_delegate.h",
+    "widget/blurred_screenshot_view_controller.cc",
+    "widget/blurred_screenshot_view_controller.h",
     "widget/browser_conditions.cc",
     "widget/browser_conditions.h",
     "widget/glic_floating_ui.cc",
diff --git a/chrome/browser/glic/host/glic_actor_general_interactive_uitest.cc b/chrome/browser/glic/host/glic_actor_general_interactive_uitest.cc
index 1a08c2a..cd488ebf 100644
--- a/chrome/browser/glic/host/glic_actor_general_interactive_uitest.cc
+++ b/chrome/browser/glic/host/glic_actor_general_interactive_uitest.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/base64.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/protobuf_matchers.h"
 #include "chrome/browser/actor/actor_tab_data.h"
 #include "chrome/browser/actor/actor_test_util.h"
@@ -73,15 +74,31 @@
   return WaitAction(task_id_, std::move(expected_result));
 }
 
-IN_PROC_BROWSER_TEST_F(GlicActorGeneralUiTest, CreateTaskAndNavigate) {
+// TODO(crbug.com/448882109): Disable failing test on Mac.
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_CreateTaskAndNavigate DISABLED_CreateTaskAndNavigate
+#else
+#define MAYBE_CreateTaskAndNavigate CreateTaskAndNavigate
+#endif
+IN_PROC_BROWSER_TEST_F(GlicActorGeneralUiTest, MAYBE_CreateTaskAndNavigate) {
   DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kNewActorTabId);
 
+  base::HistogramTester histogram_tester;
   const GURL task_url =
       embedded_test_server()->GetURL("/actor/page_with_clickable_element.html");
 
   RunTestSequence(InitializeWithOpenGlicWindow(),
                   StartActorTaskInNewTab(task_url, kNewActorTabId),
                   WaitForWebContentsReady(kNewActorTabId, task_url));
+
+  // Two samples of 1 tab for CreateTab, Navigate actions.
+  // The durations should not be zero.
+  histogram_tester.ExpectUniqueSample("Actor.PageContext.TabCount", 1, 2);
+  histogram_tester.ExpectBucketCount("Actor.PageContext.APC.Duration", 0, 0);
+  histogram_tester.ExpectTotalCount("Actor.PageContext.APC.Duration", 2);
+  histogram_tester.ExpectBucketCount("Actor.PageContext.Screenshot.Duration", 0,
+                                     0);
+  histogram_tester.ExpectTotalCount("Actor.PageContext.Screenshot.Duration", 2);
 }
 
 IN_PROC_BROWSER_TEST_F(GlicActorGeneralUiTest,
diff --git a/chrome/browser/glic/public/glic_keyed_service.h b/chrome/browser/glic/public/glic_keyed_service.h
index cd70fcf4c..dc8f31f6 100644
--- a/chrome/browser/glic/public/glic_keyed_service.h
+++ b/chrome/browser/glic/public/glic_keyed_service.h
@@ -102,6 +102,7 @@
   // Show, summon or activate the panel, or close it if it's already active and
   // prevent_close is false. If glic_button_view is non-null, attach the panel
   // to that view's Browser.
+  // TODO(b:448888544): remove `prevent_close` in favor of a Show method.
   void ToggleUI(BrowserWindowInterface* bwi,
                 bool prevent_close,
                 mojom::InvocationSource source);
diff --git a/chrome/browser/glic/service/glic_instance_coordinator_impl.cc b/chrome/browser/glic/service/glic_instance_coordinator_impl.cc
index edf3606..11a2fd9 100644
--- a/chrome/browser/glic/service/glic_instance_coordinator_impl.cc
+++ b/chrome/browser/glic/service/glic_instance_coordinator_impl.cc
@@ -154,10 +154,10 @@
                                          bool prevent_close,
                                          mojom::InvocationSource source) {
   if (!browser) {
-    ToggleFloaty();
+    ToggleFloaty(prevent_close);
     return;
   }
-  ToggleSidePanel(browser);
+  ToggleSidePanel(browser, prevent_close);
 }
 
 bool GlicInstanceCoordinatorImpl::ActivateBrowser() {
@@ -436,24 +436,27 @@
       GlicKeyedServiceFactory::GetGlicKeyedService(profile_)->metrics());
 }
 
-void GlicInstanceCoordinatorImpl::ToggleFloaty() {
+void GlicInstanceCoordinatorImpl::ToggleFloaty(bool prevent_close) {
   if (!floating_instance_key_.has_value()) {
     floating_instance_key_ = CreateGlicInstance()->id();
   }
   auto instance_iter = instances_.find(*floating_instance_key_);
   CHECK(instance_iter != instances_.end());
   GlicInstanceImpl* instance = instance_iter->second.get();
-  instance->Toggle(GlicInstanceImpl::EmbedderType::kFloating, nullptr);
+  instance->Toggle(GlicInstanceImpl::EmbedderType::kFloating, nullptr,
+                   prevent_close);
 }
 
 void GlicInstanceCoordinatorImpl::ToggleSidePanel(
-    BrowserWindowInterface* browser) {
+    BrowserWindowInterface* browser,
+    bool prevent_close) {
   auto* tab = browser->GetActiveTabInterface();
   if (!tab) {
     return;
   }
   auto* instance = GetOrCreateGlicInstanceImplForTab(tab);
-  instance->Toggle(GlicInstanceImpl::EmbedderType::kSidePanel, tab);
+  instance->Toggle(GlicInstanceImpl::EmbedderType::kSidePanel, tab,
+                   prevent_close);
 }
 
 void GlicInstanceCoordinatorImpl::RemoveInstance(GlicInstance* instance) {
diff --git a/chrome/browser/glic/service/glic_instance_coordinator_impl.h b/chrome/browser/glic/service/glic_instance_coordinator_impl.h
index 8aade1a..01b70ed 100644
--- a/chrome/browser/glic/service/glic_instance_coordinator_impl.h
+++ b/chrome/browser/glic/service/glic_instance_coordinator_impl.h
@@ -136,8 +136,8 @@
   GlicInstanceImpl* CreateGlicInstance();
   void CreateWarmedInstance();
 
-  void ToggleFloaty();
-  void ToggleSidePanel(BrowserWindowInterface* browser);
+  void ToggleFloaty(bool prevent_close);
+  void ToggleSidePanel(BrowserWindowInterface* browser, bool prevent_close);
 
   void RemoveInstance(GlicInstance* instance);
   bool HasAttachedInstance(GlicInstance* instance);
diff --git a/chrome/browser/glic/service/glic_instance_impl.cc b/chrome/browser/glic/service/glic_instance_impl.cc
index 13aba7a..a00e7bd1 100644
--- a/chrome/browser/glic/service/glic_instance_impl.cc
+++ b/chrome/browser/glic/service/glic_instance_impl.cc
@@ -116,7 +116,7 @@
   host_.SetDelegate(&empty_embedder_delegate_);
   // TODO(crbug.com/448160018): Figure out how to signal the web contents
   // opening so that this can be set to `true`.
-  host_.CreateContents(/*initially_hidden=*/true);
+  host_.CreateContents(/*initially_hidden=*/false);
 }
 
 GlicInstanceImpl::~GlicInstanceImpl() = default;
@@ -171,10 +171,14 @@
   MaybeDeactivateEmbedderAndCloseHostUi(key);
 }
 
-void GlicInstanceImpl::Toggle(EmbedderType type, tabs::TabInterface* tab) {
+void GlicInstanceImpl::Toggle(EmbedderType type,
+                              tabs::TabInterface* tab,
+                              bool prevent_close) {
   EmbedderKey key = GetEmbedderKey(type, tab);
   if (active_embedder_key_.has_value() && active_embedder_key_.value() == key) {
-    Close(type, tab);
+    if (!prevent_close) {
+      Close(type, tab);
+    }
   } else {
     Show(type, tab);
   }
@@ -455,8 +459,8 @@
 void GlicInstanceImpl::ShowInactiveSidePanelEmbedderFor(
     tabs::TabInterface* tab) {
   auto& entry = BindTab(tab);
-  entry.embedder = std::make_unique<GlicInactiveSidePanelUi>(tab->GetWeakPtr());
-  entry.embedder->Show();
+  entry.embedder =
+      GlicInactiveSidePanelUi::CreateForBackgroundTab(tab->GetWeakPtr());
 }
 
 void GlicInstanceImpl::SetActiveEmbedderAndNotifyStateChange(
diff --git a/chrome/browser/glic/service/glic_instance_impl.h b/chrome/browser/glic/service/glic_instance_impl.h
index c3b75a6..e365bf3 100644
--- a/chrome/browser/glic/service/glic_instance_impl.h
+++ b/chrome/browser/glic/service/glic_instance_impl.h
@@ -88,7 +88,7 @@
   // These methods should only be called by the GlicInstanceCoordinator.
   void Show(EmbedderType type, tabs::TabInterface* tab);
   void Close(EmbedderType type, tabs::TabInterface* tab);
-  void Toggle(EmbedderType type, tabs::TabInterface* tab);
+  void Toggle(EmbedderType type, tabs::TabInterface* tab, bool prevent_close);
 
   void UnbindTab(tabs::TabInterface* tab);
   bool IsOrphaned() const;
diff --git a/chrome/browser/glic/widget/blurred_screenshot_view_controller.cc b/chrome/browser/glic/widget/blurred_screenshot_view_controller.cc
new file mode 100644
index 0000000..f7fc6e5
--- /dev/null
+++ b/chrome/browser/glic/widget/blurred_screenshot_view_controller.cc
@@ -0,0 +1,115 @@
+// 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.
+
+#include "chrome/browser/glic/widget/blurred_screenshot_view_controller.h"
+
+#include "content/public/browser/render_widget_host_view.h"
+#include "content/public/browser/web_contents.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkCanvas.h"
+#include "third_party/skia/include/core/SkImage.h"
+#include "third_party/skia/include/core/SkPaint.h"
+#include "third_party/skia/include/effects/SkImageFilters.h"
+#include "ui/base/models/image_model.h"
+#include "ui/gfx/image/image.h"
+#include "ui/gfx/image/image_skia_operations.h"
+#include "ui/views/controls/image_view.h"
+#include "ui/views/layout/fill_layout.h"
+
+namespace {
+constexpr float kBlurRadius = 10.0f;
+
+gfx::ImageSkia BlurImage(gfx::ImageSkia image) {
+  SkBitmap blurred_bitmap;
+  const SkBitmap* bitmap = image.bitmap();
+  if (bitmap) {
+    SkImageInfo info = bitmap->info();
+    blurred_bitmap.allocPixels(info);
+    SkCanvas canvas(blurred_bitmap);
+    SkPaint paint;
+    paint.setImageFilter(
+        SkImageFilters::Blur(kBlurRadius, kBlurRadius, nullptr));
+    canvas.drawImage(SkImages::RasterFromBitmap(*bitmap), 0, 0,
+                     SkSamplingOptions(), &paint);
+  }
+  return gfx::ImageSkia::CreateFrom1xBitmap(blurred_bitmap);
+}
+}  // namespace
+
+BlurredScreenshotViewController::BlurredScreenshotViewController() = default;
+BlurredScreenshotViewController::~BlurredScreenshotViewController() = default;
+
+std::unique_ptr<views::View> BlurredScreenshotViewController::CreateView() {
+  auto container = std::make_unique<views::View>();
+  container->SetLayoutManager(std::make_unique<views::FillLayout>());
+
+  auto image_view = std::make_unique<views::ImageView>();
+  image_view_ = image_view.get();
+  image_view_observation_.Observe(image_view_);
+  container->AddChildView(std::move(image_view));
+
+  return container;
+}
+
+void BlurredScreenshotViewController::CaptureScreenshot(
+    content::WebContents* glic_webui_contents) {
+  if (!glic_webui_contents) {
+    OnScreenshotCaptured(gfx::Image());
+    return;
+  }
+
+  content::RenderWidgetHostView* render_widget_host_view =
+      glic_webui_contents->GetRenderWidgetHostView();
+  if (!render_widget_host_view) {
+    OnScreenshotCaptured(gfx::Image());
+    return;
+  }
+
+  render_widget_host_view->CopyFromSurface(
+      gfx::Rect(), gfx::Size(),
+      base::BindOnce(
+          [](base::WeakPtr<BlurredScreenshotViewController> weak_ptr,
+             const SkBitmap& bitmap) {
+            if (weak_ptr) {
+              weak_ptr->OnScreenshotCaptured(
+                  gfx::Image::CreateFrom1xBitmap(bitmap));
+            }
+          },
+          GetWeakPtr()));
+}
+
+void BlurredScreenshotViewController::OnScreenshotCaptured(
+    gfx::Image screenshot) {
+  screenshot_ = screenshot.AsImageSkia();
+  UpdateImageView();
+}
+
+base::WeakPtr<BlurredScreenshotViewController>
+BlurredScreenshotViewController::GetWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
+void BlurredScreenshotViewController::OnViewBoundsChanged(
+    views::View* observed_view) {
+  UpdateImageView();
+}
+
+void BlurredScreenshotViewController::OnViewIsDeleting(
+    views::View* observed_view) {
+  image_view_observation_.Reset();
+  image_view_ = nullptr;
+}
+
+void BlurredScreenshotViewController::UpdateImageView() {
+  if (!image_view_ || screenshot_.isNull()) {
+    return;
+  }
+  if (image_view_->size().IsEmpty()) {
+    return;
+  }
+  gfx::ImageSkia resized_image = gfx::ImageSkiaOperations::CreateResizedImage(
+      screenshot_, skia::ImageOperations::RESIZE_BEST, image_view_->size());
+  image_view_->SetImage(
+      ui::ImageModel::FromImageSkia(BlurImage(resized_image)));
+}
diff --git a/chrome/browser/glic/widget/blurred_screenshot_view_controller.h b/chrome/browser/glic/widget/blurred_screenshot_view_controller.h
new file mode 100644
index 0000000..3e9737e
--- /dev/null
+++ b/chrome/browser/glic/widget/blurred_screenshot_view_controller.h
@@ -0,0 +1,63 @@
+// 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.
+
+#ifndef CHROME_BROWSER_GLIC_WIDGET_BLURRED_SCREENSHOT_VIEW_CONTROLLER_H_
+#define CHROME_BROWSER_GLIC_WIDGET_BLURRED_SCREENSHOT_VIEW_CONTROLLER_H_
+
+#include "base/memory/weak_ptr.h"
+#include "base/scoped_observation.h"
+#include "ui/gfx/image/image_skia.h"
+#include "ui/views/view.h"
+#include "ui/views/view_observer.h"
+
+namespace content {
+class WebContents;
+}
+
+namespace views {
+class ImageView;
+}  // namespace views
+
+// Manages a view that displays a blurred and dynamically resized screenshot.
+// This class encapsulates the creation of the view hierarchy and the logic for
+// updating the blurred image when the view's bounds change.
+class BlurredScreenshotViewController : public views::ViewObserver {
+ public:
+  BlurredScreenshotViewController();
+  ~BlurredScreenshotViewController() override;
+
+  BlurredScreenshotViewController(const BlurredScreenshotViewController&) =
+      delete;
+  BlurredScreenshotViewController& operator=(
+      const BlurredScreenshotViewController&) = delete;
+
+  // Creates and returns the view managed by this controller. The controller
+  // retains a raw_ptr to the ImageView within the hierarchy to update it.
+  std::unique_ptr<views::View> CreateView();
+
+  void CaptureScreenshot(content::WebContents* glic_webui_contents);
+
+  // Sets the screenshot to be displayed. This will trigger the initial blur and
+  // display of the image.
+  void OnScreenshotCaptured(gfx::Image screenshot);
+
+  base::WeakPtr<BlurredScreenshotViewController> GetWeakPtr();
+
+  // views::ViewObserver:
+  void OnViewBoundsChanged(views::View* observed_view) override;
+  void OnViewIsDeleting(views::View* observed_view) override;
+
+ private:
+  // Updates the displayed image by resizing and re-blurring the screenshot.
+  void UpdateImageView();
+
+  base::ScopedObservation<views::View, views::ViewObserver>
+      image_view_observation_{this};
+  raw_ptr<views::ImageView> image_view_ = nullptr;
+  gfx::ImageSkia screenshot_;
+
+  base::WeakPtrFactory<BlurredScreenshotViewController> weak_ptr_factory_{this};
+};
+
+#endif  // CHROME_BROWSER_GLIC_WIDGET_BLURRED_SCREENSHOT_VIEW_CONTROLLER_H_
diff --git a/chrome/browser/glic/widget/glic_inactive_side_panel_ui.cc b/chrome/browser/glic/widget/glic_inactive_side_panel_ui.cc
index f1932f4c..2996373 100644
--- a/chrome/browser/glic/widget/glic_inactive_side_panel_ui.cc
+++ b/chrome/browser/glic/widget/glic_inactive_side_panel_ui.cc
@@ -5,77 +5,39 @@
 #include "chrome/browser/glic/widget/glic_inactive_side_panel_ui.h"
 
 #include "base/notimplemented.h"
-#include "base/task/task_traits.h"
-#include "base/task/thread_pool.h"
+#include "chrome/browser/glic/widget/blurred_screenshot_view_controller.h"
 #include "chrome/browser/glic/widget/glic_side_panel_ui.h"
 #include "chrome/browser/ui/tabs/public/tab_features.h"
 #include "chrome/browser/ui/views/side_panel/glic/glic_side_panel_coordinator.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-#include "third_party/skia/include/core/SkImage.h"
-#include "third_party/skia/include/core/SkPaint.h"
-#include "third_party/skia/include/effects/SkImageFilters.h"
-#include "ui/base/models/image_model.h"
-#include "ui/gfx/image/image_skia_operations.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
 #include "ui/views/view.h"
 
 namespace glic {
 
-namespace {
-constexpr float kBlurRadius = 10.0f;
-
-gfx::ImageSkia BlurImage(gfx::ImageSkia image) {
-  SkBitmap blurred_bitmap;
-  const SkBitmap* bitmap = image.bitmap();
-  if (bitmap) {
-    SkImageInfo info = bitmap->info();
-    blurred_bitmap.allocPixels(info);
-    SkCanvas canvas(blurred_bitmap);
-    SkPaint paint;
-    paint.setImageFilter(
-        SkImageFilters::Blur(kBlurRadius, kBlurRadius, nullptr));
-    canvas.drawImage(SkImages::RasterFromBitmap(*bitmap), 0, 0,
-                     SkSamplingOptions(), &paint);
-  }
-  return gfx::ImageSkia::CreateFrom1xBitmap(blurred_bitmap);
-}
-}  // namespace
-
 // static
-std::unique_ptr<GlicInactiveSidePanelUi> GlicInactiveSidePanelUi::From(
-    const GlicSidePanelUi& active_ui,
-    base::WeakPtr<tabs::TabInterface> tab) {
+std::unique_ptr<GlicInactiveSidePanelUi>
+GlicInactiveSidePanelUi::CreateForVisibleTab(
+    base::WeakPtr<tabs::TabInterface> tab,
+    content::WebContents* glic_webui_contents) {
   // Using `new` to access a private constructor.
   auto inactive_side_panel = base::WrapUnique(new GlicInactiveSidePanelUi(tab));
   inactive_side_panel->VisibilityChanged(/*visible=*/true);
 
   // Capture screenshot asynchronously and update the inactive panel.
-  active_ui.TakeScreenshot(
-      base::BindOnce(&GlicInactiveSidePanelUi::OnScreenshotCaptured,
-                     inactive_side_panel->weak_ptr_factory_.GetWeakPtr()));
+  inactive_side_panel->blurred_screenshot_view_controller_.CaptureScreenshot(
+      glic_webui_contents);
 
   return inactive_side_panel;
 }
 
-GlicInactiveSidePanelUi::GlicInactiveSidePanelUi(
-    base::WeakPtr<tabs::TabInterface> tab,
-    const GlicSidePanelUi& active_ui)
-    : tab_(tab) {
-  if (!tab_ || !tab_->GetTabFeatures()) {
-    return;
-  }
-
-  auto* glic_side_panel_coordinator =
-      tab_->GetTabFeatures()->glic_side_panel_coordinator();
-
-  panel_visibility_subscription_ =
-      glic_side_panel_coordinator->AddVisibilityCallback(
-          base::BindRepeating(&GlicInactiveSidePanelUi::VisibilityChanged,
-                              weak_ptr_factory_.GetWeakPtr()));
-
-  glic_side_panel_coordinator->SetContentsView(CreateView(tab_));
+// static
+std::unique_ptr<GlicInactiveSidePanelUi>
+GlicInactiveSidePanelUi::CreateForBackgroundTab(
+    base::WeakPtr<tabs::TabInterface> tab) {
+  // Using `new` to access a private constructor.
+  auto inactive_side_panel = base::WrapUnique(new GlicInactiveSidePanelUi(tab));
+  // Mark the side panel for showing next time the tab becomes active.
+  inactive_side_panel->Show();
+  return inactive_side_panel;
 }
 
 GlicInactiveSidePanelUi::GlicInactiveSidePanelUi(
@@ -98,11 +60,7 @@
 
 std::unique_ptr<views::View> GlicInactiveSidePanelUi::CreateView(
     base::WeakPtr<tabs::TabInterface> tab) {
-  auto image_view = std::make_unique<views::ImageView>();
-  image_view->SetHorizontalAlignment(views::ImageView::Alignment::kCenter);
-  image_view->SetVerticalAlignment(views::ImageView::Alignment::kCenter);
-  image_view_tracker_.SetView(image_view.get());  // Track the image view
-  return image_view;
+  return blurred_screenshot_view_controller_.CreateView();
 }
 
 GlicInactiveSidePanelUi::~GlicInactiveSidePanelUi() = default;
@@ -143,30 +101,4 @@
   is_showing_ = visible;
 }
 
-void GlicInactiveSidePanelUi::OnScreenshotCaptured(gfx::Image screenshot) {
-  screenshot_ = screenshot.AsImageSkia();
-  UpdateImageView();
-}
-
-void GlicInactiveSidePanelUi::UpdateImageView() {
-  if (!image_view_tracker_.view() || screenshot_.isNull()) {
-    return;
-  }
-  // Post task to a background thread to blur the image.
-  base::ThreadPool::PostTaskAndReplyWithResult(
-      FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
-      base::BindOnce(&BlurImage, screenshot_),
-      base::BindOnce(&GlicInactiveSidePanelUi::OnImageBlurred,
-                     weak_ptr_factory_.GetWeakPtr()));
-}
-
-void GlicInactiveSidePanelUi::OnImageBlurred(gfx::ImageSkia blurred_image) {
-  if (!image_view_tracker_.view()) {
-    return;
-  }
-  auto* image_view = static_cast<views::ImageView*>(image_view_tracker_.view());
-  image_view->SetImage(ui::ImageModel::FromImageSkia(blurred_image));
-  image_view->SetImageSize(screenshot_.size());
-}
-
 }  // namespace glic
diff --git a/chrome/browser/glic/widget/glic_inactive_side_panel_ui.h b/chrome/browser/glic/widget/glic_inactive_side_panel_ui.h
index 401dce9..d650a34 100644
--- a/chrome/browser/glic/widget/glic_inactive_side_panel_ui.h
+++ b/chrome/browser/glic/widget/glic_inactive_side_panel_ui.h
@@ -6,27 +6,27 @@
 #define CHROME_BROWSER_GLIC_WIDGET_GLIC_INACTIVE_SIDE_PANEL_UI_H_
 
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observation.h"
 #include "chrome/browser/glic/service/glic_ui_embedder.h"
+#include "chrome/browser/glic/widget/blurred_screenshot_view_controller.h"
 #include "chrome/browser/ui/views/side_panel/glic/glic_side_panel_coordinator.h"
 #include "ui/gfx/image/image_skia.h"
-#include "ui/views/view_tracker.h"
+
+namespace content {
+class WebContents;
+}
 
 namespace glic {
 
-class GlicSidePanelUi;
-
 // A GlicUiEmbedder for inactive Glic instances. This will show a
 // blurred screenshot of the previously active UI.
 class GlicInactiveSidePanelUi : public GlicUiEmbedder {
  public:
-  static std::unique_ptr<GlicInactiveSidePanelUi> From(
-      const GlicSidePanelUi& active_ui,
+  static std::unique_ptr<GlicInactiveSidePanelUi> CreateForVisibleTab(
+      base::WeakPtr<tabs::TabInterface> tab,
+      content::WebContents* glic_webui_contents);
+  static std::unique_ptr<GlicInactiveSidePanelUi> CreateForBackgroundTab(
       base::WeakPtr<tabs::TabInterface> tab);
 
-  explicit GlicInactiveSidePanelUi(base::WeakPtr<tabs::TabInterface> tab);
-  GlicInactiveSidePanelUi(base::WeakPtr<tabs::TabInterface> tab,
-                          const GlicSidePanelUi& active_ui);
   ~GlicInactiveSidePanelUi() override;
 
   // GlicUiEmbedder:
@@ -38,18 +38,16 @@
 
   void VisibilityChanged(bool visible);
 
-  void OnScreenshotCaptured(gfx::Image screenshot);
-
  private:
+  explicit GlicInactiveSidePanelUi(base::WeakPtr<tabs::TabInterface> tab);
+
   std::unique_ptr<views::View> CreateView(
       base::WeakPtr<tabs::TabInterface> tab);
-  void UpdateImageView();
-  void OnImageBlurred(gfx::ImageSkia blurred_image);
 
+  BlurredScreenshotViewController blurred_screenshot_view_controller_;
   base::WeakPtr<tabs::TabInterface> tab_;
   bool is_showing_ = false;
-  gfx::ImageSkia screenshot_;
-  views::ViewTracker image_view_tracker_;
+
   base::CallbackListSubscription panel_visibility_subscription_;
   base::WeakPtrFactory<GlicInactiveSidePanelUi> weak_ptr_factory_{this};
 };
diff --git a/chrome/browser/glic/widget/glic_side_panel_ui.cc b/chrome/browser/glic/widget/glic_side_panel_ui.cc
index 0bcf8a1..6b01179 100644
--- a/chrome/browser/glic/widget/glic_side_panel_ui.cc
+++ b/chrome/browser/glic/widget/glic_side_panel_ui.cc
@@ -134,31 +134,8 @@
 
 std::unique_ptr<GlicUiEmbedder> GlicSidePanelUi::CreateInactiveEmbedder()
     const {
-  return GlicInactiveSidePanelUi::From(*this, tab_);
-}
-
-void GlicSidePanelUi::TakeScreenshot(
-    ui::GrabSnapshotImageCallback callback) const {
-  content::WebContents* web_contents = delegate_->host().webui_contents();
-  if (!web_contents) {
-    std::move(callback).Run(gfx::Image());
-    return;
-  }
-
-  content::RenderWidgetHostView* render_widget_host_view =
-      web_contents->GetRenderWidgetHostView();
-  if (!render_widget_host_view) {
-    std::move(callback).Run(gfx::Image());
-    return;
-  }
-
-  render_widget_host_view->CopyFromSurface(
-      gfx::Rect(), gfx::Size(),
-      base::BindOnce(
-          [](ui::GrabSnapshotImageCallback callback, const SkBitmap& bitmap) {
-            std::move(callback).Run(gfx::Image::CreateFrom1xBitmap(bitmap));
-          },
-          std::move(callback)));
+  return GlicInactiveSidePanelUi::CreateForVisibleTab(
+      tab_, delegate_->host().webui_contents());
 }
 
 }  // namespace glic
diff --git a/chrome/browser/glic/widget/glic_side_panel_ui.h b/chrome/browser/glic/widget/glic_side_panel_ui.h
index 527b7a0f..b8b5796 100644
--- a/chrome/browser/glic/widget/glic_side_panel_ui.h
+++ b/chrome/browser/glic/widget/glic_side_panel_ui.h
@@ -59,8 +59,6 @@
 
   void VisibilityChanged(bool visible);
 
-  void TakeScreenshot(ui::GrabSnapshotImageCallback callback) const;
-
  private:
   base::CallbackListSubscription panel_visibility_subscription_;
   std::unique_ptr<views::View> CreateView(Profile* profile);
diff --git a/chrome/browser/history_clusters/history_clusters_tab_helper.cc b/chrome/browser/history_clusters/history_clusters_tab_helper.cc
index ed83071..1a63c9b5 100644
--- a/chrome/browser/history_clusters/history_clusters_tab_helper.cc
+++ b/chrome/browser/history_clusters/history_clusters_tab_helper.cc
@@ -147,7 +147,7 @@
     // `OnUpdatedHistoryForNavigation()`, will have posted a task to add the
     // visit associated to `incomplete_visit_context_annotations`.
     history_service->GetMostRecentVisitsForGurl(
-        url, 2,
+        url, 2, history::VisitQuery404sPolicy::kExclude404s,
         base::BindOnce(
             [](HistoryClustersTabHelper* history_clusters_tab_helper,
                history_clusters::HistoryClustersService*
diff --git a/chrome/browser/history_embeddings/history_embeddings_tab_helper.cc b/chrome/browser/history_embeddings/history_embeddings_tab_helper.cc
index a404158..415c013 100644
--- a/chrome/browser/history_embeddings/history_embeddings_tab_helper.cc
+++ b/chrome/browser/history_embeddings/history_embeddings_tab_helper.cc
@@ -231,7 +231,7 @@
     // Callback is a member method instead of inline to enable cancellation via
     // weak pointer in `CancelExtraction()`.
     history_service->GetMostRecentVisitsForGurl(
-        history_url_.value(), 1,
+        history_url_.value(), 1, history::VisitQuery404sPolicy::kExclude404s,
         base::BindOnce(
             &HistoryEmbeddingsTabHelper::ExtractPassagesWithHistoryData,
             weak_ptr_factory_.GetWeakPtr(), weak_render_frame_host),
diff --git a/chrome/browser/image_editor/screenshot_flow.cc b/chrome/browser/image_editor/screenshot_flow.cc
index bf485f0..798d5f7 100644
--- a/chrome/browser/image_editor/screenshot_flow.cc
+++ b/chrome/browser/image_editor/screenshot_flow.cc
@@ -56,6 +56,45 @@
 ScreenshotCapturedData::ScreenshotCapturedData() = default;
 ScreenshotCapturedData::~ScreenshotCapturedData() = default;
 
+// UnderlyingWebContentsObserver monitors the WebContents and exits screen
+// capture mode if a navigation occurs.
+class ScreenshotFlow::UnderlyingWebContentsObserver
+    : public content::WebContentsObserver {
+ public:
+  UnderlyingWebContentsObserver(content::WebContents* web_contents,
+                                ScreenshotFlow* screenshot_flow)
+      : content::WebContentsObserver(web_contents),
+        screenshot_flow_(screenshot_flow) {}
+
+  ~UnderlyingWebContentsObserver() override = default;
+
+  UnderlyingWebContentsObserver(const UnderlyingWebContentsObserver&) = delete;
+  UnderlyingWebContentsObserver& operator=(
+      const UnderlyingWebContentsObserver&) = delete;
+
+  // content::WebContentsObserver
+  void PrimaryPageChanged(content::Page& page) override {
+    // We only care to complete/cancel a capture if the capture mode is
+    // currently active.
+    if (screenshot_flow_->IsCaptureModeActive()) {
+      screenshot_flow_->CompleteCapture(
+          ScreenshotCaptureResultCode::USER_NAVIGATED_EXIT, gfx::Rect());
+    }
+  }
+
+  // content::WebContentsObserver
+  void FrameSizeChanged(content::RenderFrameHost* render_frame_host,
+                        const gfx::Size& frame_size) override {
+    // We only care to resize the UI overlay when it's visible to the user.
+    if (screenshot_flow_->IsUIOverlayShown()) {
+      screenshot_flow_->ResetUIOverlayBounds();
+    }
+  }
+
+ private:
+  raw_ptr<ScreenshotFlow> screenshot_flow_;
+};
+
 ScreenshotFlow::ScreenshotFlow(content::WebContents* web_contents)
     : content::WebContentsObserver(web_contents),
       web_contents_(web_contents->GetWeakPtr()) {
@@ -439,42 +478,4 @@
   }
 }
 
-// UnderlyingWebContentsObserver monitors the WebContents and exits screen
-// capture mode if a navigation occurs.
-class ScreenshotFlow::UnderlyingWebContentsObserver
-    : public content::WebContentsObserver {
- public:
-  UnderlyingWebContentsObserver(content::WebContents* web_contents,
-                                ScreenshotFlow* screenshot_flow)
-      : content::WebContentsObserver(web_contents),
-        screenshot_flow_(screenshot_flow) {}
-
-  ~UnderlyingWebContentsObserver() override = default;
-
-  UnderlyingWebContentsObserver(const UnderlyingWebContentsObserver&) = delete;
-  UnderlyingWebContentsObserver& operator=(
-      const UnderlyingWebContentsObserver&) = delete;
-
-  // content::WebContentsObserver
-  void PrimaryPageChanged(content::Page& page) override {
-    // We only care to complete/cancel a capture if the capture mode is
-    // currently active.
-    if (screenshot_flow_->IsCaptureModeActive())
-      screenshot_flow_->CompleteCapture(
-          ScreenshotCaptureResultCode::USER_NAVIGATED_EXIT, gfx::Rect());
-  }
-
-  // content::WebContentsObserver
-  void FrameSizeChanged(content::RenderFrameHost* render_frame_host,
-                        const gfx::Size& frame_size) override {
-    // We only care to resize the UI overlay when it's visible to the user.
-    if (screenshot_flow_->IsUIOverlayShown()) {
-      screenshot_flow_->ResetUIOverlayBounds();
-    }
-  }
-
- private:
-  raw_ptr<ScreenshotFlow> screenshot_flow_;
-};
-
 }  // namespace image_editor
diff --git a/chrome/browser/ip_protection/BUILD.gn b/chrome/browser/ip_protection/BUILD.gn
index 119ddc8..8df6fd8 100644
--- a/chrome/browser/ip_protection/BUILD.gn
+++ b/chrome/browser/ip_protection/BUILD.gn
@@ -20,7 +20,10 @@
     "ip_protection_switches.h",
   ]
 
-  public_deps = [ "//chrome/browser:browser_public_dependencies" ]
+  public_deps = [
+    "//chrome/browser:browser_public_dependencies",
+    "//components/ip_protection/common:ip_protection_token_direct_fetcher",
+  ]
 
   deps = [
     "//base",
@@ -35,7 +38,6 @@
     "//components/ip_protection/common:ip_protection_proxy_config_direct_fetcher",
     "//components/ip_protection/common:ip_protection_telemetry",
     "//components/ip_protection/common:ip_protection_telemetry_uma",
-    "//components/ip_protection/common:ip_protection_token_direct_fetcher",
     "//components/prefs",
     "//components/privacy_sandbox:features",
     "//components/privacy_sandbox:tracking_protection_prefs",
diff --git a/chrome/browser/local_network_access/local_network_access_browsertest.cc b/chrome/browser/local_network_access/local_network_access_browsertest.cc
index 00a56ea7..dafcd28d 100644
--- a/chrome/browser/local_network_access/local_network_access_browsertest.cc
+++ b/chrome/browser/local_network_access/local_network_access_browsertest.cc
@@ -445,7 +445,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(LocalNetworkAccessBrowserTest,
-                       CheckSecurityStatePolicySet) {
+                       CheckEnterprisePolicyEnableLNA) {
   policy::PolicyMap policies;
   SetPolicy(&policies, policy::key::kLocalNetworkAccessRestrictionsEnabled,
             std::optional<base::Value>(true));
@@ -470,6 +470,32 @@
 }
 
 IN_PROC_BROWSER_TEST_F(LocalNetworkAccessBrowserTest,
+                       CheckEnterprisePolicyOptOut) {
+  policy::PolicyMap policies;
+  SetPolicy(&policies,
+            policy::key::kLocalNetworkAccessRestrictionsTemporaryOptOut,
+            std::optional<base::Value>(true));
+  UpdateProviderPolicy(policies);
+
+  ASSERT_TRUE(content::NavigateToURL(
+      web_contents(),
+      https_server().GetURL(
+          "a.com",
+          "/local_network_access/no-favicon-treat-as-public-address.html")));
+
+  // Enable auto-denial of LNA permission request.
+  bubble_factory()->set_response_type(
+      permissions::PermissionRequestManager::AutoResponseType::DENY_ALL);
+
+  // Expect LNA fetch to succeed.
+  ASSERT_EQ(true,
+            content::EvalJs(
+                web_contents(),
+                content::JsReplace("fetch($1).then(response => response.ok)",
+                                   https_server().GetURL("b.com", kLnaPath))));
+}
+
+IN_PROC_BROWSER_TEST_F(LocalNetworkAccessBrowserTest,
                        CheckPrivateAliasFeatureCounter) {
   ASSERT_TRUE(content::NavigateToURL(
       web_contents(),
diff --git a/chrome/browser/metrics/tab_stats/tab_stats_tracker.h b/chrome/browser/metrics/tab_stats/tab_stats_tracker.h
index 14a68a1..63c3506 100644
--- a/chrome/browser/metrics/tab_stats/tab_stats_tracker.h
+++ b/chrome/browser/metrics/tab_stats/tab_stats_tracker.h
@@ -107,7 +107,100 @@
 
   // The UmaStatsReportingDelegate is responsible for delivering statistics
   // reported by the TabStatsTracker via UMA.
-  class UmaStatsReportingDelegate;
+  class UmaStatsReportingDelegate {
+   public:
+    // The name of the histogram that records the number of tabs total at resume
+    // from sleep/hibernate.
+    static const char kNumberOfTabsOnResumeHistogramName[];
+
+    // The name of the histogram that records the maximum number of tabs opened
+    // in a day.
+    static const char kMaxTabsInADayHistogramName[];
+
+    // The name of the histogram that records the maximum number of tabs opened
+    // in the same window in a day.
+    static const char kMaxTabsPerWindowInADayHistogramName[];
+
+    // The name of the histogram that records the maximum number of windows
+    // opened in a day.
+    static const char kMaxWindowsInADayHistogramName[];
+
+    // The name of the histograms that records the current number of
+    // tabs/windows.
+    static const char kTabCountHistogramName[];
+    static const char kWindowCountHistogramName[];
+
+    // The name of the histogram that records each window's width, in DIPs.
+    static const char kWindowWidthHistogramName[];
+
+    // The names of the histograms that record daily discard/reload counts
+    // caused for each discard reason.
+    static const char kDailyDiscardsExternalHistogramName[];
+    static const char kDailyDiscardsUrgentHistogramName[];
+    static const char kDailyDiscardsProactiveHistogramName[];
+    static const char kDailyDiscardsSuggestedHistogramName[];
+    static const char kDailyDiscardsFrozenWithGrowingMemoryHistogramName[];
+    static const char kDailyReloadsExternalHistogramName[];
+    static const char kDailyReloadsUrgentHistogramName[];
+    static const char kDailyReloadsProactiveHistogramName[];
+    static const char kDailyReloadsSuggestedHistogramName[];
+    static const char kDailyReloadsFrozenWithGrowingMemoryHistogramName[];
+
+    // The names of the histograms that record duplicate tab data.
+    static const char kTabDuplicateCountSingleWindowHistogramName[];
+    static const char kTabDuplicateCountAllProfileWindowsHistogramName[];
+    static const char kTabDuplicatePercentageSingleWindowHistogramName[];
+    static const char kTabDuplicatePercentageAllProfileWindowsHistogramName[];
+    static const char
+        kTabDuplicateExcludingFragmentsCountSingleWindowHistogramName[];
+    static const char
+        kTabDuplicateExcludingFragmentsCountAllProfileWindowsHistogramName[];
+    static const char
+        kTabDuplicateExcludingFragmentsPercentageSingleWindowHistogramName[];
+    static const char
+        kTabDuplicateExcludingFragmentsPercentageAllProfileWindowsHistogramName
+            [];
+
+    UmaStatsReportingDelegate() = default;
+
+    UmaStatsReportingDelegate(const UmaStatsReportingDelegate&) = delete;
+    UmaStatsReportingDelegate& operator=(const UmaStatsReportingDelegate&) =
+        delete;
+
+    virtual ~UmaStatsReportingDelegate() = default;
+
+    // Called at resume from sleep/hibernate.
+    void ReportTabCountOnResume(size_t tab_count);
+
+    // Called once per day to report the metrics.
+    void ReportDailyMetrics(const TabStatsDataStore::TabsStats& tab_stats);
+
+    // Report the tab heartbeat metrics.
+    void ReportHeartbeatMetrics(const TabStatsDataStore::TabsStats& tab_stats);
+
+    // Calculate and report the metrics related to tab duplicates, which are
+    // re-calculated each time rather than cached like the other metrics due to
+    // their complexity. |exclude_fragments| will treat two tabs with the same
+    // URL apart from trailing fragments as duplicates, otherwise will only
+    // treat exact URL matches as duplicates.
+    void ReportTabDuplicateMetrics(bool exclude_fragments);
+
+   protected:
+    // Checks if Chrome is running in background with no visible windows,
+    // virtual for unittesting.
+    virtual bool IsChromeBackgroundedWithoutWindows();
+
+   private:
+    struct DuplicateData {
+      DuplicateData();
+      DuplicateData(const DuplicateData&);
+      ~DuplicateData();
+
+      int duplicate_count;
+      int tab_count;
+      std::set<GURL> seen_urls;
+    };
+  };
 
   // The observer that's used by |daily_event_| to report the metrics.
   class TabStatsDailyObserver : public DailyEvent::Observer {
@@ -296,100 +389,6 @@
   raw_ptr<PlatformModel> model_;
 };
 
-// The reporting delegate, which reports metrics via UMA.
-class TabStatsTracker::UmaStatsReportingDelegate {
- public:
-  // The name of the histogram that records the number of tabs total at resume
-  // from sleep/hibernate.
-  static const char kNumberOfTabsOnResumeHistogramName[];
-
-  // The name of the histogram that records the maximum number of tabs opened in
-  // a day.
-  static const char kMaxTabsInADayHistogramName[];
-
-  // The name of the histogram that records the maximum number of tabs opened in
-  // the same window in a day.
-  static const char kMaxTabsPerWindowInADayHistogramName[];
-
-  // The name of the histogram that records the maximum number of windows
-  // opened in a day.
-  static const char kMaxWindowsInADayHistogramName[];
-
-  // The name of the histograms that records the current number of tabs/windows.
-  static const char kTabCountHistogramName[];
-  static const char kWindowCountHistogramName[];
-
-  // The name of the histogram that records each window's width, in DIPs.
-  static const char kWindowWidthHistogramName[];
-
-  // The names of the histograms that record daily discard/reload counts caused
-  // for each discard reason.
-  static const char kDailyDiscardsExternalHistogramName[];
-  static const char kDailyDiscardsUrgentHistogramName[];
-  static const char kDailyDiscardsProactiveHistogramName[];
-  static const char kDailyDiscardsSuggestedHistogramName[];
-  static const char kDailyDiscardsFrozenWithGrowingMemoryHistogramName[];
-  static const char kDailyReloadsExternalHistogramName[];
-  static const char kDailyReloadsUrgentHistogramName[];
-  static const char kDailyReloadsProactiveHistogramName[];
-  static const char kDailyReloadsSuggestedHistogramName[];
-  static const char kDailyReloadsFrozenWithGrowingMemoryHistogramName[];
-
-  // The names of the histograms that record duplicate tab data.
-  static const char kTabDuplicateCountSingleWindowHistogramName[];
-  static const char kTabDuplicateCountAllProfileWindowsHistogramName[];
-  static const char kTabDuplicatePercentageSingleWindowHistogramName[];
-  static const char kTabDuplicatePercentageAllProfileWindowsHistogramName[];
-  static const char
-      kTabDuplicateExcludingFragmentsCountSingleWindowHistogramName[];
-  static const char
-      kTabDuplicateExcludingFragmentsCountAllProfileWindowsHistogramName[];
-  static const char
-      kTabDuplicateExcludingFragmentsPercentageSingleWindowHistogramName[];
-  static const char
-      kTabDuplicateExcludingFragmentsPercentageAllProfileWindowsHistogramName[];
-
-  UmaStatsReportingDelegate() = default;
-
-  UmaStatsReportingDelegate(const UmaStatsReportingDelegate&) = delete;
-  UmaStatsReportingDelegate& operator=(const UmaStatsReportingDelegate&) =
-      delete;
-
-  virtual ~UmaStatsReportingDelegate() = default;
-
-  // Called at resume from sleep/hibernate.
-  void ReportTabCountOnResume(size_t tab_count);
-
-  // Called once per day to report the metrics.
-  void ReportDailyMetrics(const TabStatsDataStore::TabsStats& tab_stats);
-
-  // Report the tab heartbeat metrics.
-  void ReportHeartbeatMetrics(const TabStatsDataStore::TabsStats& tab_stats);
-
-  // Calculate and report the metrics related to tab duplicates, which are
-  // re-calculated each time rather than cached like the other metrics due to
-  // their complexity. |exclude_fragments| will treat two tabs with the same
-  // URL apart from trailing fragments as duplicates, otherwise will only treat
-  // exact URL matches as duplicates.
-  void ReportTabDuplicateMetrics(bool exclude_fragments);
-
- protected:
-  // Checks if Chrome is running in background with no visible windows, virtual
-  // for unittesting.
-  virtual bool IsChromeBackgroundedWithoutWindows();
-
- private:
-  struct DuplicateData {
-    DuplicateData();
-    DuplicateData(const DuplicateData&);
-    ~DuplicateData();
-
-    int duplicate_count;
-    int tab_count;
-    std::set<GURL> seen_urls;
-  };
-};
-
 }  // namespace metrics
 
 #endif  // CHROME_BROWSER_METRICS_TAB_STATS_TAB_STATS_TRACKER_H_
diff --git a/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc b/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc
index 129185d6..7d9b3ec 100644
--- a/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc
+++ b/chrome/browser/metrics/usage_scenario/tab_usage_scenario_tracker_browsertest.cc
@@ -658,8 +658,15 @@
             interval_data.source_id_for_longest_visible_origin_duration);
 }
 
+// TODO(https://crbug.com/448444906): There's a race condition in this test
+// between the two calls to ResetIntervalData() that manifests on Mac.
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_FullScreenVideoClosed DISABLED_FullScreenVideoClosed
+#else
+#define MAYBE_FullScreenVideoClosed FullScreenVideoClosed
+#endif
 IN_PROC_BROWSER_TEST_F(TabUsageScenarioTrackerBrowserTest,
-                       FullScreenVideoClosed) {
+                       MAYBE_FullScreenVideoClosed) {
   // Play fullscreen video in a tab and close it while it's playing, ensure that
   // things are tracked properly.
   EXPECT_TRUE(
@@ -716,8 +723,13 @@
             interval_data.source_id_for_longest_visible_origin_duration);
 }
 
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_FullScreenVideoCrash DISABLED_FullScreenVideoCrash
+#else
+#define MAYBE_FullScreenVideoCrash FullScreenVideoCrash
+#endif
 IN_PROC_BROWSER_TEST_F(TabUsageScenarioTrackerBrowserTest,
-                       FullScreenVideoCrash) {
+                       MAYBE_FullScreenVideoCrash) {
   // Play fullscreen video in a tab and make the tab crash, ensure that things
   // are tracked properly.
   auto* contents = browser()->tab_strip_model()->GetWebContentsAt(0);
diff --git a/chrome/browser/net/chrome_network_service_browsertest.cc b/chrome/browser/net/chrome_network_service_browsertest.cc
index 05d4d5e..fa37d56b 100644
--- a/chrome/browser/net/chrome_network_service_browsertest.cc
+++ b/chrome/browser/net/chrome_network_service_browsertest.cc
@@ -5,6 +5,7 @@
 #include "base/feature_list.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
+#include "base/task/sequenced_task_runner.h"
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/threading/thread_restrictions.h"
@@ -19,6 +20,7 @@
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/cookie_config/cookie_store_util.h"
+#include "components/os_crypt/async/browser/test_utils.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/network_service_instance.h"
 #include "content/public/browser/network_service_util.h"
@@ -137,10 +139,16 @@
 IN_PROC_BROWSER_TEST_P(ChromeNetworkServiceBrowserTest,
                        PRE_PRE_EncryptedCookies) {
   // These test is only valid if crypto is enabled on the platform.
-  auto crypto_delegate = cookie_config::GetCookieCryptoDelegate();
+  auto os_crypt_async = os_crypt_async::GetTestOSCryptAsyncForTesting(
+      /*is_sync_for_unittests=*/true);
+  auto crypto_delegate = cookie_config::GetCookieCryptoDelegate(
+      os_crypt_async.get(), base::SequencedTaskRunner::GetCurrentDefault());
   if (!crypto_delegate) {
     GTEST_SKIP() << "No crypto on this platform.";
   }
+  base::RunLoop run_loop;
+  crypto_delegate->Init(run_loop.QuitClosure());
+  run_loop.Run();
   std::string ciphertext;
   crypto_delegate->EncryptString(kCookieValue, &ciphertext);
   ASSERT_NE(ciphertext, kCookieValue) << "Crypto should really encrypt.";
diff --git a/chrome/browser/net/cookie_encryption_provider_browsertest.cc b/chrome/browser/net/cookie_encryption_provider_browsertest.cc
index 55872f9..ef096848 100644
--- a/chrome/browser/net/cookie_encryption_provider_browsertest.cc
+++ b/chrome/browser/net/cookie_encryption_provider_browsertest.cc
@@ -13,7 +13,6 @@
 #include "base/test/test_future.h"
 #include "build/config/linux/dbus/buildflags.h"
 #include "chrome/browser/browser_features.h"
-#include "chrome/browser/net/cookie_encryption_provider_impl.h"
 #include "chrome/browser/policy/chrome_browser_policy_connector.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
@@ -26,6 +25,7 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/test_launcher.h"
 #include "net/cookies/canonical_cookie.h"
+#include "services/network/public/cpp/cookie_encryption_provider_impl.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
index 80adf3f..33d9378 100644
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -913,8 +913,13 @@
 void SystemNetworkContextManager::
     AddCookieEncryptionManagerToNetworkContextParams(
         network::mojom::NetworkContextParams* network_context_params) {
+  if (!cookie_encryption_provider_) {
+    cookie_encryption_provider_ =
+        std::make_unique<CookieEncryptionProviderImpl>(
+            g_browser_process->os_crypt_async());
+  }
   network_context_params->cookie_encryption_provider =
-      cookie_encryption_provider_.BindNewRemote();
+      cookie_encryption_provider_->BindNewRemote();
 }
 
 void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams(
diff --git a/chrome/browser/net/system_network_context_manager.h b/chrome/browser/net/system_network_context_manager.h
index e5a328f..3ff80a4 100644
--- a/chrome/browser/net/system_network_context_manager.h
+++ b/chrome/browser/net/system_network_context_manager.h
@@ -14,7 +14,6 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/scoped_refptr.h"
 #include "chrome/browser/net/cert_verifier_service_time_updater.h"
-#include "chrome/browser/net/cookie_encryption_provider_impl.h"
 #include "chrome/browser/net/proxy_config_monitor.h"
 #include "chrome/browser/net/stub_resolver_config_reader.h"
 #include "chrome/browser/ssl/ssl_config_service_manager.h"
@@ -24,6 +23,7 @@
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom-forward.h"
+#include "services/network/public/cpp/cookie_encryption_provider_impl.h"
 #include "services/network/public/mojom/host_resolver.mojom-forward.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "services/network/public/mojom/network_service.mojom.h"
@@ -299,7 +299,7 @@
   GssapiLibraryLoadObserver gssapi_library_loader_observer_{this};
 #endif  // BUILDFLAG(IS_LINUX)
 
-  CookieEncryptionProviderImpl cookie_encryption_provider_;
+  std::unique_ptr<CookieEncryptionProviderImpl> cookie_encryption_provider_;
 
   std::unique_ptr<CertVerifierServiceTimeUpdater> cert_verifier_time_updater_;
 };
diff --git a/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc b/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
index de6807e..a2cf1f4 100644
--- a/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
+++ b/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
@@ -28,6 +28,7 @@
 #include "components/sync/test/test_sync_service.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/test_utils.h"
+#include "ui/native_theme/mock_os_settings_provider.h"
 
 using captured_sites_test_utils::CapturedSiteParams;
 using captured_sites_test_utils::GetCapturedSites;
@@ -220,6 +221,10 @@
 
     browser()->profile()->GetPrefs()->SetBoolean(::prefs::kSafeBrowsingEnabled,
                                                  false);
+
+    // Disable the caret blinking to not generate any compositor frames from
+    // just a blinking cursor.
+    os_settings_provider_.SetCaretBlinkInterval(base::TimeDelta());
   }
 
   void SetUpCommandLine(base::CommandLine* command_line) override {
@@ -266,6 +271,7 @@
   base::test::ScopedFeatureList feature_list_;
   std::unique_ptr<ServerUrlLoader> server_url_loader_;
 
+  ui::MockOsSettingsProvider os_settings_provider_;
   base::CallbackListSubscription create_services_subscription_;
 };
 
diff --git a/chrome/browser/payments/BUILD.gn b/chrome/browser/payments/BUILD.gn
index c362009..e4d5f52 100644
--- a/chrome/browser/payments/BUILD.gn
+++ b/chrome/browser/payments/BUILD.gn
@@ -58,7 +58,7 @@
 
   if (is_android) {
     sources += [
-      "browser_bound_keys_deleter_browsertest.cc",
+      "browser_bound_key_deleter_browsertest.cc",
       "expandable_payment_handler_browsertest.cc",
     ]
     deps += [
diff --git a/chrome/browser/payments/browser_bound_keys_deleter_browsertest.cc b/chrome/browser/payments/browser_bound_key_deleter_browsertest.cc
similarity index 88%
rename from chrome/browser/payments/browser_bound_keys_deleter_browsertest.cc
rename to chrome/browser/payments/browser_bound_key_deleter_browsertest.cc
index 3742c5d7..d10b53f8 100644
--- a/chrome/browser/payments/browser_bound_keys_deleter_browsertest.cc
+++ b/chrome/browser/payments/browser_bound_key_deleter_browsertest.cc
@@ -3,8 +3,8 @@
 // found in the LICENSE file.
 
 #include "chrome/test/base/platform_browser_test.h"
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h"
-#include "components/payments/content/browser_binding/mock_browser_bound_keys_deleter.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter_factory.h"
+#include "components/payments/content/browser_binding/mock_browser_bound_key_deleter.h"
 #include "content/public/test/browser_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -15,7 +15,7 @@
 using testing::Mock;
 using testing::Return;
 
-class BrowserBoundKeysDeleterOnStartupBrowserTest : public PlatformBrowserTest {
+class BrowserBoundKeyDeleterOnStartupBrowserTest : public PlatformBrowserTest {
   void SetUpBrowserContextKeyedServices(
       content::BrowserContext* context) override {
     auto browser_bound_key_deleter_service =
@@ -31,7 +31,7 @@
   raw_ptr<MockBrowserBoundKeyDeleter> mock_browser_bound_key_deleter_service_;
 };
 
-IN_PROC_BROWSER_TEST_F(BrowserBoundKeysDeleterOnStartupBrowserTest,
+IN_PROC_BROWSER_TEST_F(BrowserBoundKeyDeleterOnStartupBrowserTest,
                        RemoveInvalidBBKsIsCalled) {
   // The service is already started as part of the profile.
   // Expectations and setup are in SetUpBrowserContextKeyedServices() since they
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index da2f017..32e3ccb 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -2383,6 +2383,9 @@
   { key::kLocalNetworkAccessRestrictionsEnabled,
     prefs::kManagedLocalNetworkAccessRestrictionsEnabled,
     base::Value::Type::BOOLEAN },
+  { key::kLocalNetworkAccessRestrictionsTemporaryOptOut,
+    prefs::kManagedLocalNetworkAccessRestrictionsTemporaryOptOut,
+    base::Value::Type::BOOLEAN },
   { key::kLocalNetworkAccessAllowedForUrls,
     prefs::kManagedLocalNetworkAccessAllowedForUrls,
     base::Value::Type::LIST },
diff --git a/chrome/browser/predictors/loading_predictor_browsertest.cc b/chrome/browser/predictors/loading_predictor_browsertest.cc
index 5081360..2165eb3 100644
--- a/chrome/browser/predictors/loading_predictor_browsertest.cc
+++ b/chrome/browser/predictors/loading_predictor_browsertest.cc
@@ -1707,8 +1707,15 @@
 
 // Make sure that the right NetworkAnonymizationKey is used by the
 // LoadingPredictor, both when the predictor is populated and when it isn't.
+//
+// TODO(crbug.com/448862629): Disable flaky test on mac
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_LoadingPredictorNoRedirects DISABLED_LoadingPredictorNoRedirects
+#else
+#define MAYBE_LoadingPredictorNoRedirects LoadingPredictorNoRedirects
+#endif
 IN_PROC_BROWSER_TEST_P(LoadingPredictorNetworkIsolationKeyBrowserTest,
-                       LoadingPredictorNoRedirects) {
+                       MAYBE_LoadingPredictorNoRedirects) {
   // Cache resources needed by navigations, so the only sockets created
   // during navigations should be for the two preconnects.
   CacheFavIcon();
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 2edfb1e..6ca71763 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -2440,6 +2440,9 @@
   registry->RegisterBooleanPref(
       prefs::kManagedLocalNetworkAccessRestrictionsEnabled, false);
 
+  registry->RegisterBooleanPref(
+      prefs::kManagedLocalNetworkAccessRestrictionsTemporaryOptOut, false);
+
 #if BUILDFLAG(IS_ANDROID)
   registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault,
                                 false);
diff --git a/chrome/browser/preloading/prerender/prerender_manager.cc b/chrome/browser/preloading/prerender/prerender_manager.cc
index 49d6ae9..98a89be4 100644
--- a/chrome/browser/preloading/prerender/prerender_manager.cc
+++ b/chrome/browser/preloading/prerender/prerender_manager.cc
@@ -77,8 +77,6 @@
 
 }  // namespace
 
-PrerenderManager::~PrerenderManager() = default;
-
 class PrerenderManager::SearchPrerenderTask {
  public:
   SearchPrerenderTask(
@@ -168,6 +166,8 @@
   const GURL prerendered_canonical_search_url_;
 };
 
+PrerenderManager::~PrerenderManager() = default;
+
 void PrerenderManager::DidFinishNavigation(
     content::NavigationHandle* navigation_handle) {
   if (!navigation_handle->HasCommitted() ||
diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
index 18d743c6..6ed7cf97 100644
--- a/chrome/browser/profiles/BUILD.gn
+++ b/chrome/browser/profiles/BUILD.gn
@@ -310,6 +310,7 @@
     "//components/optimization_guide/core",
     "//components/password_manager/content/browser",
     "//components/payments/content",
+    "//components/payments/content/browser_binding:browser_bound_key_deleter",
     "//components/permissions:permissions_common",
     "//components/policy/content",
     "//components/policy/content:safe_sites_navigation_throttle",
@@ -332,8 +333,8 @@
       "//chrome/browser/auxiliary_search",
       "//chrome/browser/commerce/merchant_viewer:merchant_viewer_data_manager",
       "//chrome/browser/fast_checkout",
+      "//chrome/browser/tab",
       "//components/commerce/core:merchant_signal_db_proto",
-      "//components/payments/content/browser_binding:browser_bound_keys_deleter_factory",
     ]
   } else {
     deps += [
diff --git a/chrome/browser/profiles/batch_upload/batch_upload_service.cc b/chrome/browser/profiles/batch_upload/batch_upload_service.cc
index 7c18b92..c959386 100644
--- a/chrome/browser/profiles/batch_upload/batch_upload_service.cc
+++ b/chrome/browser/profiles/batch_upload/batch_upload_service.cc
@@ -64,8 +64,13 @@
     case BatchUploadService::EntryPoint::kPasswordPromoCard:
       return syncer::PASSWORDS;
     case BatchUploadService::EntryPoint::kBookmarksManagerPromoCard:
+    case BatchUploadService::EntryPoint::
+        kProfileMenuPrimaryButtonWithBookmarksAction:
       return syncer::BOOKMARKS;
-    case BatchUploadService::EntryPoint::kProfileMenu:
+    case BatchUploadService::EntryPoint::kProfileMenuRowButtonAction:
+    case BatchUploadService::EntryPoint::kProfileMenuPrimaryButtonAction:
+    case BatchUploadService::EntryPoint::
+        kProfileMenuPrimaryButtonWithWindows10DepreciationAction:
       return std::nullopt;
   }
 }
diff --git a/chrome/browser/profiles/batch_upload/batch_upload_service.h b/chrome/browser/profiles/batch_upload/batch_upload_service.h
index 27f950d6..ee74bd1 100644
--- a/chrome/browser/profiles/batch_upload/batch_upload_service.h
+++ b/chrome/browser/profiles/batch_upload/batch_upload_service.h
@@ -50,9 +50,12 @@
     kPasswordManagerSettings = 0,
     kPasswordPromoCard = 1,
     kBookmarksManagerPromoCard = 2,
-    kProfileMenu = 3,
+    kProfileMenuRowButtonAction = 3,
+    kProfileMenuPrimaryButtonAction = 4,
+    kProfileMenuPrimaryButtonWithBookmarksAction = 5,
+    kProfileMenuPrimaryButtonWithWindows10DepreciationAction = 6,
 
-    kMaxValue = kProfileMenu,
+    kMaxValue = kProfileMenuPrimaryButtonWithWindows10DepreciationAction,
   };
   // LINT.ThenChange(/tools/metrics/histograms/metadata/sync/enums.xml:BatchUploadEntryPoint)
 
diff --git a/chrome/browser/profiles/batch_upload/batch_upload_service_unittest.cc b/chrome/browser/profiles/batch_upload/batch_upload_service_unittest.cc
index b9c737db..65d0e09 100644
--- a/chrome/browser/profiles/batch_upload/batch_upload_service_unittest.cc
+++ b/chrome/browser/profiles/batch_upload/batch_upload_service_unittest.cc
@@ -232,8 +232,9 @@
   base::MockCallback<base::OnceCallback<void(bool)>> opened_callback;
   EXPECT_CALL(opened_callback, Run(true));
 
-  service.OpenBatchUpload(nullptr, BatchUploadService::EntryPoint::kProfileMenu,
-                          opened_callback.Get());
+  service.OpenBatchUpload(
+      nullptr, BatchUploadService::EntryPoint::kProfileMenuRowButtonAction,
+      opened_callback.Get());
   EXPECT_TRUE(service.IsDialogOpened());
 }
 
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
index 9e5302a..f0552163 100644
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -266,7 +266,7 @@
 #include "components/optimization_guide/machine_learning_tflite_buildflags.h"
 #include "components/password_manager/content/browser/password_manager_log_router_factory.h"
 #include "components/password_manager/content/browser/password_requirements_service_factory.h"
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter_factory.h"
 #include "components/payments/content/has_enrolled_instrument_query_factory.h"
 #include "components/permissions/features.h"
 #include "components/policy/content/password_manager_blocklist_policy.h"
@@ -1157,9 +1157,7 @@
 #if !BUILDFLAG(IS_ANDROID)
   PasswordStatusCheckServiceFactory::GetInstance();
 #endif
-#if BUILDFLAG(IS_ANDROID)
   payments::BrowserBoundKeyDeleterFactory::GetInstance();
-#endif
   payments::HasEnrolledInstrumentQueryFactory::GetInstance();
 #if !BUILDFLAG(IS_ANDROID)
   payments::PaymentRequestDisplayManagerFactory::GetInstance();
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
index f9c9219..75a02ffd 100644
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -1074,9 +1074,7 @@
 
   // Migrate obsolete prefs.
   MigrateObsoleteProfilePrefs(GetPrefs(), GetPath());
-  // TODO(crbug.com/448456006): Switch this to ENABLE_EXTENSIONS_CORE so the
-  // migration code runs on desktop Android.
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
   // Note: Extension preferences can be keyed off the extension ID, so need to
   // be handled specially (rather than directly as part of
   // MigrateObsoleteProfilePrefs()).
diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chrome/browser/profiles/profile_keyed_service_browsertest.cc
index b98cfb3..fd96249 100644
--- a/chrome/browser/profiles/profile_keyed_service_browsertest.cc
+++ b/chrome/browser/profiles/profile_keyed_service_browsertest.cc
@@ -238,8 +238,18 @@
       CreateProfileAndWaitForAllTasks(ProfileManager::GetSystemProfilePath());
   ASSERT_FALSE(system_profile->IsOffTheRecord());
   ASSERT_TRUE(system_profile->IsSystemProfile());
-  TestKeyedProfileServicesActives(system_profile,
-                                  /*expected_active_services_names=*/{});
+  TestKeyedProfileServicesActives(
+      system_profile,
+      /*expected_active_services_names=*/{
+          // There is no control over the creation based on the Profile types in
+          // components/. These services are created for the System Profile by
+          // default because their `ServiceIsCreatedWithBrowserContext()`
+          // returns true.
+          "BrowserBoundKeyDeleter",
+          // `WebDataService` is required because `BrowserBoundKeyDeleter`
+          // depends on it.
+          "WebDataService",
+      });
 }
 
 IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest,
@@ -250,13 +260,14 @@
   ASSERT_TRUE(system_profile->IsSystemProfile());
 
   // clang-format off
-  std::set<std::string> exepcted_created_services_names = {
+  std::set<std::string> expected_created_services_names = {
     // in components:
     // There is no control over the creation based on the Profile types in
     // components/. These services are not created for the System Profile by
     // default, however their creation is still possible.
     "AutocompleteControllerEmitter",
     "AutofillInternalsService",
+    "BrowserBoundKeyDeleter",
     "DataControlsRulesService",
     "HasEnrolledInstrumentQuery",
     "LocalPresentationManager",
@@ -288,7 +299,7 @@
   // clang-format on
 
   TestKeyedProfileServicesActives(system_profile,
-                                  exepcted_created_services_names,
+                                  expected_created_services_names,
                                   /*force_create_services=*/true);
 }
 
@@ -605,6 +616,7 @@
     "BookmarkUndoService",
     "BookmarksAPI",
     "BrailleDisplayPrivateAPI",
+    "BrowserBoundKeyDeleter",
     "BrowsingTopicsService",
     "ChildAccountService",
     "ChromeSigninClient",
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 3ce51bc6..7fb1d8d 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -90,6 +90,8 @@
 #include "chrome/browser/ui/browser_navigator_params.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_features.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_interface_iterator.h"
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h"
 #include "chrome/browser/ui/exclusive_access/keyboard_lock_controller.h"
@@ -787,16 +789,18 @@
          IsPdfExtensionOrigin(parent_rfh->GetLastCommittedOrigin());
 }
 
-Browser* FindNormalBrowser(const Profile* profile) {
-  const BrowserList* browser_list = BrowserList::GetInstance();
-  for (auto it = browser_list->begin_browsers_ordered_by_activation();
-       it != browser_list->end_browsers_ordered_by_activation(); ++it) {
-    Browser* browser = *it;
-    if (browser->is_type_normal() && browser->profile() == profile) {
-      return browser;
-    }
-  }
-  return nullptr;
+BrowserWindowInterface* FindNormalBrowser(const Profile* profile) {
+  BrowserWindowInterface* normal_browser = nullptr;
+  ForEachCurrentBrowserWindowInterfaceOrderedByActivation(
+      [&](BrowserWindowInterface* browser) {
+        if (browser->GetType() == BrowserWindowInterface::TYPE_NORMAL &&
+            browser->GetProfile() == profile) {
+          normal_browser = browser;
+          return false;  // stop iterating
+        }
+        return true;  // continue iterating
+      });
+  return normal_browser;
 }
 
 #if BUILDFLAG(ENABLE_PDF)
@@ -3177,7 +3181,7 @@
     case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: {
       WindowOpenDisposition new_tab_disposition =
           WindowOpenDisposition::NEW_BACKGROUND_TAB;
-      Browser* browser = nullptr;
+      BrowserWindowInterface* browser = nullptr;
       if (IsInProgressiveWebApp()) {
         browser = FindNormalBrowser(GetProfile());
         new_tab_disposition = browser
diff --git a/chrome/browser/safety_hub/android/javatests/src/org/chromium/chrome/browser/safety_hub/SafetyHubTest.java b/chrome/browser/safety_hub/android/javatests/src/org/chromium/chrome/browser/safety_hub/SafetyHubTest.java
index 5be08cb..a433afb7 100644
--- a/chrome/browser/safety_hub/android/javatests/src/org/chromium/chrome/browser/safety_hub/SafetyHubTest.java
+++ b/chrome/browser/safety_hub/android/javatests/src/org/chromium/chrome/browser/safety_hub/SafetyHubTest.java
@@ -41,6 +41,7 @@
 import android.app.PendingIntent;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Build;
 import android.view.View;
 
 import androidx.test.espresso.contrib.RecyclerViewActions;
@@ -125,6 +126,9 @@
 @Features.DisableFeatures(ChromeFeatureList.EDGE_TO_EDGE_EVERYWHERE)
 @Batch(Batch.PER_CLASS)
 @Restriction(DeviceRestriction.RESTRICTION_TYPE_NON_AUTO)
+@DisableIf.Build(
+        sdk_equals = Build.VERSION_CODES.Q,
+        message = "crbug.com/447426928, crashing emulator with --disable-field-trial-config")
 public final class SafetyHubTest {
     // This test suite currently expects that calls to password check via PasswordManagerHelper
     // cause an exception, so the state of the UI can be controlled by setting prefs in
diff --git a/chrome/browser/signin/signin_promo_unittest.cc b/chrome/browser/signin/signin_promo_unittest.cc
index 9b5fb02..99820fc79 100644
--- a/chrome/browser/signin/signin_promo_unittest.cc
+++ b/chrome/browser/signin/signin_promo_unittest.cc
@@ -742,15 +742,14 @@
   EXPECT_TRUE(ShouldShowBookmarkSignInPromo(*profile.get()));
 }
 
-class SyncPromoIdentityPillManagerTest
-    : public testing::Test,
-      public testing::WithParamInterface<
-          ProfileMenuAvatarButtonPromoInfo::Type> {
+class SyncPromoIdentityPillManagerTest : public testing::Test {
  public:
   SyncPromoIdentityPillManagerTest() {
     scoped_feature_list_.InitWithFeatures(
         /*enabled_features=*/{syncer::kReplaceSyncPromosWithSignInPromos,
-                              switches::kAvatarButtonSyncPromoForTesting},
+                              switches::kAvatarButtonSyncPromoForTesting,
+                              switches::
+                                  kSigninWindows10DepreciationStateForTesting},
         /*disabled_features=*/{});
 
     SigninPrefs::RegisterProfilePrefs(pref_service_.registry());
@@ -774,7 +773,62 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-TEST_P(SyncPromoIdentityPillManagerTest, MaxShownCount) {
+TEST_F(SyncPromoIdentityPillManagerTest, PromoTypesUseDifferentShownLimits) {
+  std::array<ProfileMenuAvatarButtonPromoInfo::Type, 5> promo_type_list{
+      ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::
+          kBatchUploadWindows10DepreciationPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo,
+  };
+
+  Signin("test@email.com");
+
+  const size_t max_shown_count = 2;
+  SyncPromoIdentityPillManager manager(identity_manager(), &pref_service(),
+                                       max_shown_count, /*max_used_count=*/2);
+
+  for (auto promo_type : promo_type_list) {
+    for (size_t count = 0; count < max_shown_count; ++count) {
+      ASSERT_TRUE(manager.ShouldShowPromo(promo_type));
+      manager.RecordPromoShown(promo_type);
+    }
+    ASSERT_FALSE(manager.ShouldShowPromo(promo_type));
+  }
+}
+
+TEST_F(SyncPromoIdentityPillManagerTest, PromoTypesUseDifferentUsedLimits) {
+  std::array<ProfileMenuAvatarButtonPromoInfo::Type, 5> promo_type_list{
+      ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::
+          kBatchUploadWindows10DepreciationPromo,
+      ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo,
+  };
+
+  Signin("test@email.com");
+
+  const size_t max_used_count = 2;
+  SyncPromoIdentityPillManager manager(identity_manager(), &pref_service(),
+                                       /*max_shown_count=*/2, max_used_count);
+
+  for (auto promo_type : promo_type_list) {
+    for (size_t count = 0; count < max_used_count; ++count) {
+      ASSERT_TRUE(manager.ShouldShowPromo(promo_type));
+      manager.RecordPromoUsed(promo_type);
+    }
+    ASSERT_FALSE(manager.ShouldShowPromo(promo_type));
+  }
+}
+
+class SyncPromoIdentityPillManagerWithParamsTest
+    : public SyncPromoIdentityPillManagerTest,
+      public testing::WithParamInterface<
+          ProfileMenuAvatarButtonPromoInfo::Type> {};
+
+TEST_P(SyncPromoIdentityPillManagerWithParamsTest, MaxShownCount) {
   Signin("test@email.com");
   const int max_shown_count = 10;
   SyncPromoIdentityPillManager manager(identity_manager(), &pref_service(),
@@ -792,7 +846,7 @@
   EXPECT_FALSE(manager.ShouldShowPromo(GetParam()));
 }
 
-TEST_P(SyncPromoIdentityPillManagerTest, MaxUsedCount) {
+TEST_P(SyncPromoIdentityPillManagerWithParamsTest, MaxUsedCount) {
   Signin("test@email.com");
   const int max_used_count = 5;
   SyncPromoIdentityPillManager manager(identity_manager(), &pref_service(),
@@ -809,14 +863,16 @@
   EXPECT_FALSE(manager.ShouldShowPromo(GetParam()));
 }
 
-TEST_P(SyncPromoIdentityPillManagerTest, ShouldNotShowPromoIfSignedOut) {
+TEST_P(SyncPromoIdentityPillManagerWithParamsTest,
+       ShouldNotShowPromoIfSignedOut) {
   SyncPromoIdentityPillManager manager(identity_manager(), &pref_service(),
                                        /*max_shown_count=*/10,
                                        /*max_used_count=*/2);
   EXPECT_FALSE(manager.ShouldShowPromo(GetParam()));
 }
 
-TEST_P(SyncPromoIdentityPillManagerTest, ShouldNotShowPromoIfSigninPending) {
+TEST_P(SyncPromoIdentityPillManagerWithParamsTest,
+       ShouldNotShowPromoIfSigninPending) {
   Signin("test@email.com");
   signin::SetInvalidRefreshTokenForPrimaryAccount(identity_manager());
   SyncPromoIdentityPillManager manager(identity_manager(), &pref_service(),
@@ -825,7 +881,7 @@
   EXPECT_FALSE(manager.ShouldShowPromo(GetParam()));
 }
 
-TEST_P(SyncPromoIdentityPillManagerTest,
+TEST_P(SyncPromoIdentityPillManagerWithParamsTest,
        ShouldNotShowPromoIfPromotionsDisabled) {
   TestingBrowserProcess::GetGlobal()->local_state()->SetBoolean(
       prefs::kPromotionsEnabled, false);
@@ -838,10 +894,13 @@
 
 INSTANTIATE_TEST_SUITE_P(
     ,
-    SyncPromoIdentityPillManagerTest,
+    SyncPromoIdentityPillManagerWithParamsTest,
     testing::ValuesIn(
         {ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo,
+         ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo,
          ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo,
+         ProfileMenuAvatarButtonPromoInfo::Type::
+             kBatchUploadWindows10DepreciationPromo,
          ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo}));
 
 class ComputeProfileMenuAvatarButtonPromoInfoBaseTest : public testing::Test {
@@ -922,25 +981,39 @@
       case ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo:
       case ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
         return 0u;
+      case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo:
       case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo:
+      case ProfileMenuAvatarButtonPromoInfo::Type::
+          kBatchUploadWindows10DepreciationPromo:
         return 5u;
     }
   }
 
   void SetRequirementsForInputPromo(
       ProfileMenuAvatarButtonPromoInfo::Type promo_type) {
+    signin::IdentityManager* identity_manager =
+        IdentityManagerFactory::GetForProfile(profile());
+    ASSERT_TRUE(identity_manager->HasPrimaryAccount(ConsentLevel::kSignin));
     switch (promo_type) {
       case ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo:
         SetHistorySyncPreferenceState(/*is_type_on=*/false);
         break;
+      case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo:
+      case ProfileMenuAvatarButtonPromoInfo::Type::
+          kBatchUploadWindows10DepreciationPromo:
+        SetHistorySyncPreferenceState(/*is_type_on=*/true);
+        // Any (local/account storage) valid data type that is not
+        // `syncer::BOOKMARKS`, otherwise the bookmarks promo would have a
+        // higher priority (only for `kBatchUploadPromo`).
+        batch_upload_test_helper_.SetReturnDescriptions(
+            syncer::PASSWORDS, GetLocalDataCount(promo_type));
+        break;
       case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo:
         batch_upload_test_helper_.SetReturnDescriptions(
             syncer::BOOKMARKS, GetLocalDataCount(promo_type));
         break;
       case ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
-        ASSERT_FALSE(
-            IdentityManagerFactory::GetForProfile(profile())->HasPrimaryAccount(
-                ConsentLevel::kSync));
+        ASSERT_FALSE(identity_manager->HasPrimaryAccount(ConsentLevel::kSync));
         break;
     }
   }
@@ -960,12 +1033,32 @@
   ComputeProfileMenuAvatarButtonPromoInfoTest() {
     switch (GetParam()) {
       case ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo:
+      case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo:
       case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo:
         scoped_feature_list_.InitWithFeatures(
             // Enabling both features to ensure that
             // `syncer::kReplaceSyncPromosWithSignInPromos` takes over.
-            /*enabled_features=*/{syncer::kReplaceSyncPromosWithSignInPromos,
-                                  switches::kAvatarButtonSyncPromoForTesting},
+            // Enable
+            // `switches::kSigninWindows10DepreciationStateBypassForTesting` to
+            // allow Windows machine to test the regular flow (non-Windows10
+            // specific flow).
+            /*enabled_features=*/
+            {syncer::kReplaceSyncPromosWithSignInPromos,
+             switches::kAvatarButtonSyncPromoForTesting,
+             switches::kSigninWindows10DepreciationStateBypassForTesting},
+            /*disabled_features=*/{});
+        break;
+      case ProfileMenuAvatarButtonPromoInfo::Type::
+          kBatchUploadWindows10DepreciationPromo:
+        scoped_feature_list_.InitWithFeatures(
+            // Enabling both features to ensure that
+            // `syncer::kReplaceSyncPromosWithSignInPromos` takes over. Also
+            // enabling `switches::kSigninWindows10DepreciationStateForTesting`
+            // to simulate Windows10 setup.
+            /*enabled_features=*/
+            {syncer::kReplaceSyncPromosWithSignInPromos,
+             switches::kAvatarButtonSyncPromoForTesting,
+             switches::kSigninWindows10DepreciationStateForTesting},
             /*disabled_features=*/{});
         break;
       case ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
@@ -993,7 +1086,7 @@
 TEST_P(ComputeProfileMenuAvatarButtonPromoInfoTest,
        PromoShownWhenSignedInAndRequirementsForPromoSet) {
   Signin();
-  SetRequirementsForInputPromo(GetParam());
+  ASSERT_NO_FATAL_FAILURE(SetRequirementsForInputPromo(GetParam()));
 
   base::MockCallback<base::OnceCallback<void(ProfileMenuAvatarButtonPromoInfo)>>
       result_callback;
@@ -1009,7 +1102,10 @@
   ConsentLevel consent_level;
   switch (GetParam()) {
     case ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo:
+    case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo:
     case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo:
+    case ProfileMenuAvatarButtonPromoInfo::Type::
+        kBatchUploadWindows10DepreciationPromo:
       consent_level = ConsentLevel::kSignin;
       break;
     case ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
@@ -1044,7 +1140,10 @@
     ComputeProfileMenuAvatarButtonPromoInfoTest,
     testing::ValuesIn(
         {ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo,
+         ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo,
          ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo,
+         ProfileMenuAvatarButtonPromoInfo::Type::
+             kBatchUploadWindows10DepreciationPromo,
          ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo}));
 
 #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT)
diff --git a/chrome/browser/signin/signin_promo_util.cc b/chrome/browser/signin/signin_promo_util.cc
index 64d40db..e3c1bd11 100644
--- a/chrome/browser/signin/signin_promo_util.cc
+++ b/chrome/browser/signin/signin_promo_util.cc
@@ -70,18 +70,32 @@
     "AvatarButtonHistorySyncPromoShownCount";
 constexpr char kAvatarButtonHistorySyncPromoUsedCount[] =
     "AvatarButtonHistorySyncPromoUsedCount";
+constexpr char kAvatarButtonBatchUploadPromoShownCount[] =
+    "AvatarButtonBatchUploadPromoShownCount";
+constexpr char kAvatarButtonBatchUploadPromoUsedCount[] =
+    "AvatarButtonBatchUploadPromoUsedCount";
 constexpr char kAvatarButtonBatchUploadBookmarkPromoShownCount[] =
     "AvatarButtonBatchUploadBookmarkPromoShownCount";
 constexpr char kAvatarButtonBatchUploadBookmarkPromoUsedCount[] =
     "AvatarButtonBatchUploadBookmarkPromoUsedCount";
+constexpr char kAvatarButtonBatchUploadWindows10DepreciationPromoShownCount[] =
+    "AvatarButtonBatchUploadWindows10DepreciationPromoShownCount";
+constexpr char kAvatarButtonBatchUploadWindows10DepreciationPromoUsedCount[] =
+    "AvatarButtonBatchUploadWindows10DepreciationPromoUsedCount";
 
 const char* GetAvatarButtonPromoShownKey(
     ProfileMenuAvatarButtonPromoInfo::Type promo_type) {
   switch (promo_type) {
     case ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo:
       return kAvatarButtonHistorySyncPromoShownCount;
+    case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo:
+      return kAvatarButtonBatchUploadPromoShownCount;
     case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo:
       return kAvatarButtonBatchUploadBookmarkPromoShownCount;
+    case ProfileMenuAvatarButtonPromoInfo::Type::
+        kBatchUploadWindows10DepreciationPromo:
+      CHECK(switches::IsSigninWindows10DepreciationState());
+      return kAvatarButtonBatchUploadWindows10DepreciationPromoShownCount;
     case ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
       NOTREACHED() << "SyncPromo uses the SigninPrefs values directly";
   }
@@ -92,13 +106,83 @@
   switch (promo_type) {
     case ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo:
       return kAvatarButtonHistorySyncPromoUsedCount;
+    case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo:
+      return kAvatarButtonBatchUploadPromoUsedCount;
     case ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadBookmarksPromo:
       return kAvatarButtonBatchUploadBookmarkPromoUsedCount;
+    case ProfileMenuAvatarButtonPromoInfo::Type::
+        kBatchUploadWindows10DepreciationPromo:
+      CHECK(switches::IsSigninWindows10DepreciationState());
+      return kAvatarButtonBatchUploadWindows10DepreciationPromoUsedCount;
     case ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
       NOTREACHED() << "SyncPromo uses the SigninPrefs values directly";
   }
 }
 
+void ComputeProfileMenuAvatarButtonPromoInfoWithBatchUploadResult(
+    Profile* profile,
+    base::OnceCallback<void(ProfileMenuAvatarButtonPromoInfo)> result_callback,
+    std::map<syncer::DataType, syncer::LocalDataDescription> local_map_result) {
+  CHECK(
+      base::FeatureList::IsEnabled(syncer::kReplaceSyncPromosWithSignInPromos));
+
+  size_t local_data_count = std::accumulate(
+      local_map_result.begin(), local_map_result.end(), 0u,
+      [](size_t current_count,
+         std::pair<syncer::DataType, syncer::LocalDataDescription> local_data) {
+        return current_count + local_data.second.local_data_models.size();
+      });
+
+  // Batch Upload promo: Windows 10 depreciation promo.
+  // TODO(crbug.com/447048341): Confirm whether additional requirements are
+  // needed for this promo (e.g. minimum cookie age, cross account error).
+  if (local_data_count > 0 && switches::IsSigninWindows10DepreciationState()) {
+    std::move(result_callback)
+        .Run(ProfileMenuAvatarButtonPromoInfo{
+            .type = ProfileMenuAvatarButtonPromoInfo::Type::
+                kBatchUploadWindows10DepreciationPromo,
+            .local_data_count = local_data_count});
+    return;
+  }
+
+  // Batch Upload Bookmarks promo: for users that have local bookmarks.
+  // TODO(crbug.com/447048341): Confirm whether additional requirements are
+  // needed for this promo (e.g. previously syncing).
+  if (local_map_result.contains(syncer::BOOKMARKS) &&
+      !local_map_result[syncer::BOOKMARKS].local_data_models.empty()) {
+    std::move(result_callback)
+        .Run(ProfileMenuAvatarButtonPromoInfo{
+            .type = ProfileMenuAvatarButtonPromoInfo::Type::
+                kBatchUploadBookmarksPromo,
+            .local_data_count = local_data_count});
+    return;
+  }
+
+  // History sync promo.
+  if (signin_util::ShouldShowHistorySyncOptinScreen(*profile)) {
+    std::move(result_callback)
+        .Run(ProfileMenuAvatarButtonPromoInfo{
+            .type = ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo,
+            .local_data_count = local_data_count});
+    return;
+  }
+
+  // Regular Batch Upload promo: for users that have any local data type.
+  if (local_data_count > 0) {
+    std::move(result_callback)
+        .Run(ProfileMenuAvatarButtonPromoInfo{
+            .type = ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo,
+            .local_data_count = local_data_count});
+    return;
+  }
+
+  // No promo.
+  std::move(result_callback)
+      .Run(ProfileMenuAvatarButtonPromoInfo{
+          .type = std::nullopt, .local_data_count = local_data_count});
+  return;
+}
+
 syncer::DataType GetDataTypeFromSignInPromoType(SignInPromoType type) {
   switch (type) {
     case SignInPromoType::kPassword:
@@ -475,48 +559,6 @@
   }
 }
 
-void ComputeProfileMenuAvatarButtonPromoInfoWithBatchUploadResult(
-    Profile* profile,
-    base::OnceCallback<void(ProfileMenuAvatarButtonPromoInfo)> result_callback,
-    std::map<syncer::DataType, syncer::LocalDataDescription> local_map_result) {
-  size_t local_data_count = std::accumulate(
-      local_map_result.begin(), local_map_result.end(), 0u,
-      [](size_t current_count,
-         std::pair<syncer::DataType, syncer::LocalDataDescription> local_data) {
-        return current_count + local_data.second.local_data_models.size();
-      });
-
-  // TODO(crbug.com/447048341): Implement the Windows 10 priority with
-  // condition.
-
-  // TODO(crbug.com/447048341): Confirm whether additional requirements are
-  // required for this promo.
-  if (local_map_result.contains(syncer::BOOKMARKS) &&
-      !local_map_result[syncer::BOOKMARKS].local_data_models.empty()) {
-    std::move(result_callback)
-        .Run(ProfileMenuAvatarButtonPromoInfo{
-            .type = ProfileMenuAvatarButtonPromoInfo::Type::
-                kBatchUploadBookmarksPromo,
-            .local_data_count = local_data_count});
-    return;
-  }
-
-  if (signin_util::ShouldShowHistorySyncOptinScreen(*profile)) {
-    std::move(result_callback)
-        .Run(ProfileMenuAvatarButtonPromoInfo{
-            .type = ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo,
-            .local_data_count = local_data_count});
-    return;
-  }
-
-  // TODO(crbug.com/447048341): Implement the regular BatchUpload condition.
-
-  std::move(result_callback)
-      .Run(ProfileMenuAvatarButtonPromoInfo{
-          .type = std::nullopt, .local_data_count = local_data_count});
-  return;
-}
-
 void ComputeProfileMenuAvatarButtonPromoInfo(
     Profile& profile,
     base::OnceCallback<void(ProfileMenuAvatarButtonPromoInfo)>
diff --git a/chrome/browser/signin/signin_promo_util.h b/chrome/browser/signin/signin_promo_util.h
index efbda170..2f2a6fd0 100644
--- a/chrome/browser/signin/signin_promo_util.h
+++ b/chrome/browser/signin/signin_promo_util.h
@@ -83,7 +83,9 @@
   // AvatarButton.
   enum class Type {
     kHistorySyncPromo,
+    kBatchUploadPromo,
     kBatchUploadBookmarksPromo,
+    kBatchUploadWindows10DepreciationPromo,
     kSyncPromo,
   };
 
@@ -96,8 +98,8 @@
 };
 
 // Based on the `profile` current state, compute the data to be shown for the
-// promos, if any. The promo between the ProfileMenu and the AvatarButton should
-// always be aligned.
+// promos, if any, based on the promo priority and the profile state. The promo
+// between the ProfileMenu and the AvatarButton should always be aligned.
 void ComputeProfileMenuAvatarButtonPromoInfo(
     Profile& profile,
     base::OnceCallback<void(ProfileMenuAvatarButtonPromoInfo)> result_callback);
diff --git a/chrome/browser/sync/BUILD.gn b/chrome/browser/sync/BUILD.gn
index 4107cea2..b1422f0 100644
--- a/chrome/browser/sync/BUILD.gn
+++ b/chrome/browser/sync/BUILD.gn
@@ -172,6 +172,7 @@
     ]
     deps += [
       "//chrome/browser/sync/android:jni_headers",
+      "//chrome/browser/tab",
       "//chrome/browser/ui/android/tab_model",
     ]
   } else {
diff --git a/chrome/browser/sync/test/integration/history_helper.cc b/chrome/browser/sync/test/integration/history_helper.cc
index e6ff8e5..d3dffd57 100644
--- a/chrome/browser/sync/test/integration/history_helper.cc
+++ b/chrome/browser/sync/test/integration/history_helper.cc
@@ -131,7 +131,9 @@
                      history::HistoryDatabase* db) override {
     // Fetch the visits.
     const int kMaxVisitsToQuery = 100;
-    backend->GetMostRecentVisitsForURL(id_, kMaxVisitsToQuery, visits_);
+    db->GetMostRecentVisitsForURL(id_, kMaxVisitsToQuery,
+                                  history::VisitQuery404sPolicy::kInclude404s,
+                                  visits_);
     wait_event_->Signal();
     return true;
   }
@@ -158,7 +160,9 @@
     const int kMaxVisitsToQuery = 100;
     // Fetch the visits.
     history::VisitVector basic_visits;
-    backend->GetMostRecentVisitsForURL(id_, kMaxVisitsToQuery, &basic_visits);
+    db->GetMostRecentVisitsForURL(id_, kMaxVisitsToQuery,
+                                  history::VisitQuery404sPolicy::kInclude404s,
+                                  &basic_visits);
     *annotated_visits_ = backend->ToAnnotatedVisitsFromRows(
         basic_visits, /*compute_redirect_chain_start_properties=*/false);
     wait_event_->Signal();
diff --git a/chrome/browser/tab/BUILD.gn b/chrome/browser/tab/BUILD.gn
index a03e52d..302edc6 100644
--- a/chrome/browser/tab/BUILD.gn
+++ b/chrome/browser/tab/BUILD.gn
@@ -187,3 +187,62 @@
     "//url:gurl_junit_test_support",
   ]
 }
+
+source_set("tab") {
+  sources = [
+    "android_tab_package.h",
+    "storage_package.h",
+    "tab_state_storage_backend.h",
+    "tab_state_storage_database.h",
+    "tab_state_storage_service.h",
+    "tab_storage_package.h",
+    "tab_storage_packager.h",
+    "web_contents_state.h",
+  ]
+  deps = [
+    ":jni_headers",
+    "//base",
+    "//chrome/browser/profiles:profile",
+    "//components/keyed_service/core",
+    "//components/tabs:public",
+    "//content/public/browser",
+    "//ui/base",
+    "//url",
+  ]
+}
+
+source_set("impl") {
+  sources = [
+    "android_tab_package.cc",
+    "tab_state_storage_backend.cc",
+    "tab_state_storage_database.cc",
+    "tab_state_storage_service.cc",
+    "tab_storage_package.cc",
+    "web_contents_state.cc",
+  ]
+  deps = [
+    ":jni_headers",
+    ":tab",
+    "//chrome/browser/flags:flags_android",
+    "//chrome/browser/profiles",
+    "//chrome/browser/tab/protocol",
+    "//components/sessions",
+    "//components/tabs:public",
+    "//content/public/browser",
+    "//sql",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "web_contents_state_unittest.cc" ]
+  deps = [
+    ":tab",
+    "//base",
+    "//components/sessions",
+    "//components/tabs:public",
+    "//content/test:test_support",
+    "//testing/gtest",
+    "//ui/base",
+  ]
+}
diff --git a/chrome/browser/tab/storage_package.h b/chrome/browser/tab/storage_package.h
new file mode 100644
index 0000000..13598d6
--- /dev/null
+++ b/chrome/browser/tab/storage_package.h
@@ -0,0 +1,24 @@
+// 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.
+
+#ifndef CHROME_BROWSER_TAB_STORAGE_PACKAGE_H_
+#define CHROME_BROWSER_TAB_STORAGE_PACKAGE_H_
+
+#include <string>
+
+namespace tabs {
+
+// Interface for a package of data that can be serialized for storage.
+class StoragePackage {
+ public:
+  virtual ~StoragePackage() = default;
+
+  // Serializes the data contained within this package into a string payload for
+  // storage.
+  virtual std::string SerializePayload() const = 0;
+};
+
+}  // namespace tabs
+
+#endif  // CHROME_BROWSER_TAB_STORAGE_PACKAGE_H_
diff --git a/chrome/browser/tab/tab_state_storage_backend.cc b/chrome/browser/tab/tab_state_storage_backend.cc
index 6ded38b..002f417 100644
--- a/chrome/browser/tab/tab_state_storage_backend.cc
+++ b/chrome/browser/tab/tab_state_storage_backend.cc
@@ -6,6 +6,7 @@
 
 #include "base/functional/bind.h"
 #include "base/task/thread_pool.h"
+#include "chrome/browser/tab/storage_package.h"
 #include "chrome/browser/tab/tab_state_storage_database.h"
 
 namespace tabs {
@@ -16,35 +17,6 @@
     base::TaskShutdownBehavior::BLOCK_SHUTDOWN};
 }  // namespace
 
-void TabStateStorageBackend::PopulateTabState(
-    tabs_pb::TabState* tab_state,
-    const TabStoragePackage& package) {
-  const auto& android_package = package.android_tab_package_;
-  if (android_package) {
-    tab_state->set_parent_id(android_package->parent_id_);
-    tab_state->set_timestamp_millis(android_package->timestamp_millis_);
-    if (android_package->web_contents_state_bytes_) {
-      tab_state->set_web_contents_state_bytes(
-          *android_package->web_contents_state_bytes_);
-    }
-    tab_state->set_web_contents_state_version(android_package->version_);
-    if (android_package->opener_app_id_) {
-      tab_state->set_opener_app_id(*android_package->opener_app_id_);
-    }
-    tab_state->set_theme_color(android_package->theme_color_);
-    tab_state->set_launch_type_at_creation(
-        android_package->launch_type_at_creation_);
-    tab_state->set_last_navigation_committed_timestamp_millis(
-        android_package->last_navigation_committed_timestamp_millis_);
-    tab_state->set_tab_has_sensitive_content(
-        android_package->tab_has_sensitive_content_);
-  }
-  tab_state->set_user_agent(package.user_agent_);
-  tab_state->set_tab_group_id_high(package.tab_group_id_.high());
-  tab_state->set_tab_group_id_low(package.tab_group_id_.low());
-  tab_state->set_is_pinned(package.is_pinned_);
-}
-
 TabStateStorageBackend::TabStateStorageBackend(
     const base::FilePath& profile_path)
     : profile_path_(profile_path),
@@ -67,18 +39,14 @@
                      weak_ptr_factory_.GetWeakPtr()));
 }
 
-void TabStateStorageBackend::Save(std::unique_ptr<TabStoragePackage> package) {
-  tabs_pb::TabState tab_state;
-  PopulateTabState(&tab_state, *package);
-  std::string payload;
-  tab_state.SerializeToString(&payload);
-  // TODO(crbug.com/448151025): Use the storage id and a type enum.
-  int id =
-      package->android_tab_package_ ? package->android_tab_package_->id_ : 0;
+void TabStateStorageBackend::Save(int id,
+                                  int type,
+                                  std::unique_ptr<StoragePackage> package) {
+  std::string payload = package->SerializePayload();
   db_task_runner_->PostTaskAndReplyWithResult(
       FROM_HERE,
       base::BindOnce(&TabStateStorageDatabase::SaveNode,
-                     base::Unretained(database_.get()), id, 1,
+                     base::Unretained(database_.get()), id, type,
                      std::move(payload), ""),
       base::BindOnce(&TabStateStorageBackend::OnWrite,
                      weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/tab/tab_state_storage_backend.h b/chrome/browser/tab/tab_state_storage_backend.h
index df84a38..2ba4c27 100644
--- a/chrome/browser/tab/tab_state_storage_backend.h
+++ b/chrome/browser/tab/tab_state_storage_backend.h
@@ -12,12 +12,12 @@
 #include "base/functional/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/task/sequenced_task_runner.h"
-#include "chrome/browser/tab/protocol/tab_state.pb.h"
 #include "chrome/browser/tab/tab_state_storage_database.h"
-#include "chrome/browser/tab/tab_storage_package.h"
 
 namespace tabs {
 
+class StoragePackage;
+
 // Backend for TabStateStorage, responsible for coordinating with the storage
 // layer.
 class TabStateStorageBackend {
@@ -29,13 +29,11 @@
 
   void Initialize();
 
-  void Save(std::unique_ptr<TabStoragePackage> package);
+  void Save(int id, int type, std::unique_ptr<StoragePackage> package);
 
   void LoadAllNodes(base::OnceCallback<void(std::vector<NodeState>)> callback);
 
  private:
-  void PopulateTabState(tabs_pb::TabState* tab_state,
-                        const TabStoragePackage& package);
   void OnDBReady(bool success);
   void OnWrite(bool success);
   void OnAllTabsRead(base::OnceCallback<void(std::vector<NodeState>)> callback,
diff --git a/chrome/browser/tab/tab_state_storage_database.h b/chrome/browser/tab/tab_state_storage_database.h
index e2ed9a4..a92db9dc 100644
--- a/chrome/browser/tab/tab_state_storage_database.h
+++ b/chrome/browser/tab/tab_state_storage_database.h
@@ -9,7 +9,6 @@
 #include <vector>
 
 #include "base/files/file_path.h"
-#include "chrome/browser/tab/protocol/tab_state.pb.h"
 
 namespace sql {
 class Database;
diff --git a/chrome/browser/tab/tab_state_storage_service.cc b/chrome/browser/tab/tab_state_storage_service.cc
index e68c91f..ae69031 100644
--- a/chrome/browser/tab/tab_state_storage_service.cc
+++ b/chrome/browser/tab/tab_state_storage_service.cc
@@ -7,6 +7,7 @@
 #include <memory>
 
 #include "base/token.h"
+#include "chrome/browser/tab/protocol/tab_state.pb.h"
 #include "chrome/browser/tab/tab_storage_packager.h"
 #include "components/tabs/public/tab_interface.h"
 
@@ -28,7 +29,11 @@
     package = packager_->ReleasePackage();
 
     DCHECK(package) << "Packager should return a package";
-    tab_backend_->Save(std::move(package));
+    int id =
+        package->android_tab_package_ ? package->android_tab_package_->id_ : 0;
+    // TODO(crbug.com/448151025): Define and use a proper type enum.
+    int type = 1;
+    tab_backend_->Save(id, type, std::move(package));
   }
 }
 
diff --git a/chrome/browser/tab/tab_state_storage_service.h b/chrome/browser/tab/tab_state_storage_service.h
index dd81de9..ee509fc7 100644
--- a/chrome/browser/tab/tab_state_storage_service.h
+++ b/chrome/browser/tab/tab_state_storage_service.h
@@ -19,6 +19,10 @@
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/tabs/public/tab_interface.h"
 
+namespace tabs_pb {
+class TabState;
+}  // namespace tabs_pb
+
 namespace tabs {
 
 class TabStateStorageService : public KeyedService,
diff --git a/chrome/browser/tab/tab_storage_package.cc b/chrome/browser/tab/tab_storage_package.cc
index b454731..5806bf3 100644
--- a/chrome/browser/tab/tab_storage_package.cc
+++ b/chrome/browser/tab/tab_storage_package.cc
@@ -4,8 +4,7 @@
 
 #include "chrome/browser/tab/tab_storage_package.h"
 
-#include "base/token.h"
-#include "chrome/browser/tab/android_tab_package.h"
+#include "chrome/browser/tab/protocol/tab_state.pb.h"
 
 namespace tabs {
 
@@ -21,4 +20,37 @@
 
 TabStoragePackage::~TabStoragePackage() = default;
 
+std::string TabStoragePackage::SerializePayload() const {
+  tabs_pb::TabState tab_state;
+  const std::unique_ptr<AndroidTabPackage>& android_package =
+      android_tab_package_;
+  if (android_package) {
+    tab_state.set_parent_id(android_package->parent_id_);
+    tab_state.set_timestamp_millis(android_package->timestamp_millis_);
+    if (android_package->web_contents_state_bytes_) {
+      tab_state.set_web_contents_state_bytes(
+          *android_package->web_contents_state_bytes_);
+    }
+    tab_state.set_web_contents_state_version(android_package->version_);
+    if (android_package->opener_app_id_) {
+      tab_state.set_opener_app_id(*android_package->opener_app_id_);
+    }
+    tab_state.set_theme_color(android_package->theme_color_);
+    tab_state.set_launch_type_at_creation(
+        android_package->launch_type_at_creation_);
+    tab_state.set_last_navigation_committed_timestamp_millis(
+        android_package->last_navigation_committed_timestamp_millis_);
+    tab_state.set_tab_has_sensitive_content(
+        android_package->tab_has_sensitive_content_);
+  }
+  tab_state.set_user_agent(user_agent_);
+  tab_state.set_tab_group_id_high(tab_group_id_.high());
+  tab_state.set_tab_group_id_low(tab_group_id_.low());
+  tab_state.set_is_pinned(is_pinned_);
+
+  std::string payload;
+  tab_state.SerializeToString(&payload);
+  return payload;
+}
+
 }  // namespace tabs
diff --git a/chrome/browser/tab/tab_storage_package.h b/chrome/browser/tab/tab_storage_package.h
index 3a5b17b..3fcc6e9 100644
--- a/chrome/browser/tab/tab_storage_package.h
+++ b/chrome/browser/tab/tab_storage_package.h
@@ -11,21 +11,26 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/token.h"
 #include "chrome/browser/tab/android_tab_package.h"
+#include "chrome/browser/tab/storage_package.h"
 
 namespace tabs {
 
 // This class is used to store the data for a Tab, making it thread-agnostic.
-struct TabStoragePackage {
+struct TabStoragePackage : public StoragePackage {
  public:
   TabStoragePackage(int user_agent,
                     base::Token tab_group_id,
                     bool is_pinned,
                     std::unique_ptr<AndroidTabPackage> android_tab_package);
-  ~TabStoragePackage();
+  ~TabStoragePackage() override;
 
   TabStoragePackage(const TabStoragePackage&) = delete;
   TabStoragePackage& operator=(const TabStoragePackage&) = delete;
 
+  // Serializes the data contained within this package into a string payload for
+  // storage.
+  std::string SerializePayload() const override;
+
   const int user_agent_;
   const base::Token tab_group_id_;
   const bool is_pinned_;
diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabSwitcherGroupSuggestionService.java b/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabSwitcherGroupSuggestionService.java
index 5d4676a1..5725dee7 100644
--- a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabSwitcherGroupSuggestionService.java
+++ b/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabSwitcherGroupSuggestionService.java
@@ -6,10 +6,12 @@
 
 import static java.util.Comparator.comparingInt;
 
+import androidx.annotation.IntDef;
+
 import org.chromium.base.Callback;
 import org.chromium.base.Token;
 import org.chromium.base.ValueChangedCallback;
-import org.chromium.base.metrics.RecordUserAction;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
@@ -32,6 +34,8 @@
 import org.chromium.components.visited_url_ranking.url_grouping.UserResponse;
 import org.chromium.components.visited_url_ranking.url_grouping.UserResponseMetadata;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -41,11 +45,88 @@
 /** Orchestrates fetching and showing tab group suggestions in the Tab Switcher. */
 @NullMarked
 public class TabSwitcherGroupSuggestionService {
-    public static final String USER_ACTION_PREFIX = "TabSwitcher.GroupSuggest";
-
     /* Tab gaps equal to this or beyond will not be permitted to be shown. */
     private static final int TAB_GAP_LIMIT = 2;
     private static final int NUM_TABS_IN_FORCED_SUGGESTION = 14;
+    private static final String SUGGESTION_UI_HISTOGRAM_NAME =
+            "GroupSuggestionsService.SuggestionUiEvent";
+
+    /**
+     * Events related to the group suggestion service UI.
+     *
+     * <p>These values are persisted in histograms. See "SuggestionUiEvent" in
+     * src/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml.
+     */
+    @IntDef({
+        SuggestionUiEvent.UNKNOWN,
+        SuggestionUiEvent.TAB_SWITCHER_OPENED,
+        SuggestionUiEvent.REQUEST_STARTED,
+        SuggestionUiEvent.REQUEST_NO_RESULT,
+        SuggestionUiEvent.REQUEST_HAS_SUGGESTION,
+        SuggestionUiEvent.REQUEST_HAS_MULTIPLE_SUGGESTIONS,
+        SuggestionUiEvent.INVALIDATED_DUE_TO_GAP,
+        SuggestionUiEvent.INVALIDATED_DUE_TO_NO_SELECTED_TAB,
+        SuggestionUiEvent.INVALIDATED_DUE_TO_TAB_STATE,
+        SuggestionUiEvent.INVALIDATED_DUE_TO_EMPTY_SUGGESTION,
+        SuggestionUiEvent.INVALIDATED_DUE_TO_PINNED_TAB,
+        SuggestionUiEvent.SHOWN,
+        SuggestionUiEvent.IGNORED,
+        SuggestionUiEvent.REJECTED,
+        SuggestionUiEvent.ACCEPTED,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface SuggestionUiEvent {
+        int UNKNOWN = 0;
+
+        /** The user opened the tab switcher. */
+        int TAB_SWITCHER_OPENED = 1;
+
+        /** A request for suggestions was started. */
+        int REQUEST_STARTED = 2;
+
+        /** The request for suggestions yielded no results. */
+        int REQUEST_NO_RESULT = 3;
+
+        /** The request for suggestions yielded a single suggestion. */
+        int REQUEST_HAS_SUGGESTION = 4;
+
+        /** The request for suggestions yielded multiple suggestions. */
+        int REQUEST_HAS_MULTIPLE_SUGGESTIONS = 5;
+
+        /** The suggestion was invalidated due to a gap between tabs in the suggestion. */
+        int INVALIDATED_DUE_TO_GAP = 6;
+
+        /**
+         * The suggestion was invalidated due to the selected tab not being in the group suggestion.
+         */
+        int INVALIDATED_DUE_TO_NO_SELECTED_TAB = 7;
+
+        /**
+         * The suggestion was invalidated due to a tab in the suggestion being frozen, closing, or
+         * the tab ID not being present in the UI model.
+         */
+        int INVALIDATED_DUE_TO_TAB_STATE = 8;
+
+        /** The suggestion was invalidated due to having null or empty fields. */
+        int INVALIDATED_DUE_TO_EMPTY_SUGGESTION = 9;
+
+        /** The suggestion was invalidated due to a pinned tab being included. */
+        int INVALIDATED_DUE_TO_PINNED_TAB = 10;
+
+        /** The suggestion was shown to the user. */
+        int SHOWN = 11;
+
+        /** The user ignored the suggestion. */
+        int IGNORED = 12;
+
+        /** The user rejected the suggestion. */
+        int REJECTED = 13;
+
+        /** The user accepted the suggestion. */
+        int ACCEPTED = 14;
+
+        int MAX_VALUE = ACCEPTED;
+    }
 
     /** Observes lifecycle events for tab group suggestions. */
     public interface SuggestionLifecycleObserver {
@@ -195,15 +276,20 @@
         clearSuggestions();
         if (filter == null || isIncognitoMode(filter)) return;
 
+        recordGroupSuggestionHistogram(SuggestionUiEvent.REQUEST_STARTED);
         CachedSuggestions cachedSuggestions =
                 mGroupSuggestionsService.getCachedSuggestions(mWindowId);
 
-        if (cachedSuggestions == null) return;
+        if (cachedSuggestions == null) {
+            recordGroupSuggestionHistogram(SuggestionUiEvent.REQUEST_NO_RESULT);
+            return;
+        }
         GroupSuggestions groupSuggestions = cachedSuggestions.groupSuggestions;
 
         if (groupSuggestions == null
                 || groupSuggestions.groupSuggestions == null
                 || groupSuggestions.groupSuggestions.isEmpty()) {
+            recordGroupSuggestionHistogram(SuggestionUiEvent.INVALIDATED_DUE_TO_EMPTY_SUGGESTION);
             return;
         }
 
@@ -211,6 +297,12 @@
                 cachedSuggestions.userResponseMetadataCallback;
 
         List<GroupSuggestion> groupSuggestionsList = groupSuggestions.groupSuggestions;
+        if (groupSuggestionsList.size() == 1) {
+            recordGroupSuggestionHistogram(SuggestionUiEvent.REQUEST_HAS_SUGGESTION);
+        } else {
+            recordGroupSuggestionHistogram(SuggestionUiEvent.REQUEST_HAS_MULTIPLE_SUGGESTIONS);
+        }
+
         GroupSuggestion suggestion = groupSuggestionsList.get(0);
 
         TabModel tabModel = filter.getTabModel();
@@ -218,8 +310,6 @@
         List<Tab> tabsSortedByIndex = getTabsSortedByIndex(tabModel, tabIdsToIndices, suggestion);
 
         if (tabsSortedByIndex == null || !canShowSuggestion(tabIdsToIndices, tabsSortedByIndex)) {
-            RecordUserAction.record(
-                    TabSwitcherGroupSuggestionService.USER_ACTION_PREFIX + ".Invalidated");
             userResponseCallback.onResult(
                     new UserResponseMetadata(suggestion.suggestionId, UserResponse.NOT_SHOWN));
             return;
@@ -256,12 +346,16 @@
                     || tab.isFrozen()
                     || tab.isClosing()
                     || !tabIdsToIndices.containsKey(tabId)) {
+                recordGroupSuggestionHistogram(SuggestionUiEvent.INVALIDATED_DUE_TO_TAB_STATE);
                 return null;
             }
             tabs.add(tab);
             isAnyTabSelected |= tab.isActivated();
         }
-        if (!isAnyTabSelected) return null;
+        if (!isAnyTabSelected) {
+            recordGroupSuggestionHistogram(SuggestionUiEvent.INVALIDATED_DUE_TO_NO_SELECTED_TAB);
+            return null;
+        }
 
         tabs.sort(comparingInt(tab -> tabIdsToIndices.get(tab.getId())));
         return tabs;
@@ -271,7 +365,10 @@
             Map<@TabId Integer, Integer> tabIdsToIndices, List<Tab> tabsSortedByIndex) {
         int prevIndex = TabModel.INVALID_TAB_INDEX;
         for (Tab tab : tabsSortedByIndex) {
-            if (tab.getIsPinned()) return false;
+            if (tab.getIsPinned()) {
+                recordGroupSuggestionHistogram(SuggestionUiEvent.INVALIDATED_DUE_TO_PINNED_TAB);
+                return false;
+            }
 
             @TabId int tabId = tab.getId();
 
@@ -280,6 +377,7 @@
 
             // No gap of over 1 tab in length is allowed.
             if (prevIndex != TabModel.INVALID_TAB_INDEX && currIndex > prevIndex + TAB_GAP_LIMIT) {
+                recordGroupSuggestionHistogram(SuggestionUiEvent.INVALIDATED_DUE_TO_GAP);
                 return false;
             }
 
@@ -299,6 +397,12 @@
         mSuggestionLifecycleObserverHandler.onSuggestionIgnored();
     }
 
+    /** Records a histogram for a {@link SuggestionUiEvent}. */
+    public static void recordGroupSuggestionHistogram(@SuggestionUiEvent int suggestionUiEvent) {
+        RecordHistogram.recordEnumeratedHistogram(
+                SUGGESTION_UI_HISTOGRAM_NAME, suggestionUiEvent, SuggestionUiEvent.MAX_VALUE);
+    }
+
     /** Forces a tab group suggestion for testing purposes. */
     public void forceTabGroupSuggestion() {
         assert ChromeFeatureList.sTabSwitcherGroupSuggestionsTestModeAndroid.isEnabled()
diff --git a/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java b/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java
index 2a30fe6..098c046 100644
--- a/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java
+++ b/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java
@@ -98,7 +98,7 @@
     }
 
     @Override
-    public void onTaskBoundsChanged(Rect newBounds) {
+    public void onTaskBoundsChanged(Rect newBoundsInDp) {
         if (mNativeExtensionWindowControllerBridge != 0) {
             ExtensionWindowControllerBridgeImplJni.get()
                     .onTaskBoundsChanged(mNativeExtensionWindowControllerBridge);
diff --git a/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.html b/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.html
index 70e8ac52..bdb0db3 100644
--- a/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.html
+++ b/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.html
@@ -40,16 +40,39 @@
         <button id="update_window_button">update()</button>
         <input type="number" id="update_window_id_input" placeholder="Enter Window ID" style="width: 120px;">
         <div id="update_window_options_radio_group">
-          <div><label><input type="radio" name="update_window_option" value="focused_true" checked> focused: true</label></div>
-          <div><label><input type="radio" name="update_window_option" value="focused_false"> focused: false</label></div>
-          <div><label><input type="radio" name="update_window_option" value="resize_100_600_400_800"> resize: (100, 600, 400, 800)</label></div>
-          <div><label><input type="radio" name="update_window_option" value="state_normal"> state: normal</label></div>
-          <div><label><input type="radio" name="update_window_option" value="state_minimized"> state: minimized</label></div>
-          <div><label><input type="radio" name="update_window_option" value="state_maximized"> state: maximized</label></div>
-          <div><label><input type="radio" name="update_window_option" value="state_fullscreen"> state: fullscreen</label></div>
-          <div><label><input type="radio" name="update_window_option" value="state_locked_fullscreen"> state: locked-fullscreen</label></div>
-          <div><label><input type="radio" name="update_window_option" value="drawAttention_true"> drawAttention: true</label></div>
-          <div><label><input type="radio" name="update_window_option" value="drawAttention_false"> drawAttention: false</label></div>
+          <div>
+            <label><input type="radio" name="update_window_option" value="focus" checked>focus:</label>
+            <div id="focus_options" style="display: none; padding-left: 20px;">
+              <label><input type="radio" name="focus_value" value="true" checked>true</label>
+              <label><input type="radio" name="focus_value" value="false">false</label>
+            </div>
+          </div>
+          <div>
+            <label><input type="radio" name="update_window_option" value="resize">resize:</label>
+            <div id="resize_options" style="display: none; padding-left: 20px;">
+              <label>left:<input type="number" id="resize_left" value="50" style="width: 6ch;"></label><br>
+              <label>top:<input type="number" id="resize_top" value="100" style="width: 6ch;"></label><br>
+              <label>width:<input type="number" id="resize_width" value="800" style="width: 6ch;"></label><br>
+              <label>height:<input type="number" id="resize_height" value="600" style="width: 6ch;"></label>
+            </div>
+          </div>
+          <div>
+            <label><input type="radio" name="update_window_option" value="state">state:</label>
+            <div id="state_options" style="display: none; padding-left: 20px;">
+              <label><input type="radio" name="state_value" value="normal" checked>normal</label><br>
+              <label><input type="radio" name="state_value" value="minimized">minimized</label><br>
+              <label><input type="radio" name="state_value" value="maximized">maximized</label><br>
+              <label><input type="radio" name="state_value" value="fullscreen">fullscreen</label><br>
+              <label><input type="radio" name="state_value" value="locked-fullscreen">locked-fullscreen</label>
+            </div>
+          </div>
+          <div>
+            <label><input type="radio" name="update_window_option" value="drawAttention">drawAttention:</label>
+            <div id="drawAttention_options" style="display: none; padding-left: 20px;">
+              <label><input type="radio" name="drawAttention_value" value="true" checked>true</label><br>
+              <label><input type="radio" name="drawAttention_value" value="false">false</label>
+            </div>
+          </div>
         </div>
       </li>
     </details>
diff --git a/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.js b/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.js
index a73b83b6..1b73bab5 100644
--- a/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.js
+++ b/chrome/browser/ui/android/extensions/windowing/test/test_extension/default_popup.js
@@ -38,26 +38,21 @@
         'input[name="update_window_option"]:checked').value;
 
     switch (option) {
-        case "focused_true":
-            return { focused: true };
-        case "focused_false":
-            return { focused: false };
-        case "resize_100_600_400_800":
-            return { left: 100, top: 600, width: 400, height: 800 };
-        case "state_normal":
-            return { state: "normal" };
-        case "state_minimized":
-            return { state: "minimized" };
-        case "state_maximized":
-            return { state: "maximized" };
-        case "state_fullscreen":
-            return { state: "fullscreen" };
-        case "state_locked_fullscreen":
-            return { state: "locked-fullscreen" };
-        case "drawAttention_true":
-            return { drawAttention: true };
-        case "drawAttention_false":
-            return { drawAttention: false };
+        case "focus":
+            const focusValue = document.querySelector('input[name="focus_value"]:checked').value === "true";
+            return { focused: focusValue };
+        case "resize":
+            const left = parseInt(document.getElementById("resize_left").value);
+            const top = parseInt(document.getElementById("resize_top").value);
+            const width = parseInt(document.getElementById("resize_width").value);
+            const height = parseInt(document.getElementById("resize_height").value);
+            return { left, top, width, height };
+        case "state":
+            const stateValue = document.querySelector('input[name="state_value"]:checked').value;
+            return { state: stateValue };
+        case "drawAttention":
+            const drawAttentionValue = document.querySelector('input[name="drawAttention_value"]:checked').value === "true";
+            return { drawAttention: drawAttentionValue };
         default:
             throw `Unsupported option: ${option}`;
     }
@@ -76,7 +71,30 @@
     }
 }
 
+// For a window update option, only show the UI elements for its parameter
+// values when that update option is selected.
+//
+// For example, the "focus" option has parameter value "true" or "false".
+// We only show the radio buttons to select "true" or "false" when "focus"
+// is selected.
+function updateVisibilityForWindowUpdateOptions() {
+    const options = {
+        'focus': 'focus_options',
+        'resize': 'resize_options',
+        'state': 'state_options',
+        'drawAttention': 'drawAttention_options',
+    };
+
+    const checkedValue = document.querySelector('input[name="update_window_option"]:checked').value;
+
+    for (const option in options) {
+        document.getElementById(options[option]).style.display =
+            (option === checkedValue) ? 'block' : 'none';
+    }
+}
+
 await initWindowIdTextInput();
+updateVisibilityForWindowUpdateOptions();
 
 document.getElementById("get_all_windows_button").onclick = async () => {
     const windows = await chrome.windows.getAll(windowQueryOptions);
@@ -132,3 +150,5 @@
         setApiReturnValue(`${error}`);
     }
 };
+
+document.getElementById('update_window_options_radio_group').addEventListener('change', updateVisibilityForWindowUpdateOptions);
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
index a99c68e..e26f70a 100644
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
@@ -543,6 +543,7 @@
     "//chrome/browser/tabmodel:java",
     "//chrome/browser/tabwindow:java",
     "//chrome/browser/ui/android/favicon:java",
+    "//chrome/browser/ui/android/layouts:java",
     "//chrome/browser/ui/android/theme:java",
     "//chrome/browser/ui/android/toolbar:java",
     "//chrome/browser/user_education:java",
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
index 53b545a..a5e86ce 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -30,6 +30,7 @@
 import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition;
 import org.chromium.chrome.browser.browser_controls.BrowserStateBrowserControlsVisibilityDelegate;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.layouts.toolbar.ToolbarWidthConsumer;
 import org.chromium.chrome.browser.lens.LensController;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.NativeInitObserver;
@@ -930,4 +931,36 @@
             getNavigationFulfillmentTypeSupplier() {
         return mLocationBarMediator.getNavigationFulfillmentTypeSupplier();
     }
+
+    /**
+     * Returns a {@link ToolbarWidthConsumer} that handles width on the toolbar allocated to showing
+     * the bookmark button on the omnibox.
+     */
+    public ToolbarWidthConsumer getBookmarkButtonToolbarWidthConsumer() {
+        return mLocationBarMediator.getBookmarkButtonToolbarWidthConsumer();
+    }
+
+    /**
+     * Returns a {@link ToolbarWidthConsumer} that handles width on the toolbar allocated to showing
+     * the install button on the omnibox.
+     */
+    public ToolbarWidthConsumer getInstallButtonToolbarWidthConsumer() {
+        return mLocationBarMediator.getInstallButtonToolbarWidthConsumer();
+    }
+
+    /**
+     * Returns a {@link ToolbarWidthConsumer} that handles width on the toolbar allocated to showing
+     * the mic button on the omnibox.
+     */
+    public ToolbarWidthConsumer getMicButtonToolbarWidthConsumer() {
+        return mLocationBarMediator.getMicButtonToolbarWidthConsumer();
+    }
+
+    /**
+     * Returns a {@link ToolbarWidthConsumer} that handles width on the toolbar allocated to showing
+     * the lens button on the omnibox.
+     */
+    public ToolbarWidthConsumer getLensButtonToolbarWidthConsumer() {
+        return mLocationBarMediator.getLensButtonToolbarWidthConsumer();
+    }
 }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
index b8c37acc..2038147f 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -52,6 +52,7 @@
 import org.chromium.chrome.browser.device.DeviceClassManager;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.chrome.browser.layouts.toolbar.ToolbarWidthConsumer;
 import org.chromium.chrome.browser.lens.LensController;
 import org.chromium.chrome.browser.lens.LensEntryPoint;
 import org.chromium.chrome.browser.lens.LensIntentParams;
@@ -102,6 +103,7 @@
 import org.chromium.url.GURL;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import java.util.function.BooleanSupplier;
 import java.util.function.Supplier;
@@ -228,6 +230,11 @@
     private final ObservableSupplier<@NavigationFulfillmentType Integer>
             mNavigationFulfillmentTypeSupplier;
 
+    private final ButtonToolbarWidthConsumer mBookmarkButtonToolbarWidthConsumer;
+    private final ButtonToolbarWidthConsumer mInstallButtonToolbarWidthConsumer;
+    private final ButtonToolbarWidthConsumer mMicButtonToolbarWidthConsumer;
+    private final ButtonToolbarWidthConsumer mLensButtonToolbarWidthConsumer;
+
     /*package */ LocationBarMediator(
             Context context,
             LocationBarLayout locationBarLayout,
@@ -276,6 +283,23 @@
         mNavigationFulfillmentTypeSupplier.addObserver(
                 mCallbackController.makeCancelable((v) -> updateButtonVisibility()));
         AppBannerManager.addObserver(this);
+
+        mBookmarkButtonToolbarWidthConsumer =
+                new ButtonToolbarWidthConsumer(
+                        mContext,
+                        this::shouldShowBookmarkButton,
+                        this::updateBookmarkButtonVisibility);
+        mInstallButtonToolbarWidthConsumer =
+                new ButtonToolbarWidthConsumer(
+                        mContext,
+                        this::shouldShowInstallButton,
+                        this::updateInstallButtonVisibility);
+        mMicButtonToolbarWidthConsumer =
+                new ButtonToolbarWidthConsumer(
+                        mContext, this::shouldShowMicButton, this::updateMicButtonVisibility);
+        mLensButtonToolbarWidthConsumer =
+                new ButtonToolbarWidthConsumer(
+                        mContext, this::shouldShowLensButton, this::updateLensButtonVisibility);
     }
 
     /**
@@ -1171,7 +1195,8 @@
 
     // Private methods
 
-    private void setProfile(Profile profile) {
+    @VisibleForTesting
+    void setProfile(Profile profile) {
         if (profile == null || !mNativeInitialized) return;
 
         mIsComposeplateEnabled = ComposeplateUtils.isComposeplateEnabled(mIsTablet, profile);
@@ -1261,7 +1286,8 @@
     }
 
     private void setMicButtonVisibility(boolean shouldShowMicButton) {
-        mLocationBarLayout.setMicButtonVisibility(shouldShowMicButton);
+        mLocationBarLayout.setMicButtonVisibility(
+                shouldShowMicButton && mMicButtonToolbarWidthConsumer.hasSpaceToShow());
     }
 
     private void updateLensButtonVisibility() {
@@ -1271,7 +1297,8 @@
 
     private void setLensButtonVisibility(boolean shouldShowLensButton) {
         LensMetrics.recordShown(LensEntryPoint.OMNIBOX, shouldShowLensButton);
-        mLocationBarLayout.setLensButtonVisibility(shouldShowLensButton);
+        mLocationBarLayout.setLensButtonVisibility(
+                shouldShowLensButton && mLensButtonToolbarWidthConsumer.hasSpaceToShow());
     }
 
     /** Updates the display of the composeplate button. */
@@ -1305,7 +1332,8 @@
      * and is only shown when the omnibox is unfocused; the URL action container is hidden when the
      * omnibox is unfocused on phones.
      */
-    private boolean shouldShowInstallButton() {
+    @VisibleForTesting
+    boolean shouldShowInstallButton() {
         if (mUrlHasFocus || mIsUrlFocusChangeInProgress) return false;
 
         WebContents webContents = getWebContentsForCurrentTab();
@@ -1316,21 +1344,39 @@
 
     /** Updates the visibility of the install button. */
     private void updateInstallButtonVisibility() {
-        mLocationBarLayout.setInstallButtonVisibility(shouldShowInstallButton());
+        setInstallButtonVisibility(shouldShowInstallButton());
+    }
+
+    private void setInstallButtonVisibility(boolean shouldShowInstallButton) {
+        mLocationBarLayout.setInstallButtonVisibility(
+                shouldShowInstallButton && mInstallButtonToolbarWidthConsumer.hasSpaceToShow());
     }
 
     private void updateTabletButtonsVisibility() {
         assert mIsTablet;
+        updateBookmarkButtonVisibility();
+    }
+
+    private void updateBookmarkButtonVisibility() {
+        setBookmarkButtonVisibility(shouldShowBookmarkButton());
+    }
+
+    private void setBookmarkButtonVisibility(boolean shouldShowBookmarkButton) {
         LocationBarTablet locationBarTablet = (LocationBarTablet) mLocationBarLayout;
-        boolean showBookmarkButton =
-                mShouldShowButtonsWhenUnfocused && shouldShowPageActionButtons();
-        locationBarTablet.setBookmarkButtonVisibility(showBookmarkButton);
+        locationBarTablet.setBookmarkButtonVisibility(
+                shouldShowBookmarkButton && mBookmarkButtonToolbarWidthConsumer.hasSpaceToShow());
+    }
+
+    @VisibleForTesting
+    boolean shouldShowBookmarkButton() {
+        return mShouldShowButtonsWhenUnfocused && shouldShowPageActionButtons();
     }
 
     /**
      * @return Whether the delete button should be shown.
      */
-    private boolean shouldShowDeleteButton() {
+    @VisibleForTesting
+    boolean shouldShowDeleteButton() {
         // Show the delete button at the end when the bar has focus and has some text.
         boolean hasText =
                 mUrlCoordinator != null
@@ -1940,4 +1986,70 @@
     public void onSearchBoxHintTextChanged(String newHintText) {
         mUrlCoordinator.setUrlBarHintText(newHintText);
     }
+
+    /* package */ ToolbarWidthConsumer getBookmarkButtonToolbarWidthConsumer() {
+        return mBookmarkButtonToolbarWidthConsumer;
+    }
+
+    /* package */ ToolbarWidthConsumer getInstallButtonToolbarWidthConsumer() {
+        return mInstallButtonToolbarWidthConsumer;
+    }
+
+    /* package */ ToolbarWidthConsumer getMicButtonToolbarWidthConsumer() {
+        return mMicButtonToolbarWidthConsumer;
+    }
+
+    /* package */ ToolbarWidthConsumer getLensButtonToolbarWidthConsumer() {
+        return mLensButtonToolbarWidthConsumer;
+    }
+
+    private static class ButtonToolbarWidthConsumer implements ToolbarWidthConsumer {
+        private final int mButtonWidth;
+        private final Supplier<Boolean> mShouldShowButton;
+        private final Runnable mUpdateButtonVisibility;
+        private boolean mHasSpaceToShow;
+
+        ButtonToolbarWidthConsumer(
+                Context context,
+                Supplier<Boolean> shouldShowButton,
+                Runnable updateButtonVisibility) {
+            mShouldShowButton = shouldShowButton;
+            mUpdateButtonVisibility = updateButtonVisibility;
+            mButtonWidth =
+                    context.getResources()
+                            .getDimensionPixelSize(R.dimen.location_bar_action_icon_width);
+        }
+
+        boolean hasSpaceToShow() {
+            if (!ChromeFeatureList.sToolbarTabletResizeRefactor.isEnabled()) {
+                return true;
+            }
+            return mHasSpaceToShow;
+        }
+
+        @Override
+        public boolean isVisible() {
+            return mHasSpaceToShow && mShouldShowButton.get();
+        }
+
+        @Override
+        public int updateVisibility(int availableWidth) {
+            assert ChromeFeatureList.sToolbarTabletResizeRefactor.isEnabled();
+
+            if (mShouldShowButton.get() && availableWidth >= mButtonWidth) {
+                mHasSpaceToShow = true;
+                mUpdateButtonVisibility.run();
+                return mButtonWidth;
+            }
+            mHasSpaceToShow = false;
+            mUpdateButtonVisibility.run();
+            return 0;
+        }
+
+        @Override
+        public int updateVisibilityWithAnimation(
+                int availableWidth, Collection<Animator> animators) {
+            return updateVisibility(availableWidth);
+        }
+    }
 }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java
index 51c6c43..e59f1bb 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java
@@ -69,6 +69,7 @@
 import org.chromium.chrome.browser.composeplate.ComposeplateUtils;
 import org.chromium.chrome.browser.composeplate.ComposeplateUtilsJni;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.layouts.toolbar.ToolbarWidthConsumer;
 import org.chromium.chrome.browser.lens.LensController;
 import org.chromium.chrome.browser.locale.LocaleManager;
 import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState;
@@ -228,6 +229,7 @@
     @Mock private BrowserControlsStateProvider mBrowserControlsStateProvider;
     @Mock private AppBannerManager mAppBannerManager;
     @Mock private AppBannerManager.Natives mAppBannerManagerJni;
+    @Mock private NewTabPageDelegate mNewTabPageDelegate;
 
     @Captor private ArgumentCaptor<Runnable> mRunnableCaptor;
     @Captor private ArgumentCaptor<LoadUrlParams> mLoadUrlParamsCaptor;
@@ -253,6 +255,7 @@
         SearchEngineUtils.setInstanceForTesting(mSearchEngineUtils);
         doReturn(mUrlBarData).when(mLocationBarDataProvider).getUrlBarData();
         doReturn(mTab).when(mLocationBarDataProvider).getTab();
+        doReturn(mNewTabPageDelegate).when(mLocationBarDataProvider).getNewTabPageDelegate();
         doReturn(mWebContents).when(mTab).getWebContents();
         doReturn(mTabModelSelector).when(mTabModelSelectorSupplier).get();
         doReturn(mRootView).when(mLocationBarLayout).getRootView();
@@ -1763,4 +1766,111 @@
         mMediator.hintZeroSuggestRefresh();
         verify(mAutocompleteCoordinator).prefetchZeroSuggestResults(null);
     }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.TOOLBAR_TABLET_RESIZE_REFACTOR)
+    public void testMicButtonToolbarWidthConsumer() {
+        int buttonWidth =
+                mContext.getResources()
+                        .getDimensionPixelSize(R.dimen.location_bar_action_icon_width);
+        assertFalse(mTabletMediator.shouldShowMicButton());
+
+        VoiceRecognitionHandler voiceRecognitionHandler = mock(VoiceRecognitionHandler.class);
+        mTabletMediator.setVoiceRecognitionHandlerForTesting(voiceRecognitionHandler);
+        mTabletMediator.onFinishNativeInitialization();
+        mTabletMediator.setShouldShowButtonsWhenUnfocusedForTablet(true);
+        doReturn(true).when(voiceRecognitionHandler).isVoiceSearchEnabled();
+        mTabletMediator.onUrlFocusChange(true);
+
+        assertTrue(mTabletMediator.shouldShowMicButton());
+
+        ToolbarWidthConsumer micButtonConsumer = mTabletMediator.getMicButtonToolbarWidthConsumer();
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        micButtonConsumer.updateVisibility(buttonWidth);
+        verify(mLocationBarTablet).setMicButtonVisibility(true);
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        micButtonConsumer.updateVisibility(0);
+        verify(mLocationBarTablet).setMicButtonVisibility(false);
+        Mockito.clearInvocations(mLocationBarTablet);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.TOOLBAR_TABLET_RESIZE_REFACTOR)
+    public void testLensButtonToolbarWidthConsumer() {
+        int buttonWidth =
+                mContext.getResources()
+                        .getDimensionPixelSize(R.dimen.location_bar_action_icon_width);
+        assertFalse(mTabletMediator.shouldShowLensButton());
+
+        mTabletMediator.onFinishNativeInitialization();
+        mTabletMediator.resetLastCachedIsLensOnOmniboxEnabledForTesting();
+        doReturn(true).when(mLensController).isLensEnabled(any());
+        mUiOverrides.setLensEntrypointAllowed(true);
+        mTabletMediator.setLensControllerForTesting(mLensController);
+        mTabletMediator.onUrlFocusChange(true);
+
+        assertTrue(mTabletMediator.shouldShowLensButton());
+
+        ToolbarWidthConsumer lensButtonConsumer =
+                mTabletMediator.getLensButtonToolbarWidthConsumer();
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        lensButtonConsumer.updateVisibility(buttonWidth);
+        verify(mLocationBarTablet).setLensButtonVisibility(true);
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        lensButtonConsumer.updateVisibility(0);
+        verify(mLocationBarTablet).setLensButtonVisibility(false);
+        Mockito.clearInvocations(mLocationBarTablet);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.TOOLBAR_TABLET_RESIZE_REFACTOR)
+    public void testBookmarkButtonToolbarWidthConsumer() {
+        int buttonWidth =
+                mContext.getResources()
+                        .getDimensionPixelSize(R.dimen.location_bar_action_icon_width);
+        mTabletMediator.onFinishNativeInitialization();
+        assertTrue(mTabletMediator.shouldShowBookmarkButton());
+
+        ToolbarWidthConsumer bookmarkButtonConsumer =
+                mTabletMediator.getBookmarkButtonToolbarWidthConsumer();
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        bookmarkButtonConsumer.updateVisibility(buttonWidth);
+        assertTrue(mTabletMediator.shouldShowBookmarkButton());
+        verify(mLocationBarTablet).setBookmarkButtonVisibility(true);
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        bookmarkButtonConsumer.updateVisibility(0);
+        verify(mLocationBarTablet).setBookmarkButtonVisibility(false);
+        Mockito.clearInvocations(mLocationBarTablet);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.TOOLBAR_TABLET_RESIZE_REFACTOR)
+    public void testInstallButtonToolbarWidthConsumer() {
+        int buttonWidth =
+                mContext.getResources()
+                        .getDimensionPixelSize(R.dimen.location_bar_action_icon_width);
+        mTabletMediator.onFinishNativeInitialization();
+        assertFalse(mTabletMediator.shouldShowInstallButton());
+
+        doReturn(true).when(mAppBannerManagerJni).isProbablyPromotable(mWebContents);
+        assertTrue(mTabletMediator.shouldShowInstallButton());
+
+        ToolbarWidthConsumer installButtonConsumer =
+                mTabletMediator.getInstallButtonToolbarWidthConsumer();
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        installButtonConsumer.updateVisibility(buttonWidth);
+        verify(mLocationBarTablet).setInstallButtonVisibility(true);
+        Mockito.clearInvocations(mLocationBarTablet);
+
+        installButtonConsumer.updateVisibility(0);
+        verify(mLocationBarTablet).setInstallButtonVisibility(false);
+        Mockito.clearInvocations(mLocationBarTablet);
+    }
 }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java
index dcb4422..b71fedfc 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java
@@ -246,6 +246,8 @@
     }
 
     /* package */ void setBookmarkButtonVisibility(boolean showBookmarkButton) {
+        // The button may be null if this method is called before initialization is finished.
+        if (mBookmarkButton == null) return;
         mBookmarkButton.setVisibility(showBookmarkButton ? View.VISIBLE : View.GONE);
     }
 
diff --git a/chrome/browser/ui/android/tab_model/BUILD.gn b/chrome/browser/ui/android/tab_model/BUILD.gn
index 30f8863..e995a61 100644
--- a/chrome/browser/ui/android/tab_model/BUILD.gn
+++ b/chrome/browser/ui/android/tab_model/BUILD.gn
@@ -56,6 +56,7 @@
     "//chrome/browser/profiles:profile",
     "//chrome/browser/sessions",
     "//chrome/browser/sync",
+    "//chrome/browser/tab",
     "//chrome/browser/ui:browser_navigator_params_headers",
     "//components/content_settings/core/browser",
     "//content/public/browser",
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java
index 25dadc14..d5edaeafe 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java
@@ -140,6 +140,15 @@
         mLocationBar = locationBarCoordinator;
         final @ColorInt int color = SemanticColorUtils.getColorSurfaceContainer(getContext());
         mLocationBar.getTabletCoordinator().tintBackground(color);
+
+        mToolbarWidthConsumers[ToolbarComponentId.OMNIBOX_BOOKMARK] =
+                mLocationBar.getBookmarkButtonToolbarWidthConsumer();
+        mToolbarWidthConsumers[ToolbarComponentId.OMNIBOX_INSTALL] =
+                mLocationBar.getInstallButtonToolbarWidthConsumer();
+        mToolbarWidthConsumers[ToolbarComponentId.OMNIBOX_MIC] =
+                mLocationBar.getMicButtonToolbarWidthConsumer();
+        mToolbarWidthConsumers[ToolbarComponentId.OMNIBOX_LENS] =
+                mLocationBar.getLensButtonToolbarWidthConsumer();
     }
 
     @Override
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTabletUnitTest.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTabletUnitTest.java
index a364606..43b9501 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTabletUnitTest.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTabletUnitTest.java
@@ -27,6 +27,10 @@
 import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.HOME;
 import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.INCOGNITO_INDICATOR;
 import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.MENU;
+import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.OMNIBOX_BOOKMARK;
+import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.OMNIBOX_INSTALL;
+import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.OMNIBOX_LENS;
+import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.OMNIBOX_MIC;
 import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.PADDING;
 import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.RELOAD;
 import static org.chromium.chrome.browser.toolbar.top.ToolbarUtils.ToolbarComponentId.TAB_SWITCHER;
@@ -65,6 +69,7 @@
 import org.chromium.base.test.util.Features.DisableFeatures;
 import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.layouts.toolbar.ToolbarWidthConsumer;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.omnibox.LocationBarCoordinator;
 import org.chromium.chrome.browser.omnibox.LocationBarCoordinatorTablet;
@@ -129,6 +134,10 @@
     @Mock private ThemeColorProvider mThemeColorProvider;
     @Mock private IncognitoStateProvider mIncognitoStateProvider;
     @Mock private NavigationPopup.HistoryDelegate mHistoryDelegate;
+    @Mock private ToolbarWidthConsumer mLocationBarBookmarkButtonWidthConsumer;
+    @Mock private ToolbarWidthConsumer mLocationBarInstallButtonWidthConsumer;
+    @Mock private ToolbarWidthConsumer mLocationBarMicButtonWidthConsumer;
+    @Mock private ToolbarWidthConsumer mLocationBarLensButtonWidthConsumer;
 
     private Activity mActivity;
     private ToolbarTablet mToolbarTablet;
@@ -178,6 +187,14 @@
                         mActivity.getLayoutInflater().inflate(R.layout.toolbar_tablet, null);
         mToolbarTablet = Mockito.spy(realView);
         when(mLocationBar.getTabletCoordinator()).thenReturn(mLocationBarTablet);
+        when(mLocationBar.getBookmarkButtonToolbarWidthConsumer())
+                .thenReturn(mLocationBarBookmarkButtonWidthConsumer);
+        when(mLocationBar.getInstallButtonToolbarWidthConsumer())
+                .thenReturn(mLocationBarInstallButtonWidthConsumer);
+        when(mLocationBar.getMicButtonToolbarWidthConsumer())
+                .thenReturn(mLocationBarMicButtonWidthConsumer);
+        when(mLocationBar.getLensButtonToolbarWidthConsumer())
+                .thenReturn(mLocationBarLensButtonWidthConsumer);
         mToolbarTablet.setLocationBarCoordinator(mLocationBar);
         LocationBarLayout locationBarLayout = mToolbarTablet.findViewById(R.id.location_bar);
         locationBarLayout.setStatusCoordinatorForTesting(mStatusCoordinator);
@@ -235,6 +252,11 @@
         doReturn(buttonWidth * 3).when(mIncognitoIndicatorCoordinator).updateVisibility(anyInt());
         doReturn(false).when(mIncognitoIndicatorCoordinator).needsUpdateBeforeShowing();
 
+        mockToolbarWidthConsumer(mLocationBarBookmarkButtonWidthConsumer, buttonWidth);
+        mockToolbarWidthConsumer(mLocationBarInstallButtonWidthConsumer, buttonWidth);
+        mockToolbarWidthConsumer(mLocationBarMicButtonWidthConsumer, buttonWidth);
+        mockToolbarWidthConsumer(mLocationBarLensButtonWidthConsumer, buttonWidth);
+
         mForwardButtonCoordinator =
                 new ForwardButtonCoordinator(
                         mActivity,
@@ -249,6 +271,11 @@
         mToolbarTablet.setForwardButtonCoordinatorForTesting(mForwardButtonCoordinator);
     }
 
+    private static void mockToolbarWidthConsumer(ToolbarWidthConsumer consumer, int width) {
+        doReturn(width).when(consumer).updateVisibility(geq(width));
+        doReturn(0).when(consumer).updateVisibility(lt(width));
+    }
+
     @After
     public void tearDown() {
         ToastManager.resetForTesting();
@@ -877,7 +904,26 @@
                         ADAPTIVE_BUTTON,
                         INCOGNITO_INDICATOR,
                         TAB_SWITCHER,
-                        MENU));
+                        MENU,
+                        OMNIBOX_BOOKMARK));
+
+        mToolbarTablet.onMeasure(
+                MeasureSpec.makeMeasureSpec(
+                        12 * buttonWidth + locationBarMidWidth + padding, EXACTLY),
+                UNSPECIFIED);
+        assertToolbarComponentsReceivedWidth(
+                Set.of(
+                        PADDING,
+                        HOME,
+                        BACK,
+                        FORWARD,
+                        RELOAD,
+                        ADAPTIVE_BUTTON,
+                        INCOGNITO_INDICATOR,
+                        TAB_SWITCHER,
+                        MENU,
+                        OMNIBOX_BOOKMARK,
+                        OMNIBOX_INSTALL));
     }
 
     @SuppressLint("WrongCall")
@@ -903,6 +949,24 @@
 
         mToolbarTablet.onMeasure(
                 MeasureSpec.makeMeasureSpec(
+                        12 * buttonWidth + locationBarMidWidth + padding, EXACTLY),
+                UNSPECIFIED);
+        assertToolbarComponentsReceivedWidth(
+                Set.of(
+                        PADDING,
+                        HOME,
+                        BACK,
+                        FORWARD,
+                        RELOAD,
+                        ADAPTIVE_BUTTON,
+                        INCOGNITO_INDICATOR,
+                        TAB_SWITCHER,
+                        MENU,
+                        OMNIBOX_BOOKMARK,
+                        OMNIBOX_INSTALL));
+
+        mToolbarTablet.onMeasure(
+                MeasureSpec.makeMeasureSpec(
                         11 * buttonWidth + locationBarMidWidth + padding, EXACTLY),
                 UNSPECIFIED);
         assertToolbarComponentsReceivedWidth(
@@ -915,7 +979,8 @@
                         ADAPTIVE_BUTTON,
                         INCOGNITO_INDICATOR,
                         TAB_SWITCHER,
-                        MENU));
+                        MENU,
+                        OMNIBOX_BOOKMARK));
 
         mToolbarTablet.onMeasure(
                 MeasureSpec.makeMeasureSpec(
@@ -1058,7 +1123,8 @@
                         RELOAD,
                         INCOGNITO_INDICATOR,
                         TAB_SWITCHER,
-                        MENU));
+                        MENU,
+                        OMNIBOX_BOOKMARK));
 
         // The optional / adaptive button should start showing again after being updated.
         updateOptionalButton(
@@ -1136,12 +1202,42 @@
             verify(mMenuButtonCoordinator, never()).updateVisibility(geq(buttonWidth));
         }
 
+        if (visibleComponents.contains(OMNIBOX_BOOKMARK)) {
+            verify(mLocationBarBookmarkButtonWidthConsumer).updateVisibility(geq(buttonWidth));
+        } else {
+            verify(mLocationBarBookmarkButtonWidthConsumer, never())
+                    .updateVisibility(geq(buttonWidth));
+        }
+
+        if (visibleComponents.contains(OMNIBOX_INSTALL)) {
+            verify(mLocationBarInstallButtonWidthConsumer).updateVisibility(geq(buttonWidth));
+        } else {
+            verify(mLocationBarInstallButtonWidthConsumer, never())
+                    .updateVisibility(geq(buttonWidth));
+        }
+
+        if (visibleComponents.contains(OMNIBOX_MIC)) {
+            verify(mLocationBarMicButtonWidthConsumer).updateVisibility(geq(buttonWidth));
+        } else {
+            verify(mLocationBarMicButtonWidthConsumer, never()).updateVisibility(geq(buttonWidth));
+        }
+
+        if (visibleComponents.contains(OMNIBOX_LENS)) {
+            verify(mLocationBarLensButtonWidthConsumer).updateVisibility(geq(buttonWidth));
+        } else {
+            verify(mLocationBarLensButtonWidthConsumer, never()).updateVisibility(geq(buttonWidth));
+        }
+
         Mockito.clearInvocations(
                 mHomeButtonCoordinator,
                 mBackButtonCoordinator,
                 mReloadButtonCoordinator,
                 mTabSwitcherButtonCoordinator,
-                mMenuButtonCoordinator);
+                mMenuButtonCoordinator,
+                mLocationBarBookmarkButtonWidthConsumer,
+                mLocationBarInstallButtonWidthConsumer,
+                mLocationBarMicButtonWidthConsumer,
+                mLocationBarLensButtonWidthConsumer);
 
         // Replace with a mock when the ForwardButtonCoordinator has its own unit tests.
         assertEquals(
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarUtils.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarUtils.java
index 4b70837a..75f9d33 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarUtils.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarUtils.java
@@ -42,11 +42,17 @@
                 ToolbarComponentId.RELOAD,
                 ToolbarComponentId.FORWARD,
                 ToolbarComponentId.HOME,
+                ToolbarComponentId.OMNIBOX_BOOKMARK,
+                ToolbarComponentId.OMNIBOX_INSTALL,
+                ToolbarComponentId.OMNIBOX_MIC,
+                ToolbarComponentId.OMNIBOX_LENS,
             };
 
     public static final @ToolbarComponentId int[] APP_MENU_ICON_ROW_COMPONENTS =
             new int[] {
-                ToolbarComponentId.RELOAD, ToolbarComponentId.FORWARD,
+                ToolbarComponentId.RELOAD,
+                ToolbarComponentId.FORWARD,
+                ToolbarComponentId.OMNIBOX_BOOKMARK
             };
 
     @IntDef({
@@ -55,6 +61,10 @@
         ToolbarComponentId.FORWARD,
         ToolbarComponentId.RELOAD,
         ToolbarComponentId.LOCATION_BAR_MINIMUM,
+        ToolbarComponentId.OMNIBOX_BOOKMARK,
+        ToolbarComponentId.OMNIBOX_INSTALL,
+        ToolbarComponentId.OMNIBOX_MIC,
+        ToolbarComponentId.OMNIBOX_LENS,
         ToolbarComponentId.ADAPTIVE_BUTTON,
         ToolbarComponentId.INCOGNITO_INDICATOR,
         ToolbarComponentId.TAB_SWITCHER,
@@ -69,12 +79,16 @@
         int FORWARD = 2;
         int RELOAD = 3;
         int LOCATION_BAR_MINIMUM = 4;
-        int ADAPTIVE_BUTTON = 5;
-        int INCOGNITO_INDICATOR = 6;
-        int TAB_SWITCHER = 7;
-        int MENU = 8;
-        int PADDING = 9;
-        int COUNT = 10;
+        int OMNIBOX_BOOKMARK = 5;
+        int OMNIBOX_INSTALL = 6;
+        int OMNIBOX_MIC = 7;
+        int OMNIBOX_LENS = 8;
+        int ADAPTIVE_BUTTON = 9;
+        int INCOGNITO_INDICATOR = 10;
+        int TAB_SWITCHER = 11;
+        int MENU = 12;
+        int PADDING = 13;
+        int COUNT = 14;
     }
 
     /**
diff --git a/chrome/browser/ui/ash/login/BUILD.gn b/chrome/browser/ui/ash/login/BUILD.gn
index 17b5a539..85130609 100644
--- a/chrome/browser/ui/ash/login/BUILD.gn
+++ b/chrome/browser/ui/ash/login/BUILD.gn
@@ -143,7 +143,6 @@
     "//chromeos/ash/components/network",
     "//chromeos/ash/components/osauth/public",
     "//chromeos/ash/components/settings",
-    "//chromeos/ash/components/settings",
     "//chromeos/ash/components/timezone",
     "//components/captive_portal/core",
     "//components/constrained_window",
@@ -219,6 +218,7 @@
   deps = [
     "//chrome/browser/ui",
     "//chrome/browser/ui/webui/ash/login",
+    "//chrome/test:test_support",
     "//components/session_manager/core",
     "//components/session_manager/core:test_support",
   ]
diff --git a/chrome/browser/ui/ash/login/fake_login_display_host.cc b/chrome/browser/ui/ash/login/fake_login_display_host.cc
index 459c36d..5d52a2d5 100644
--- a/chrome/browser/ui/ash/login/fake_login_display_host.cc
+++ b/chrome/browser/ui/ash/login/fake_login_display_host.cc
@@ -7,6 +7,7 @@
 #include "base/notreached.h"
 #include "chrome/browser/ash/login/wizard_controller.h"
 #include "chrome/browser/ui/webui/ash/login/user_creation_screen_handler.h"
+#include "chrome/test/base/testing_browser_process.h"
 #include "components/session_manager/core/fake_session_manager_delegate.h"
 #include "components/session_manager/core/session_manager.h"
 
@@ -28,9 +29,11 @@
   void HideImpl() override {}
 };
 
-FakeLoginDisplayHost::FakeLoginDisplayHost()
+FakeLoginDisplayHost::FakeLoginDisplayHost(PrefService* local_state)
     : wizard_context_(std::make_unique<WizardContext>()),
-      oobe_metrics_helper_(std::make_unique<OobeMetricsHelper>()) {
+      oobe_metrics_helper_(std::make_unique<OobeMetricsHelper>(
+          local_state ? local_state
+                      : TestingBrowserProcess::GetGlobal()->local_state())) {
   // Only one SessionManager can be instantiated at a time. Check to see if one
   // has already been instantiated before creating one.
   if (!session_manager::SessionManager::Get()) {
diff --git a/chrome/browser/ui/ash/login/fake_login_display_host.h b/chrome/browser/ui/ash/login/fake_login_display_host.h
index 52b0c19..38f32a40 100644
--- a/chrome/browser/ui/ash/login/fake_login_display_host.h
+++ b/chrome/browser/ui/ash/login/fake_login_display_host.h
@@ -12,6 +12,8 @@
 #include "chrome/browser/ui/ash/login/login_display_host.h"
 #include "components/user_manager/user_type.h"
 
+class PrefService;
+
 namespace session_manager {
 class SessionManager;
 }
@@ -20,7 +22,7 @@
 
 class FakeLoginDisplayHost : public LoginDisplayHost {
  public:
-  FakeLoginDisplayHost();
+  explicit FakeLoginDisplayHost(PrefService* local_state = nullptr);
 
   FakeLoginDisplayHost(const FakeLoginDisplayHost&) = delete;
   FakeLoginDisplayHost& operator=(const FakeLoginDisplayHost&) = delete;
diff --git a/chrome/browser/ui/ash/login/login_display_host_common.cc b/chrome/browser/ui/ash/login/login_display_host_common.cc
index 4c3a9a2..cc7f5644 100644
--- a/chrome/browser/ui/ash/login/login_display_host_common.cc
+++ b/chrome/browser/ui/ash/login/login_display_host_common.cc
@@ -21,6 +21,7 @@
 #include "base/functional/callback_helpers.h"
 #include "base/notreached.h"
 #include "base/task/single_thread_task_runner.h"
+#include "base/types/pass_key.h"
 #include "chrome/browser/ash/accessibility/accessibility_manager.h"
 #include "chrome/browser/ash/app_mode/kiosk_app_types.h"
 #include "chrome/browser/ash/app_mode/kiosk_controller.h"
@@ -230,7 +231,17 @@
       login_ui_pref_controller_(std::make_unique<LoginUIPrefController>(
           update_geolocation_usage_allowed)),
       wizard_context_(std::make_unique<WizardContext>()),
-      oobe_metrics_helper_(std::make_unique<OobeMetricsHelper>()) {
+      // TODO(crbug.com/446058312): OobeMetricsHelper ctor should take a
+      // `PrefService` pointer as parameter (g_browser_process->local_state()).
+      // However, given the lifecycle of LoginDisplayHostCommon (that schedules
+      // its deletion or self-deletes it), it is not trivial to ensure that
+      // this PrefService reference won't become dangling.
+      // Pass a getter callback for safity until the ownership described is
+      // reworked.
+      oobe_metrics_helper_(std::make_unique<OobeMetricsHelper>(
+          base::PassKey<LoginDisplayHostCommon>(),
+          base::BindRepeating(
+              []() { return g_browser_process->local_state(); }))) {
   if (features::IsOobeCrosEventsEnabled()) {
     oobe_cros_events_metrics_ =
         std::make_unique<OobeCrosEventsMetrics>(oobe_metrics_helper_.get());
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc
index deb531f..f3f53d7 100644
--- a/chrome/browser/ui/browser_command_controller.cc
+++ b/chrome/browser/ui/browser_command_controller.cc
@@ -1138,7 +1138,9 @@
       base::RecordAction(
           base::UserMetricsAction("TabGroups_GroupAllUngroupedTabs"));
       break;
-
+    case IDC_ADD_NEW_TAB_RECENT_GROUP:
+      AddNewTabToRecentGroup(browser_);
+      break;
     case IDC_WINDOW_CLOSE_TABS_TO_RIGHT:
       CloseTabsToRight(browser_);
       break;
@@ -1427,6 +1429,7 @@
   command_updater_.UpdateCommandEnabled(IDC_GROUP_UNGROUPED_TABS, true);
   command_updater_.UpdateCommandEnabled(IDC_CREATE_NEW_TAB_GROUP_TOP_LEVEL,
                                         true);
+  command_updater_.UpdateCommandEnabled(IDC_ADD_NEW_TAB_RECENT_GROUP, true);
 
   // Omnibox commands
   command_updater_.UpdateCommandEnabled(IDC_SHOW_FULL_URLS, true);
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
index 59fa913a..88432ac 100644
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -1543,6 +1543,31 @@
   return true;
 }
 
+void AddNewTabToRecentGroup(Browser* browser) {
+  if (!features::IsTabGroupMenuMoreEntryPointsEnabled()) {
+    return;
+  }
+
+  TabStripModel* tab_strip_model = browser->tab_strip_model();
+
+  if (!tab_strip_model->SupportsTabGroups()) {
+    return;
+  }
+
+  std::optional<tab_groups::TabGroupId> group_id = std::nullopt;
+
+  // Add the new tab to the most recently active group.
+  TabGroupModel* tab_group_model = tab_strip_model->group_model();
+  CHECK(tab_group_model);
+  group_id = tab_group_model->GetMostRecentTabGroupId();
+
+  if (!group_id) {
+    return;
+  }
+
+  AddTabAt(browser, GURL(), -1, true, group_id);
+}
+
 void MuteSite(Browser* browser) {
   browser->tab_strip_model()->ExecuteContextMenuCommand(
       browser->tab_strip_model()->active_index(),
diff --git a/chrome/browser/ui/browser_commands.h b/chrome/browser/ui/browser_commands.h
index 3809e64..1d49002 100644
--- a/chrome/browser/ui/browser_commands.h
+++ b/chrome/browser/ui/browser_commands.h
@@ -192,6 +192,8 @@
 // Takes all ungrouped tabs and places them in a new group.
 // Returns true if a group was made, and false otherwise.
 bool GroupAllUngroupedTabs(Browser* browser);
+// Creates a new tab at the end of the group which last had the active tab.
+void AddNewTabToRecentGroup(Browser* browser);
 
 void MuteSiteForKeyboardFocusedTab(Browser* browser);
 bool HasKeyboardFocusedTab(const Browser* browser);
diff --git a/chrome/browser/ui/browser_window/internal/android/android_base_window.cc b/chrome/browser/ui/browser_window/internal/android/android_base_window.cc
index 1b5351e..ab2ff058 100644
--- a/chrome/browser/ui/browser_window/internal/android/android_base_window.cc
+++ b/chrome/browser/ui/browser_window/internal/android/android_base_window.cc
@@ -141,7 +141,7 @@
 void AndroidBaseWindow::SetBounds(const gfx::Rect& bounds) {
   Java_AndroidBaseWindow_setBounds(AttachCurrentThread(),
                                    java_android_base_window_, bounds.x(),
-                                   bounds.y(), bounds.width(), bounds.height());
+                                   bounds.y(), bounds.right(), bounds.bottom());
 }
 
 void AndroidBaseWindow::FlashFrame(bool flash) {
diff --git a/chrome/browser/ui/browser_window/internal/android/android_base_window_unittest.cc b/chrome/browser/ui/browser_window/internal/android/android_base_window_unittest.cc
index 95fce12f..70aa124 100644
--- a/chrome/browser/ui/browser_window/internal/android/android_base_window_unittest.cc
+++ b/chrome/browser/ui/browser_window/internal/android/android_base_window_unittest.cc
@@ -56,6 +56,12 @@
         AttachCurrentThread(), java_test_support_, left, top, right, bottom);
   }
 
+  void InvokeJavaVerifyBoundsToSet(const gfx::Rect& bounds_to_set) const {
+    Java_AndroidBaseWindowNativeUnitTestSupport_verifyBoundsToSet(
+        AttachCurrentThread(), java_test_support_, bounds_to_set.x(),
+        bounds_to_set.y(), bounds_to_set.right(), bounds_to_set.bottom());
+  }
+
  protected:
   void SetUpJavaSupport(bool use_real_window_android) {
     java_test_support_ =
@@ -104,6 +110,19 @@
   EXPECT_EQ(expected_bounds, actual_bounds);
 }
 
+TEST_F(AndroidBaseWindowUnitTest,
+       SetBoundsMethodPassesCorrectBoundsToChromeAndroidTask) {
+  // Arrange.
+  AndroidBaseWindow* android_base_window = InvokeJavaGetOrCreateNativePtr();
+  gfx::Rect bounds_to_set(/*x=*/50, /*y=*/100, /*width=*/800, /*height=*/600);
+
+  // Act.
+  android_base_window->SetBounds(bounds_to_set);
+
+  // Assert.
+  InvokeJavaVerifyBoundsToSet(bounds_to_set);
+}
+
 // Derived fixture for tests that REQUIRE a real Java WindowAndroid.
 class AndroidBaseWindowRealWindowTest : public AndroidBaseWindowUnitTest {
  public:
diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindow.java b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindow.java
index 23e06c4..d7ec412a 100644
--- a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindow.java
+++ b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindow.java
@@ -72,14 +72,14 @@
     @CalledByNative
     @JniType("std::vector<int>")
     private int[] getRestoredBounds() {
-        Rect bounds = mChromeAndroidTask.getRestoredBounds();
+        Rect bounds = mChromeAndroidTask.getRestoredBoundsInDp();
         return new int[] {bounds.left, bounds.top, bounds.width(), bounds.height()};
     }
 
     @CalledByNative
     @JniType("std::vector<int>")
     private int[] getBounds() {
-        Rect bounds = mChromeAndroidTask.getBounds();
+        Rect bounds = mChromeAndroidTask.getBoundsInDp();
         return new int[] {bounds.left, bounds.top, bounds.width(), bounds.height()};
     }
 
@@ -129,8 +129,8 @@
     }
 
     @CalledByNative
-    private void setBounds(int left, int top, int width, int height) {
-        mChromeAndroidTask.setBounds(new Rect(left, top, width, height));
+    private void setBounds(int left, int top, int right, int bottom) {
+        mChromeAndroidTask.setBoundsInDp(new Rect(left, top, right, bottom));
     }
 
     @CalledByNative
diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java
index 7108d44..1943af0 100644
--- a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java
+++ b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java
@@ -43,6 +43,7 @@
 import org.chromium.chrome.browser.util.AndroidTaskUtils;
 import org.chromium.ui.base.ActivityWindowAndroid;
 import org.chromium.ui.display.DisplayAndroid;
+import org.chromium.ui.display.DisplayUtil;
 import org.chromium.ui.insets.InsetObserver.WindowInsetsAnimationListener;
 
 import java.lang.ref.WeakReference;
@@ -119,11 +120,11 @@
     private WeakReference<ActivityWindowAndroid> mActivityWindowAndroid = new WeakReference<>(null);
 
     /** Last Task (window) bounds updated by {@link #onConfigurationChanged(Configuration)}. */
-    private @Nullable Rect mLastBoundsOnConfigChanged;
+    private @Nullable Rect mLastBoundsInDpOnConfigChanged;
 
     /** Non-maximized bounds of the task even when currently maximized or minimized. */
     @GuardedBy("mActivityWindowAndroidLock")
-    private @Nullable Rect mRestoredBounds;
+    private @Nullable Rect mRestoredBoundsInPx;
 
     /**
      * Listener for window insets animation.
@@ -144,7 +145,7 @@
                                 getActivityWindowAndroidInternalLocked(/* assertAlive= */ true);
                         if (activityWindowAndroid == null) return;
                         mIsRestored = isRestoredInternalLocked(activityWindowAndroid);
-                        mBoundsBeforeAnimation = getBoundsInternalLocked();
+                        mBoundsBeforeAnimation = getCurrentBoundsInPxLocked(activityWindowAndroid);
                     }
                 }
 
@@ -166,7 +167,7 @@
 
                         boolean isFullscreen = isFullscreenInternalLocked(activityWindowAndroid);
                         if (mIsRestored && isFullscreen) {
-                            mRestoredBounds = mBoundsBeforeAnimation;
+                            mRestoredBoundsInPx = mBoundsBeforeAnimation;
                         }
                     }
                 }
@@ -338,9 +339,20 @@
     }
 
     @Override
-    public Rect getRestoredBounds() {
+    public Rect getRestoredBoundsInDp() {
         synchronized (mActivityWindowAndroidLock) {
-            return mRestoredBounds == null ? getBoundsInternalLocked() : mRestoredBounds;
+            var activityWindowAndroid =
+                    getActivityWindowAndroidInternalLocked(/* assertAlive= */ true);
+            if (activityWindowAndroid == null) {
+                return new Rect();
+            }
+
+            Rect restoredBoundsInPx =
+                    mRestoredBoundsInPx == null
+                            ? getCurrentBoundsInPxLocked(activityWindowAndroid)
+                            : mRestoredBoundsInPx;
+            return DisplayUtil.scaleToEnclosingRect(
+                    restoredBoundsInPx, 1.0f / activityWindowAndroid.getDisplay().getDipScale());
         }
     }
 
@@ -357,9 +369,15 @@
     }
 
     @Override
-    public Rect getBounds() {
+    public Rect getBoundsInDp() {
         synchronized (mActivityWindowAndroidLock) {
-            return getBoundsInternalLocked();
+            var activityWindowAndroid =
+                    getActivityWindowAndroidInternalLocked(/* assertAlive= */ true);
+            if (activityWindowAndroid == null) {
+                return new Rect();
+            }
+
+            return getCurrentBoundsInDpLocked(activityWindowAndroid);
         }
     }
 
@@ -412,14 +430,20 @@
         // getBoundsInternalLocked()).
         synchronized (mFeaturesLock) {
             synchronized (mActivityWindowAndroidLock) {
-                var newBounds = getBoundsInternalLocked();
-                if (newBounds.equals(mLastBoundsOnConfigChanged)) {
+                var activityWindowAndroid =
+                        getActivityWindowAndroidInternalLocked(/* assertAlive= */ true);
+                if (activityWindowAndroid == null) {
                     return;
                 }
 
-                mLastBoundsOnConfigChanged = newBounds;
+                var newBoundsInDp = getCurrentBoundsInDpLocked(activityWindowAndroid);
+                if (newBoundsInDp.equals(mLastBoundsInDpOnConfigChanged)) {
+                    return;
+                }
+
+                mLastBoundsInDpOnConfigChanged = newBoundsInDp;
                 for (var feature : mFeatures) {
-                    feature.onTaskBoundsChanged(newBounds);
+                    feature.onTaskBoundsChanged(newBoundsInDp);
                 }
             }
         }
@@ -471,10 +495,10 @@
             // No maximize action in non desktop window mode.
             if (!activity.isInMultiWindowMode()) return;
             if (isRestoredInternalLocked(activityWindowAndroid)) {
-                mRestoredBounds = getBoundsInternalLocked();
+                mRestoredBoundsInPx = getCurrentBoundsInPxLocked(activityWindowAndroid);
             }
-            Rect maximizedBounds = getMaximizedBounds(activity.getWindowManager());
-            setBoundsInternalLocked(activity, activityWindowAndroid.getDisplay(), maximizedBounds);
+            Rect maximizedBounds = getMaxBoundsInPx(activity.getWindowManager());
+            setBoundsInPxLocked(activity, activityWindowAndroid.getDisplay(), maximizedBounds);
         }
     }
 
@@ -494,7 +518,7 @@
                 return;
             }
             if (isRestoredInternalLocked(activityWindowAndroid)) {
-                mRestoredBounds = getBoundsInternalLocked();
+                mRestoredBoundsInPx = getCurrentBoundsInPxLocked(activityWindowAndroid);
             }
             getActivity(activityWindowAndroid).moveTaskToBack(/* nonRoot= */ true);
         }
@@ -507,20 +531,24 @@
                     getActivityWindowAndroidInternalLocked(/* assertAlive= */ true);
             if (activityWindowAndroid == null) return;
             Activity activity = activityWindowAndroid.getActivity().get();
-            if (activity == null || mRestoredBounds == null) return;
-            setBoundsInternalLocked(activity, activityWindowAndroid.getDisplay(), mRestoredBounds);
+            if (activity == null || mRestoredBoundsInPx == null) return;
+            setBoundsInPxLocked(activity, activityWindowAndroid.getDisplay(), mRestoredBoundsInPx);
         }
     }
 
     @Override
-    public void setBounds(Rect bounds) {
+    public void setBoundsInDp(Rect boundsInDp) {
         synchronized (mActivityWindowAndroidLock) {
             var activityWindowAndroid =
                     getActivityWindowAndroidInternalLocked(/* assertAlive= */ true);
             if (activityWindowAndroid == null) return;
             Activity activity = activityWindowAndroid.getActivity().get();
             if (activity == null) return;
-            setBoundsInternalLocked(activity, activityWindowAndroid.getDisplay(), bounds);
+
+            Rect boundsInPx =
+                    DisplayUtil.scaleToEnclosingRect(
+                            boundsInDp, activityWindowAndroid.getDisplay().getDipScale());
+            setBoundsInPxLocked(activity, activityWindowAndroid.getDisplay(), boundsInPx);
         }
     }
 
@@ -675,16 +703,24 @@
     }
 
     @GuardedBy("mActivityWindowAndroidLock")
-    private Rect getBoundsInternalLocked() {
+    private Rect getCurrentBoundsInDpLocked(ActivityWindowAndroid activityWindowAndroid) {
+        Rect boundsInPx = getCurrentBoundsInPxLocked(activityWindowAndroid);
+        return DisplayUtil.scaleToEnclosingRect(
+                boundsInPx, 1.0f / activityWindowAndroid.getDisplay().getDipScale());
+    }
+
+    @GuardedBy("mActivityWindowAndroidLock")
+    private Rect getCurrentBoundsInPxLocked(ActivityWindowAndroid activityWindowAndroid) {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
-            Log.w(TAG, "getBoundsInternal() requires Android R+; returning an empty Rect()");
+            Log.w(TAG, "getBoundsInPxLocked() requires Android R+; returning an empty Rect()");
             return new Rect();
         }
 
-        var activityWindowAndroid = getActivityWindowAndroidInternalLocked(/* assertAlive= */ true);
-        if (activityWindowAndroid == null) return new Rect();
         Activity activity = activityWindowAndroid.getActivity().get();
-        if (activity == null) return new Rect();
+        if (activity == null) {
+            return new Rect();
+        }
+
         return activity.getWindowManager().getCurrentWindowMetrics().getBounds();
     }
 
@@ -715,8 +751,8 @@
         if (activity == null) return false;
         if (activity.isInMultiWindowMode()) {
             // Desktop windowing mode is also a multi-window mode.
-            return getBoundsInternalLocked()
-                    .equals(getMaximizedBounds(activity.getWindowManager()));
+            return getCurrentBoundsInPxLocked(activityWindowAndroid)
+                    .equals(getMaxBoundsInPx(activity.getWindowManager()));
         } else {
             // In non-multi-window mode, Chrome is maximized by default.
             return true;
@@ -749,7 +785,7 @@
     }
 
     @GuardedBy("mActivityWindowAndroidLock")
-    private void setBoundsInternalLocked(Activity activity, DisplayAndroid display, Rect bounds) {
+    private void setBoundsInPxLocked(Activity activity, DisplayAndroid display, Rect boundsInPx) {
         var aconfigFlaggedApiDelegate = AconfigFlaggedApiDelegate.getInstance();
         if (aconfigFlaggedApiDelegate == null) {
             Log.w(TAG, "Unable to set bounds: AconfigFlaggedApiDelegate isn't available");
@@ -767,7 +803,7 @@
             return;
         }
 
-        aconfigFlaggedApiDelegate.moveTaskTo(appTask, displayId, bounds);
+        aconfigFlaggedApiDelegate.moveTaskTo(appTask, displayId, boundsInPx);
     }
 
     @GuardedBy("mActivityWindowAndroidLock")
@@ -783,7 +819,7 @@
     }
 
     @RequiresApi(api = VERSION_CODES.R)
-    private static Rect getMaximizedBounds(WindowManager windowManager) {
+    private static Rect getMaxBoundsInPx(WindowManager windowManager) {
         var insets =
                 windowManager
                         .getMaximumWindowMetrics()
@@ -794,9 +830,9 @@
                 0, insets.top, fullscreenBounds.right, fullscreenBounds.bottom - insets.bottom);
     }
 
-    @Nullable Rect getRestoredBoundsForTesting() {
+    @Nullable Rect getRestoredBoundsInPxForTesting() {
         synchronized (mActivityWindowAndroidLock) {
-            return mRestoredBounds;
+            return mRestoredBoundsInPx;
         }
     }
 }
diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImplUnitTest.java b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImplUnitTest.java
index 81ad861..894142e 100644
--- a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImplUnitTest.java
+++ b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImplUnitTest.java
@@ -57,6 +57,7 @@
 import org.chromium.chrome.browser.tab.TabLaunchType;
 import org.chromium.chrome.browser.tabmodel.TabModel;
 import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskImpl.State;
+import org.chromium.ui.display.DisplayUtil;
 
 import java.util.Arrays;
 
@@ -598,7 +599,46 @@
     @Config(sdk = Build.VERSION_CODES.R)
     @SuppressLint("NewApi" /* @Config already specifies the required SDK */)
     public void
-            onConfigurationChanged_windowBoundsDoesNotChange_doesNotInvokeOnTaskBoundsChangedForFeature() {
+            onConfigurationChanged_windowBoundsDoesNotChangeInPxOrDp_doesNotInvokeOnTaskBoundsChangedForFeature() {
+        // Arrange.
+        var chromeAndroidTaskWithMockDeps =
+                ChromeAndroidTaskUnitTestSupport.createChromeAndroidTaskWithMockDeps(
+                        /* taskId= */ 1);
+        var chromeAndroidTask =
+                (ChromeAndroidTaskImpl) chromeAndroidTaskWithMockDeps.mChromeAndroidTask;
+
+        float dipScale = 2.0f;
+        var mockDisplayAndroid =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockDisplayAndroid;
+        when(mockDisplayAndroid.getDipScale()).thenReturn(dipScale);
+
+        var mockFeature = mock(ChromeAndroidTaskFeature.class);
+        chromeAndroidTask.addFeature(mockFeature);
+
+        var mockWindowManager =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockWindowManager;
+        var mockWindowMetrics = mock(WindowMetrics.class);
+        var taskBoundsInPx = new Rect(0, 0, 800, 600);
+        when(mockWindowMetrics.getBounds()).thenReturn(taskBoundsInPx);
+        when(mockWindowManager.getCurrentWindowMetrics()).thenReturn(mockWindowMetrics);
+
+        // Act.
+        chromeAndroidTask.onConfigurationChanged(new Configuration());
+        chromeAndroidTask.onConfigurationChanged(new Configuration());
+
+        // Assert:
+        // Only the first onConfigurationChanged() should trigger onTaskBoundsChanged() as the
+        // second onConfigurationChanged() doesn't include a change in window bounds.
+        verify(mockFeature, times(1))
+                .onTaskBoundsChanged(
+                        DisplayUtil.scaleToEnclosingRect(taskBoundsInPx, 1.0f / dipScale));
+    }
+
+    @Test
+    @Config(sdk = Build.VERSION_CODES.R)
+    @SuppressLint("NewApi" /* @Config already specifies the required SDK */)
+    public void
+            onConfigurationChanged_windowBoundsChangesInPxButNotInDp_doesNotInvokeOnTaskBoundsChangedForFeature() {
         // Arrange.
         var chromeAndroidTaskWithMockDeps =
                 ChromeAndroidTaskUnitTestSupport.createChromeAndroidTaskWithMockDeps(
@@ -612,8 +652,17 @@
         var mockWindowManager =
                 chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockWindowManager;
         var mockWindowMetrics = mock(WindowMetrics.class);
-        var taskBounds = new Rect(0, 0, 800, 600);
-        when(mockWindowMetrics.getBounds()).thenReturn(taskBounds);
+
+        float dipScale1 = 1.0f;
+        float dipScale2 = 2.0f;
+        var mockDisplayAndroid =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockDisplayAndroid;
+        when(mockDisplayAndroid.getDipScale()).thenReturn(dipScale1, dipScale2);
+
+        var taskBoundsInPx1 = new Rect(0, 0, 800, 600);
+        var taskBoundsInPx2 = DisplayUtil.scaleToEnclosingRect(taskBoundsInPx1, dipScale2);
+
+        when(mockWindowMetrics.getBounds()).thenReturn(taskBoundsInPx1, taskBoundsInPx2);
         when(mockWindowManager.getCurrentWindowMetrics()).thenReturn(mockWindowMetrics);
 
         // Act.
@@ -622,8 +671,10 @@
 
         // Assert:
         // Only the first onConfigurationChanged() should trigger onTaskBoundsChanged() as the
-        // second onConfigurationChanged() doesn't include a change in window bounds.
-        verify(mockFeature, times(1)).onTaskBoundsChanged(taskBounds);
+        // second onConfigurationChanged() doesn't include a DP change in window bounds.
+        verify(mockFeature, times(1))
+                .onTaskBoundsChanged(
+                        DisplayUtil.scaleToEnclosingRect(taskBoundsInPx1, 1.0f / dipScale1));
     }
 
     @Test
@@ -766,27 +817,133 @@
     }
 
     @Test
+    @Config(sdk = Build.VERSION_CODES.R)
+    @SuppressLint("NewApi" /* @Config already specifies the required SDK */)
+    public void getBoundsInDp_convertsBoundsInPxToDp() {
+        // Arrange: ChromeAndroidTask
+        var chromeAndroidTaskWithMockDeps =
+                ChromeAndroidTaskUnitTestSupport.createChromeAndroidTaskWithMockDeps(
+                        /* taskId= */ 1);
+        var chromeAndroidTask =
+                (ChromeAndroidTaskImpl) chromeAndroidTaskWithMockDeps.mChromeAndroidTask;
+
+        // Arrange: scaling factor
+        float dipScale = 2.0f;
+        var mockDisplayAndroid =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockDisplayAndroid;
+        when(mockDisplayAndroid.getDipScale()).thenReturn(dipScale);
+
+        // Arrange: bounds in pixels
+        Rect boundsInPx = new Rect(10, 20, 800, 600);
+        var mockWindowMetrics = mock(WindowMetrics.class);
+        when(mockWindowMetrics.getBounds()).thenReturn(boundsInPx);
+        var mockWindowManager =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockWindowManager;
+        when(mockWindowManager.getCurrentWindowMetrics()).thenReturn(mockWindowMetrics);
+
+        // Act
+        Rect boundsInDp = chromeAndroidTask.getBoundsInDp();
+
+        // Assert
+        Rect expectedBoundsInDp = DisplayUtil.scaleToEnclosingRect(boundsInPx, 1.0f / dipScale);
+        assertEquals(expectedBoundsInDp, boundsInDp);
+    }
+
+    @Test
+    @Config(sdk = Build.VERSION_CODES.R)
+    @SuppressLint("NewApi" /* @Config already specifies the required SDK */)
+    public void getRestoredBoundsInDp_convertsBoundsInPxToDp() {
+        // 1. Arrange: Create a ChromeAndroidTask with mock dependencies.
+        var chromeAndroidTaskWithMockDeps =
+                ChromeAndroidTaskUnitTestSupport.createChromeAndroidTaskWithMockDeps(
+                        /* taskId= */ 1);
+        var chromeAndroidTask =
+                (ChromeAndroidTaskImpl) chromeAndroidTaskWithMockDeps.mChromeAndroidTask;
+        var mockDisplayAndroid =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockDisplayAndroid;
+        var mockWindowManager =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockWindowManager;
+        var mockActivity = chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockActivity;
+
+        // 2. Arrange: scaling factor
+        float dipScale = 2.0f;
+        when(mockDisplayAndroid.getDipScale()).thenReturn(dipScale);
+
+        // 3. Arrange: Mock isRestoredInternalLocked() to return true before maximize().
+        // 3.1. Mock isMinimizedInternalLocked() to be false. (Assuming task is visible)
+        ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED);
+        ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.RESUMED);
+        assertFalse("Task is minimized", chromeAndroidTask.isMinimized());
+
+        // 3.2. Mock isMaximizedInternalLocked() to be false.
+        when(chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockActivity
+                        .isInMultiWindowMode())
+                .thenReturn(true);
+
+        Rect currentBoundsInPx = new Rect(0, 0, 800, 600);
+        var mockCurrentWindowMetrics = mock(WindowMetrics.class);
+        when(mockCurrentWindowMetrics.getBounds()).thenReturn(currentBoundsInPx);
+        when(mockWindowManager.getCurrentWindowMetrics()).thenReturn(mockCurrentWindowMetrics);
+
+        Rect maxBoundsInPx = new Rect(0, 0, 1920, 1080);
+        var mockMaxWindowMetrics = mock(WindowMetrics.class);
+        when(mockMaxWindowMetrics.getBounds()).thenReturn(maxBoundsInPx);
+        when(mockWindowManager.getMaximumWindowMetrics()).thenReturn(mockMaxWindowMetrics);
+
+        var mockMaxWindowInsets = mock(WindowInsets.class);
+        when(mockMaxWindowMetrics.getWindowInsets()).thenReturn(mockMaxWindowInsets);
+        when(mockMaxWindowInsets.getInsets(WindowInsets.Type.tappableElement()))
+                .thenReturn(Insets.of(0, 0, 0, 0));
+        assertFalse("Task shouldn't be maximized", chromeAndroidTask.isMaximized());
+
+        // 3.3. Mock isFullscreenInternalLocked() to be false.
+        when(mockActivity.getWindow()).thenReturn(mock(Window.class));
+        when(mockMaxWindowInsets.isVisible(WindowInsets.Type.statusBars())).thenReturn(true);
+        assertFalse("Task shouldn't be full-screen", chromeAndroidTask.isFullscreen());
+
+        // 4. Arrange: Call maximize(). This should set mRestoredBounds to the current bounds.
+        chromeAndroidTask.maximize();
+
+        // 5. Act
+        Rect restoredBoundsInDp = chromeAndroidTask.getRestoredBoundsInDp();
+
+        // 6. Assert
+        Rect expectedBoundsInDp =
+                DisplayUtil.scaleToEnclosingRect(currentBoundsInPx, 1.0f / dipScale);
+        assertEquals(
+                "restored bounds should be the current bounds in dp",
+                expectedBoundsInDp,
+                restoredBoundsInDp);
+    }
+
+    @Test
     @Config(sdk = Build.VERSION_CODES.BAKLAVA)
     @SuppressLint("NewApi" /* @Config already specifies the required SDK */)
-    public void setBounds_setsNewBounds() {
+    public void setBoundsInDp_setsNewBoundsInPx() {
         // Arrange.
         var chromeAndroidTaskWithMockDeps =
                 ChromeAndroidTaskUnitTestSupport.createChromeAndroidTaskWithMockDeps(
                         /* taskId= */ 1);
-        var apiDelegate = chromeAndroidTaskWithMockDeps.mMockAconfigFlaggedApiDelegate;
         var chromeAndroidTask =
                 (ChromeAndroidTaskImpl) chromeAndroidTaskWithMockDeps.mChromeAndroidTask;
-        var newBounds = new Rect(10, 20, 800, 600);
+        var apiDelegate = chromeAndroidTaskWithMockDeps.mMockAconfigFlaggedApiDelegate;
+        var displayAndroid =
+                chromeAndroidTaskWithMockDeps.mActivityWindowAndroidMocks.mMockDisplayAndroid;
+        float dipScale = 2.0f;
+        when(displayAndroid.getDipScale()).thenReturn(dipScale);
 
         // Act.
-        chromeAndroidTask.setBounds(newBounds);
+        Rect newBoundsInDp = new Rect(10, 20, 800, 600);
+        chromeAndroidTask.setBoundsInDp(newBoundsInDp);
 
         // Assert.
+        Rect expectedNewBoundsInPx = DisplayUtil.scaleToEnclosingRect(newBoundsInDp, dipScale);
         var boundsCaptor = ArgumentCaptor.forClass(Rect.class);
         verify(apiDelegate).moveTaskTo(any(), anyInt(), boundsCaptor.capture());
-
-        var capturedBounds = boundsCaptor.getValue();
-        assertEquals("Not moving to target bound", newBounds, capturedBounds);
+        assertEquals(
+                "Bounds passed to moveTaskTo() should be in pixels",
+                expectedNewBoundsInPx,
+                boundsCaptor.getValue());
     }
 
     @Test
@@ -846,7 +1003,7 @@
         assertEquals(
                 "restored bounds should be set to the current bounds",
                 restoredBounds,
-                chromeAndroidTask.getRestoredBoundsForTesting());
+                chromeAndroidTask.getRestoredBoundsInPxForTesting());
 
         // Act
         chromeAndroidTask.restore();
diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskIntegrationTest.java b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskIntegrationTest.java
index 5171ae5e..315a41e12 100644
--- a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskIntegrationTest.java
+++ b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskIntegrationTest.java
@@ -10,6 +10,7 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.graphics.Rect;
 import android.os.Build;
@@ -28,6 +29,7 @@
 import org.chromium.base.test.util.Restriction;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
+import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.init.AsyncInitializationActivity;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
@@ -37,6 +39,7 @@
 import org.chromium.chrome.test.transit.page.WebPageStation;
 import org.chromium.chrome.test.util.FullscreenTestUtils;
 import org.chromium.ui.base.DeviceFormFactor;
+import org.chromium.ui.display.DisplayUtil;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -203,21 +206,29 @@
     @Test
     @MediumTest
     @MinAndroidSdkLevel(Build.VERSION_CODES.R)
-    public void getBounds_returnsCorrectBounds() {
+    @SuppressLint("NewApi" /* @MinAndroidSdkLevel already specifies the required SDK */)
+    public void getBoundsInDp_returnsCorrectBounds() {
         // Arrange
         mFreshCtaTransitTestRule.startOnBlankPage();
-        Activity activity = mFreshCtaTransitTestRule.getActivity();
+        ChromeTabbedActivity activity = mFreshCtaTransitTestRule.getActivity();
         int taskId = activity.getTaskId();
         var chromeAndroidTask = getChromeAndroidTask(taskId);
         assertNotNull(chromeAndroidTask);
 
+        var activityWindowAndroid = activity.getWindowAndroid();
+        assertNotNull(activityWindowAndroid);
+
         // Act
-        Rect actualBounds = chromeAndroidTask.getBounds();
+        Rect actualBoundsInDp = chromeAndroidTask.getBoundsInDp();
 
         // Assert: by default, the bounds are the maximum window bounds.
-        var expectedBounds = activity.getWindowManager().getMaximumWindowMetrics().getBounds();
-        assertFalse(actualBounds.isEmpty());
-        assertEquals(expectedBounds, actualBounds);
+        Rect expectedBoundsInPx = activity.getWindowManager().getMaximumWindowMetrics().getBounds();
+        Rect expectedBoundsInDp =
+                DisplayUtil.scaleToEnclosingRect(
+                        expectedBoundsInPx,
+                        1.0f / activityWindowAndroid.getDisplay().getDipScale());
+
+        assertEquals(expectedBoundsInDp, actualBoundsInDp);
     }
 
     @Test
@@ -540,7 +551,7 @@
         public void onTaskRemoved() {}
 
         @Override
-        public void onTaskBoundsChanged(Rect newBounds) {
+        public void onTaskBoundsChanged(Rect newBoundsInDp) {
             mTimesOnTaskBoundsChanged++;
         }
 
diff --git a/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTask.java b/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTask.java
index 2e3820b..885ba298 100644
--- a/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTask.java
+++ b/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTask.java
@@ -144,7 +144,7 @@
     boolean isFullscreen();
 
     /** Non-maximized bounds of the task even when currently maximized or minimized. */
-    Rect getRestoredBounds();
+    Rect getRestoredBoundsInDp();
 
     /**
      * Returns the most recent timestamp when this {@link ChromeAndroidTask} became active, i.e.,
@@ -159,7 +159,7 @@
     Profile getProfile();
 
     /** Returns current bounds of the window. */
-    Rect getBounds();
+    Rect getBoundsInDp();
 
     /** Shows this {@link ChromeAndroidTask} or activates it if it's already visible. */
     void show();
@@ -200,9 +200,9 @@
     /**
      * Sets the {@link ChromeAndroidTask}'s size and position to the specified values.
      *
-     * @param bounds The new bounds of the {@link ChromeAndroidTask}.
+     * @param boundsInDp The new bounds of the {@link ChromeAndroidTask}.
      */
-    void setBounds(Rect bounds);
+    void setBoundsInDp(Rect boundsInDp);
 
     /** Returns all {@link ChromeAndroidTaskFeature}s for testing. */
     List<ChromeAndroidTaskFeature> getAllFeaturesForTesting();
diff --git a/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java b/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java
index 8d4ba80d..0be647fb 100644
--- a/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java
+++ b/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java
@@ -36,9 +36,9 @@
     /**
      * Called by a {@link ChromeAndroidTask} when the Task (window) bounds are changed.
      *
-     * @param newBounds The new Task bounds.
+     * @param newBoundsInDp The new Task bounds.
      */
-    void onTaskBoundsChanged(Rect newBounds);
+    void onTaskBoundsChanged(Rect newBoundsInDp);
 
     /**
      * Called by a {@link ChromeAndroidTask} when the Task (window) has gained or lost focus.
diff --git a/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindowNativeUnitTestSupport.java b/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindowNativeUnitTestSupport.java
index d1bd763..405696c 100644
--- a/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindowNativeUnitTestSupport.java
+++ b/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/AndroidBaseWindowNativeUnitTestSupport.java
@@ -6,6 +6,7 @@
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockingDetails;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.withSettings;
 
@@ -107,8 +108,14 @@
     }
 
     @CalledByNative
+    private void verifyBoundsToSet(int left, int top, int right, int bottom) {
+        assert mockingDetails(mChromeAndroidTask).isMock();
+        verify(mChromeAndroidTask).setBoundsInDp(new Rect(left, top, right, bottom));
+    }
+
+    @CalledByNative
     private void setFakeBounds(int left, int top, int right, int bottom) {
         assert mockingDetails(mChromeAndroidTask).isMock();
-        when(mChromeAndroidTask.getBounds()).thenReturn(new Rect(left, top, right, bottom));
+        when(mChromeAndroidTask.getBoundsInDp()).thenReturn(new Rect(left, top, right, bottom));
     }
 }
diff --git a/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskUnitTestSupport.java b/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskUnitTestSupport.java
index 4a33c4ffb..160fc30 100644
--- a/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskUnitTestSupport.java
+++ b/chrome/browser/ui/browser_window/test/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskUnitTestSupport.java
@@ -96,6 +96,7 @@
         public final ActivityWindowAndroid mMockActivityWindowAndroid;
         public final Activity mMockActivity;
         public final ActivityLifecycleDispatcher mMockActivityLifecycleDispatcher;
+        public final DisplayAndroid mMockDisplayAndroid;
 
         /** Mock {@link WindowManager} for {@link #mMockActivity}. */
         public final WindowManager mMockWindowManager;
@@ -104,10 +105,12 @@
                 ActivityWindowAndroid mockActivityWindowAndroid,
                 Activity mockActivity,
                 ActivityLifecycleDispatcher mockActivityLifecycleDispatcher,
+                DisplayAndroid mockDisplayAndroid,
                 WindowManager mockWindowManager) {
             mMockActivityWindowAndroid = mockActivityWindowAndroid;
             mMockActivity = mockActivity;
             mMockActivityLifecycleDispatcher = mockActivityLifecycleDispatcher;
+            mMockDisplayAndroid = mockDisplayAndroid;
             mMockWindowManager = mockWindowManager;
         }
     }
@@ -190,6 +193,9 @@
                 .thenReturn(mockActivityManager);
         when(((ActivityLifecycleDispatcherProvider) mockActivity).getLifecycleDispatcher())
                 .thenReturn(mockActivityLifecycleDispatcher);
+
+        when(mockDisplay.getDipScale()).thenReturn(1.0f);
+
         when(mockActivityWindowAndroid.getActivity()).thenReturn(new WeakReference<>(mockActivity));
         when(mockActivityWindowAndroid.getDisplay()).thenReturn(mockDisplay);
         when(mockActivityWindowAndroid.getInsetObserver()).thenReturn(mockInsetObserver);
@@ -199,6 +205,7 @@
                         mockActivityWindowAndroid,
                         mockActivity,
                         mockActivityLifecycleDispatcher,
+                        mockDisplay,
                         mockWindowManager);
         sActivityWindowAndroidMocks.put(taskId, mocks);
         return mocks;
diff --git a/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc b/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc
index 2b0989c..70b1c76a 100644
--- a/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc
+++ b/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc
@@ -13,6 +13,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
 #include "chrome/browser/ui/extensions/controlled_home_dialog_controller.h"
 #include "chrome/browser/ui/extensions/extension_settings_overridden_dialog.h"
 #include "chrome/browser/ui/extensions/extensions_container.h"
@@ -152,7 +153,7 @@
 }
 
 void MaybeShowExtensionControlledNewTabPage(
-    Browser* browser,
+    BrowserWindowInterface* browser,
     content::WebContents* web_contents) {
   if (!g_ntp_post_install_ui_enabled) {
     return;
@@ -160,7 +161,7 @@
 
   // Acknowledge existing extensions if necessary.
   if (g_acknowledge_existing_ntp_extensions) {
-    AcknowledgePreExistingNtpExtensions(browser->profile());
+    AcknowledgePreExistingNtpExtensions(browser->GetProfile());
   }
 
   // Jump through a series of hoops to see if the web contents is pointing to
@@ -186,7 +187,7 @@
     return;  // Not being overridden by an extension.
   }
 
-  Profile* const profile = browser->profile();
+  Profile* const profile = browser->GetProfile();
 
   std::optional<ExtensionSettingsOverriddenDialog::Params> params =
       settings_overridden_params::GetNtpOverriddenParams(profile);
@@ -201,7 +202,7 @@
   }
 
   ShowSettingsOverriddenDialog(std::move(dialog),
-                               browser->window()->GetNativeWindow());
+                               browser->GetWindow()->GetNativeWindow());
 }
 
 }  // namespace extensions
diff --git a/chrome/browser/ui/extensions/settings_api_bubble_helpers.h b/chrome/browser/ui/extensions/settings_api_bubble_helpers.h
index 6383f31..371f03f5 100644
--- a/chrome/browser/ui/extensions/settings_api_bubble_helpers.h
+++ b/chrome/browser/ui/extensions/settings_api_bubble_helpers.h
@@ -9,6 +9,7 @@
 #include "components/omnibox/browser/autocomplete_match.h"
 
 class Browser;
+class BrowserWindowInterface;
 class PrefRegistrySimple;
 class Profile;
 
@@ -54,7 +55,7 @@
 // Shows a bubble notifying the user that the new tab page is controlled by an
 // extension. This bubble is shown only the first time the new tab page is shown
 // after the controlling extension takes effect.
-void MaybeShowExtensionControlledNewTabPage(Browser* browser,
+void MaybeShowExtensionControlledNewTabPage(BrowserWindowInterface* browser,
                                             content::WebContents* web_contents);
 
 }  // namespace extensions
diff --git a/chrome/browser/ui/lens/lens_overlay_controller.cc b/chrome/browser/ui/lens/lens_overlay_controller.cc
index 006f80d40..9b8f008 100644
--- a/chrome/browser/ui/lens/lens_overlay_controller.cc
+++ b/chrome/browser/ui/lens/lens_overlay_controller.cc
@@ -203,6 +203,86 @@
 
 }  // namespace
 
+class LensOverlayController::UnderlyingWebContentsObserver
+    : public content::WebContentsObserver {
+ public:
+  UnderlyingWebContentsObserver(content::WebContents* web_contents,
+                                LensOverlayController* lens_overlay_controller)
+      : content::WebContentsObserver(web_contents),
+        lens_overlay_controller_(lens_overlay_controller) {}
+
+  ~UnderlyingWebContentsObserver() override = default;
+
+  UnderlyingWebContentsObserver(const UnderlyingWebContentsObserver&) = delete;
+  UnderlyingWebContentsObserver& operator=(
+      const UnderlyingWebContentsObserver&) = delete;
+
+  // content::WebContentsObserver
+  void DidFinishNavigation(
+      content::NavigationHandle* navigation_handle) override {
+    // If the overlay is off, check if we should display IPH.
+    if (lens_overlay_controller_->state() == State::kOff) {
+      // Only check IPH eligibility if the navigation changed the primary page.
+      if (base::FeatureList::IsEnabled(
+              feature_engagement::kIPHLensOverlayFeature) &&
+          navigation_handle->IsInPrimaryMainFrame() &&
+          !navigation_handle->IsSameDocument() &&
+          navigation_handle->HasCommitted()) {
+        lens_overlay_controller_->MaybeShowDelayedTutorialIPH(
+            navigation_handle->GetURL());
+      }
+      return;
+    }
+
+    // If the overlay is open, check if we should close it.
+    bool is_user_reload =
+        navigation_handle->GetReloadType() != content::ReloadType::NONE &&
+        !navigation_handle->IsRendererInitiated();
+    // We don't need to close if:
+    //   1) The navigation is not for the main page.
+    //   2) The navigation hasn't been committed yet.
+    //   3) The URL did not change and the navigation wasn't the user reloading
+    //      the page.
+    if (!navigation_handle->IsInPrimaryMainFrame() ||
+        !navigation_handle->HasCommitted() ||
+        (navigation_handle->GetPreviousPrimaryMainFrameURL() ==
+             navigation_handle->GetURL() &&
+         !is_user_reload)) {
+      return;
+    }
+    if (lens_overlay_controller_->state() == State::kHidden) {
+      lens_overlay_controller_->UpdateNavigationMetrics();
+      lens_overlay_controller_->NotifyPageContentUpdated();
+      return;
+    }
+
+    // If the page changes, only the overlay needs to be hidden, possibly
+    // leaving the side panel open. The search controller will handle whether
+    // the side panel should stay open or the entire session should terminate.
+    lens_overlay_controller_->lens_search_controller_->HideOverlay(
+        lens::LensOverlayDismissalSource::kPageChanged);
+    return;
+  }
+
+  void PrimaryMainFrameRenderProcessGone(
+      base::TerminationStatus status) override {
+    // Exit early if the overlay is off or already closing.
+    if (lens_overlay_controller_->state() == State::kOff ||
+        lens_overlay_controller_->IsOverlayClosing()) {
+      return;
+    }
+
+    lens_overlay_controller_->lens_search_controller_->CloseLensSync(
+        status == base::TERMINATION_STATUS_NORMAL_TERMINATION
+            ? lens::LensOverlayDismissalSource::kPageRendererClosedNormally
+            : lens::LensOverlayDismissalSource::
+                  kPageRendererClosedUnexpectedly);
+  }
+
+ private:
+  raw_ptr<LensOverlayController> lens_overlay_controller_;
+};
+
 LensOverlayController::LensOverlayController(
     tabs::TabInterface* tab,
     LensSearchController* lens_search_controller,
@@ -1269,86 +1349,6 @@
 LensOverlayController::OverlayInitializationData::~OverlayInitializationData() =
     default;
 
-class LensOverlayController::UnderlyingWebContentsObserver
-    : public content::WebContentsObserver {
- public:
-  UnderlyingWebContentsObserver(content::WebContents* web_contents,
-                                LensOverlayController* lens_overlay_controller)
-      : content::WebContentsObserver(web_contents),
-        lens_overlay_controller_(lens_overlay_controller) {}
-
-  ~UnderlyingWebContentsObserver() override = default;
-
-  UnderlyingWebContentsObserver(const UnderlyingWebContentsObserver&) = delete;
-  UnderlyingWebContentsObserver& operator=(
-      const UnderlyingWebContentsObserver&) = delete;
-
-  // content::WebContentsObserver
-  void DidFinishNavigation(
-      content::NavigationHandle* navigation_handle) override {
-    // If the overlay is off, check if we should display IPH.
-    if (lens_overlay_controller_->state() == State::kOff) {
-      // Only check IPH eligibility if the navigation changed the primary page.
-      if (base::FeatureList::IsEnabled(
-              feature_engagement::kIPHLensOverlayFeature) &&
-          navigation_handle->IsInPrimaryMainFrame() &&
-          !navigation_handle->IsSameDocument() &&
-          navigation_handle->HasCommitted()) {
-        lens_overlay_controller_->MaybeShowDelayedTutorialIPH(
-            navigation_handle->GetURL());
-      }
-      return;
-    }
-
-    // If the overlay is open, check if we should close it.
-    bool is_user_reload =
-        navigation_handle->GetReloadType() != content::ReloadType::NONE &&
-        !navigation_handle->IsRendererInitiated();
-    // We don't need to close if:
-    //   1) The navigation is not for the main page.
-    //   2) The navigation hasn't been committed yet.
-    //   3) The URL did not change and the navigation wasn't the user reloading
-    //      the page.
-    if (!navigation_handle->IsInPrimaryMainFrame() ||
-        !navigation_handle->HasCommitted() ||
-        (navigation_handle->GetPreviousPrimaryMainFrameURL() ==
-             navigation_handle->GetURL() &&
-         !is_user_reload)) {
-      return;
-    }
-    if (lens_overlay_controller_->state() == State::kHidden) {
-      lens_overlay_controller_->UpdateNavigationMetrics();
-      lens_overlay_controller_->NotifyPageContentUpdated();
-      return;
-    }
-
-    // If the page changes, only the overlay needs to be hidden, possibly
-    // leaving the side panel open. The search controller will handle whether
-    // the side panel should stay open or the entire session should terminate.
-    lens_overlay_controller_->lens_search_controller_->HideOverlay(
-        lens::LensOverlayDismissalSource::kPageChanged);
-    return;
-  }
-
-  void PrimaryMainFrameRenderProcessGone(
-      base::TerminationStatus status) override {
-    // Exit early if the overlay is off or already closing.
-    if (lens_overlay_controller_->state() == State::kOff ||
-        lens_overlay_controller_->IsOverlayClosing()) {
-      return;
-    }
-
-    lens_overlay_controller_->lens_search_controller_->CloseLensSync(
-        status == base::TERMINATION_STATUS_NORMAL_TERMINATION
-            ? lens::LensOverlayDismissalSource::kPageRendererClosedNormally
-            : lens::LensOverlayDismissalSource::
-                  kPageRendererClosedUnexpectedly);
-  }
-
- private:
-  raw_ptr<LensOverlayController> lens_overlay_controller_;
-};
-
 void LensOverlayController::CreateInitializationData(
     const SkBitmap& screenshot,
     const std::vector<gfx::Rect>& all_bounds,
diff --git a/chrome/browser/ui/media_router/media_router_ui_helper.h b/chrome/browser/ui/media_router/media_router_ui_helper.h
index a6f0b3d..ca08c8b 100644
--- a/chrome/browser/ui/media_router/media_router_ui_helper.h
+++ b/chrome/browser/ui/media_router/media_router_ui_helper.h
@@ -13,6 +13,7 @@
 #include "build/build_config.h"
 #include "chrome/browser/ui/media_router/media_cast_mode.h"
 #include "components/media_router/browser/media_router.h"
+#include "components/media_router/browser/presentation/start_presentation_context.h"
 #include "components/media_router/common/media_sink.h"
 #include "components/media_router/common/media_source.h"
 #include "media/base/audio_codecs.h"
@@ -27,8 +28,6 @@
 
 namespace media_router {
 
-class StartPresentationContext;
-
 // Returns the extension name for |url|, so that it can be displayed for
 // extension-initiated presentations.
 std::string GetExtensionName(const GURL& url,
diff --git a/chrome/browser/ui/omnibox/omnibox_edit_model.h b/chrome/browser/ui/omnibox/omnibox_edit_model.h
index 9b366e4..6ede9ac 100644
--- a/chrome/browser/ui/omnibox/omnibox_edit_model.h
+++ b/chrome/browser/ui/omnibox/omnibox_edit_model.h
@@ -18,7 +18,6 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list_types.h"
 #include "base/time/time.h"
-#include "build/build_config.h"
 #include "chrome/browser/ui/omnibox/omnibox_view.h"
 #include "components/omnibox/browser/autocomplete_controller.h"
 #include "components/omnibox/browser/autocomplete_input.h"
@@ -334,9 +333,6 @@
   // Called when the user pastes in text.
   void OnPaste();
 
-  // Returns true if pasting is in progress.
-  bool is_pasting() const { return paste_state_ == PASTING; }
-
   // Called when the user presses arrow up, arrow down, page up, or page down.
   void OnUpOrDownPressed(bool down, bool page);
 
diff --git a/chrome/browser/ui/omnibox/omnibox_popup_view.h b/chrome/browser/ui/omnibox/omnibox_popup_view.h
index 2c3591b8..80757c9 100644
--- a/chrome/browser/ui/omnibox/omnibox_popup_view.h
+++ b/chrome/browser/ui/omnibox/omnibox_popup_view.h
@@ -18,7 +18,6 @@
 #include "base/callback_list.h"
 #include "base/functional/callback_forward.h"
 #include "base/memory/raw_ptr.h"
-#include "build/build_config.h"
 #include "components/omnibox/browser/omnibox_popup_selection.h"
 
 class OmniboxController;
@@ -74,10 +73,6 @@
   virtual std::u16string_view GetAccessibleButtonTextForResult(
       size_t line) const;
 
-  // Updates the result and header views based on the visibility of their group.
-  virtual void SetSuggestionGroupVisibility(size_t match_index,
-                                            bool suggestion_group_hidden) {}
-
   // Adds a callback that will be called when the popup window becomes visible.
   base::CallbackListSubscription AddOpenListener(
       base::RepeatingClosure callback);
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index 3242168..34b3781 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -180,7 +180,7 @@
 #include "chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_android.h"
 #include "components/facilitated_payments/core/features/features.h"
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h"
-#include "components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h"
+#include "components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.h"
 #include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
 #include "components/ip_protection/common/ip_protection_status.h"
 #include "components/page_load_metrics/browser/features.h"
@@ -383,9 +383,15 @@
 
   if (fingerprinting_protection_interventions::features::
           ShouldBlockCanvasReadbackForIncognitoState(
+              profile->IsIncognitoProfile()) ||
+      fingerprinting_protection_interventions::features::
+          IsCanvasInterventionsEnabledForIncognitoState(
               profile->IsIncognitoProfile())) {
-    fingerprinting_protection_interventions::InterventionsWebContentsHelper::
-        CreateForWebContents(web_contents, profile->IsIncognitoProfile());
+    fingerprinting_protection_interventions::
+        CanvasInterventionsWebContentsHelper::CreateForWebContents(
+            web_contents,
+            TrackingProtectionSettingsFactory::GetForProfile(profile),
+            profile->IsIncognitoProfile());
   }
 
   // Only create the IpProtectionStatus if the User Bypass feature is enabled.
diff --git a/chrome/browser/ui/tabs/tab_features.cc b/chrome/browser/ui/tabs/tab_features.cc
index 52b2403d..7d53c8ee 100644
--- a/chrome/browser/ui/tabs/tab_features.cc
+++ b/chrome/browser/ui/tabs/tab_features.cc
@@ -91,7 +91,7 @@
 #include "components/browsing_topics/browsing_topics_service.h"
 #include "components/favicon/content/content_favicon_driver.h"
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h"
-#include "components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h"
+#include "components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.h"
 #include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
 #include "components/image_fetcher/core/image_fetcher_service.h"
 #include "components/ip_protection/common/ip_protection_status.h"
@@ -369,9 +369,15 @@
 
   if (fingerprinting_protection_interventions::features::
           ShouldBlockCanvasReadbackForIncognitoState(
+              profile->IsIncognitoProfile()) ||
+      fingerprinting_protection_interventions::features::
+          IsCanvasInterventionsEnabledForIncognitoState(
               profile->IsIncognitoProfile())) {
-    fingerprinting_protection_interventions::InterventionsWebContentsHelper::
-        CreateForWebContents(tab.GetContents(), profile->IsIncognitoProfile());
+    fingerprinting_protection_interventions::
+        CanvasInterventionsWebContentsHelper::CreateForWebContents(
+            tab.GetContents(),
+            TrackingProtectionSettingsFactory::GetForProfile(profile),
+            profile->IsIncognitoProfile());
   }
 
   // Only create the IpProtectionStatus if the User Bypass feature is enabled.
diff --git a/chrome/browser/ui/tabs/tab_group_model.cc b/chrome/browser/ui/tabs/tab_group_model.cc
index 7206aa7..df5bc601 100644
--- a/chrome/browser/ui/tabs/tab_group_model.cc
+++ b/chrome/browser/ui/tabs/tab_group_model.cc
@@ -28,6 +28,8 @@
   CHECK(!ContainsTabGroup(group->id()));
   group_ids_.emplace_back(group->id());
   groups_[group->id()] = group;
+  group_ids_by_activity_.emplace_front(group->id());
+  ids_map_[group->id()] = group_ids_by_activity_.begin();
 }
 
 bool TabGroupModel::ContainsTabGroup(const tab_groups::TabGroupId& id) const {
@@ -44,12 +46,36 @@
   CHECK(ContainsTabGroup(id));
   std::erase(group_ids_, id);
   groups_.erase(id);
+  group_ids_by_activity_.erase(ids_map_[id]);
+  ids_map_.erase(id);
 }
 
 std::vector<tab_groups::TabGroupId> TabGroupModel::ListTabGroups() const {
   return group_ids_;
 }
 
+std::optional<tab_groups::TabGroupId> TabGroupModel::GetMostRecentTabGroupId()
+    const {
+  if (group_ids_by_activity_.empty()) {
+    return std::nullopt;
+  } else {
+    return {group_ids_by_activity_.front()};
+  }
+}
+
+void TabGroupModel::OnTabGroupActivated(const tab_groups::TabGroupId& id) {
+  // This group was activated so we have to  push it to the front
+  CHECK(ContainsTabGroup(id));
+
+  if (group_ids_by_activity_.front() == id) {
+    return;
+  }
+
+  group_ids_by_activity_.erase(ids_map_[id]);
+  group_ids_by_activity_.emplace_front(id);
+  ids_map_[id] = group_ids_by_activity_.begin();
+}
+
 tab_groups::TabGroupColorId TabGroupModel::GetNextColor(
     base::PassKey<TabStripModel>) const {
   std::vector<tab_groups::TabGroupColorId> used_colors;
diff --git a/chrome/browser/ui/tabs/tab_group_model.h b/chrome/browser/ui/tabs/tab_group_model.h
index 0cbeb9e..c793519 100644
--- a/chrome/browser/ui/tabs/tab_group_model.h
+++ b/chrome/browser/ui/tabs/tab_group_model.h
@@ -8,6 +8,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <list>
 #include <map>
 #include <memory>
 #include <optional>
@@ -57,12 +58,24 @@
 
   std::vector<tab_groups::TabGroupId> ListTabGroups() const;
 
+  // Returns the TabGroupId of the group that most recently contained the active
+  // tab. Returns std::nullopt if there are no groups.
+  std::optional<tab_groups::TabGroupId> GetMostRecentTabGroupId() const;
+
+  void OnTabGroupActivated(const tab_groups::TabGroupId& id);
+
  private:
   std::map<tab_groups::TabGroupId, raw_ptr<TabGroup>> groups_;
 
   // Used to maintain insertion order of TabGroupsIds added to the
   // TabGroupModel.
   std::vector<tab_groups::TabGroupId> group_ids_;
+
+  // Container of groups ordered according to when they had the active tab.
+  std::list<tab_groups::TabGroupId> group_ids_by_activity_;
+  // Used to make removing elements from |group_ids_by_activity_| efficient.
+  std::map<tab_groups::TabGroupId, std::list<tab_groups::TabGroupId>::iterator>
+      ids_map_;
 };
 
 #endif  // CHROME_BROWSER_UI_TABS_TAB_GROUP_MODEL_H_
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc
index 60fa669..7f1f97f 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -4935,6 +4935,10 @@
   const tabs::TabInterface* old_opener = nullptr;
   int reason = selection.reason;
 
+  if (new_tab->GetGroup()) {
+    group_model_->OnTabGroupActivated(*(new_tab->GetGroup()));
+  }
+
   if (old_tab) {
     const int index = GetIndexOfTab(old_tab);
     if (index != TabStripModel::kNoTab) {
diff --git a/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc b/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc
index d11ae78d..6a47e42 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc
@@ -26,6 +26,8 @@
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_test_utils.h"
 #include "chrome/browser/ui/ui_features.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/tabs/tab_strip_controller.h"
 #include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h"
 #include "chrome/browser/web_applications/test/os_integration_test_override_impl.h"
 #include "chrome/browser/web_applications/test/prevent_close_test_base.h"
@@ -628,4 +630,65 @@
   EXPECT_TRUE(service()->IsWindowOrFreShowing());
 }
 
+class TabStripModelTestTabGroupEntryPointsEnabled
+    : public TabStripModelBrowserTest {
+ public:
+  TabStripModelTestTabGroupEntryPointsEnabled() {
+    scoped_feature_list_.InitAndEnableFeature(
+        features::kTabGroupMenuMoreEntryPoints);
+  }
+
+  TabStrip* tabstrip() {
+    return views::AsViewClass<TabStripRegionView>(
+               browser()->GetBrowserView().tab_strip_view())
+        ->tab_strip();
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_F(TabStripModelTestTabGroupEntryPointsEnabled,
+                       TestMostRecentlyUsedGroup) {
+  TabStripModel* tab_strip_model = browser()->tab_strip_model();
+  TabGroupModel* tab_group_model = tab_strip_model->group_model();
+  ASSERT_TRUE(tab_strip_model->SupportsTabGroups());
+  ASSERT_TRUE(tab_group_model);
+
+  TabStripController* tab_strip_controller = tabstrip()->controller();
+  tab_strip_controller->CreateNewTab();
+  tab_strip_controller->CreateNewTab();
+  tab_strip_controller->CreateNewTab();
+
+  ASSERT_TRUE(tab_strip_model->count() == 4);
+
+  const tab_groups::TabGroupId group_1 = tab_strip_model->AddToNewGroup({1});
+  const tab_groups::TabGroupId group_2 = tab_strip_model->AddToNewGroup({2});
+  const tab_groups::TabGroupId group_3 = tab_strip_model->AddToNewGroup({3});
+
+  tab_strip_model->ActivateTabAt(2);
+  tab_strip_model->ActivateTabAt(1);
+  tab_strip_model->ActivateTabAt(3);
+  tab_strip_model->ActivateTabAt(0);
+
+  std::optional<tab_groups::TabGroupId> most_recently_used =
+      tab_group_model->GetMostRecentTabGroupId();
+
+  EXPECT_TRUE(most_recently_used);
+  EXPECT_EQ(*most_recently_used, group_3);
+
+  tab_strip_controller->RemoveTabFromGroup(3);
+  most_recently_used = tab_group_model->GetMostRecentTabGroupId();
+  EXPECT_TRUE(most_recently_used);
+  EXPECT_EQ(*most_recently_used, group_1);
+
+  tab_strip_controller->RemoveTabFromGroup(1);
+  most_recently_used = tab_group_model->GetMostRecentTabGroupId();
+  EXPECT_TRUE(most_recently_used);
+  EXPECT_EQ(*most_recently_used, group_2);
+
+  tab_strip_controller->RemoveTabFromGroup(2);
+  EXPECT_FALSE(tab_group_model->GetMostRecentTabGroupId());
+}
+
 #endif  // BUILDFLAG(ENABLE_GLIC)
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
index 731409c..e3110fb 100644
--- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc
@@ -127,6 +127,11 @@
                    &kSideBySide,
                    "drop_target_hide_delay",
                    base::Milliseconds(100));
+BASE_FEATURE_PARAM(base::TimeDelta,
+                   kSideBySideShowNudgeDelay,
+                   &kSideBySide,
+                   "show_nudge_delay",
+                   base::Milliseconds(1000));
 BASE_FEATURE_PARAM(int,
                    kSideBySideDropTargetMinWidth,
                    &kSideBySide,
diff --git a/chrome/browser/ui/ui_features.h b/chrome/browser/ui/ui_features.h
index 780207a9..42ee6271 100644
--- a/chrome/browser/ui/ui_features.h
+++ b/chrome/browser/ui/ui_features.h
@@ -158,6 +158,7 @@
 
 BASE_DECLARE_FEATURE_PARAM(base::TimeDelta, kSideBySideShowDropTargetDelay);
 BASE_DECLARE_FEATURE_PARAM(base::TimeDelta, kSideBySideHideDropTargetDelay);
+BASE_DECLARE_FEATURE_PARAM(base::TimeDelta, kSideBySideShowNudgeDelay);
 
 // Feature params for the width of the multi-contents drop target.
 // If the `kSideBySideDropTargetNudge` feature is enabled, then these only
diff --git a/chrome/browser/ui/views/frame/browser_frame_view.cc b/chrome/browser/ui/views/frame/browser_frame_view.cc
index 3f8a3c8..7997f95 100644
--- a/chrome/browser/ui/views/frame/browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/browser_frame_view.cc
@@ -174,8 +174,15 @@
 
 void BrowserFrameView::UpdateFullscreenTopUI() {}
 
-bool BrowserFrameView::ShouldHideTopUIForFullscreen() const {
-  return browser_widget_->IsFullscreen();
+bool BrowserFrameView::ShouldHideTopUIInFullscreen() const {
+  return true;
+}
+
+bool BrowserFrameView::ShouldShowWebAppFrameToolbar() const {
+  if (browser_widget_->IsFullscreen() && ShouldHideTopUIInFullscreen()) {
+    return false;
+  }
+  return true;
 }
 
 bool BrowserFrameView::CanUserExitFullscreen() const {
diff --git a/chrome/browser/ui/views/frame/browser_frame_view.h b/chrome/browser/ui/views/frame/browser_frame_view.h
index 9c4f26f..b2c4693 100644
--- a/chrome/browser/ui/views/frame/browser_frame_view.h
+++ b/chrome/browser/ui/views/frame/browser_frame_view.h
@@ -186,7 +186,12 @@
 
   // Returns true if the top UI (tabstrip, toolbar) should be hidden because the
   // browser is in fullscreen mode.
-  virtual bool ShouldHideTopUIForFullscreen() const;
+  virtual bool ShouldHideTopUIInFullscreen() const;
+
+  // Returns true if a toolbar should be shown in the current browser, false if
+  // not. If this returns false, there is no reason to call e.g.
+  // `GetBoundsForWebAppFrameToolbar()`.
+  virtual bool ShouldShowWebAppFrameToolbar() const;
 
   // Returns whether the user is allowed to exit fullscreen on their own (some
   // special modes lock the user in fullscreen).
diff --git a/chrome/browser/ui/views/frame/browser_frame_view_chromeos.cc b/chrome/browser/ui/views/frame/browser_frame_view_chromeos.cc
index e7b9dcc..59f6e1eb 100644
--- a/chrome/browser/ui/views/frame/browser_frame_view_chromeos.cc
+++ b/chrome/browser/ui/views/frame/browser_frame_view_chromeos.cc
@@ -299,15 +299,6 @@
 
 gfx::Rect BrowserFrameViewChromeOS::GetBoundsForWebAppFrameToolbar(
     const gfx::Size& toolbar_preferred_size) const {
-  if (!GetShowCaptionButtons()) {
-    return gfx::Rect();
-  }
-  if (browser_view()->browser()->is_type_app_popup() &&
-      !browser_view()->AppUsesWindowControlsOverlay() &&
-      !browser_view()->AppUsesBorderlessMode()) {
-    return gfx::Rect();
-  }
-
   const int x = GetToolbarLeftInset();
   const int available_width = caption_button_container_->x() - x;
   int painted_height = GetTopInset(false);
@@ -317,6 +308,20 @@
   return gfx::Rect(x, 0, std::max(0, available_width), painted_height);
 }
 
+bool BrowserFrameViewChromeOS::ShouldShowWebAppFrameToolbar() const {
+  if (!GetShowCaptionButtons()) {
+    return false;
+  }
+
+  if (browser_view()->browser()->is_type_app_popup() &&
+      !browser_view()->AppUsesWindowControlsOverlay() &&
+      !browser_view()->AppUsesBorderlessMode()) {
+    return false;
+  }
+
+  return true;
+}
+
 int BrowserFrameViewChromeOS::GetTopInset(bool restored) const {
   // TODO(estade): why do callsites in this class hardcode false for |restored|?
 
diff --git a/chrome/browser/ui/views/frame/browser_frame_view_chromeos.h b/chrome/browser/ui/views/frame/browser_frame_view_chromeos.h
index 760b213c..c44c4c8 100644
--- a/chrome/browser/ui/views/frame/browser_frame_view_chromeos.h
+++ b/chrome/browser/ui/views/frame/browser_frame_view_chromeos.h
@@ -60,6 +60,7 @@
       const gfx::Size& tabstrip_minimum_size) const override;
   gfx::Rect GetBoundsForWebAppFrameToolbar(
       const gfx::Size& toolbar_preferred_size) const override;
+  bool ShouldShowWebAppFrameToolbar() const override;
   int GetTopInset(bool restored) const override;
   void UpdateThrobber(bool running) override;
   bool CanUserExitFullscreen() const override;
diff --git a/chrome/browser/ui/views/frame/browser_frame_view_mac.h b/chrome/browser/ui/views/frame/browser_frame_view_mac.h
index 80651de..eac5fdc 100644
--- a/chrome/browser/ui/views/frame/browser_frame_view_mac.h
+++ b/chrome/browser/ui/views/frame/browser_frame_view_mac.h
@@ -47,9 +47,10 @@
       const gfx::Size& tabstrip_minimum_size) const override;
   gfx::Rect GetBoundsForWebAppFrameToolbar(
       const gfx::Size& toolbar_preferred_size) const override;
+  BrowserLayoutParams GetBrowserLayoutParams() const override;
   int GetTopInset(bool restored) const override;
   void UpdateFullscreenTopUI() override;
-  bool ShouldHideTopUIForFullscreen() const override;
+  bool ShouldHideTopUIInFullscreen() const override;
   void UpdateThrobber(bool running) override;
   void PaintAsActiveChanged() override;
   void OnThemeChanged() override;
diff --git a/chrome/browser/ui/views/frame/browser_frame_view_mac.mm b/chrome/browser/ui/views/frame/browser_frame_view_mac.mm
index 6d0ba7f..5baace7 100644
--- a/chrome/browser/ui/views/frame/browser_frame_view_mac.mm
+++ b/chrome/browser/ui/views/frame/browser_frame_view_mac.mm
@@ -198,9 +198,6 @@
 
 gfx::Rect BrowserFrameViewMac::GetBoundsForWebAppFrameToolbar(
     const gfx::Size& toolbar_preferred_size) const {
-  if (ShouldHideTopUIForFullscreen()) {
-    return gfx::Rect();
-  }
   gfx::Rect bounds(0, 0, width(),
                    toolbar_preferred_size.height() + kWebAppMenuMargin * 2);
 
@@ -212,6 +209,15 @@
   return bounds;
 }
 
+BrowserLayoutParams BrowserFrameViewMac::GetBrowserLayoutParams() const {
+  if (browser_view()->IsFullscreen()) {
+    // No insets for caption buttons in fullscreen, since caption buttons are on
+    // a separate pane that slides in.
+    return BrowserLayoutParams{.visual_client_area = GetBoundsForClientView()};
+  }
+  return BrowserFrameView::GetBrowserLayoutParams();
+}
+
 int BrowserFrameViewMac::GetTopInset(bool restored) const {
   return 0;
 }
@@ -296,12 +302,9 @@
   always_show_toolbar_in_fullscreen_observation_.Reset();
 }
 
-bool BrowserFrameViewMac::ShouldHideTopUIForFullscreen() const {
-  if (browser_widget()->IsFullscreen()) {
-    return [fullscreen_toolbar_controller_ toolbarStyle] !=
-           FullscreenToolbarStyle::TOOLBAR_PRESENT;
-  }
-  return false;
+bool BrowserFrameViewMac::ShouldHideTopUIInFullscreen() const {
+  return [fullscreen_toolbar_controller_ toolbarStyle] !=
+         FullscreenToolbarStyle::TOOLBAR_PRESENT;
 }
 
 void BrowserFrameViewMac::UpdateThrobber(bool running) {}
diff --git a/chrome/browser/ui/views/frame/browser_frame_view_win.cc b/chrome/browser/ui/views/frame/browser_frame_view_win.cc
index 2767a93..fcacb8a8 100644
--- a/chrome/browser/ui/views/frame/browser_frame_view_win.cc
+++ b/chrome/browser/ui/views/frame/browser_frame_view_win.cc
@@ -230,7 +230,8 @@
   } else {
     params.trailing_exclusion.content =
         gfx::SizeF(width() - caption.x(), caption.bottom() - top);
-    if (window_icon_) {
+    // In overlay mode, the icon is present but hidden.
+    if (window_icon_ && !browser_view()->IsWindowControlsOverlayEnabled()) {
       const auto& icon = window_icon_->bounds();
       params.leading_exclusion.content =
           gfx::SizeF(icon.right(), icon.bottom() - top);
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 4fbd1e0..3877bcf 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -1302,7 +1302,7 @@
   // example, new window in Mac fullscreen with toolbar showing) where we need
   // restore it.
   if (browser_widget_->IsFullscreen() &&
-      !GetFrameView()->ShouldHideTopUIForFullscreen() && GetFocusManager() &&
+      !GetFrameView()->ShouldHideTopUIInFullscreen() && GetFocusManager() &&
       !GetFocusManager()->GetFocusedView()) {
     SetFocusToLocationBar(false);
   }
@@ -2053,7 +2053,8 @@
     return false;
   }
 
-  return GetFrameView()->ShouldHideTopUIForFullscreen();
+  return browser_widget_->IsFullscreen() &&
+         GetFrameView()->ShouldHideTopUIInFullscreen();
 }
 
 bool BrowserView::IsFullscreen() const {
diff --git a/chrome/browser/ui/views/frame/browser_view_layout_delegate_impl.cc b/chrome/browser/ui/views/frame/browser_view_layout_delegate_impl.cc
index 299a38e..96f32b6d 100644
--- a/chrome/browser/ui/views/frame/browser_view_layout_delegate_impl.cc
+++ b/chrome/browser/ui/views/frame/browser_view_layout_delegate_impl.cc
@@ -17,6 +17,7 @@
 #include "chrome/browser/ui/views/frame/browser_widget.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
 #include "chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.h"
+#include "ui/gfx/geometry/rect.h"
 #include "ui/views/view.h"
 
 // static
@@ -211,6 +212,9 @@
 gfx::Rect
 BrowserViewLayoutDelegateImplOld::GetBoundsForWebAppFrameToolbarInBrowserView()
     const {
+  if (!GetFrameView()->ShouldShowWebAppFrameToolbar()) {
+    return gfx::Rect();
+  }
   const gfx::Size web_app_frame_toolbar_preferred_size =
       browser_view().web_app_frame_toolbar()->GetPreferredSize();
   gfx::RectF bounds_f =
@@ -284,9 +288,10 @@
 gfx::Rect
 BrowserViewLayoutDelegateImplNew::GetBoundsForWebAppFrameToolbarInBrowserView()
     const {
-  if (browser_view().ShouldHideUIForFullscreen()) {
+  if (!GetFrameView()->ShouldShowWebAppFrameToolbar()) {
     return gfx::Rect();
   }
+
   const gfx::Size web_app_frame_toolbar_preferred_size =
       browser_view().web_app_frame_toolbar()->GetPreferredSize();
 
diff --git a/chrome/browser/ui/views/frame/contents_web_view.h b/chrome/browser/ui/views/frame/contents_web_view.h
index 8008e7a5..3ac40b7 100644
--- a/chrome/browser/ui/views/frame/contents_web_view.h
+++ b/chrome/browser/ui/views/frame/contents_web_view.h
@@ -61,9 +61,8 @@
 
  private:
   void UpdateBackgroundColor();
-  std::unique_ptr<StatusBubbleViews> status_bubble_ = nullptr;
-  std::unique_ptr<WebContentsCloseHandler> web_contents_close_handler_ =
-      nullptr;
+  std::unique_ptr<StatusBubbleViews> status_bubble_;
+  std::unique_ptr<WebContentsCloseHandler> web_contents_close_handler_;
 
   bool background_visible_ = true;
 
diff --git a/chrome/browser/ui/views/frame/multi_contents_view.cc b/chrome/browser/ui/views/frame/multi_contents_view.cc
index dadc847..9316ee5 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view.cc
+++ b/chrome/browser/ui/views/frame/multi_contents_view.cc
@@ -659,17 +659,6 @@
 }
 
 bool MultiContentsView::IsDragAndDropEnabled() const {
-  // This is needed because drag and drop is broken on Wayland. Once that is
-  // resolved, this check should be deleted.
-  // TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return false;
-  }
-#endif
-
   // Split view drag and drop is only supported on normal browser types.
   return browser_view_->GetIsNormalType() && is_drag_drop_pref_enabled_;
 }
diff --git a/chrome/browser/ui/views/frame/multi_contents_view_browsertest.cc b/chrome/browser/ui/views/frame/multi_contents_view_browsertest.cc
index 883ff84..bef7422 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view_browsertest.cc
+++ b/chrome/browser/ui/views/frame/multi_contents_view_browsertest.cc
@@ -70,15 +70,6 @@
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest,
                        HandleDropTargetViewLinkDrop_IsSupported) {
-// TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
-
   EXPECT_TRUE(multi_contents_view()->IsDragAndDropEnabled());
 
   Browser::CreateParams app_browser_params =
@@ -93,15 +84,6 @@
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest,
                        HandleDropTargetViewLinkDrop_EndDropTarget) {
-// TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
-
   ui::OSExchangeData data;
   const GURL kDropUrl("http://www.chromium.org/");
   data.SetURL(kDropUrl, u"Chromium");
@@ -131,14 +113,6 @@
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest,
                        HandleDropTargetViewLinkDrop_StartDropTarget) {
-  // TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
   ui::OSExchangeData data;
   const GURL kDropUrl("http://www.chromium.org/");
   data.SetURL(kDropUrl, u"Chromium");
@@ -168,14 +142,6 @@
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest,
                        HandleDropTargetViewLinkDrop_BlockJavascriptUrl) {
-  // TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
   ui::OSExchangeData data;
   const GURL kDropUrl("javascript:alert(1)");
   data.SetURL(kDropUrl, u"javascript");
@@ -205,15 +171,6 @@
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest,
                        HandleTabDrop_EndDropTarget) {
-  // TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
-
   TabStripModel* tab_strip_model = browser()->tab_strip_model();
   ASSERT_EQ(1, tab_strip_model->count());
   EXPECT_FALSE(multi_contents_view()->IsInSplitView());
@@ -249,15 +206,6 @@
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest,
                        HandleTabDrop_StartDropTarget) {
-  // TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
-
   TabStripModel* tab_strip_model = browser()->tab_strip_model();
   content::WebContents* original_contents =
       tab_strip_model->GetActiveWebContents();
@@ -295,15 +243,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest, DragAndDropEnabledPref) {
-// TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
-
   // Drag and drop should be enabled by default.
   EXPECT_TRUE(multi_contents_view()->IsDragAndDropEnabled());
 
@@ -578,15 +517,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewBrowserTest, DropTargetLayout) {
-// TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-  if (!ui::OzonePlatform::GetInstance()
-           ->GetPlatformProperties()
-           .supports_split_view_drag_and_drop) {
-    return;
-  }
-#endif
-
   MultiContentsView* view = multi_contents_view();
   gfx::Rect initial_bounds(10, 20, 100, 80);
 
diff --git a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.cc b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.cc
index c66d303..5e2b4f9 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.cc
+++ b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.cc
@@ -8,6 +8,7 @@
 
 #include "base/callback_list.h"
 #include "base/check_deref.h"
+#include "base/functional/bind.h"
 #include "base/functional/callback_forward.h"
 #include "base/i18n/rtl.h"
 #include "base/memory/raw_ref.h"
@@ -67,7 +68,7 @@
     const gfx::Point& point_in_screen) {
   // Only allow creating split with a single dragged tab.
   if (controller.GetSessionData().num_dragging_tabs() != 1) {
-    ResetDropTargetTimer();
+    ResetDropTargetTimers();
     drop_target_view_->Hide();
     return;
   }
@@ -75,7 +76,7 @@
   const gfx::Point point_in_parent = views::View::ConvertPointFromScreen(
       &drop_target_parent_view_.get(), point_in_screen);
   if (PointOverlapsWithOSDropTarget(point_in_parent)) {
-    ResetDropTargetTimer();
+    ResetDropTargetTimers();
     drop_target_view_->Hide();
     return;
   }
@@ -86,12 +87,12 @@
 void MultiContentsViewDropTargetController::OnTabDragEntered() {}
 
 void MultiContentsViewDropTargetController::OnTabDragExited() {
-  ResetDropTargetTimer();
+  ResetDropTargetTimers();
   drop_target_view_->Hide();
 }
 
 void MultiContentsViewDropTargetController::OnTabDragEnded() {
-  ResetDropTargetTimer();
+  ResetDropTargetTimers();
   drop_target_view_->Hide();
 }
 
@@ -218,25 +219,24 @@
   // contents area, particularly while the drop target is animating in and
   // shifting them.
   if ((point.x() < 0) || (point.x() > drop_target_parent_view_->width())) {
-    ResetDropTargetTimer();
+    ResetDropTargetTimers();
     return;
   }
   if (!data.url.is_valid() || !data.url.IsStandard() || is_in_split_view) {
-    ResetDropTargetTimer();
+    ResetDropTargetTimers();
     return;
   }
 
   if (base::FeatureList::IsEnabled(features::kSideBySideDropTargetNudge) &&
       ShouldShowNudge() && drop_target_view_->ShouldShowAnimation()) {
-    HandleDragUpdateForNudge(point,
-                             MultiContentsDropTargetView::DragType::kLink);
+    HandleDragUpdateForNudge(point);
   } else {
     HandleDragUpdate(point, MultiContentsDropTargetView::DragType::kLink);
   }
 }
 
 void MultiContentsViewDropTargetController::OnWebContentsDragExit() {
-  ResetDropTargetTimer();
+  ResetDropTargetTimers();
 
   if (drop_target_view_->GetVisible()) {
     // Evaluate determining whether to hide the drop target on a new task
@@ -246,7 +246,7 @@
 }
 
 void MultiContentsViewDropTargetController::OnWebContentsDragEnded() {
-  ResetDropTargetTimer();
+  ResetDropTargetTimers();
   drop_target_view_->Hide();
 }
 
@@ -254,7 +254,7 @@
   // When a link is dropped into the web contents from outside the current
   // window, we do not receive a OnWebContentsDragEnded event. So when a new tab
   // is created, hide the drop target.
-  ResetDropTargetTimer();
+  ResetDropTargetTimers();
   drop_target_view_->Hide();
 }
 
@@ -287,13 +287,12 @@
         drag_type);
     return;
   }
-  ResetDropTargetTimer();
+  ResetDropTargetTimers();
   drop_target_view_->Hide();
 }
 
 void MultiContentsViewDropTargetController::HandleDragUpdateForNudge(
-    const gfx::Point& point_in_view,
-    MultiContentsDropTargetView::DragType drag_type) {
+    const gfx::Point& point_in_view) {
   CHECK_LE(0, point_in_view.x());
   CHECK_LE(point_in_view.x(), drop_target_parent_view_->width());
   CHECK(base::FeatureList::IsEnabled(features::kSideBySideDropTargetNudge));
@@ -305,6 +304,7 @@
   // Either hide or show the drop target if the drag is in the trigger area.
   if (point_ratio > nudge_ratio && point_ratio < 1.0f - nudge_ratio) {
     drop_target_view_->Hide();
+    show_nudge_timer_.reset();
     return;
   }
 
@@ -320,13 +320,13 @@
   }
 
   // Avoid transitioning to the `kNudge` state if the drop target view is
-  // already visible on that side.
-  if (drop_target_view_->side() != side) {
-    drop_target_view_->Show(
-        side, MultiContentsDropTargetView::DropTargetState::kNudge, drag_type);
-    prefs_->SetInteger(prefs::kSplitViewDragAndDropNudgeShownCount,
-                       nudge_shown_count_ + 1);
-    base::RecordAction(base::UserMetricsAction("Tabs.SplitView.NudgeShown"));
+  // already visible on that side. If the timer is already running for this
+  // side, don't restart the timer.
+  const bool nudge_timer_running_on_same_side =
+      show_nudge_timer_.has_value() && show_nudge_timer_->timer.IsRunning() &&
+      show_nudge_timer_->drop_side == side;
+  if (drop_target_view_->side() != side && !nudge_timer_running_on_same_side) {
+    StartNudgeShowTimer(side);
   }
 }
 
@@ -351,8 +351,9 @@
       &MultiContentsViewDropTargetController::ShowTimerDelayedDropTarget);
 }
 
-void MultiContentsViewDropTargetController::ResetDropTargetTimer() {
+void MultiContentsViewDropTargetController::ResetDropTargetTimers() {
   show_drop_target_timer_.reset();
+  show_nudge_timer_.reset();
 }
 
 void MultiContentsViewDropTargetController::ShowTimerDelayedDropTarget() {
@@ -371,6 +372,29 @@
                      base::Unretained(drop_target_view_), false));
 }
 
+void MultiContentsViewDropTargetController::StartNudgeShowTimer(
+    MultiContentsDropTargetView::DropSide drop_side) {
+  show_nudge_timer_.emplace(drop_side,
+                            MultiContentsDropTargetView::DragType::kLink);
+  show_nudge_timer_->timer.Start(
+      FROM_HERE, features::kSideBySideShowNudgeDelay.Get(),
+      base::BindOnce(
+          &MultiContentsViewDropTargetController::ShowTimerDelayedNudge,
+          base::Unretained(this), drop_side));
+}
+
+void MultiContentsViewDropTargetController::ShowTimerDelayedNudge(
+    MultiContentsDropTargetView::DropSide drop_side) {
+  if (drop_target_view_->side() != drop_side) {
+    drop_target_view_->Show(
+        drop_side, MultiContentsDropTargetView::DropTargetState::kNudge,
+        MultiContentsDropTargetView::DragType::kLink);
+    prefs_->SetInteger(prefs::kSplitViewDragAndDropNudgeShownCount,
+                       nudge_shown_count_ + 1);
+    base::RecordAction(base::UserMetricsAction("Tabs.SplitView.NudgeShown"));
+  }
+}
+
 bool MultiContentsViewDropTargetController::PointOverlapsWithOSDropTarget(
     const gfx::Point& point_in_view) {
   if (!drop_target_parent_view_->GetWidget() ||
diff --git a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.h b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.h
index cf7c437..28897f8f 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.h
+++ b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller.h
@@ -5,6 +5,8 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_FRAME_MULTI_CONTENTS_VIEW_DROP_TARGET_CONTROLLER_H_
 #define CHROME_BROWSER_UI_VIEWS_FRAME_MULTI_CONTENTS_VIEW_DROP_TARGET_CONTROLLER_H_
 
+#include <optional>
+
 #include "base/callback_list.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
@@ -106,23 +108,27 @@
   // Assumes the dragged data is droppable (e.g. tab or link).
   void HandleDragUpdate(const gfx::Point& point_in_view,
                         MultiContentsDropTargetView::DragType drag_type);
-  void HandleDragUpdateForNudge(
-      const gfx::Point& point_in_view,
-      MultiContentsDropTargetView::DragType drag_type);
+  void HandleDragUpdateForNudge(const gfx::Point& point_in_view);
 
   // Starts or updates a running timer to show `target_to_show`.
   void StartOrUpdateDropTargetTimer(
       MultiContentsDropTargetView::DropSide drop_side,
       MultiContentsDropTargetView::DragType drag_type);
-  void ResetDropTargetTimer();
+  void ResetDropTargetTimers();
 
   // Shows the drop target that should be displayed at the end of the delay.
   void ShowTimerDelayedDropTarget();
 
-  // Timer to hides the drop target if the drag isn't over web contents or
+  // Timer to hide the drop target if the drag isn't over web contents or
   // drop target.
   void StartDropTargetHideTimer();
 
+  // Timer to show the nudge after a small delay.
+  void StartNudgeShowTimer(MultiContentsDropTargetView::DropSide drop_side);
+
+  // Actually show the drop target nudge.
+  void ShowTimerDelayedNudge(MultiContentsDropTargetView::DropSide drop_side);
+
   // Used to determine if the drop target should be hidden because the OS drop
   // target would be visible. Estimation based on when OS drop targets typically
   // show. Only returns true if the browser is maximized.
@@ -144,6 +150,8 @@
 
   base::OneShotTimer hide_drop_target_timer_;
 
+  std::optional<DropTargetShowTimer> show_nudge_timer_ = std::nullopt;
+
   // The view that is displayed when drags hover over the "drop" region of
   // the content area.
   const raw_ref<MultiContentsDropTargetView> drop_target_view_;
diff --git a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_browsertest.cc b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_browsertest.cc
index aca8bd52..e7c0fd9 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_browsertest.cc
+++ b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_browsertest.cc
@@ -50,9 +50,6 @@
  protected:
   void SetUpOnMainThread() override {
     SplitViewBrowserTestMixin::SetUpOnMainThread();
-    if (ShouldSkipTests()) {
-      return;
-    }
     delegate_ = std::make_unique<MultiContentsViewDelegateImpl>(*browser());
     controller_ = std::make_unique<MultiContentsViewDropTargetController>(
         *drop_target_view(), *delegate_.get(),
@@ -105,18 +102,6 @@
     return controller().IsDropTimerRunningForTesting();
   }
 
-  // TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-  bool ShouldSkipTests() {
-#if BUILDFLAG(IS_OZONE)
-    if (!ui::OzonePlatform::GetInstance()
-             ->GetPlatformProperties()
-             .supports_split_view_drag_and_drop) {
-      return true;
-    }
-#endif
-    return false;
-  }
-
  private:
   base::test::ScopedFeatureList feature_list_;
   std::unique_ptr<MultiContentsViewDropTargetController> controller_;
@@ -124,28 +109,13 @@
 };
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewDropTargetControllerBrowserTest,
-                       OnTabDragUpdatedMaximizedWithStartPoint) {
-  if (ShouldSkipTests()) {
-    return;
-  }
-  SimulateTabDrag(true, gfx::Point(30, 250));
-  EXPECT_FALSE(IsDropTimerRunning());
-}
-
-IN_PROC_BROWSER_TEST_F(MultiContentsViewDropTargetControllerBrowserTest,
                        OnTabDragUpdatedNotMaximizedWithStartPoint) {
-  if (ShouldSkipTests()) {
-    return;
-  }
   SimulateTabDrag(false, gfx::Point(30, 250));
   EXPECT_TRUE(IsDropTimerRunning());
 }
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewDropTargetControllerBrowserTest,
                        OnTabDragUpdatedMaximizedWithMiddlePoint) {
-  if (ShouldSkipTests()) {
-    return;
-  }
   SimulateTabDrag(true, gfx::Point(GetViewWidth() / 2, 250));
   EXPECT_FALSE(IsDropTimerRunning());
 }
@@ -154,19 +124,19 @@
 // width and the maximized browser width, so these test need to be skipped.
 #if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
 IN_PROC_BROWSER_TEST_F(MultiContentsViewDropTargetControllerBrowserTest,
+                       OnTabDragUpdatedMaximizedWithStartPoint) {
+  SimulateTabDrag(true, gfx::Point(30, 250));
+  EXPECT_FALSE(IsDropTimerRunning());
+}
+
+IN_PROC_BROWSER_TEST_F(MultiContentsViewDropTargetControllerBrowserTest,
                        OnTabDragUpdatedMaximizedWithEndPoint) {
-  if (ShouldSkipTests()) {
-    return;
-  }
   SimulateTabDrag(true, gfx::Point(GetViewWidth() - 10, 250));
   EXPECT_FALSE(IsDropTimerRunning());
 }
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewDropTargetControllerBrowserTest,
                        OnTabDragUpdatedNotMaximizedWithEndPoint) {
-  if (ShouldSkipTests()) {
-    return;
-  }
   SimulateTabDrag(false, gfx::Point(GetViewWidth() - 10, 250));
   EXPECT_TRUE(IsDropTimerRunning());
 }
@@ -179,22 +149,24 @@
       override {
     std::vector<base::test::FeatureRefAndParams> features =
         MultiContentsViewDropTargetControllerBrowserTest::GetEnabledFeatures();
-    features.push_back({features::kSideBySideDropTargetNudge, {}});
+    features.push_back({features::kSideBySideDropTargetNudge,
+                        {{features::kSideBySideShowNudgeDelay.name, "500ms"}}});
     return features;
   }
 };
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewDropTargetControllerNudgeBrowserTest,
                        DropTargetHidesWhenTabInserted) {
-  if (ShouldSkipTests()) {
-    return;
-  }
-
   drop_target_view()->DisableAnimationsForTesting();
 
   content::DropData drop_data;
   drop_data.url = GURL("https://mail.google.com");
   controller().OnWebContentsDragUpdate(drop_data, gfx::Point(30, 250), false);
+  ui_test_utils::CheckWaiter(
+      base::BindRepeating(&MultiContentsDropTargetView::GetVisible,
+                          base::Unretained(drop_target_view())),
+      true, base::Seconds(1))
+      .Wait();
   ASSERT_TRUE(drop_target_view()->GetVisible());
   ASSERT_EQ(MultiContentsDropTargetView::DropTargetState::kNudge,
             drop_target_view()->state());
diff --git a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_unittest.cc b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_unittest.cc
index 05a4bfcc..8a519b1 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_unittest.cc
+++ b/chrome/browser/ui/views/frame/multi_contents_view_drop_target_controller_unittest.cc
@@ -566,6 +566,8 @@
 TEST_F(MultiContentsViewDropTargetControllerDragTest, ShowAndHideNudge) {
   // Drag to the start of the screen should show the nudge on the start side.
   DragURLTo(kDragPointForStartDropTargetShow);
+  EXPECT_FALSE(drop_target_view().GetVisible());
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
   EXPECT_EQ(drop_target_view().side().value(),
             MultiContentsDropTargetView::DropSide::START);
@@ -582,6 +584,7 @@
 
   // Drag to the end of the screen should show the nudge on the end side.
   DragURLTo(kDragPointForEndDropTargetShow);
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
   EXPECT_EQ(drop_target_view().side().value(),
             MultiContentsDropTargetView::DropSide::END);
@@ -661,6 +664,7 @@
 
   // Drag to the start of the screen should show the nudge on the end side.
   DragURLTo(kDragPointForStartDropTargetShow);
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
   EXPECT_EQ(drop_target_view().side().value(),
             MultiContentsDropTargetView::DropSide::END);
@@ -677,6 +681,7 @@
 
   // Drag to the end of the screen should show the nudge on the start side.
   DragURLTo(kDragPointForEndDropTargetShow);
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
   EXPECT_EQ(drop_target_view().side().value(),
             MultiContentsDropTargetView::DropSide::START);
@@ -687,6 +692,7 @@
 TEST_F(MultiContentsViewDropTargetControllerDragTest, NudgeToFull) {
   // Drag to the start of the screen should show the nudge on the start side.
   DragURLTo(kDragPointForStartDropTargetShow);
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
   EXPECT_EQ(drop_target_view().state().value(),
             MultiContentsDropTargetView::DropTargetState::kNudge);
@@ -703,6 +709,7 @@
 TEST_F(MultiContentsViewDropTargetControllerDragTest, NudgeToFullToHidden) {
   // Drag to the start of the screen should show the nudge on the start side.
   DragURLTo(kDragPointForStartDropTargetShow);
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
 
   // Fire the drag entered event to expand the nudge.
@@ -827,6 +834,7 @@
        FullToNudgeTransitionNotAllowed) {
   // Drag to the start of the screen should show the nudge on the start side.
   DragURLTo(kDragPointForStartDropTargetShow);
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
   EXPECT_EQ(drop_target_view().state().value(),
             MultiContentsDropTargetView::DropTargetState::kNudge);
@@ -841,6 +849,7 @@
 
   // Dragging to the nudge area should not transition back to nudge.
   DragURLTo(kDragPointForStartDropTargetShow);
+  FastForward();
   EXPECT_TRUE(drop_target_view().GetVisible());
   EXPECT_EQ(drop_target_view().state().value(),
             MultiContentsDropTargetView::DropTargetState::kNudgeToFull);
diff --git a/chrome/browser/ui/views/frame/multi_contents_view_tab_drag_interactive_uitest.cc b/chrome/browser/ui/views/frame/multi_contents_view_tab_drag_interactive_uitest.cc
index 6b73a9ad..e0c1ea3b 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view_tab_drag_interactive_uitest.cc
+++ b/chrome/browser/ui/views/frame/multi_contents_view_tab_drag_interactive_uitest.cc
@@ -21,6 +21,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/base/test/ui_controls.h"
 #include "ui/display/screen.h"
+#include "ui/views/interaction/interaction_test_util_views.h"
 #include "ui/views/view_utils.h"
 
 #if BUILDFLAG(IS_OZONE)
@@ -35,18 +36,6 @@
 DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kNewTab);
 DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kSecondTab);
 
-// TODO(crbug.com/425715421): Fix drag and drop on Wayland.
-#if BUILDFLAG(IS_OZONE)
-#define SKIP_FOR_WAYLAND()                                                \
-  if (!ui::OzonePlatform::GetInstance()                                   \
-           ->GetPlatformProperties()                                      \
-           .supports_split_view_drag_and_drop) {                          \
-    GTEST_SKIP() << "Skipping DnD test on Wayland (crbug.com/425715421)"; \
-  }
-#else
-#define SKIP_FOR_WAYLAND()
-#endif
-
 MultiContentsDropTargetView* GetDropTargetView(BrowserView& browser_view) {
   return views::AsViewClass<MultiContentsDropTargetView>(
       views::ElementTrackerViews::GetInstance()->GetFirstMatchingView(
@@ -258,7 +247,13 @@
 
 IN_PROC_BROWSER_TEST_P(MultiContentsViewTabDragEntrypointsUiParamTest,
                        DragAndDrop) {
-  SKIP_FOR_WAYLAND();
+  // TODO(crbug.com/448651072): Remove when Weston support is added.
+#if BUILDFLAG(IS_LINUX)
+  if (views::test::InteractionTestUtilSimulatorViews::IsWayland()) {
+    GTEST_SKIP() << "Weston's implementation of tab dragging is incompatible "
+                    "with creating a split view.";
+  }
+#endif
 
   BrowserView& browser_view = GetBrowserView();
   const auto drop_side = GetParam();
@@ -286,7 +281,13 @@
 
 IN_PROC_BROWSER_TEST_P(MultiContentsViewTabDragEntrypointsUiParamTest,
                        ShowAndHideDropTarget) {
-  SKIP_FOR_WAYLAND();
+  // TODO(crbug.com/448651072): Remove when Weston support is added.
+#if BUILDFLAG(IS_LINUX)
+  if (views::test::InteractionTestUtilSimulatorViews::IsWayland()) {
+    GTEST_SKIP() << "Weston's implementation of tab dragging is incompatible "
+                    "with creating a split view.";
+  }
+#endif
 
   BrowserView& browser_view = GetBrowserView();
   const auto drop_side = GetParam();
@@ -311,8 +312,6 @@
 
 IN_PROC_BROWSER_TEST_F(MultiContentsViewTabDragEntrypointsUiTest,
                        DragAndDropDisabled) {
-  SKIP_FOR_WAYLAND();
-
   BrowserView& browser_view = GetBrowserView();
 
   // Disable drag and drop.
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
index c3fa619c..3fa32d0 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
@@ -474,7 +474,8 @@
 bool OpaqueBrowserFrameView::ShouldShowWindowIcon() const {
   views::WidgetDelegate* delegate = browser_widget()->widget_delegate();
   return GetShowWindowTitleBar() && delegate &&
-         delegate->ShouldShowWindowIcon();
+         delegate->ShouldShowWindowIcon() &&
+         !browser_view()->IsWindowControlsOverlayEnabled();
 }
 
 bool OpaqueBrowserFrameView::ShouldShowWindowTitle() const {
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
index 1da1480..3825c6e 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
@@ -84,10 +84,6 @@
 
 gfx::Rect OpaqueBrowserFrameViewLayout::GetBoundsForWebAppFrameToolbar(
     const gfx::Size& toolbar_preferred_size) const {
-  if (delegate_->IsFullscreen()) {
-    return gfx::Rect();
-  }
-
   // Adding 2px of vertical padding puts at least 1 px of space on the top and
   // bottom of the element.
   constexpr int kVerticalPadding = 2;
diff --git a/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc b/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
index f152a93..e82beb0 100644
--- a/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
@@ -8,6 +8,7 @@
 #include <memory>
 
 #include "base/metrics/histogram_functions.h"
+#include "base/notreached.h"
 #include "chrome/app/vector_icons/vector_icons.h"
 #include "chrome/browser/picture_in_picture/picture_in_picture_occlusion_tracker.h"
 #include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h"
@@ -729,7 +730,11 @@
 
 gfx::Rect PictureInPictureBrowserFrameView::GetBoundsForWebAppFrameToolbar(
     const gfx::Size& toolbar_preferred_size) const {
-  return gfx::Rect();
+  NOTREACHED() << "Web app toolbar should never be shown in PiP.";
+}
+
+bool PictureInPictureBrowserFrameView::ShouldShowWebAppFrameToolbar() const {
+  return false;
 }
 
 int PictureInPictureBrowserFrameView::GetTopInset(bool restored) const {
diff --git a/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h b/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h
index d557bd81..601ce66 100644
--- a/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h
+++ b/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h
@@ -73,6 +73,7 @@
   gfx::Rect GetBoundsForWebAppFrameToolbar(
       const gfx::Size& toolbar_preferred_size) const override;
   int GetTopInset(bool restored) const override;
+  bool ShouldShowWebAppFrameToolbar() const override;
   void OnBrowserViewInitViewsComplete() override;
   void UpdateThrobber(bool running) override {}
   gfx::Rect GetBoundsForClientView() const override;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.cc b/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.cc
index f67f2c0c..23acd1c 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/ui/views/omnibox/omnibox_popup_presenter.h"
 
+#include "base/feature_list.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/observer_list_types.h"
@@ -18,6 +19,7 @@
 #include "chrome/browser/ui/webui/omnibox_popup/omnibox_popup_web_contents_helper.h"
 #include "chrome/browser/ui/webui/searchbox/webui_omnibox_handler.h"
 #include "chrome/common/webui_url_constants.h"
+#include "components/omnibox/common/omnibox_features.h"
 #include "content/public/browser/render_widget_host_view.h"
 #include "ui/base/metadata/metadata_impl_macros.h"
 #include "ui/gfx/geometry/rounded_corners_f.h"
@@ -25,7 +27,9 @@
 OmniboxPopupPresenter::OmniboxPopupPresenter(LocationBarView* location_bar_view,
                                              OmniboxController* controller)
     : views::WebView(location_bar_view->profile()),
-      location_bar_view_(location_bar_view) {
+      location_bar_view_(location_bar_view),
+      include_location_bar_cutout_(
+          !base::FeatureList::IsEnabled(omnibox::kWebUIOmniboxFullPopup)) {
   set_owned_by_client(OwnedByClientPassKey());
 
   // Make the OmniboxController available to the OmniboxPopupUI.
@@ -66,8 +70,8 @@
 
     widget_->ShowInactive();
 
-    widget_->SetContentsView(
-        std::make_unique<RoundedOmniboxResultsFrame>(this, location_bar_view_));
+    widget_->SetContentsView(std::make_unique<RoundedOmniboxResultsFrame>(
+        this, location_bar_view_, include_location_bar_cutout_));
     widget_->AddObserver(this);
 
     // On Show(), the widget height can not be 0 or else the compositor thinks
@@ -108,7 +112,9 @@
       views::LayoutProvider::Get()->GetCornerRadiusMetric(
           views::ShapeContextTokens::kOmniboxExpandedRadius);
   gfx::RoundedCornersF rounded_corner_radii =
-      gfx::RoundedCornersF(0, 0, corner_radius, corner_radius);
+      gfx::RoundedCornersF(include_location_bar_cutout_ ? 0 : corner_radius,
+                           include_location_bar_cutout_ ? 0 : corner_radius,
+                           corner_radius, corner_radius);
   holder()->SetCornerRadii(rounded_corner_radii);
 }
 
@@ -123,9 +129,13 @@
     // The width is known, and is the basis for consistent web content rendering
     // so width is specified exactly; then only height adjusts dynamically.
     gfx::Rect widget_bounds = location_bar_view_->GetBoundsInScreen();
-    widget_bounds.Inset(
-        -RoundedOmniboxResultsFrame::GetLocationBarAlignmentInsets());
-    widget_bounds.set_height(widget_bounds.height() + content_height);
+    if (include_location_bar_cutout_) {
+      widget_bounds.Inset(
+          -RoundedOmniboxResultsFrame::GetLocationBarAlignmentInsets());
+      widget_bounds.set_height(widget_bounds.height() + content_height);
+    } else {
+      widget_bounds.set_height(content_height);
+    }
     widget_bounds.Inset(-RoundedOmniboxResultsFrame::GetShadowInsets());
     widget_->SetBounds(widget_bounds);
   }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.h b/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.h
index 3946a53..6da1b7f 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.h
+++ b/chrome/browser/ui/views/omnibox/omnibox_popup_presenter.h
@@ -82,6 +82,9 @@
 
   // Whether any call to `GetHandler` has been made.
   bool requested_handler_ = false;
+
+  // Whether or not the WebUI popup includes the `location_bar_view` cutout.
+  bool include_location_bar_cutout_ = false;
 };
 
 #endif  // CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_POPUP_PRESENTER_H_
diff --git a/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc b/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
index 92dfdebe..ee2ea7a 100644
--- a/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
+++ b/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
@@ -224,12 +224,13 @@
 
 RoundedOmniboxResultsFrame::RoundedOmniboxResultsFrame(
     views::View* contents,
-    LocationBarView* location_bar)
-    : contents_(contents) {
+    LocationBarView* location_bar,
+    bool include_cutout)
+    : contents_(contents), include_cutout_(include_cutout) {
   const int corner_radius = views::LayoutProvider::Get()->GetCornerRadiusMetric(
       views::ShapeContextTokens::kOmniboxExpandedRadius);
   // Host the contents in its own View to simplify layout and customization.
-  auto contents_host =
+  auto contents_host_builder =
       views::Builder<views::View>()
           .CopyAddressTo(&contents_host_)
           .SetBackground(
@@ -243,11 +244,14 @@
                     gfx::RoundedCornersF(corner_radius));
                 view->layer()->SetIsFastRoundedCorner(true);
               },
-              corner_radius))
-          .AddChild(views::Builder<TopBackgroundView>(
-                        std::make_unique<TopBackgroundView>(location_bar))
-                        .CopyAddressTo(&top_background_))
-          .Build();
+              corner_radius));
+  if (include_cutout_) {
+    contents_host_builder.AddChild(
+        views::Builder<TopBackgroundView>(
+            std::make_unique<TopBackgroundView>(location_bar))
+            .CopyAddressTo(&top_background_));
+  }
+  auto contents_host = std::move(contents_host_builder).Build();
   contents_host->AddChildViewRaw(contents_.get());
 
   // Initialize the shadow.
@@ -285,9 +289,10 @@
 }
 
 // static
-int RoundedOmniboxResultsFrame::GetNonResultSectionHeight() {
-  return GetLayoutConstant(LOCATION_BAR_HEIGHT) +
-         GetLocationBarAlignmentInsets().height();
+int RoundedOmniboxResultsFrame::GetNonResultSectionHeight(bool include_cutout) {
+  return include_cutout ? GetLayoutConstant(LOCATION_BAR_HEIGHT) +
+                              GetLocationBarAlignmentInsets().height()
+                        : 0;
 }
 
 // static
@@ -311,10 +316,12 @@
   gfx::Rect bounds = GetContentsBounds();
   contents_host_->SetBoundsRect(bounds);
 
-  gfx::Rect top_bounds(contents_host_->GetContentsBounds());
-  top_bounds.set_height(GetNonResultSectionHeight());
-  top_bounds.Inset(GetLocationBarAlignmentInsets());
-  top_background_->SetBoundsRect(top_bounds);
+  if (include_cutout_) {
+    gfx::Rect top_bounds(contents_host_->GetContentsBounds());
+    top_bounds.set_height(GetNonResultSectionHeight(include_cutout_));
+    top_bounds.Inset(GetLocationBarAlignmentInsets());
+    top_background_->SetBoundsRect(top_bounds);
+  }
 
   gfx::Rect results_bounds(contents_host_->GetContentsBounds());
   results_bounds.Inset(GetContentInsets());
@@ -359,7 +366,7 @@
 
 // Insets used to position |contents_| within |contents_host_|.
 gfx::Insets RoundedOmniboxResultsFrame::GetContentInsets() {
-  return gfx::Insets::TLBR(GetNonResultSectionHeight(), 0, 0, 0);
+  return gfx::Insets::TLBR(GetNonResultSectionHeight(include_cutout_), 0, 0, 0);
 }
 
 BEGIN_METADATA(RoundedOmniboxResultsFrame)
diff --git a/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.h b/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.h
index 1387a625..b2238d2 100644
--- a/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.h
+++ b/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.h
@@ -19,7 +19,8 @@
 
  public:
   RoundedOmniboxResultsFrame(views::View* contents,
-                             LocationBarView* location_bar);
+                             LocationBarView* location_bar,
+                             bool include_cutout = true);
   RoundedOmniboxResultsFrame(const RoundedOmniboxResultsFrame&) = delete;
   RoundedOmniboxResultsFrame& operator=(const RoundedOmniboxResultsFrame&) =
       delete;
@@ -30,7 +31,7 @@
                                  views::Widget* widget);
 
   // The height of the location bar view part of the omnibox popup.
-  static int GetNonResultSectionHeight();
+  static int GetNonResultSectionHeight(bool include_cutout = true);
 
   // How the Widget is aligned relative to the location bar.
   static gfx::Insets GetLocationBarAlignmentInsets();
@@ -52,6 +53,7 @@
   raw_ptr<views::View> top_background_ = nullptr;
   raw_ptr<views::View> contents_host_ = nullptr;
   raw_ptr<views::View> contents_;
+  bool include_cutout_ = true;
 };
 
 #endif  // CHROME_BROWSER_UI_VIEWS_OMNIBOX_ROUNDED_OMNIBOX_RESULTS_FRAME_H_
diff --git a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
index f2659f78..242990e0c8 100644
--- a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
+++ b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
@@ -222,33 +222,6 @@
 BEGIN_METADATA(PaymentHandlerCloseButton)
 END_METADATA
 
-PaymentHandlerWebFlowViewController::PaymentHandlerWebFlowViewController(
-    base::WeakPtr<PaymentRequestSpec> spec,
-    base::WeakPtr<PaymentRequestState> state,
-    base::WeakPtr<PaymentRequestDialogView> dialog,
-    content::WebContents* payment_request_web_contents,
-    Profile* profile,
-    GURL target,
-    PaymentHandlerOpenWindowCallback first_navigation_complete_callback)
-    : PaymentRequestSheetController(spec, state, dialog),
-      log_(payment_request_web_contents),
-      profile_(profile),
-      target_(target),
-      first_navigation_complete_callback_(
-          std::move(first_navigation_complete_callback)),
-      dialog_manager_delegate_(payment_request_web_contents) {}
-
-PaymentHandlerWebFlowViewController::~PaymentHandlerWebFlowViewController() {
-  if (web_contents()) {
-    auto* manager = web_modal::WebContentsModalDialogManager::FromWebContents(
-        web_contents());
-    if (manager) {
-      manager->SetDelegate(nullptr);
-    }
-  }
-  state()->OnPaymentAppWindowClosed();
-}
-
 // Ensures that the views::WebView created by this class has its corners
 // properly rounded. This class is a ViewsObserver that waits until the view
 // attaches to the widget, then manually sets its corner radii to match those of
@@ -284,6 +257,33 @@
   base::WeakPtr<PaymentRequestDialogView> dialog_;
 };
 
+PaymentHandlerWebFlowViewController::PaymentHandlerWebFlowViewController(
+    base::WeakPtr<PaymentRequestSpec> spec,
+    base::WeakPtr<PaymentRequestState> state,
+    base::WeakPtr<PaymentRequestDialogView> dialog,
+    content::WebContents* payment_request_web_contents,
+    Profile* profile,
+    GURL target,
+    PaymentHandlerOpenWindowCallback first_navigation_complete_callback)
+    : PaymentRequestSheetController(spec, state, dialog),
+      log_(payment_request_web_contents),
+      profile_(profile),
+      target_(target),
+      first_navigation_complete_callback_(
+          std::move(first_navigation_complete_callback)),
+      dialog_manager_delegate_(payment_request_web_contents) {}
+
+PaymentHandlerWebFlowViewController::~PaymentHandlerWebFlowViewController() {
+  if (web_contents()) {
+    auto* manager = web_modal::WebContentsModalDialogManager::FromWebContents(
+        web_contents());
+    if (manager) {
+      manager->SetDelegate(nullptr);
+    }
+  }
+  state()->OnPaymentAppWindowClosed();
+}
+
 std::u16string PaymentHandlerWebFlowViewController::GetSheetTitle() {
   return GetPaymentHandlerDialogTitle(web_contents());
 }
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc
index 4c83f2a..b08de093 100644
--- a/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc
@@ -79,6 +79,7 @@
 #include "components/signin/public/identity_manager/identity_test_utils.h"
 #include "components/signin/public/identity_manager/primary_account_mutator.h"
 #include "components/signin/public/identity_manager/signin_constants.h"
+#include "components/sync/base/data_type.h"
 #include "components/sync/base/features.h"
 #include "components/sync/service/sync_service.h"
 #include "components/sync/test/test_sync_service.h"
@@ -3066,6 +3067,78 @@
 TEST_WITH_SIGNED_IN_FROM_PRE(
     IN_PROC_BROWSER_TEST_F,
     AvatarToolbarButtonReplaceSyncPromosWithSignInPromosBrowserTest,
+    ShowBatchUploadPromo) {
+  ASSERT_TRUE(
+      GetIdentityManager()->HasPrimaryAccount(signin::ConsentLevel::kSignin));
+  SetHistoryAndTabsSyncingPreference(/*enable_sync=*/true);
+  // Any (local/account storage) valid data type that is not
+  // `syncer::BOOKMARKS`, otherwise the bookmarks promo would have a higher
+  // priority.
+  batch_upload_test_helper().SetReturnDescriptions(syncer::PASSWORDS,
+                                                   /*item_count=*/5);
+
+  AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser());
+  ASSERT_EQ(avatar->GetText(),
+            l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING,
+                                       test_given_name()));
+  avatar->ClearActiveStateForTesting();
+
+  ASSERT_EQ(avatar->GetText(),
+            l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_BATCH_UPLOAD_PROMO));
+  avatar->ClearActiveStateForTesting();
+
+  // Once the greeting and promo are not shown anymore, we expect no text.
+  EXPECT_EQ(avatar->GetText(), std::u16string());
+}
+#endif  // !BUILDFLAG(IS_WIN)
+
+class AvatarToolbarButtonWithWindows10DepreciationBrowserTest
+    : public AvatarToolbarButtonBrowserTest {
+ public:
+  AvatarToolbarButtonWithWindows10DepreciationBrowserTest() {
+    scoped_feature_list_.InitWithFeatures(
+        /*enabled_features=*/{syncer::kReplaceSyncPromosWithSignInPromos,
+                              switches::
+                                  kSigninWindows10DepreciationStateForTesting},
+        /*disabled_features=*/{});
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+// TODO(crbug.com/331746545): Check flaky test issue on windows.
+#if !BUILDFLAG(IS_WIN)
+TEST_WITH_SIGNED_IN_FROM_PRE(
+    IN_PROC_BROWSER_TEST_F,
+    AvatarToolbarButtonWithWindows10DepreciationBrowserTest,
+    ShowBatchUploadWindowsDepreciationPromo) {
+  ASSERT_TRUE(
+      GetIdentityManager()->HasPrimaryAccount(signin::ConsentLevel::kSignin));
+  SetHistoryAndTabsSyncingPreference(/*enable_sync=*/false);
+  batch_upload_test_helper().SetReturnDescriptions(syncer::PASSWORDS,
+                                                   /*item_count=*/5);
+
+  AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser());
+  ASSERT_EQ(avatar->GetText(),
+            l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING,
+                                       test_given_name()));
+  avatar->ClearActiveStateForTesting();
+
+  ASSERT_EQ(avatar->GetText(),
+            l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_PROMO));
+  avatar->ClearActiveStateForTesting();
+
+  // Once the greeting and promo are not shown anymore, we expect no text.
+  EXPECT_EQ(avatar->GetText(), std::u16string());
+}
+#endif  // !BUILDFLAG(IS_WIN)
+
+// TODO(crbug.com/331746545): Check flaky test issue on windows.
+#if !BUILDFLAG(IS_WIN)
+TEST_WITH_SIGNED_IN_FROM_PRE(
+    IN_PROC_BROWSER_TEST_F,
+    AvatarToolbarButtonReplaceSyncPromosWithSignInPromosBrowserTest,
     NoPromoShownUntilSyncServiceIsInitialized) {
   ASSERT_TRUE(
       GetIdentityManager()->HasPrimaryAccount(signin::ConsentLevel::kSignin));
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button_state_manager.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button_state_manager.cc
index 4e72348..a89b219 100644
--- a/chrome/browser/ui/views/profiles/avatar_toolbar_button_state_manager.cc
+++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button_state_manager.cc
@@ -1094,10 +1094,17 @@
     switch (coordinator_->promo_type().value()) {
       case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo:
         return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_HISTORY);
+      case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo:
+        return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_BATCH_UPLOAD_PROMO);
       case signin::ProfileMenuAvatarButtonPromoInfo::Type::
           kBatchUploadBookmarksPromo:
         return l10n_util::GetStringUTF16(
             IDS_AVATAR_BUTTON_BATCH_UPLOAD_PROMO_WITH_BOOKMARK_CLEANUP_PROMO);
+      case signin::ProfileMenuAvatarButtonPromoInfo::Type::
+          kBatchUploadWindows10DepreciationPromo:
+        // Note: Sync promo does not explicitly mention "sync" but invites the
+        // user to back-up their data. It is fine to be used here.
+        return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_PROMO);
       case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
         CHECK(switches::IsAvatarSyncPromoFeatureEnabled());
         return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_PROMO);
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view.cc b/chrome/browser/ui/views/profiles/profile_menu_view.cc
index dc46539..586c349 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view.cc
+++ b/chrome/browser/ui/views/profiles/profile_menu_view.cc
@@ -523,18 +523,34 @@
 }
 
 void ProfileMenuView::OnBatchUploadButtonClicked(ActionableItem button_type) {
-  CHECK(button_type == ActionableItem::kBatchUploadButton ||
-        button_type ==
-            ActionableItem::kBatchUploadWithBookmarksAsPrimaryButton);
+  BatchUploadService::EntryPoint batch_upload_entry_point;
+  switch (button_type) {
+    case ActionableItem::kBatchUploadButton:
+      batch_upload_entry_point =
+          BatchUploadService::EntryPoint::kProfileMenuRowButtonAction;
+      break;
+    case ActionableItem::kBatchUploadAsPrimaryButton:
+      batch_upload_entry_point =
+          BatchUploadService::EntryPoint::kProfileMenuPrimaryButtonAction;
+      break;
+    case ActionableItem::kBatchUploadWithBookmarksAsPrimaryButton:
+      batch_upload_entry_point = BatchUploadService::EntryPoint::
+          kProfileMenuPrimaryButtonWithBookmarksAction;
+      break;
+    case ActionableItem::kBatchUploadWindows10DepreciationAsPrimaryButton:
+      batch_upload_entry_point = BatchUploadService::EntryPoint::
+          kProfileMenuPrimaryButtonWithWindows10DepreciationAction;
+      break;
+    default:
+      NOTREACHED() << "This actionable item should not trigger Batch Upload.";
+  }
+
   OnActionableItemClicked(button_type);
   if (!perform_menu_actions()) {
     return;
   }
-  // TODO(crbug.com/447048341): Make the `BatchUploadService::EntryPoint` depend
-  // on which button was clicked.
   BatchUploadServiceFactory::GetForProfile(&profile())
-      ->OpenBatchUpload(&browser(),
-                        BatchUploadService::EntryPoint::kProfileMenu);
+      ->OpenBatchUpload(&browser(), batch_upload_entry_point);
 }
 
 void ProfileMenuView::SetMenuTitleForAccessibility() {
@@ -755,6 +771,17 @@
             button_type = ActionableItem::kHistorySyncButton;
             break;
           case signin::ProfileMenuAvatarButtonPromoInfo::Type::
+              kBatchUploadPromo:
+            params.subtitle = l10n_util::GetStringUTF16(
+                IDS_PROFILE_MENU_PROMO_DESCRIPTION_WITH_BATCH_UPLOAD);
+            params.button_text = l10n_util::GetStringUTF16(
+                IDS_PROFILE_MENU_PROMO_BUTTON_WITH_BATCH_UPLOAD);
+            params.button_action = base::BindRepeating(
+                &ProfileMenuView::OnBatchUploadButtonClicked,
+                base::Unretained(this),
+                ActionableItem::kBatchUploadAsPrimaryButton);
+            break;
+          case signin::ProfileMenuAvatarButtonPromoInfo::Type::
               kBatchUploadBookmarksPromo:
             params.subtitle = l10n_util::GetStringUTF16(
                 IDS_PROFILE_MENU_PROMO_DESCRIPTION_WITH_BATCH_UPLOAD_BOOKMARK_CLEANUP);
@@ -765,6 +792,20 @@
                 base::Unretained(this),
                 ActionableItem::kBatchUploadWithBookmarksAsPrimaryButton);
             break;
+          case signin::ProfileMenuAvatarButtonPromoInfo::Type::
+              kBatchUploadWindows10DepreciationPromo:
+            // Note: Sync promo does not explicitly mention "sync" but invites
+            // the user to back-up their data. It is fine to be used here.
+            params.subtitle = l10n_util::GetStringUTF16(
+                IDS_PROFILE_MENU_DESCRIPTION_WITH_SYNC_PROMO);
+            params.button_text = l10n_util::GetStringUTF16(
+                IDS_PROFILE_MENU_BUTTON_LABEL_WITH_SYNC_PROMO);
+            params.button_action = base::BindRepeating(
+                &ProfileMenuView::OnBatchUploadButtonClicked,
+                base::Unretained(this),
+                ActionableItem::
+                    kBatchUploadWindows10DepreciationAsPrimaryButton);
+            break;
           case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo:
             CHECK(switches::IsAvatarSyncPromoFeatureEnabled());
             params.subtitle = l10n_util::GetStringUTF16(
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
index 262c087..787a3c2 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
@@ -270,6 +270,39 @@
 
 // ProfileMenuViewBase ---------------------------------------------------------
 
+// Despite ProfileMenuViewBase being a dialog, we are enforcing it to behave
+// like a menu from the accessibility POV because it fits better with a menu UX.
+// The dialog exposes the kMenuBar role, and the top-level container is kMenu.
+// This class is responsible for emitting menu accessible events when the dialog
+// is activated or deactivated.
+class ProfileMenuViewBase::AXMenuWidgetObserver : public views::WidgetObserver {
+ public:
+  AXMenuWidgetObserver(ProfileMenuViewBase* owner, views::Widget* widget)
+      : owner_(owner) {
+    observation_.Observe(widget);
+  }
+  ~AXMenuWidgetObserver() override = default;
+
+  void OnWidgetActivationChanged(views::Widget* widget, bool active) override {
+    if (active) {
+      owner_->NotifyAccessibilityEventDeprecated(ax::mojom::Event::kMenuStart,
+                                                 true);
+      owner_->NotifyAccessibilityEventDeprecated(
+          ax::mojom::Event::kMenuPopupStart, true);
+    } else {
+      owner_->NotifyAccessibilityEventDeprecated(
+          ax::mojom::Event::kMenuPopupEnd, true);
+      owner_->NotifyAccessibilityEventDeprecated(ax::mojom::Event::kMenuEnd,
+                                                 true);
+    }
+  }
+
+ private:
+  raw_ptr<ProfileMenuViewBase> owner_;
+  base::ScopedObservation<views::Widget, views::WidgetObserver> observation_{
+      this};
+};
+
 ProfileMenuViewBase::ProfileMenuViewBase(ui::TrackedElement* anchor_element,
                                          Browser* browser)
     : BubbleDialogDelegateView(anchor_element, views::BubbleBorder::TOP_RIGHT),
@@ -718,38 +751,5 @@
   return button;
 }
 
-// Despite ProfileMenuViewBase being a dialog, we are enforcing it to behave
-// like a menu from the accessibility POV because it fits better with a menu UX.
-// The dialog exposes the kMenuBar role, and the top-level container is kMenu.
-// This class is responsible for emitting menu accessible events when the dialog
-// is activated or deactivated.
-class ProfileMenuViewBase::AXMenuWidgetObserver : public views::WidgetObserver {
- public:
-  AXMenuWidgetObserver(ProfileMenuViewBase* owner, views::Widget* widget)
-      : owner_(owner) {
-    observation_.Observe(widget);
-  }
-  ~AXMenuWidgetObserver() override = default;
-
-  void OnWidgetActivationChanged(views::Widget* widget, bool active) override {
-    if (active) {
-      owner_->NotifyAccessibilityEventDeprecated(ax::mojom::Event::kMenuStart,
-                                                 true);
-      owner_->NotifyAccessibilityEventDeprecated(
-          ax::mojom::Event::kMenuPopupStart, true);
-    } else {
-      owner_->NotifyAccessibilityEventDeprecated(
-          ax::mojom::Event::kMenuPopupEnd, true);
-      owner_->NotifyAccessibilityEventDeprecated(ax::mojom::Event::kMenuEnd,
-                                                 true);
-    }
-  }
-
- private:
-  raw_ptr<ProfileMenuViewBase> owner_;
-  base::ScopedObservation<views::Widget, views::WidgetObserver> observation_{
-      this};
-};
-
 BEGIN_METADATA(ProfileMenuViewBase)
 END_METADATA
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.h b/chrome/browser/ui/views/profiles/profile_menu_view_base.h
index fc895a4..2917972 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view_base.h
+++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.h
@@ -86,8 +86,10 @@
     kGoogleServicesSettingsButton = 26,
     kHistorySyncButton = 27,
     kBatchUploadWithBookmarksAsPrimaryButton = 28,
+    kBatchUploadAsPrimaryButton = 29,
+    kBatchUploadWindows10DepreciationAsPrimaryButton = 30,
 
-    kMaxValue = kBatchUploadWithBookmarksAsPrimaryButton,
+    kMaxValue = kBatchUploadWindows10DepreciationAsPrimaryButton,
   };
   // LINT.ThenChange(//tools/metrics/histograms/metadata/profile/enums.xml:ProfileMenuActionableItem)
 
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
index 420020569..8c0c583 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
@@ -46,6 +46,7 @@
 #include "chrome/browser/signin/signin_promo.h"
 #include "chrome/browser/signin/signin_ui_delegate.h"
 #include "chrome/browser/signin/signin_ui_util.h"
+#include "chrome/browser/signin/signin_util.h"
 #include "chrome/browser/sync/sync_service_factory.h"
 #include "chrome/browser/sync/sync_ui_util.h"
 #include "chrome/browser/sync/test/integration/secondary_account_helper.h"
@@ -1877,7 +1878,10 @@
 PROFILE_MENU_CLICK_WITH_FEATURE_TEST(
     kActionableItems_WithBatchUploadPromoButton,
     ProfileMenuClickTest_WithBatchUploadPromoButton,
-    /*enabled_features=*/{syncer::kReplaceSyncPromosWithSignInPromos},
+    /*enabled_features=*/
+    std::vector<base::test::FeatureRef>(
+        {syncer::kReplaceSyncPromosWithSignInPromos,
+         switches::kSigninWindows10DepreciationStateBypassForTesting}),
     /*disabled_features=*/{}) {
   secondary_account_helper::SignInUnconsentedAccount(
       GetProfile(), &test_url_loader_factory_, "user@example.com");
@@ -1897,9 +1901,8 @@
 
 // List of actionable items in the correct order as they appear in the menu. If
 // a new button is added to the menu, it should also be added to this list.
-constexpr std::array kActionableItems_WithBatchUploadBookmarksPromoButton = {
-    ProfileMenuViewBase::ActionableItem::
-        kBatchUploadWithBookmarksAsPrimaryButton,
+constexpr std::array kActionableItems_WithBatchUploadPrimaryPromoButton = {
+    ProfileMenuViewBase::ActionableItem::kBatchUploadAsPrimaryButton,
     ProfileMenuViewBase::ActionableItem::kBatchUploadButton,
     ProfileMenuViewBase::ActionableItem::kAutofillSettingsButton,
     ProfileMenuViewBase::ActionableItem::kManageGoogleAccountButton,
@@ -1911,13 +1914,107 @@
     ProfileMenuViewBase::ActionableItem::kManageProfilesButton,
     // The first button is added again to finish the cycle and test that
     // there are no other buttons at the end.
-    ProfileMenuViewBase::ActionableItem::
-        kBatchUploadWithBookmarksAsPrimaryButton};
+    ProfileMenuViewBase::ActionableItem::kBatchUploadAsPrimaryButton};
 
 PROFILE_MENU_CLICK_WITH_FEATURE_TEST(
-    kActionableItems_WithBatchUploadBookmarksPromoButton,
-    ProfileMenuClickTest_WithBatchUploadBookmarksPromoButton,
-    /*enabled_features=*/{syncer::kReplaceSyncPromosWithSignInPromos},
+    kActionableItems_WithBatchUploadPrimaryPromoButton,
+    ProfileMenuClickTest_WithBatchUploadPrimaryPromoButton,
+    /*enabled_features=*/
+    std::vector<base::test::FeatureRef>(
+        {syncer::kReplaceSyncPromosWithSignInPromos,
+         switches::kSigninWindows10DepreciationStateBypassForTesting}),
+    /*disabled_features=*/{}) {
+  secondary_account_helper::SignInUnconsentedAccount(
+      GetProfile(), &test_url_loader_factory_, "user@example.com");
+  UnconsentedPrimaryAccountChecker(identity_manager()).Wait();
+  // Check that the setup was successful.
+  ASSERT_FALSE(
+      identity_manager()->HasPrimaryAccount(signin::ConsentLevel::kSync));
+  ASSERT_TRUE(
+      identity_manager()->HasPrimaryAccount(signin::ConsentLevel::kSignin));
+
+  signin_util::EnableHistorySync(sync_service());
+
+  // Any (local/account storage) valid data type that is not
+  // `syncer::BOOKMARKS`, otherwise the bookmarks promo would have a higher
+  // priority.
+  batch_upload_test_helper().SetReturnDescriptions(syncer::PASSWORDS,
+                                                   /*item_count=*/5);
+
+  RunTest();
+}
+
+// List of actionable items in the correct order as they appear in the menu. If
+// a new button is added to the menu, it should also be added to this list.
+constexpr std::array
+    kActionableItems_WithBatchUploadWindows10DepreciationPrimaryPromoButton = {
+        ProfileMenuViewBase::ActionableItem::
+            kBatchUploadWindows10DepreciationAsPrimaryButton,
+        ProfileMenuViewBase::ActionableItem::kBatchUploadButton,
+        ProfileMenuViewBase::ActionableItem::kAutofillSettingsButton,
+        ProfileMenuViewBase::ActionableItem::kManageGoogleAccountButton,
+        ProfileMenuViewBase::ActionableItem::kEditProfileButton,
+        ProfileMenuViewBase::ActionableItem::kAccountSettingsButton,
+        ProfileMenuViewBase::ActionableItem::kSignoutButton,
+        ProfileMenuViewBase::ActionableItem::kAddNewProfileButton,
+        ProfileMenuViewBase::ActionableItem::kGuestProfileButton,
+        ProfileMenuViewBase::ActionableItem::kManageProfilesButton,
+        // The first button is added again to finish the cycle and test that
+        // there are no other buttons at the end.
+        ProfileMenuViewBase::ActionableItem::
+            kBatchUploadWindows10DepreciationAsPrimaryButton};
+
+PROFILE_MENU_CLICK_WITH_FEATURE_TEST(
+    kActionableItems_WithBatchUploadWindows10DepreciationPrimaryPromoButton,
+    ProfileMenuClickTest_WithBatchUploadWindows10DepreciationPrimaryPromoButton,
+    /*enabled_features=*/
+    std::vector<base::test::FeatureRef>(
+        {syncer::kReplaceSyncPromosWithSignInPromos,
+         switches::kSigninWindows10DepreciationStateForTesting}),
+    /*disabled_features=*/{}) {
+  secondary_account_helper::SignInUnconsentedAccount(
+      GetProfile(), &test_url_loader_factory_, "user@example.com");
+  UnconsentedPrimaryAccountChecker(identity_manager()).Wait();
+  // Check that the setup was successful.
+  ASSERT_FALSE(
+      identity_manager()->HasPrimaryAccount(signin::ConsentLevel::kSync));
+  ASSERT_TRUE(
+      identity_manager()->HasPrimaryAccount(signin::ConsentLevel::kSignin));
+
+  // Any (local/account storage) valid data type.
+  batch_upload_test_helper().SetReturnDescriptions(syncer::PASSWORDS,
+                                                   /*item_count=*/5);
+
+  RunTest();
+}
+
+// List of actionable items in the correct order as they appear in the menu. If
+// a new button is added to the menu, it should also be added to this list.
+constexpr std::array
+    kActionableItems_WithBatchUploadBookmarksPrimaryPromoButton = {
+        ProfileMenuViewBase::ActionableItem::
+            kBatchUploadWithBookmarksAsPrimaryButton,
+        ProfileMenuViewBase::ActionableItem::kBatchUploadButton,
+        ProfileMenuViewBase::ActionableItem::kAutofillSettingsButton,
+        ProfileMenuViewBase::ActionableItem::kManageGoogleAccountButton,
+        ProfileMenuViewBase::ActionableItem::kEditProfileButton,
+        ProfileMenuViewBase::ActionableItem::kAccountSettingsButton,
+        ProfileMenuViewBase::ActionableItem::kSignoutButton,
+        ProfileMenuViewBase::ActionableItem::kAddNewProfileButton,
+        ProfileMenuViewBase::ActionableItem::kGuestProfileButton,
+        ProfileMenuViewBase::ActionableItem::kManageProfilesButton,
+        // The first button is added again to finish the cycle and test that
+        // there are no other buttons at the end.
+        ProfileMenuViewBase::ActionableItem::
+            kBatchUploadWithBookmarksAsPrimaryButton};
+
+PROFILE_MENU_CLICK_WITH_FEATURE_TEST(
+    kActionableItems_WithBatchUploadBookmarksPrimaryPromoButton,
+    ProfileMenuClickTest_WithBatchUploadBookmarksPrimaryPromoButton,
+    /*enabled_features=*/
+    std::vector<base::test::FeatureRef>(
+        {syncer::kReplaceSyncPromosWithSignInPromos,
+         switches::kSigninWindows10DepreciationStateBypassForTesting}),
     /*disabled_features=*/{}) {
   secondary_account_helper::SignInUnconsentedAccount(
       GetProfile(), &test_url_loader_factory_, "user@example.com");
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_ui_browsertest.cc b/chrome/browser/ui/views/profiles/profile_menu_view_ui_browsertest.cc
index 997b9616..fe4ef04 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view_ui_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_menu_view_ui_browsertest.cc
@@ -261,6 +261,8 @@
         .pixel_test_param = {.test_suffix = "BatchUploadPromoSingleLocalData"},
         .signin_status = SigninStatusPixelTestParam::kSignedInNoSync,
         .with_local_data = WithLocalData::kSingleLocalData,
+        .extra_features_and_params =
+            {{switches::kSigninWindows10DepreciationStateBypassForTesting, {}}},
     },
     {
         .pixel_test_param = {.test_suffix =
@@ -268,11 +270,30 @@
                              .use_dark_theme = true},
         .signin_status = SigninStatusPixelTestParam::kSignedInNoSync,
         .with_local_data = WithLocalData::kMultipleLocalData,
+        .extra_features_and_params =
+            {{switches::kSigninWindows10DepreciationStateBypassForTesting, {}}},
     },
     {
-        .pixel_test_param = {.test_suffix = "BatchUploadBookmarksPromo"},
+        .pixel_test_param = {.test_suffix = "BatchUploadPrimaryPromo"},
+        .signin_status = SigninStatusPixelTestParam::kSignedInWithHistorySync,
+        .with_local_data = WithLocalData::kMultipleLocalData,
+        .extra_features_and_params =
+            {{switches::kSigninWindows10DepreciationStateBypassForTesting, {}}},
+    },
+    {
+        .pixel_test_param = {.test_suffix = "BatchUploadBookmarksPrimaryPromo"},
         .signin_status = SigninStatusPixelTestParam::kSignedInNoSync,
         .with_local_data = WithLocalData::kWithBookmarksLocalData,
+        .extra_features_and_params =
+            {{switches::kSigninWindows10DepreciationStateBypassForTesting, {}}},
+    },
+    {
+        .pixel_test_param =
+            {.test_suffix = "BatchUploadWindows10DepreciationPrimaryPromo"},
+        .signin_status = SigninStatusPixelTestParam::kSignedInNoSync,
+        .with_local_data = WithLocalData::kMultipleLocalData,
+        .extra_features_and_params =
+            {{switches::kSigninWindows10DepreciationStateForTesting, {}}},
     },
     {
         .pixel_test_param = {.test_suffix = "AvatarSyncPromo"},
diff --git a/chrome/browser/ui/views/save_to_drive/account_chooser_controller.cc b/chrome/browser/ui/views/save_to_drive/account_chooser_controller.cc
index 95bf577..dfceaf6 100644
--- a/chrome/browser/ui/views/save_to_drive/account_chooser_controller.cc
+++ b/chrome/browser/ui/views/save_to_drive/account_chooser_controller.cc
@@ -21,8 +21,8 @@
 // window. Otherwise, the popup window is centered in the screen.
 gfx::Rect ComputePopupWindowBounds(content::WebContents* source_window) {
   gfx::Rect source_window_bounds = source_window->GetContainerBounds();
-  const int kPopupWindowWidth = 400;
-  const int kPopupWindowHeight = 484;
+  const int kPopupWindowWidth = 500;
+  const int kPopupWindowHeight = 600;
   int x_coordinate;
   int y_coordinate;
 
diff --git a/chrome/browser/ui/views/session_restore_infobar/BUILD.gn b/chrome/browser/ui/views/session_restore_infobar/BUILD.gn
index ec8a413..353ea583 100644
--- a/chrome/browser/ui/views/session_restore_infobar/BUILD.gn
+++ b/chrome/browser/ui/views/session_restore_infobar/BUILD.gn
@@ -22,6 +22,7 @@
   deps = [
     "//chrome/app:branded_strings_grit",
     "//chrome/app:generated_resources_grit",
+    "//chrome/browser/content_settings:content_settings_factory",
     "//chrome/browser/infobars",
     "//chrome/browser/profiles",
     "//chrome/browser/sessions",
@@ -35,6 +36,7 @@
     "//chrome/browser/ui/tabs:tab_strip_model_observer",
     "//chrome/browser/ui/views/infobars",
     "//chrome/common",
+    "//components/content_settings/core/browser",
     "//components/infobars/content",
     "//components/infobars/core",
     "//components/omnibox/browser:vector_icons",
diff --git a/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_controller.cc b/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_controller.cc
index fefa68c..64032b6 100644
--- a/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_controller.cc
+++ b/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_controller.cc
@@ -14,6 +14,7 @@
 #include "base/logging.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/notreached.h"
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/prefs/session_startup_pref.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/sessions/session_restore.h"
@@ -25,6 +26,8 @@
 #include "chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_prefs.h"
 #include "chrome/common/pref_names.h"
 #include "components/browsing_data/core/pref_names.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/web_contents.h"
 
@@ -42,6 +45,13 @@
     Profile& profile,
     bool was_restarted,
     bool is_post_crash_launch) {
+  HostContentSettingsMap* host_content_settings_map =
+      HostContentSettingsMapFactory::GetForProfile(&profile);
+  if (host_content_settings_map->GetDefaultContentSetting(
+          ContentSettingsType::COOKIES) != CONTENT_SETTING_ALLOW) {
+    return;
+  }
+
   model_ = std::make_unique<SessionRestoreInfobarModel>(profile, was_restarted,
                                                         is_post_crash_launch);
 
diff --git a/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_interactive_uitest.cc b/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_interactive_uitest.cc
index 7fccb7cf..380e3ad 100644
--- a/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_interactive_uitest.cc
+++ b/chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_interactive_uitest.cc
@@ -7,6 +7,7 @@
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_element_identifiers.h"
@@ -21,6 +22,10 @@
 #include "chrome/test/base/ui_test_utils.h"
 #include "chrome/test/interaction/interactive_browser_test.h"
 #include "chrome/test/interaction/tracked_element_webcontents.h"
+#include "components/browsing_data/core/pref_names.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings_types.h"
 #include "components/infobars/core/infobar_manager.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/test/browser_test.h"
@@ -117,6 +122,19 @@
   RunTestSequence(EnsureNotPresent(ConfirmInfoBar::kInfoBarElementId));
 }
 
+// Test that the session restore infobar is not shown when clear on exit is
+// enabled.
+IN_PROC_BROWSER_TEST_P(SessionRestoreInfobarInteractiveTest,
+                       InfoBarNotShownWhenClearOnExit) {
+  HostContentSettingsMap* host_content_settings_map =
+      HostContentSettingsMapFactory::GetForProfile(browser()->profile());
+  host_content_settings_map->SetDefaultContentSetting(
+      ContentSettingsType::COOKIES, CONTENT_SETTING_BLOCK);
+
+  CreateInfobar(browser(), true, false);
+  RunTestSequence(EnsureNotPresent(ConfirmInfoBar::kInfoBarElementId));
+}
+
 // Test that the session restore infobar has the correct message value when the
 // browser session is restored.
 IN_PROC_BROWSER_TEST_P(SessionRestoreInfobarInteractiveTest,
diff --git a/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator.cc
index 4186dc87..550d4129 100644
--- a/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator.cc
+++ b/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator.cc
@@ -6,6 +6,7 @@
 
 #include "base/functional/callback.h"
 #include "chrome/browser/tab_group_sync/tab_group_sync_service_factory.h"
+#include "chrome/browser/ui/browser_actions.h"
 #include "chrome/browser/ui/browser_element_identifiers.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
@@ -212,10 +213,8 @@
           : l10n_util::GetStringUTF16(
                 IDS_COLLABORATION_SHARED_TAB_GROUPS_COMMENTS_TITLE);
 
-  SidePanelCoordinator* side_panel =
-      browser_->GetFeatures().side_panel_coordinator();
-  actions::ActionItem* action_item = side_panel->GetActionItem(
-      SidePanelEntry::Key(SidePanelEntry::Id::kComments));
+  actions::ActionItem* action_item = actions::ActionManager::Get().FindAction(
+      kActionSidePanelShowComments, browser_->GetActions()->root_action_item());
 
   if (title != action_item->GetText()) {
     action_item->SetText(title);
diff --git a/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator_interactive_uitest.cc b/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator_interactive_uitest.cc
index 05e7852..7c441f9 100644
--- a/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator_interactive_uitest.cc
+++ b/chrome/browser/ui/views/side_panel/comments/comments_side_panel_coordinator_interactive_uitest.cc
@@ -6,6 +6,7 @@
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/tab_group_sync/tab_group_sync_service_factory.h"
 #include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_actions.h"
 #include "chrome/browser/ui/browser_element_identifiers.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/tabs/public/tab_features.h"
@@ -118,6 +119,12 @@
     return browser()->GetFeatures().comments_side_panel_coordinator();
   }
 
+  actions::ActionItem* GetActionItemForCommentsSidePanel() {
+    return actions::ActionManager::Get().FindAction(
+        kActionSidePanelShowComments,
+        browser()->GetActions()->root_action_item());
+  }
+
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
 };
@@ -301,10 +308,7 @@
   RunTestSequence(
       // Initially, the title should have no group name.
       Do([&]() {
-        SidePanelCoordinator* side_panel =
-            browser()->GetFeatures().side_panel_coordinator();
-        actions::ActionItem* action_item = side_panel->GetActionItem(
-            SidePanelEntry::Key(SidePanelEntry::Id::kComments));
+        actions::ActionItem* action_item = GetActionItemForCommentsSidePanel();
         EXPECT_EQ(u"Comments", action_item->GetText());
       }),
 
@@ -314,20 +318,14 @@
       WaitForShow(kSharedTabGroupCommentsActionElementId),
       PressButton(kSharedTabGroupCommentsActionElementId),
       WaitForShow(kSidePanelElementId), FinishTabstripAnimations(), Do([&]() {
-        SidePanelCoordinator* side_panel =
-            browser()->GetFeatures().side_panel_coordinator();
-        actions::ActionItem* action_item = side_panel->GetActionItem(
-            SidePanelEntry::Key(SidePanelEntry::Id::kComments));
+        actions::ActionItem* action_item = GetActionItemForCommentsSidePanel();
         EXPECT_EQ(u"Comments - Group 1", action_item->GetText());
       }),
 
       // Activate another shared tab, verify the title is updated.
       SelectTab(kTabStripElementId, group2_tab_index, InputType::kMouse),
       WaitForActiveTabChange(group2_tab_index), Do([&]() {
-        SidePanelCoordinator* side_panel =
-            browser()->GetFeatures().side_panel_coordinator();
-        actions::ActionItem* action_item = side_panel->GetActionItem(
-            SidePanelEntry::Key(SidePanelEntry::Id::kComments));
+        actions::ActionItem* action_item = GetActionItemForCommentsSidePanel();
         EXPECT_EQ(u"Comments - Group 2", action_item->GetText());
       }));
 }
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
index e50a46ae..a6a4d8208 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
@@ -69,30 +69,10 @@
               SidePanelUtil::SidePanelOpenTrigger open_trigger) override;
   void OpenInNewTab() override;
 
-  void SetNoDelaysForTesting(bool no_delays_for_testing) override;
-
-  // Returns the web contents in a side panel if one exists.
-  content::WebContents* GetWebContentsForTest(SidePanelEntryId id) override;
-  void DisableAnimationsForTesting() override;
-
   // Re-runs open new tab URL check and sets button state to enabled/disabled
   // accordingly.
   void UpdateNewTabButtonState();
 
-  SidePanelEntry* GetCurrentSidePanelEntryForTesting();
-
-  actions::ActionItem* GetActionItem(SidePanelEntry::Key entry_key);
-
-  views::ToggleImageButton* GetHeaderPinButtonForTesting() {
-    return header_pin_button_;
-  }
-
-  views::ImageButton* GetHeaderMoreInfoButtonForTesting() {
-    return header_more_info_button_;
-  }
-
-  SidePanelEntry* GetLoadingEntryForTesting() const;
-
   // SidePanelUIBase:
   using SidePanelUIBase::Show;
   void Close(bool suppress_animations) override;
@@ -106,12 +86,27 @@
   using ShownCallback = base::RepeatingCallback<void()>;
   base::CallbackListSubscription RegisterSidePanelShown(ShownCallback callback);
 
+  void SetNoDelaysForTesting(bool no_delays_for_testing) override;
+
+  content::WebContents* GetWebContentsForTest(SidePanelEntryId id) override;
+  void DisableAnimationsForTesting() override;
+
+  SidePanelEntry* GetCurrentSidePanelEntryForTesting();
+
+  views::ToggleImageButton* GetHeaderPinButtonForTesting() {
+    return header_pin_button_;
+  }
+
+  views::ImageButton* GetHeaderMoreInfoButtonForTesting() {
+    return header_more_info_button_;
+  }
+
+  SidePanelEntry* GetLoadingEntryForTesting() const;
+
  private:
   friend class SidePanelCoordinatorTest;
-  FRIEND_TEST_ALL_PREFIXES(UserNoteUICoordinatorTest,
-                           ShowEmptyUserNoteSidePanel);
-  FRIEND_TEST_ALL_PREFIXES(UserNoteUICoordinatorTest,
-                           PopulateUserNoteSidePanel);
+
+  actions::ActionItem* GetActionItem(SidePanelEntry::Key entry_key);
 
   void UpdatePinState();
   void UpdateHeaderPinButtonState();
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator_browsertest.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator_browsertest.cc
index 705dcf5..a3c3923 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator_browsertest.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator_browsertest.cc
@@ -29,6 +29,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_window.h"
 #include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_actions.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/tabs/public/tab_features.h"
 #include "chrome/browser/ui/tabs/split_tab_metrics.h"
@@ -824,7 +825,9 @@
 
   SidePanelEntry* entry = global_registry()->GetEntryForKey(
       SidePanelEntry::Key(SidePanelEntry::Id::kBookmarks));
-  actions::ActionItem* action_item = coordinator()->GetActionItem(entry->key());
+  actions::ActionItem* action_item = actions::ActionManager::Get().FindAction(
+      kActionSidePanelShowBookmarks,
+      browser()->GetActions()->root_action_item());
 
   // Update the action item text.
   const std::u16string new_title = u"New Bookmarks title";
diff --git a/chrome/browser/ui/views/side_panel/side_panel_util.cc b/chrome/browser/ui/views/side_panel/side_panel_util.cc
index b1fb784..864b09c 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_util.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_util.cc
@@ -183,10 +183,6 @@
   }
 }
 
-void SidePanelUtil::RecordComboboxShown() {
-  base::UmaHistogramBoolean("SidePanel.ComboboxMenuShown", true);
-}
-
 void SidePanelUtil::RecordPinnedButtonClicked(SidePanelEntry::Id id,
                                               bool is_pinned) {
   base::RecordComputedAction(base::StrCat(
diff --git a/chrome/browser/ui/views/side_panel/side_panel_util.h b/chrome/browser/ui/views/side_panel/side_panel_util.h
index c3efb38..a61bbd0 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_util.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_util.h
@@ -51,7 +51,6 @@
       Browser* browser,
       SidePanelEntry::Id id,
       std::optional<SidePanelOpenTrigger> trigger);
-  static void RecordComboboxShown();
   static void RecordPinnedButtonClicked(SidePanelEntry::Id id, bool is_pinned);
   static void RecordSidePanelAnimationMetrics(
       base::TimeDelta largest_step_time);
diff --git a/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.cc b/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.cc
index 9413a13..7404391 100644
--- a/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.cc
+++ b/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.cc
@@ -188,23 +188,8 @@
     "ContextMenuMaxTabSuggestions",
     5);
 
-const base::FeatureParam<RealboxLayoutMode>::Option
-    kRealboxLayoutModeOptions[] = {
-        {RealboxLayoutMode::kDefault, kRealboxLayoutModeDefault},
-        {RealboxLayoutMode::kTall, kRealboxLayoutModeTall},
-        {RealboxLayoutMode::kCompact, kRealboxLayoutModeCompact}};
-const base::FeatureParam<RealboxLayoutMode> kRealboxLayoutMode(
-    &kNtpComposebox,
-    "RealboxLayoutMode",
-    RealboxLayoutMode::kDefault,
-    &kRealboxLayoutModeOptions);
-
 const base::FeatureParam<int> kMaxNumFiles(&kNtpComposebox, "MaxNumFiles", 1);
 
-const base::FeatureParam<bool> kCyclingPlaceholders(&kNtpComposebox,
-                                                    "CyclingPlaceholders",
-                                                    false);
-
 FeatureConfig::FeatureConfig() : config(GetNTPComposeboxConfig()) {}
 
 FeatureConfig::FeatureConfig(const FeatureConfig&) = default;
@@ -213,16 +198,53 @@
 FeatureConfig& FeatureConfig::operator=(FeatureConfig&&) = default;
 FeatureConfig::~FeatureConfig() = default;
 
+}  // namespace ntp_composebox
+
+namespace ntp_realbox {
+
+bool IsNtpRealboxNextEnabled(Profile* profile) {
+  if (!profile) {
+    return false;
+  }
+
+  // The `AimEligibilityService` depends on the `TemplateURLService`. If the
+  // `TemplateURLService` does not exist for this profile, then the
+  // `AimEligibilityService` cannot be created.
+  if (!TemplateURLServiceFactory::GetForProfile(profile)) {
+    return false;
+  }
+
+  return AimEligibilityService::GenericKillSwitchFeatureCheck(
+      AimEligibilityServiceFactory::GetForProfile(profile), kNtpRealboxNext);
+}
+
+BASE_FEATURE(kNtpRealboxNext, base::FEATURE_DISABLED_BY_DEFAULT);
+
+const base::FeatureParam<bool> kCyclingPlaceholders(&kNtpRealboxNext,
+                                                    "CyclingPlaceholders",
+                                                    false);
+
+const base::FeatureParam<RealboxLayoutMode>::Option
+    kRealboxLayoutModeOptions[] = {
+        {RealboxLayoutMode::kTall, kRealboxLayoutModeTall},
+        {RealboxLayoutMode::kCompact, kRealboxLayoutModeCompact}};
+
+const base::FeatureParam<RealboxLayoutMode> kRealboxLayoutMode(
+    &kNtpRealboxNext,
+    "RealboxLayoutMode",
+    RealboxLayoutMode::kTall,
+    &kRealboxLayoutModeOptions);
+
 std::string_view RealboxLayoutModeToString(
     RealboxLayoutMode realbox_layout_mode) {
   switch (realbox_layout_mode) {
-    case RealboxLayoutMode::kDefault:
-      return kRealboxLayoutModeDefault;
     case RealboxLayoutMode::kTall:
       return kRealboxLayoutModeTall;
     case RealboxLayoutMode::kCompact:
       return kRealboxLayoutModeCompact;
+    default:
+      NOTREACHED();
   }
 }
 
-}  // namespace ntp_composebox
+}  // namespace ntp_realbox
diff --git a/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.h b/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.h
index 2a07ad3..32f08a8e 100644
--- a/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.h
+++ b/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.h
@@ -41,20 +41,7 @@
 extern const base::FeatureParam<bool> kShowContextMenuTabPreviews;
 // The maximum number of tab suggestions to show in the composebox context menu.
 extern const base::FeatureParam<int> kContextMenuMaxTabSuggestions;
-// Enum for `kRealboxLayoutMode`.
-enum class RealboxLayoutMode {
-  kDefault,
-  kTall,
-  kCompact,
-};
 
-// String constants for RealboxLayoutMode.
-inline constexpr char kRealboxLayoutModeDefault[] = "Default";
-inline constexpr char kRealboxLayoutModeTall[] = "Tall";
-inline constexpr char kRealboxLayoutModeCompact[] = "Compact";
-
-// Flag to control the realbox layout mode (Tall, Compact, Default).
-extern const base::FeatureParam<RealboxLayoutMode> kRealboxLayoutMode;
 // The maximum number of file attachments to upload.
 extern const base::FeatureParam<int> kMaxNumFiles;
 // Whether or not to show a description in the context menu entrypoint, or just
@@ -64,15 +51,9 @@
 extern const base::FeatureParam<bool> kShowToolsAndModels;
 // Whether to show the create image button in the composebox context menu.
 extern const base::FeatureParam<bool> kShowCreateImageTool;
-// Whether to show a series of cycling placeholder texts on the search input UI.
-extern const base::FeatureParam<bool> kCyclingPlaceholders;
 
 bool IsNtpComposeboxEnabled(Profile* profile);
 
-// Returns the string representation of `RealboxLayoutMode`.
-std::string_view RealboxLayoutModeToString(
-    RealboxLayoutMode realbox_layout_mode);
-
 class FeatureConfig : public omnibox_feature_configs::Config<FeatureConfig> {
  public:
   // The configuration proto for the feature.
@@ -95,4 +76,34 @@
 
 }  // namespace ntp_composebox
 
+namespace ntp_realbox {
+
+// If overridden to false, disables the feature (kill switch). If true, enables
+// the feature.
+BASE_DECLARE_FEATURE(kNtpRealboxNext);
+
+// Whether to show a series of cycling placeholder texts on the search input UI.
+extern const base::FeatureParam<bool> kCyclingPlaceholders;
+
+// Enum for `kRealboxLayoutMode`.
+enum class RealboxLayoutMode {
+  kTall,
+  kCompact,
+};
+
+// Flag to control the realbox layout mode (Tall, Compact).
+extern const base::FeatureParam<RealboxLayoutMode> kRealboxLayoutMode;
+
+bool IsNtpRealboxNextEnabled(Profile* profile);
+
+// String constants for RealboxLayoutMode.
+inline constexpr char kRealboxLayoutModeTall[] = "Tall";
+inline constexpr char kRealboxLayoutModeCompact[] = "Compact";
+
+// Returns the string representation of `RealboxLayoutMode`.
+std::string_view RealboxLayoutModeToString(
+    RealboxLayoutMode realbox_layout_mode);
+
+}  // namespace ntp_realbox
+
 #endif  // CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_COMPOSEBOX_VARIATIONS_COMPOSEBOX_FIELDTRIAL_H_
diff --git a/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial_browsertest.cc b/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial_browsertest.cc
index fb0fb5c..036e959 100644
--- a/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial_browsertest.cc
+++ b/chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial_browsertest.cc
@@ -4,7 +4,9 @@
 
 #include "chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.h"
 
+#include <memory>
 #include <optional>
+#include <string>
 #include <tuple>
 #include <vector>
 
@@ -62,31 +64,15 @@
   bool server_eligibility_enabled_;
 };
 
-class NtpComposeboxFieldTrialBrowserTest
+class NtpFieldTrialBrowserTest
     : public InProcessBrowserTest,
       public ::testing::WithParamInterface<
           std::tuple<std::string, std::string, bool, bool, bool, bool>> {
  public:
-  NtpComposeboxFieldTrialBrowserTest() = default;
-  ~NtpComposeboxFieldTrialBrowserTest() override = default;
+  NtpFieldTrialBrowserTest() = default;
+  ~NtpFieldTrialBrowserTest() override = default;
 
  protected:
-  void SetUp() override {
-    auto composebox_feature = std::get<5>(GetParam());
-    std::vector<base::test::FeatureRef> enabled_features;
-    std::vector<base::test::FeatureRef> disabled_features;
-
-    if (composebox_feature) {
-      enabled_features.push_back(ntp_composebox::kNtpComposebox);
-    } else {
-      disabled_features.push_back(ntp_composebox::kNtpComposebox);
-    }
-
-    feature_list_.InitWithFeatures(enabled_features, disabled_features);
-
-    InProcessBrowserTest::SetUp();
-  }
-
   void SetUpOnMainThread() override {
     scoped_browser_locale_ =
         std::make_unique<ScopedBrowserLocale>(std::get<0>(GetParam()));
@@ -118,10 +104,63 @@
     InProcessBrowserTest::TearDownOnMainThread();
   }
 
+  bool GetExpectedEnabled() {
+    auto [locale, country, is_locally_eligible, is_server_eligible,
+          server_eligibility_enabled, feature] = GetParam();
+
+    bool expected_enabled = false;
+
+    // Implementation logic mirrors IsNtpComposeboxEnabled:
+    // 1. If generic composebox feature is overridden to false, return false.
+    if (!feature) {
+      return false;
+    }
+
+    // Get the service to check server eligibility (this is now handled by the
+    // mock).
+    auto* service =
+        AimEligibilityServiceFactory::GetForProfile(browser()->profile());
+
+    // 2. If server response is enabled, return overall eligibility alone.
+    if (service && service->IsServerEligibilityEnabled()) {
+      expected_enabled = service->IsAimEligible();
+    } else {
+      // 3. If not locally eligible, return false.
+      expected_enabled = is_locally_eligible ? feature : false;
+    }
+
+    return expected_enabled;
+  }
+
   base::test::ScopedFeatureList feature_list_;
   std::unique_ptr<ScopedBrowserLocale> scoped_browser_locale_;
 };
 
+class NtpComposeboxFieldTrialBrowserTest : public NtpFieldTrialBrowserTest {
+ public:
+  NtpComposeboxFieldTrialBrowserTest() = default;
+  ~NtpComposeboxFieldTrialBrowserTest() override = default;
+  NtpComposeboxFieldTrialBrowserTest(
+      const NtpComposeboxFieldTrialBrowserTest&) = delete;
+  NtpComposeboxFieldTrialBrowserTest& operator=(
+      const NtpComposeboxFieldTrialBrowserTest&) = delete;
+
+ protected:
+  void SetUp() override {
+    std::vector<base::test::FeatureRef> enabled_features;
+    std::vector<base::test::FeatureRef> disabled_features;
+    const auto composebox_feature = std::get<5>(GetParam());
+    if (composebox_feature) {
+      enabled_features.push_back(ntp_composebox::kNtpComposebox);
+    } else {
+      disabled_features.push_back(ntp_composebox::kNtpComposebox);
+    }
+    feature_list_.InitWithFeatures(enabled_features, disabled_features);
+
+    InProcessBrowserTest::SetUp();
+  }
+};
+
 INSTANTIATE_TEST_SUITE_P(,
                          NtpComposeboxFieldTrialBrowserTest,
                          ::testing::Combine(
@@ -139,34 +178,52 @@
                              ::testing::Values(true, false)));
 
 IN_PROC_BROWSER_TEST_P(NtpComposeboxFieldTrialBrowserTest, Test) {
-  auto [locale, country, is_locally_eligible, is_server_eligible,
-        server_eligibility_enabled, composebox_feature] = GetParam();
-
-  bool expected_enabled = false;
-
-  // Implementation logic mirrors IsNtpComposeboxEnabled:
-  // 1. If generic composebox feature is overridden to false, return false.
-  if (!composebox_feature) {
-    expected_enabled = false;
-  } else {
-    // Get the service to check server eligibility (this is now handled by the
-    // mock).
-    auto* service =
-        AimEligibilityServiceFactory::GetForProfile(browser()->profile());
-
-    // 2. If server response is enabled, return overall eligibility alone.
-    if (service->IsServerEligibilityEnabled()) {
-      expected_enabled = service->IsAimEligible();
-    } else {
-      // 3. If not locally eligible, return false.
-      if (!is_locally_eligible) {
-        expected_enabled = false;
-      } else {
-        expected_enabled = composebox_feature;
-      }
-    }
-  }
-
   EXPECT_EQ(ntp_composebox::IsNtpComposeboxEnabled(browser()->profile()),
-            expected_enabled);
+            GetExpectedEnabled());
+}
+
+class NtpRealboxNextFieldTrialBrowserTest : public NtpFieldTrialBrowserTest {
+ public:
+  NtpRealboxNextFieldTrialBrowserTest() = default;
+  ~NtpRealboxNextFieldTrialBrowserTest() override = default;
+  NtpRealboxNextFieldTrialBrowserTest(
+      const NtpRealboxNextFieldTrialBrowserTest&) = delete;
+  NtpRealboxNextFieldTrialBrowserTest& operator=(
+      const NtpRealboxNextFieldTrialBrowserTest&) = delete;
+
+ protected:
+  void SetUp() override {
+    std::vector<base::test::FeatureRef> enabled_features;
+    std::vector<base::test::FeatureRef> disabled_features;
+    const auto feature = std::get<5>(GetParam());
+    if (feature) {
+      enabled_features.push_back(ntp_realbox::kNtpRealboxNext);
+    } else {
+      disabled_features.push_back(ntp_realbox::kNtpRealboxNext);
+    }
+    feature_list_.InitWithFeatures(enabled_features, disabled_features);
+
+    InProcessBrowserTest::SetUp();
+  }
+};
+
+INSTANTIATE_TEST_SUITE_P(,
+                         NtpRealboxNextFieldTrialBrowserTest,
+                         ::testing::Combine(
+                             // Values for the locale.
+                             ::testing::Values("en-US", "es-MX"),
+                             // Values for the country.
+                             ::testing::Values("us", "ca"),
+                             // Values for local eligibility.
+                             ::testing::Values(true, false),
+                             // Values for server eligibility.
+                             ::testing::Values(true, false),
+                             // Values for server eligibility enabled.
+                             ::testing::Values(true, false),
+                             // Values for the generic realbox next feature.
+                             ::testing::Values(true, false)));
+
+IN_PROC_BROWSER_TEST_P(NtpRealboxNextFieldTrialBrowserTest, Test) {
+  EXPECT_EQ(ntp_realbox::IsNtpRealboxNextEnabled(browser()->profile()),
+            GetExpectedEnabled());
 }
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
index 5dba28d..ff3135c 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -562,10 +562,6 @@
                      ntp_composebox::kShowComposeboxZps.Get());
   source->AddBoolean("composeboxShowTypedSuggest",
                      ntp_composebox::kShowComposeboxTypedSuggest.Get());
-  source->AddString(
-      "realboxLayoutMode",
-      ntp_composebox::RealboxLayoutModeToString(
-          ntp_composebox::kRealboxLayoutMode.Get()));
   source->AddBoolean("composeboxShowImageSuggest",
                      ntp_composebox::kShowComposeboxImageSuggestions.Get());
   source->AddBoolean("composeboxShowContextMenuDescription",
@@ -844,8 +840,7 @@
   std::unique_ptr<ComposeboxMetricsRecorder> composebox_metrics_recorder;
   // Only create the composebox query controller and metrics recorder needed for
   // contextual search if realbox next is enabled.
-  if (ntp_composebox::kRealboxLayoutMode.Get() !=
-      ntp_composebox::RealboxLayoutMode::kDefault) {
+  if (ntp_realbox::IsNtpRealboxNextEnabled(profile_)) {
     query_controller = std::make_unique<ComposeboxQueryController>(
         IdentityManagerFactory::GetForProfile(profile_),
         g_browser_process->shared_url_loader_factory(), chrome::GetChannel(),
diff --git a/chrome/browser/ui/webui/searchbox/BUILD.gn b/chrome/browser/ui/webui/searchbox/BUILD.gn
index 1c269d2..e3a5541 100644
--- a/chrome/browser/ui/webui/searchbox/BUILD.gn
+++ b/chrome/browser/ui/webui/searchbox/BUILD.gn
@@ -55,6 +55,7 @@
     "//chrome/browser/ui/omnibox",
     "//chrome/browser/ui/search",
     "//chrome/browser/ui/tabs:tab_strip",
+    "//chrome/browser/ui/views/location_bar",
     "//chrome/browser/ui/webui:webui_util",
     "//components/bookmarks/browser",
     "//components/lens",
diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc
index 49916ce..2eee51e 100644
--- a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc
+++ b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc
@@ -322,9 +322,6 @@
   source->AddBoolean("forceHideEllipsis", false);
   source->AddBoolean("enableThumbnailSizingTweaks", false);
   source->AddBoolean("enableCsbMotionTweaks", false);
-  source->AddString("realboxLayoutMode",
-                    ntp_composebox::RealboxLayoutModeToString(
-                        ntp_composebox::kRealboxLayoutMode.Get()));
 
   static constexpr webui::LocalizedString kStrings[] = {
       {"lensSearchButtonLabel", IDS_TOOLTIP_LENS_SEARCH},
@@ -414,8 +411,14 @@
                          ntp_composebox::FeatureConfig::Get()
                              .config.entry_point()
                              .num_page_load_animations());
+  source->AddString("realboxLayoutMode",
+                    ntp_realbox::IsNtpRealboxNextEnabled(profile)
+                        ? ntp_realbox::RealboxLayoutModeToString(
+                              ntp_realbox::kRealboxLayoutMode.Get())
+                        : "");
   source->AddBoolean("searchboxCyclingPlaceholders",
-                     ntp_composebox::kCyclingPlaceholders.Get());
+                     ntp_realbox::IsNtpRealboxNextEnabled(profile) &&
+                         ntp_realbox::kCyclingPlaceholders.Get());
 }
 
 std::string SearchboxHandler::AutocompleteIconToResourceName(
diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.h b/chrome/browser/ui/webui/searchbox/searchbox_handler.h
index bfdf9d6..e27d0266 100644
--- a/chrome/browser/ui/webui/searchbox/searchbox_handler.h
+++ b/chrome/browser/ui/webui/searchbox/searchbox_handler.h
@@ -159,13 +159,13 @@
       bookmarks::BookmarkModel* bookmark_model,
       const omnibox::GroupConfigMap& suggestion_groups_map,
       const TemplateURLService* turl_service) const;
-  std::optional<searchbox::mojom::AutocompleteMatchPtr> CreateAutocompleteMatch(
-      const AutocompleteMatch& match,
-      size_t line,
-      const OmniboxEditModel* edit_model,
-      bookmarks::BookmarkModel* bookmark_model,
-      const omnibox::GroupConfigMap& suggestion_groups_map,
-      const TemplateURLService* turl_service) const;
+  virtual std::optional<searchbox::mojom::AutocompleteMatchPtr>
+  CreateAutocompleteMatch(const AutocompleteMatch& match,
+                          size_t line,
+                          const OmniboxEditModel* edit_model,
+                          bookmarks::BookmarkModel* bookmark_model,
+                          const omnibox::GroupConfigMap& suggestion_groups_map,
+                          const TemplateURLService* turl_service) const;
 
  private:
   base::WeakPtrFactory<SearchboxHandler> weak_ptr_factory_{this};
diff --git a/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc b/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
index 2fca1f9..148edb6 100644
--- a/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
+++ b/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.cc
@@ -7,6 +7,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/strings/utf_string_conversions.h"
 #include "build/branding_buildflags.h"
 #include "build/build_config.h"
 #include "chrome/browser/profiles/profile.h"
@@ -17,6 +18,7 @@
 #include "chrome/browser/ui/omnibox/omnibox_pedal_implementations.h"
 #include "chrome/browser/ui/omnibox/omnibox_view.h"
 #include "chrome/browser/ui/search/omnibox_utils.h"
+#include "chrome/browser/ui/views/location_bar/selected_keyword_view.h"
 #include "chrome/browser/ui/webui/metrics_reporter/metrics_reporter.h"
 #include "chrome/browser/ui/webui/searchbox/searchbox_omnibox_client.h"
 #include "chrome/grit/new_tab_page_resources.h"
@@ -41,6 +43,7 @@
 #include "searchbox_handler.h"
 #include "third_party/metrics_proto/omnibox_focus_type.pb.h"
 #include "third_party/omnibox_proto/types.pb.h"
+#include "ui/base/l10n/l10n_util.h"
 #include "ui/base/webui/resource_path.h"
 #include "ui/base/window_open_disposition_utils.h"
 
@@ -102,3 +105,28 @@
           selection.line, ConvertLineState(selection.state),
           selection.action_index));
 }
+
+std::optional<searchbox::mojom::AutocompleteMatchPtr>
+WebuiOmniboxHandler::CreateAutocompleteMatch(
+    const AutocompleteMatch& match,
+    size_t line,
+    const OmniboxEditModel* edit_model,
+    bookmarks::BookmarkModel* bookmark_model,
+    const omnibox::GroupConfigMap& suggestion_groups_map,
+    const TemplateURLService* turl_service) const {
+  auto mojom_match = SearchboxHandler::CreateAutocompleteMatch(
+      match, line, edit_model, bookmark_model, suggestion_groups_map,
+      turl_service);
+
+  if (mojom_match && !match.HasInstantKeyword(turl_service) &&
+      edit_model->IsPopupControlPresentOnMatch(
+          OmniboxPopupSelection{line, OmniboxPopupSelection::KEYWORD_MODE})) {
+    const auto names = SelectedKeywordView::GetKeywordLabelNames(
+        match.associated_keyword, turl_service);
+    mojom_match.value()->keyword_chip_hint = base::UTF16ToUTF8(names.full_name);
+    mojom_match.value()->keyword_chip_a11y =
+        l10n_util::GetStringFUTF8(IDS_ACC_KEYWORD_MODE, names.short_name);
+  }
+
+  return mojom_match;
+}
diff --git a/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.h b/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.h
index 49befdbf..657ee0b 100644
--- a/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.h
+++ b/chrome/browser/ui/webui/searchbox/webui_omnibox_handler.h
@@ -41,6 +41,14 @@
 
   void OnThumbnailRemoved() override {}
 
+  std::optional<searchbox::mojom::AutocompleteMatchPtr> CreateAutocompleteMatch(
+      const AutocompleteMatch& match,
+      size_t line,
+      const OmniboxEditModel* edit_model,
+      bookmarks::BookmarkModel* bookmark_model,
+      const omnibox::GroupConfigMap& suggestion_groups_map,
+      const TemplateURLService* turl_service) const override;
+
   // OmniboxEditModel::Observer:
   void OnSelectionChanged(OmniboxPopupSelection old_selection,
                           OmniboxPopupSelection selection) override;
diff --git a/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.cc b/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.cc
index 799d052..d284086 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_before_unload_tracker.cc
@@ -12,24 +12,6 @@
 
 namespace tab_strip_ui {
 
-TabBeforeUnloadTracker::TabBeforeUnloadTracker(
-    TabCloseCancelledCallback cancelled_callback)
-    : cancelled_callback_(std::move(cancelled_callback)) {}
-TabBeforeUnloadTracker::~TabBeforeUnloadTracker() = default;
-
-void TabBeforeUnloadTracker::Observe(content::WebContents* contents) {
-  observers_[contents] = std::make_unique<TabObserver>(contents, this);
-}
-
-void TabBeforeUnloadTracker::Unobserve(content::WebContents* contents) {
-  observers_.erase(contents);
-}
-
-void TabBeforeUnloadTracker::OnBeforeUnloadDialogCancelled(
-    content::WebContents* contents) {
-  cancelled_callback_.Run(contents);
-}
-
 class TabBeforeUnloadTracker::TabObserver
     : public content::WebContentsObserver {
  public:
@@ -48,4 +30,22 @@
   raw_ptr<TabBeforeUnloadTracker> tracker_;
 };
 
+TabBeforeUnloadTracker::TabBeforeUnloadTracker(
+    TabCloseCancelledCallback cancelled_callback)
+    : cancelled_callback_(std::move(cancelled_callback)) {}
+TabBeforeUnloadTracker::~TabBeforeUnloadTracker() = default;
+
+void TabBeforeUnloadTracker::Observe(content::WebContents* contents) {
+  observers_[contents] = std::make_unique<TabObserver>(contents, this);
+}
+
+void TabBeforeUnloadTracker::Unobserve(content::WebContents* contents) {
+  observers_.erase(contents);
+}
+
+void TabBeforeUnloadTracker::OnBeforeUnloadDialogCancelled(
+    content::WebContents* contents) {
+  cancelled_callback_.Run(contents);
+}
+
 }  // namespace tab_strip_ui
diff --git a/chrome/browser/web_applications/commands/manifest_silent_update_command.h b/chrome/browser/web_applications/commands/manifest_silent_update_command.h
index 121f78c..c24cc74b 100644
--- a/chrome/browser/web_applications/commands/manifest_silent_update_command.h
+++ b/chrome/browser/web_applications/commands/manifest_silent_update_command.h
@@ -202,8 +202,6 @@
   std::unique_ptr<WebAppDataRetriever> data_retriever_;
   std::unique_ptr<AppLock> app_lock_;
 
-  base::WeakPtr<content::WebContents> web_contents_;
-  std::unique_ptr<ManifestToWebAppInstallInfoJob> manifest_to_install_info_job_;
 
   // Temporary variables stored here while the update check progresses
   // asynchronously.
@@ -218,6 +216,11 @@
   bool silent_update_required_ = false;
   bool pending_updated_changed_ = false;
 
+  base::WeakPtr<content::WebContents> web_contents_;
+  // Note: This must be destroyed before `new_install_info_` since it holds a
+  // raw_ptr to it.
+  std::unique_ptr<ManifestToWebAppInstallInfoJob> manifest_to_install_info_job_;
+
   // Debug info.
   ManifestSilentUpdateCommandStage stage_ =
       ManifestSilentUpdateCommandStage::kFetchingNewManifestData;
diff --git a/chrome/browser/webauthn/enclave_manager.cc b/chrome/browser/webauthn/enclave_manager.cc
index e01b944..74c27b6 100644
--- a/chrome/browser/webauthn/enclave_manager.cc
+++ b/chrome/browser/webauthn/enclave_manager.cc
@@ -2876,6 +2876,48 @@
 EnclaveManager::UVKeyOptions& EnclaveManager::UVKeyOptions::operator=(
     EnclaveManager::UVKeyOptions&& other) = default;
 
+// Observes the `IdentityManager` and tells the `EnclaveManager` when the
+// primary account for the profile has changed.
+class EnclaveManager::IdentityObserver
+    : public signin::IdentityManager::Observer {
+ public:
+  IdentityObserver(signin::IdentityManager* identity_manager,
+                   EnclaveManager* manager)
+      : identity_manager_(identity_manager), manager_(manager) {
+    identity_manager_->AddObserver(this);
+  }
+
+  ~IdentityObserver() override {
+    if (observing_) {
+      identity_manager_->RemoveObserver(this);
+    }
+  }
+
+  void OnPrimaryAccountChanged(
+      const signin::PrimaryAccountChangeEvent& event_details) override {
+    manager_->HandleIdentityChange();
+  }
+
+  void OnAccountsInCookieUpdated(
+      const signin::AccountsInCookieJarInfo& accounts_in_cookie_jar_info,
+      const GoogleServiceAuthError& error) override {
+    manager_->HandleIdentityChange();
+  }
+
+  void OnIdentityManagerShutdown(
+      signin::IdentityManager* identity_manager) override {
+    if (observing_) {
+      identity_manager_->RemoveObserver(this);
+      observing_ = false;
+    }
+  }
+
+ private:
+  bool observing_ = true;
+  const raw_ptr<signin::IdentityManager> identity_manager_;
+  const raw_ptr<EnclaveManager> manager_;
+};
+
 EnclaveManager::EnclaveManager(
     const base::FilePath& base_dir,
     signin::IdentityManager* identity_manager,
@@ -3843,48 +3885,6 @@
   return wrapped_pin;
 }
 
-// Observes the `IdentityManager` and tells the `EnclaveManager` when the
-// primary account for the profile has changed.
-class EnclaveManager::IdentityObserver
-    : public signin::IdentityManager::Observer {
- public:
-  IdentityObserver(signin::IdentityManager* identity_manager,
-                   EnclaveManager* manager)
-      : identity_manager_(identity_manager), manager_(manager) {
-    identity_manager_->AddObserver(this);
-  }
-
-  ~IdentityObserver() override {
-    if (observing_) {
-      identity_manager_->RemoveObserver(this);
-    }
-  }
-
-  void OnPrimaryAccountChanged(
-      const signin::PrimaryAccountChangeEvent& event_details) override {
-    manager_->HandleIdentityChange();
-  }
-
-  void OnAccountsInCookieUpdated(
-      const signin::AccountsInCookieJarInfo& accounts_in_cookie_jar_info,
-      const GoogleServiceAuthError& error) override {
-    manager_->HandleIdentityChange();
-  }
-
-  void OnIdentityManagerShutdown(
-      signin::IdentityManager* identity_manager) override {
-    if (observing_) {
-      identity_manager_->RemoveObserver(this);
-      observing_ = false;
-    }
-  }
-
- private:
-  bool observing_ = true;
-  const raw_ptr<signin::IdentityManager> identity_manager_;
-  const raw_ptr<EnclaveManager> manager_;
-};
-
 void EnclaveManager::Act() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index 80a2478d..b2fa519 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1759406302-cb41feda5eac22d218f131451ec7b2b8c532c9d8-3b7123658ce706ceb8fe1f9df0c8bc5157c9f8ff.profdata
+chrome-android32-main-1759427843-a4b74c4f2ef89337f28ffafef8969aea7c23a81a-872468c007761a0bfbefcb0daccc3c5f24f8c57d.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index 17e70ab..fde07e5 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1759398452-34f0cdc0dbca8dcdc2bab9ca92f3680abfee382d-341d6e2603dc27f57ce1181d6dd7dce58e752784.profdata
+chrome-android64-main-1759426125-bd6346b29ebbd0ff7378d482fa0db68b585a63aa-ea5e3cc72de4619c90c0556b6ffa2ebb9f914669.profdata
diff --git a/chrome/build/android-desktop-x64.pgo.txt b/chrome/build/android-desktop-x64.pgo.txt
index df03f22..84337ec 100644
--- a/chrome/build/android-desktop-x64.pgo.txt
+++ b/chrome/build/android-desktop-x64.pgo.txt
@@ -1 +1 @@
-chrome-android-desktop-x64-main-1759406302-36ba12f1cf062a578fe3a8e93895b9936884aa99-3b7123658ce706ceb8fe1f9df0c8bc5157c9f8ff.profdata
+chrome-android-desktop-x64-main-1759427843-37ec487e8cf1dc35d10bb30a7aa54091fb9db173-872468c007761a0bfbefcb0daccc3c5f24f8c57d.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index ec019e0..a4618a8 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1759384019-ff902f311fa3df7305a64b856958913dddb1eddd-a80dc5b55cdc6bbde624b1b6160a6db925435fa8.profdata
+chrome-linux-main-1759406302-7336466536e0519d11f33e1bd38f214f960659d1-3b7123658ce706ceb8fe1f9df0c8bc5157c9f8ff.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index a14c52f6..221cfd714 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1759406302-422ac2e6f85ab406318a62c00c8520bfc70e19e5-3b7123658ce706ceb8fe1f9df0c8bc5157c9f8ff.profdata
+chrome-mac-arm-main-1759427843-f46f4bc191656fc0c9e301a0ee9f8bbf04f1ea1b-872468c007761a0bfbefcb0daccc3c5f24f8c57d.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index e3dbddc..193f827 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1759384019-e159c5da9a84f66d8aed454591f5538f28a033a3-a80dc5b55cdc6bbde624b1b6160a6db925435fa8.profdata
+chrome-mac-main-1759406302-34f86ba10313d1635b9211c2f9a788df127bed4c-3b7123658ce706ceb8fe1f9df0c8bc5157c9f8ff.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index a91e723..58cc75b 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1759384019-8d2379fe5f2bb78164184cb2805e675977db729c-a80dc5b55cdc6bbde624b1b6160a6db925435fa8.profdata
+chrome-win32-main-1759395503-9e64b01724c8ab9199f66bba5bb365f5fa20a2bd-ff2a3ac97bcfd89fcc3f6ec5e5ebd439dcf30465.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index c3fc2e9cb..734c13d9 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1759395503-793d3cfe280c2e92f693773b4fa73a2efe8c9f20-ff2a3ac97bcfd89fcc3f6ec5e5ebd439dcf30465.profdata
+chrome-win64-main-1759406302-d0c9471e82707ccf72aaa75037c2da9905ad9170-3b7123658ce706ceb8fe1f9df0c8bc5157c9f8ff.profdata
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 4741843..a194df2b 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -4281,6 +4281,11 @@
 inline constexpr char kManagedLocalNetworkAccessRestrictionsEnabled[] =
     "managed_local_network_access_restrictions_enabled";
 
+// Boolean indicating whether Local Network Access restrictions should be
+// temporarily opted out of.
+inline constexpr char kManagedLocalNetworkAccessRestrictionsTemporaryOptOut[] =
+    "managed_local_network_access_restrictions_temporary_opt_out";
+
 // Boolean that specifies whether SpeculationRules prefetch can be sent to
 // ServiceWorker-controlled URLs.
 inline constexpr char kPrefetchWithServiceWorkerEnabled[] =
diff --git a/chrome/renderer/actor/scroll_tool.cc b/chrome/renderer/actor/scroll_tool.cc
index e743685..1f82c57 100644
--- a/chrome/renderer/actor/scroll_tool.cc
+++ b/chrome/renderer/actor/scroll_tool.cc
@@ -8,7 +8,6 @@
 
 #include "base/notimplemented.h"
 #include "base/strings/to_string.h"
-#include "base/time/time.h"
 #include "chrome/common/actor/action_result.h"
 #include "chrome/common/actor/actor_constants.h"
 #include "chrome/common/actor/actor_logging.h"
@@ -30,11 +29,6 @@
 using ::blink::WebLocalFrame;
 using ::blink::WebNode;
 
-namespace {
-// The default maximum duration for a scroll animation is 700ms.
-constexpr base::TimeDelta kSmoothScrollDelay = base::Milliseconds(700);
-}  // namespace
-
 ScrollTool::ScrollTool(content::RenderFrame& frame,
                        TaskId task_id,
                        Journal& journal,
@@ -68,14 +62,11 @@
   bool did_scroll =
       scrolling_element.SetScrollOffset(start_offset_css + offset_css);
 
-  targeting_smooth_scroller_ = scrolling_element.HasScrollBehaviorSmooth();
-
   journal_->Log(task_id_, "ScrollTool::Execute",
                 JournalDetailsBuilder()
                     .Add("element", scrolling_element)
                     .Add("start_offset", start_offset_css)
                     .Add("offset", offset_css)
-                    .Add("smooth_scroll", targeting_smooth_scroller_)
                     .Build());
 
   std::move(callback).Run(
@@ -90,11 +81,6 @@
                          base::ToString(action_->direction), action_->distance);
 }
 
-base::TimeDelta ScrollTool::ExecutionObservationDelay() const {
-  return targeting_smooth_scroller_ ? kSmoothScrollDelay
-                                    : ToolBase::ExecutionObservationDelay();
-}
-
 ScrollTool::ValidatedResult ScrollTool::Validate() const {
   WebLocalFrame* web_frame = frame_->GetWebFrame();
   CHECK(web_frame);
diff --git a/chrome/renderer/actor/scroll_tool.h b/chrome/renderer/actor/scroll_tool.h
index da4c382..44d3f188 100644
--- a/chrome/renderer/actor/scroll_tool.h
+++ b/chrome/renderer/actor/scroll_tool.h
@@ -36,7 +36,6 @@
   // actor::ToolBase
   void Execute(ToolFinishedCallback callback) override;
   std::string DebugString() const override;
-  base::TimeDelta ExecutionObservationDelay() const override;
 
  private:
   struct ScrollerAndDistance {
@@ -48,8 +47,6 @@
 
   ValidatedResult Validate() const;
 
-  bool targeting_smooth_scroller_ = false;
-
   mojom::ScrollActionPtr action_;
 };
 
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 441bcbbf..211067e 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1905,6 +1905,7 @@
       "//chrome/browser/supervised_user:android_browser_tests",
       "//chrome/browser/sync",
       "//chrome/browser/sync/test/integration:sync_integration_test_support",
+      "//chrome/browser/tab",
       "//chrome/browser/touch_to_fill/password_manager/password_generation/android:public",
       "//chrome/browser/ui:ui_features",
       "//chrome/browser/ui/android/hats:browser_tests",
@@ -7870,7 +7871,6 @@
       "../browser/supervised_user/android/favicon_fetcher_unittest.cc",
       "../browser/supervised_user/android/supervised_user_web_content_handler_impl_unittest.cc",
       "../browser/sync/glue/synced_tab_delegate_android_unittest.cc",
-      "../browser/tab/web_contents_state_unittest.cc",
       "../browser/touch_to_fill/autofill/android/touch_to_fill_delegate_android_impl_unittest.cc",
       "../browser/touch_to_fill/autofill/android/touch_to_fill_payment_method_controller_unittest.cc",
       "../browser/touch_to_fill/autofill/android/touch_to_fill_payment_method_quality_metrics_unittest.cc",
@@ -7937,6 +7937,7 @@
       "//chrome/browser/safe_browsing/android:test_support_java",
       "//chrome/browser/safety_hub/android:unit_tests",
       "//chrome/browser/share",
+      "//chrome/browser/tab:unit_tests",
       "//chrome/browser/thumbnail:unit_tests",
       "//chrome/browser/touch_to_fill/autofill/android:public",
       "//chrome/browser/touch_to_fill/autofill/one_time_tokens/android:unit_tests",
@@ -10427,6 +10428,7 @@
       "../../ui/views/controls/webview/webview_unittest.cc",
       "../browser/enterprise/data_protection/data_protection_navigation_observer_unittest.cc",
       "../browser/enterprise/data_protection/data_protection_page_user_data_unittest.cc",
+      "../browser/enterprise/data_protection/data_protection_url_lookup_service_unittest.cc",
       "../browser/enterprise/watermark/watermark_style_policy_handler_unittest.cc",
       "../browser/enterprise/watermark/watermark_view_unittest.cc",
       "../browser/ui/views/apps/app_info_dialog/app_info_dialog_views_unittest.cc",
diff --git a/chrome/test/data/webui/cr_components/searchbox/searchbox_match_test.ts b/chrome/test/data/webui/cr_components/searchbox/searchbox_match_test.ts
index 7f1780f..5e5b270 100644
--- a/chrome/test/data/webui/cr_components/searchbox/searchbox_match_test.ts
+++ b/chrome/test/data/webui/cr_components/searchbox/searchbox_match_test.ts
@@ -152,8 +152,9 @@
   });
 
   test('UpdateSelectionUpdatesClasses', async () => {
-    // Add 2 actions.
+    // Add keyword chip and 2 actions.
     const match = createAutocompleteMatch();
+    match.keywordChipHint = 'keyword';
     match.actions.push({
       hint: 'hint',
       suggestionContents: 'suggestionContents',
@@ -173,6 +174,7 @@
     matchEl.updateSelection(selection);
     assertFalse(
         !!matchEl.shadowRoot.querySelector('#focus-indicator.selected-within'));
+    assertFalse(!!matchEl.shadowRoot.querySelector('#keyword.selected'));
     assertArrayEquals([false, false], [
       ...matchEl.shadowRoot.querySelectorAll(
           '#actions-container cr-searchbox-action'),
@@ -188,6 +190,23 @@
     matchEl.updateSelection(selection);
     assertFalse(
         !!matchEl.shadowRoot.querySelector('#focus-indicator.selected-within'));
+    assertFalse(!!matchEl.shadowRoot.querySelector('#keyword.selected'));
+    assertArrayEquals([false, false], [
+      ...matchEl.shadowRoot.querySelectorAll(
+          '#actions-container cr-searchbox-action'),
+    ].map(action => action.classList.contains('selected')));
+    assertFalse(!!matchEl.$.remove.classList.contains('selected'));
+
+    // When the keyword chip is selected.
+    selection = {
+      line: 0,
+      state: SelectionLineState.kKeywordMode,
+      actionIndex: 0,
+    };
+    matchEl.updateSelection(selection);
+    assertTrue(
+        !!matchEl.shadowRoot.querySelector('#focus-indicator.selected-within'));
+    assertTrue(!!matchEl.shadowRoot.querySelector('#keyword.selected'));
     assertArrayEquals([false, false], [
       ...matchEl.shadowRoot.querySelectorAll(
           '#actions-container cr-searchbox-action'),
@@ -203,6 +222,7 @@
     matchEl.updateSelection(selection);
     assertTrue(
         !!matchEl.shadowRoot.querySelector('#focus-indicator.selected-within'));
+    assertFalse(!!matchEl.shadowRoot.querySelector('#keyword.selected'));
     assertArrayEquals([true, false], [
       ...matchEl.shadowRoot.querySelectorAll(
           '#actions-container cr-searchbox-action'),
@@ -218,6 +238,7 @@
     matchEl.updateSelection(selection);
     assertTrue(
         !!matchEl.shadowRoot.querySelector('#focus-indicator.selected-within'));
+    assertFalse(!!matchEl.shadowRoot.querySelector('#keyword.selected'));
     assertArrayEquals([false, true], [
       ...matchEl.shadowRoot.querySelectorAll(
           '#actions-container cr-searchbox-action'),
@@ -233,6 +254,7 @@
     matchEl.updateSelection(selection);
     assertTrue(
         !!matchEl.shadowRoot.querySelector('#focus-indicator.selected-within'));
+    assertFalse(!!matchEl.shadowRoot.querySelector('#keyword.selected'));
     assertArrayEquals([false, false], [
       ...matchEl.shadowRoot.querySelectorAll(
           '#actions-container cr-searchbox-action'),
diff --git a/chrome/test/data/webui/lens/side_panel/composebox_test.ts b/chrome/test/data/webui/lens/side_panel/composebox_test.ts
index a952074..7e7149d 100644
--- a/chrome/test/data/webui/lens/side_panel/composebox_test.ts
+++ b/chrome/test/data/webui/lens/side_panel/composebox_test.ts
@@ -82,6 +82,8 @@
       isWeatherAnswerSuggestion: null,
       answer: null,
       tailSuggestCommonPrefix: null,
+      keywordChipHint: '',
+      keywordChipA11y: '',
     };
   }
 
diff --git a/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts b/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts
index ce9d4b8..d83cece 100644
--- a/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts
+++ b/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts
@@ -128,6 +128,8 @@
       isWeatherAnswerSuggestion: null,
       answer: null,
       tailSuggestCommonPrefix: null,
+      keywordChipHint: '',
+      keywordChipA11y: '',
     };
   }
 
diff --git a/chromecast/browser/BUILD.gn b/chromecast/browser/BUILD.gn
index ae344d46..46e8ffd 100644
--- a/chromecast/browser/BUILD.gn
+++ b/chromecast/browser/BUILD.gn
@@ -264,6 +264,7 @@
     "//components/metrics:ui",
     "//components/network_hints/browser",
     "//components/network_session_configurator/common",
+    "//components/os_crypt/async/browser",
     "//components/policy/core/browser",
     "//components/prefs",
     "//components/proxy_config",
diff --git a/chromecast/browser/DEPS b/chromecast/browser/DEPS
index 74fd566..c3acf0ef 100644
--- a/chromecast/browser/DEPS
+++ b/chromecast/browser/DEPS
@@ -30,6 +30,7 @@
   "+components/network_hints",
   "+components/network_session_configurator/common",
   "+components/on_load_script_injector/browser",
+  "+components/os_crypt/async",
   "+components/policy/core/browser",
   "+components/prefs",
   "+components/pref_registry",
diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc
index a1b2ac3..b5c8c0c 100644
--- a/chromecast/browser/cast_content_browser_client.cc
+++ b/chromecast/browser/cast_content_browser_client.cc
@@ -68,6 +68,7 @@
 #include "chromecast/media/common/media_resource_tracker.h"
 #include "chromecast/media/service/mojom/video_geometry_setter.mojom.h"
 #include "chromecast/public/media/media_pipeline_backend.h"
+#include "components/os_crypt/async/browser/os_crypt_async.h"
 #include "components/prefs/pref_service.h"
 #include "components/url_rewrite/browser/url_request_rewrite_rules_manager.h"
 #include "components/url_rewrite/common/url_loader_throttle.h"
@@ -150,8 +151,13 @@
               base::OnTaskRunnerDeleter(nullptr))),
 #endif  // BUILDFLAG(ENABLE_CAST_RENDERER)
       cast_browser_main_parts_(nullptr),
+      os_crypt_async_(std::make_unique<os_crypt_async::OSCryptAsync>(
+          std::vector<
+              std::pair<os_crypt_async::OSCryptAsync::Precedence,
+                        std::unique_ptr<os_crypt_async::KeyProvider>>>{})),
       cast_network_contexts_(
-          std::make_unique<CastNetworkContexts>(GetCorsExemptHeadersList())),
+          std::make_unique<CastNetworkContexts>(GetCorsExemptHeadersList(),
+                                                os_crypt_async_.get())),
       cast_feature_list_creator_(cast_feature_list_creator) {
   std::vector<const base::Feature*> extra_enable_features = {
       &::media::kInternalMediaSession,
diff --git a/chromecast/browser/cast_content_browser_client.h b/chromecast/browser/cast_content_browser_client.h
index ed8dc3fd..85f08cdd 100644
--- a/chromecast/browser/cast_content_browser_client.h
+++ b/chromecast/browser/cast_content_browser_client.h
@@ -60,6 +60,10 @@
 class X509Certificate;
 }  // namespace net
 
+namespace os_crypt_async {
+class OSCryptAsync;
+}
+
 namespace chromecast {
 class CastService;
 class CastSystemMemoryPressureEvaluatorAdjuster;
@@ -357,6 +361,7 @@
 
   // Created by CastContentBrowserClient but owned by BrowserMainLoop.
   CastBrowserMainParts* cast_browser_main_parts_;
+  std::unique_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_;
   std::unique_ptr<CastNetworkContexts> cast_network_contexts_;
   std::unique_ptr<media::CmaBackendFactory> cma_backend_factory_;
   std::unique_ptr<GeneralAudienceBrowsingService>
diff --git a/chromecast/browser/cast_network_contexts.cc b/chromecast/browser/cast_network_contexts.cc
index 966d0762..152f3fd 100644
--- a/chromecast/browser/cast_network_contexts.cc
+++ b/chromecast/browser/cast_network_contexts.cc
@@ -27,6 +27,7 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom.h"
 #include "services/network/network_context.h"
+#include "services/network/public/cpp/cookie_encryption_provider_impl.h"
 #include "services/network/public/cpp/cross_thread_pending_shared_url_loader_factory.h"
 #include "services/network/public/cpp/resource_request.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
@@ -108,8 +109,11 @@
 };
 
 CastNetworkContexts::CastNetworkContexts(
-    std::vector<std::string> cors_exempt_headers_list)
+    std::vector<std::string> cors_exempt_headers_list,
+    os_crypt_async::OSCryptAsync* os_crypt_async)
     : cors_exempt_headers_list_(std::move(cors_exempt_headers_list)),
+      cookie_encryption_provider_(
+          std::make_unique<CookieEncryptionProviderImpl>(os_crypt_async)),
       system_shared_url_loader_factory_(
           base::MakeRefCounted<URLLoaderFactoryForSystem>(this)) {}
 
@@ -235,6 +239,8 @@
   network_context_params->restore_old_session_cookies = false;
   network_context_params->persist_session_cookies = true;
   network_context_params->cookie_manager_params = CreateCookieManagerParams();
+  network_context_params->cookie_encryption_provider =
+      cookie_encryption_provider_->BindNewRemote();
 
   // Disable idle sockets close on memory pressure, if instructed by DCS. On
   // memory constrained devices:
diff --git a/chromecast/browser/cast_network_contexts.h b/chromecast/browser/cast_network_contexts.h
index bee7963..cf6c137d 100644
--- a/chromecast/browser/cast_network_contexts.h
+++ b/chromecast/browser/cast_network_contexts.h
@@ -22,6 +22,7 @@
 #include "services/network/public/mojom/proxy_config_with_annotation.mojom.h"
 #include "services/network/public/mojom/url_loader_factory.mojom.h"
 
+class CookieEncryptionProviderImpl;
 class PrefProxyConfigTracker;
 
 namespace base {
@@ -40,6 +41,10 @@
 class SharedURLLoaderFactory;
 }  // namespace network
 
+namespace os_crypt_async {
+class OSCryptAsync;
+}
+
 namespace chromecast {
 namespace shell {
 
@@ -52,7 +57,8 @@
                             public network::mojom::ProxyConfigPollerClient {
  public:
   explicit CastNetworkContexts(
-      std::vector<std::string> cors_exempt_headers_list);
+      std::vector<std::string> cors_exempt_headers_list,
+      os_crypt_async::OSCryptAsync* os_crypt_async);
 
   CastNetworkContexts(const CastNetworkContexts&) = delete;
   CastNetworkContexts& operator=(const CastNetworkContexts&) = delete;
@@ -130,6 +136,8 @@
   const std::vector<std::string> cors_exempt_headers_list_;
   std::vector<std::string> allowed_domains_for_persistent_cookies_;
 
+  std::unique_ptr<CookieEncryptionProviderImpl> cookie_encryption_provider_;
+
   // The system NetworkContext.
   mojo::Remote<network::mojom::NetworkContext> system_network_context_;
 
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 5183b1dd..abfddcf 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-16436.0.0-1072115
\ No newline at end of file
+16437.0.0-1072127
\ No newline at end of file
diff --git a/chromeos/ash/experiences/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc b/chromeos/ash/experiences/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
index bcc3f98..b56eec8 100644
--- a/chromeos/ash/experiences/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
+++ b/chromeos/ash/experiences/arc/video_accelerator/gpu_arc_video_encode_accelerator.cc
@@ -206,18 +206,18 @@
     return;
   }
 
-  std::optional<gfx::BufferFormat> buffer_format =
-      VideoPixelFormatToGfxBufferFormat(format);
-  if (!format) {
-    DLOG(ERROR) << "Unexpected format: " << format;
+  std::optional<viz::SharedImageFormat> si_format =
+      VideoPixelFormatToSharedImageFormat(format);
+  if (!si_format) {
+    DLOG(ERROR) << "Unexpected si_format";
     client_->NotifyError(Error::kInvalidArgumentError);
     return;
   }
   scoped_refptr<media::VideoFrame> frame;
   if (base::FeatureList::IsEnabled(kVideoEncodeUseMappableSI)) {
     auto shared_image = sii_->CreateSharedImage(
-        {viz::GetSharedImageFormat(*buffer_format), visible_size_,
-         gfx::ColorSpace(), gpu::SHARED_IMAGE_USAGE_CPU_ONLY_READ_WRITE,
+        {*si_format, visible_size_, gfx::ColorSpace(),
+         gpu::SHARED_IMAGE_USAGE_CPU_ONLY_READ_WRITE,
          "GpuArcVideoEncodeAccelerator"},
         gpu::kNullSurfaceHandle,
         gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE,
@@ -234,7 +234,7 @@
     frame = media::VideoFrame::WrapExternalGpuMemoryBufferHandle(
         gfx::Rect(visible_size_), visible_size_,
         client_native_pixmap_factory_.get(), std::move(gmb_handle).value(),
-        coded_size_, *buffer_format,
+        coded_size_, *si_format,
         gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE,
         base::Microseconds(timestamp));
   }
diff --git a/clank b/clank
index 24561df..2ebd494 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit 24561df488aa3b8908ad8a86a2da254890b567ea
+Subproject commit 2ebd4946cb192e6a4173bdc2341650bfa8401223
diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn
index 778d9f8..a80bb39 100644
--- a/components/autofill/core/browser/BUILD.gn
+++ b/components/autofill/core/browser/BUILD.gn
@@ -1871,6 +1871,7 @@
       "//components/autofill/core/browser:test_support",
       "//components/autofill/core/browser/proto",
       "//components/autofill/core/common",
+      "//content/test:test_support",
       "//third_party/libprotobuf-mutator",
     ]
   }
diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc
index bb584f79a..1cd337ec 100644
--- a/components/commerce/core/commerce_feature_list.cc
+++ b/components/commerce/core/commerce_feature_list.cc
@@ -238,14 +238,6 @@
 
 BASE_FEATURE(kSubscriptionsApi, base::FEATURE_DISABLED_BY_DEFAULT);
 
-#if BUILDFLAG(IS_IOS)
-BASE_FEATURE(kPriceInsightsIos, base::FEATURE_ENABLED_BY_DEFAULT);
-
-BASE_FEATURE(kPriceInsightsHighPriceIos,
-             "PriceInsightsHighPrice",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-#endif
-
 BASE_FEATURE(kShoppingPageTypes, base::FEATURE_DISABLED_BY_DEFAULT);
 
 BASE_FEATURE(kRetailCoupons, base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/components/commerce/core/commerce_feature_list.h b/components/commerce/core/commerce_feature_list.h
index 3e5e63d..0ca30f6 100644
--- a/components/commerce/core/commerce_feature_list.h
+++ b/components/commerce/core/commerce_feature_list.h
@@ -59,11 +59,6 @@
 
 BASE_DECLARE_FEATURE(kShoppingAlternateServer);
 
-#if BUILDFLAG(IS_IOS)
-BASE_DECLARE_FEATURE(kPriceInsightsIos);
-BASE_DECLARE_FEATURE(kPriceInsightsHighPriceIos);
-#endif
-
 // Feature flag for Discounts on navigation.
 enum class DiscountDialogAutoPopupBehavior {
   // Only popup for the first time
diff --git a/components/commerce/core/flag_descriptions.cc b/components/commerce/core/flag_descriptions.cc
index b240dfd2..085b01f 100644
--- a/components/commerce/core/flag_descriptions.cc
+++ b/components/commerce/core/flag_descriptions.cc
@@ -20,19 +20,6 @@
 const char kDiscountOnNavigationDescription[] =
     "Enable to show available discounts on the page after navigation.";
 
-#if BUILDFLAG(IS_IOS)
-extern const char kPriceInsightsIosName[] = "Price Insights";
-extern const char kPriceInsightsIosDescription[] =
-    "When enabled, the user will be able to get price insights on product "
-    "pages.";
-
-extern const char kPriceInsightsHighPriceIosName[] =
-    "Price Insights with high price";
-extern const char kPriceInsightsHighPriceIosDescription[] =
-    "When enabled, price insight will report a high confidence when the price "
-    "is high.";
-#endif
-
 const char kPriceTrackingSubscriptionServiceLocaleKeyName[] =
     "Price Tracking Subscription Service Local Key";
 const char kPriceTrackingSubscriptionServiceLocaleKeyDescription[] =
diff --git a/components/commerce/core/flag_descriptions.h b/components/commerce/core/flag_descriptions.h
index c0217b35..2ae296bd 100644
--- a/components/commerce/core/flag_descriptions.h
+++ b/components/commerce/core/flag_descriptions.h
@@ -21,14 +21,6 @@
 extern const char kDiscountOnNavigationName[];
 extern const char kDiscountOnNavigationDescription[];
 
-#if BUILDFLAG(IS_IOS)
-extern const char kPriceInsightsIosName[];
-extern const char kPriceInsightsIosDescription[];
-
-extern const char kPriceInsightsHighPriceIosName[];
-extern const char kPriceInsightsHighPriceIosDescription[];
-#endif
-
 extern const char kShoppingPageTypesName[];
 extern const char kShoppingPageTypesDescription[];
 
diff --git a/components/commerce_strings.grdp b/components/commerce_strings.grdp
index dccde8b5..ecb5128c 100644
--- a/components/commerce_strings.grdp
+++ b/components/commerce_strings.grdp
@@ -445,12 +445,6 @@
   <message name="IDS_INSIGHTS_RICH_IPH_TEXT" desc="The text displayed in the price insights rich IPH.">
     See price history and more to help you shop smarter.
   </message>
-  <message name="IDS_INSIGHTS_ICON_PRICE_HIGH_EXPANDED_TEXT" desc="The expanded text for the price insights icon when price is high, indicating that the user should track the page.">
-    Track this item
-  </message>
-  <message name="IDS_INSIGHTS_ICON_EXPANDED_TEXT_PRICE_HISTORY" desc="The expanded text for the price insights icon in the location bar, indicating to see the price history.">
-    See Price History
-  </message>
   <message name="IDS_PRICE_INSIGHTS_ACCESSIBILITY" desc="Accessibility string for the price insights entry point when the confidence is low.">
     Price Insights
   </message>
diff --git a/components/commerce_strings_grdp/IDS_INSIGHTS_ICON_EXPANDED_TEXT_PRICE_HISTORY.png.sha1 b/components/commerce_strings_grdp/IDS_INSIGHTS_ICON_EXPANDED_TEXT_PRICE_HISTORY.png.sha1
deleted file mode 100644
index a4a1034f..0000000
--- a/components/commerce_strings_grdp/IDS_INSIGHTS_ICON_EXPANDED_TEXT_PRICE_HISTORY.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3a82cae171df5dac679bac050d7f8f330f6e4731
\ No newline at end of file
diff --git a/components/commerce_strings_grdp/IDS_INSIGHTS_ICON_PRICE_HIGH_EXPANDED_TEXT.png.sha1 b/components/commerce_strings_grdp/IDS_INSIGHTS_ICON_PRICE_HIGH_EXPANDED_TEXT.png.sha1
deleted file mode 100644
index 0519694..0000000
--- a/components/commerce_strings_grdp/IDS_INSIGHTS_ICON_PRICE_HIGH_EXPANDED_TEXT.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5df04e9bc972a0aa460e9227e5aab41f6f47e54
\ No newline at end of file
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
index 6dae594..747e0240 100644
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -5,21 +5,20 @@
 #ifndef COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_H_
 #define COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_H_
 
-#include <stddef.h>
-
-#include <map>
-#include <string>
+#include <iosfwd>
+#include <optional>
 #include <variant>
 #include <vector>
 
-#include "base/time/time.h"
 #include "base/values.h"
-#include "components/content_settings/core/common/content_settings_constraints.h"
+#include "components/content_settings/core/common/content_settings_enums.mojom.h"
 #include "components/content_settings/core/common/content_settings_metadata.h"
 #include "components/content_settings/core/common/content_settings_pattern.h"
 #include "components/content_settings/core/common/content_settings_rules.h"
 #include "components/content_settings/core/common/content_settings_types.h"
 
+class GURL;
+
 // Different settings that can be assigned for a particular content type.  We
 // give the user the ability to set these on a global and per-origin basis.
 // A Java counterpart will be generated for this enum.
diff --git a/components/cookie_config/BUILD.gn b/components/cookie_config/BUILD.gn
index a7a5100..e348b0d1a 100644
--- a/components/cookie_config/BUILD.gn
+++ b/components/cookie_config/BUILD.gn
@@ -13,7 +13,7 @@
   public_deps = [ "//base" ]
 
   deps = [
-    "//components/os_crypt/sync",
+    "//components/os_crypt/async/browser",
     "//net:extras",
   ]
 }
diff --git a/components/cookie_config/DEPS b/components/cookie_config/DEPS
index a428c0b..2c847bf 100644
--- a/components/cookie_config/DEPS
+++ b/components/cookie_config/DEPS
@@ -1,4 +1,4 @@
 include_rules = [
-  "+components/os_crypt/sync",
+  "+components/os_crypt/async",
   "+net/extras/sqlite",
 ]
diff --git a/components/cookie_config/cookie_store_util.cc b/components/cookie_config/cookie_store_util.cc
index e7efdfe..55742de9 100644
--- a/components/cookie_config/cookie_store_util.cc
+++ b/components/cookie_config/cookie_store_util.cc
@@ -5,8 +5,12 @@
 #include "components/cookie_config/cookie_store_util.h"
 
 #include "base/functional/callback.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/task/sequenced_task_runner.h"
 #include "build/build_config.h"
-#include "components/os_crypt/sync/os_crypt.h"
+#include "components/os_crypt/async/browser/os_crypt_async.h"
+#include "components/os_crypt/async/common/encryptor.h"
 #include "net/extras/sqlite/cookie_crypto_delegate.h"
 
 namespace cookie_config {
@@ -15,40 +19,123 @@
     BUILDFLAG(IS_CHROMEOS)
 namespace {
 
+void OnOsCryptReadyOnUi(
+    base::OnceCallback<void(os_crypt_async::Encryptor)> callback,
+    scoped_refptr<base::SequencedTaskRunner> task_runner,
+    os_crypt_async::Encryptor encryptor) {
+  task_runner->PostTask(
+      FROM_HERE, base::BindOnce(std::move(callback), std::move(encryptor)));
+}
+
+void InitOnUi(base::OnceCallback<void(os_crypt_async::Encryptor)> callback,
+              os_crypt_async::OSCryptAsync* os_crypt_async,
+              scoped_refptr<base::SequencedTaskRunner> task_runner) {
+  os_crypt_async->GetInstance(
+      base::BindOnce(&OnOsCryptReadyOnUi, std::move(callback),
+                     std::move(task_runner)),
+      os_crypt_async::Encryptor::Option::kEncryptSyncCompat);
+}
+
 // Use the operating system's mechanisms to encrypt cookies before writing
 // them to persistent store.  Currently this only is done with desktop OS's
 // because ChromeOS and Android already protect the entire profile contents.
 class CookieOSCryptoDelegate : public net::CookieCryptoDelegate {
  public:
+  CookieOSCryptoDelegate(
+      os_crypt_async::OSCryptAsync* os_crypt_async,
+      scoped_refptr<base::SequencedTaskRunner> ui_task_runner);
+
+  CookieOSCryptoDelegate(const CookieOSCryptoDelegate&) = delete;
+  CookieOSCryptoDelegate& operator=(const CookieOSCryptoDelegate&) = delete;
+
+  ~CookieOSCryptoDelegate() override;
+
+  // net::CookieCryptoDelegate implementation:
   void Init(base::OnceClosure callback) override;
   bool EncryptString(const std::string& plaintext,
                      std::string* ciphertext) override;
   bool DecryptString(const std::string& ciphertext,
                      std::string* plaintext) override;
+
+ private:
+  void OnOsCryptReady(os_crypt_async::Encryptor encryptor);
+
+  raw_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_;
+  scoped_refptr<base::SequencedTaskRunner> ui_task_runner_;
+  std::optional<os_crypt_async::Encryptor> encryptor_;
+
+  bool initializing_ = false;
+  std::vector<base::OnceClosure> init_callbacks_;
+
+  base::WeakPtrFactory<CookieOSCryptoDelegate> weak_ptr_factory_{this};
 };
 
+CookieOSCryptoDelegate::CookieOSCryptoDelegate(
+    os_crypt_async::OSCryptAsync* os_crypt_async,
+    scoped_refptr<base::SequencedTaskRunner> ui_task_runner)
+    : os_crypt_async_(os_crypt_async), ui_task_runner_(ui_task_runner) {}
+
+CookieOSCryptoDelegate::~CookieOSCryptoDelegate() = default;
+
 void CookieOSCryptoDelegate::Init(base::OnceClosure callback) {
-  std::move(callback).Run();
+  if (encryptor_.has_value()) {
+    std::move(callback).Run();
+    return;
+  }
+
+  init_callbacks_.emplace_back(std::move(callback));
+  if (initializing_) {
+    return;
+  }
+  initializing_ = true;
+
+  // PostTaskAndReplyWithResult can't be used here because
+  // OSCryptAsync::GetInstance() is async.
+  ui_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(&InitOnUi,
+                     base::BindOnce(&CookieOSCryptoDelegate::OnOsCryptReady,
+                                    weak_ptr_factory_.GetWeakPtr()),
+                     os_crypt_async_,
+                     base::SequencedTaskRunner::GetCurrentDefault()));
+  os_crypt_async_ = nullptr;
 }
 
 bool CookieOSCryptoDelegate::EncryptString(const std::string& plaintext,
                                            std::string* ciphertext) {
-  return OSCrypt::EncryptString(plaintext, ciphertext);
+  CHECK(encryptor_) << "EncryptString called before Init completed";
+  return encryptor_->EncryptString(plaintext, ciphertext);
 }
 
 bool CookieOSCryptoDelegate::DecryptString(const std::string& ciphertext,
                                            std::string* plaintext) {
-  return OSCrypt::DecryptString(ciphertext, plaintext);
+  CHECK(encryptor_) << "DecryptString called before Init completed";
+  return encryptor_->DecryptString(ciphertext, plaintext);
+}
+
+void CookieOSCryptoDelegate::OnOsCryptReady(
+    os_crypt_async::Encryptor encryptor) {
+  encryptor_ = std::move(encryptor);
+  initializing_ = false;
+  for (auto& callback : init_callbacks_) {
+    std::move(callback).Run();
+  }
+  init_callbacks_.clear();
 }
 
 }  // namespace
 
-std::unique_ptr<net::CookieCryptoDelegate> GetCookieCryptoDelegate() {
-  return std::make_unique<CookieOSCryptoDelegate>();
+std::unique_ptr<net::CookieCryptoDelegate> GetCookieCryptoDelegate(
+    os_crypt_async::OSCryptAsync* os_crypt_async,
+    scoped_refptr<base::SequencedTaskRunner> ui_task_runner) {
+  return std::make_unique<CookieOSCryptoDelegate>(os_crypt_async,
+                                                  ui_task_runner);
 }
 #else   // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
         // BUILDFLAG(IS_CHROMEOS)
-std::unique_ptr<net::CookieCryptoDelegate> GetCookieCryptoDelegate() {
+std::unique_ptr<net::CookieCryptoDelegate> GetCookieCryptoDelegate(
+    os_crypt_async::OSCryptAsync* os_crypt_async,
+    scoped_refptr<base::SequencedTaskRunner> ui_task_runner) {
   return nullptr;
 }
 #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
diff --git a/components/cookie_config/cookie_store_util.h b/components/cookie_config/cookie_store_util.h
index 1e1b7eb..9d142e9 100644
--- a/components/cookie_config/cookie_store_util.h
+++ b/components/cookie_config/cookie_store_util.h
@@ -8,17 +8,28 @@
 #include <memory>
 
 #include "base/component_export.h"
+#include "base/memory/scoped_refptr.h"
+
+namespace base {
+class SequencedTaskRunner;
+}
 
 namespace net {
 class CookieCryptoDelegate;
 }  // namespace net
 
+namespace os_crypt_async {
+class OSCryptAsync;
+}  // namespace os_crypt_async
+
 namespace cookie_config {
 
 // Factory method for returning a CookieCryptoDelegate if one is appropriate for
 // this platform.
 COMPONENT_EXPORT(COMPONENTS_COOKIE_CONFIG)
-std::unique_ptr<net::CookieCryptoDelegate> GetCookieCryptoDelegate();
+std::unique_ptr<net::CookieCryptoDelegate> GetCookieCryptoDelegate(
+    os_crypt_async::OSCryptAsync* os_crypt_async,
+    scoped_refptr<base::SequencedTaskRunner> ui_task_runner);
 
 }  // namespace cookie_config
 
diff --git a/components/download/internal/common/download_stats.cc b/components/download/internal/common/download_stats.cc
index 46aff7d..957b4ee9 100644
--- a/components/download/internal/common/download_stats.cc
+++ b/components/download/internal/common/download_stats.cc
@@ -213,13 +213,6 @@
   }
 }
 
-void RecordDownloadRetry(DownloadInterruptReason reason) {
-  std::vector<base::HistogramBase::Sample32> samples =
-      base::CustomHistogram::ArrayToCustomEnumRanges(kAllInterruptReasonCodes);
-  UMA_HISTOGRAM_CUSTOM_ENUMERATION("Download.Retry.InterruptReason", reason,
-                                   samples);
-}
-
 void RecordDangerousDownloadAccept(DownloadDangerType danger_type,
                                    const base::FilePath& file_path) {
   UMA_HISTOGRAM_ENUMERATION("Download.UserValidatedDangerousDownload",
diff --git a/components/download/public/common/download_stats.h b/components/download/public/common/download_stats.h
index 004f6cd..c1b13f3 100644
--- a/components/download/public/common/download_stats.h
+++ b/components/download/public/common/download_stats.h
@@ -189,10 +189,6 @@
     DownloadDangerType danger_type,
     const base::FilePath& file_path);
 
-// Records the interrupt reason when a download is retried.
-COMPONENTS_DOWNLOAD_EXPORT void RecordDownloadRetry(
-    DownloadInterruptReason reason);
-
 // Returns the type of download.
 COMPONENTS_DOWNLOAD_EXPORT DownloadContent
 DownloadContentFromMimeType(const std::string& mime_type_string,
diff --git a/components/enterprise/data_controls/core/browser/rules_service_base.h b/components/enterprise/data_controls/core/browser/rules_service_base.h
index d9ce84c..3dca7f83 100644
--- a/components/enterprise/data_controls/core/browser/rules_service_base.h
+++ b/components/enterprise/data_controls/core/browser/rules_service_base.h
@@ -26,17 +26,17 @@
   // making any special destination assumptions. This is meant to trigger rules
   // that only have "sources" conditions, and blocking/warning verdicts returned
   // by this function should trigger a dialog.
-  Verdict GetCopyRestrictedBySourceVerdict(const GURL& source) const;
+  virtual Verdict GetCopyRestrictedBySourceVerdict(const GURL& source) const;
 
   // Returns a clipboard verdict with the provided source attributes, and with
   // the "os_clipboard" destination. This is meant to trigger rules that make
   // use of the "os_clipboard" destination attribute. Blocking verdicts returned
   // by this function should replace the data put in the clipboard, and warning
   // verdicts should trigger a dialog.
-  Verdict GetCopyToOSClipboardVerdict(const GURL& source) const;
+  virtual Verdict GetCopyToOSClipboardVerdict(const GURL& source) const;
 
   // Returns a verdict to be applied to a specific file download.
-  Verdict GetDownloadVerdict(const GURL& download_url) const;
+  virtual Verdict GetDownloadVerdict(const GURL& download_url) const;
 
  protected:
   // Returns a `Verdict` corresponding to all triggered Data Control rules given
diff --git a/components/fingerprinting_protection_filter/interventions/browser/BUILD.gn b/components/fingerprinting_protection_filter/interventions/browser/BUILD.gn
index eab2a8ab..41a31555 100644
--- a/components/fingerprinting_protection_filter/interventions/browser/BUILD.gn
+++ b/components/fingerprinting_protection_filter/interventions/browser/BUILD.gn
@@ -8,10 +8,14 @@
 if (use_blink) {
   source_set("browser") {
     sources = [
-      "interventions_web_contents_helper.cc",
-      "interventions_web_contents_helper.h",
+      "canvas_interventions_web_contents_helper.cc",
+      "canvas_interventions_web_contents_helper.h",
     ]
-    public_deps = [ "//content/public/browser" ]
+    public_deps = [
+      "//components/content_settings/core/browser",
+      "//components/privacy_sandbox:tracking_protection_settings",
+      "//content/public/browser",
+    ]
     deps = [
       "../common:features",
       "//base",
@@ -20,12 +24,13 @@
 
   source_set("unit_tests") {
     testonly = true
-    sources = [ "interventions_web_contents_helper_unittest.cc" ]
+    sources = [ "canvas_interventions_web_contents_helper_unittest.cc" ]
     public_deps = [ "//content/public/browser" ]
     deps = [
       ":browser",
       "../common:features",
       "//base",
+      "//components/sync_preferences:test_support",
       "//content/test:test_support",
       "//testing/gtest",
     ]
diff --git a/components/fingerprinting_protection_filter/interventions/browser/DEPS b/components/fingerprinting_protection_filter/interventions/browser/DEPS
index 7d605ec..813dd56 100644
--- a/components/fingerprinting_protection_filter/interventions/browser/DEPS
+++ b/components/fingerprinting_protection_filter/interventions/browser/DEPS
@@ -1,5 +1,14 @@
 include_rules = [
+  "+components/content_settings/core/browser",
+  "+components/content_settings/core/common",
+  "+components/privacy_sandbox",
   "+content/public/browser",
   "+content/public/test",
   "+third_party/blink/public/common",
 ]
+
+specific_include_rules = {
+  "canvas_interventions_web_contents_helper_unittest\.cc": [
+    "+components/sync_preferences/testing_pref_service_syncable.h",
+  ],
+}
diff --git a/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.cc b/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.cc
new file mode 100644
index 0000000..c9ecce5
--- /dev/null
+++ b/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.cc
@@ -0,0 +1,71 @@
+// 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.
+
+#include "components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.h"
+
+#include "base/feature_list.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings_types.h"
+#include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
+#include "components/privacy_sandbox/tracking_protection_settings.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/navigation_handle.h"
+#include "content/public/browser/service_worker_context.h"
+#include "content/public/browser/storage_partition.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_contents_user_data.h"
+
+namespace content {
+class WebContents;
+class StoragePartition;
+class ServiceWorkerContext;
+}  // namespace content
+
+namespace fingerprinting_protection_interventions {
+
+void CanvasInterventionsWebContentsHelper::ReadyToCommitNavigation(
+    content::NavigationHandle* navigation_handle) {
+  auto& mutable_runtime_feature_state =
+      navigation_handle->GetMutableRuntimeFeatureStateContext();
+  const bool canvas_base_feature_enabled =
+      features::ShouldBlockCanvasReadbackForIncognitoState(is_incognito_);
+
+  if (mutable_runtime_feature_state.IsBlockCanvasReadbackEnabled() !=
+      canvas_base_feature_enabled) {
+    mutable_runtime_feature_state.SetBlockCanvasReadbackEnabled(
+        canvas_base_feature_enabled);
+  }
+}
+
+// private
+CanvasInterventionsWebContentsHelper::CanvasInterventionsWebContentsHelper(
+    content::WebContents* web_contents,
+    privacy_sandbox::TrackingProtectionSettings* tracking_protection_settings,
+    bool is_incognito)
+    : content::WebContentsUserData<CanvasInterventionsWebContentsHelper>(
+          *web_contents),
+      content::WebContentsObserver(web_contents),
+      is_incognito_(is_incognito) {
+  CHECK(tracking_protection_settings);
+  tracking_protection_settings_observation_.Observe(
+      tracking_protection_settings);
+}
+
+CanvasInterventionsWebContentsHelper::~CanvasInterventionsWebContentsHelper() =
+    default;
+
+void CanvasInterventionsWebContentsHelper::
+    OnTrackingProtectionExceptionsChanged(const GURL& first_party_url) {
+  // Update canvas noise tokens for service workers matching with their
+  // respective top level site.
+  GetWebContents()
+      .GetBrowserContext()
+      ->GetStoragePartition(GetWebContents().GetSiteInstance())
+      ->GetServiceWorkerContext()
+      ->UpdateAllCanvasNoiseTokensFromTopLevelSite(first_party_url);
+}
+
+WEB_CONTENTS_USER_DATA_KEY_IMPL(CanvasInterventionsWebContentsHelper);
+
+}  // namespace fingerprinting_protection_interventions
diff --git a/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.h b/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.h
new file mode 100644
index 0000000..c3f5538
--- /dev/null
+++ b/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.h
@@ -0,0 +1,68 @@
+// 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.
+
+#ifndef COMPONENTS_FINGERPRINTING_PROTECTION_FILTER_INTERVENTIONS_BROWSER_CANVAS_INTERVENTIONS_WEB_CONTENTS_HELPER_H_
+#define COMPONENTS_FINGERPRINTING_PROTECTION_FILTER_INTERVENTIONS_BROWSER_CANVAS_INTERVENTIONS_WEB_CONTENTS_HELPER_H_
+
+#include "base/scoped_observation.h"
+#include "components/privacy_sandbox/tracking_protection_settings.h"
+#include "components/privacy_sandbox/tracking_protection_settings_observer.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "content/public/browser/web_contents_user_data.h"
+
+namespace content {
+class NavigationHandle;
+class WebContents;
+}  // namespace content
+
+namespace fingerprinting_protection_interventions {
+
+// The CanvasInterventionsWebContentsHelper's primary purpose is to listen for
+// tabs that have ContentSettingsType::TRACKING_PROTECTION changes for actions
+// such as User Bypass. Additionally, the CanvasInterventionsWebContentsHelper
+// is used to control the BlockCanvasReadback Runtime Enabled Feature for the
+// navigations, based on whether the browser-level feature is enabled and the
+// user is in Incognito.
+class CanvasInterventionsWebContentsHelper
+    : public content::WebContentsUserData<CanvasInterventionsWebContentsHelper>,
+      public content::WebContentsObserver,
+      public privacy_sandbox::TrackingProtectionSettingsObserver {
+ public:
+  CanvasInterventionsWebContentsHelper(
+      const CanvasInterventionsWebContentsHelper&) = delete;
+  CanvasInterventionsWebContentsHelper& operator=(
+      const CanvasInterventionsWebContentsHelper&) = delete;
+
+  ~CanvasInterventionsWebContentsHelper() override;
+
+ protected:
+  CanvasInterventionsWebContentsHelper(
+      content::WebContents* web_contents,
+      privacy_sandbox::TrackingProtectionSettings* tracking_protection_settings,
+      bool is_incognito);
+
+  // privacy_sandbox::TrackingProtectionSettingsObserver:
+  void OnTrackingProtectionExceptionsChanged(
+      const GURL& first_party_url) override;
+
+  // content::WebContentsObserver:
+  void ReadyToCommitNavigation(
+      content::NavigationHandle* navigation_handle) override;
+
+ private:
+  friend class content::WebContentsUserData<
+      CanvasInterventionsWebContentsHelper>;
+  bool is_incognito_;
+
+  base::ScopedObservation<privacy_sandbox::TrackingProtectionSettings,
+                          privacy_sandbox::TrackingProtectionSettingsObserver>
+      tracking_protection_settings_observation_{this};
+
+  WEB_CONTENTS_USER_DATA_KEY_DECL();
+};
+
+}  // namespace fingerprinting_protection_interventions
+
+#endif  // COMPONENTS_FINGERPRINTING_PROTECTION_FILTER_INTERVENTIONS_BROWSER_CANVAS_INTERVENTIONS_WEB_CONTENTS_HELPER_H_
diff --git a/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper_unittest.cc b/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper_unittest.cc
similarity index 63%
rename from components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper_unittest.cc
rename to components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper_unittest.cc
index 1c3c20f..aa7bb869 100644
--- a/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper_unittest.cc
+++ b/components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper_unittest.cc
@@ -2,13 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h"
+#include "components/fingerprinting_protection_filter/interventions/browser/canvas_interventions_web_contents_helper.h"
 
 #include <string_view>
 
 #include "base/strings/to_string.h"
 #include "base/test/scoped_feature_list.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
+#include "components/sync_preferences/testing_pref_service_syncable.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/navigation_simulator.h"
@@ -29,15 +31,6 @@
 using ::testing::Combine;
 using ::testing::ConvertGenerator;
 
-using CanvasInterventionsWebContentsHelperTest = RenderViewHostTestHarness;
-
-TEST_F(CanvasInterventionsWebContentsHelperTest, CreateForWebContents) {
-  InterventionsWebContentsHelper::CreateForWebContents(
-      RenderViewHostTestHarness::web_contents(), /*is_incognito=*/true);
-  EXPECT_NE(nullptr, InterventionsWebContentsHelper::FromWebContents(
-                         RenderViewHostTestHarness::web_contents()));
-}
-
 struct TestParam {
   using TupleT = std::tuple<bool, bool, bool>;
   explicit TestParam(TupleT params)
@@ -81,8 +74,50 @@
 }
 
 class CanvasInterventionsWebContentsHelperLauncher
-    : public CanvasInterventionsWebContentsHelperTest,
-      public testing::WithParamInterface<TestParam> {};
+    : public RenderViewHostTestHarness,
+      public testing::WithParamInterface<TestParam> {
+ public:
+  CanvasInterventionsWebContentsHelperLauncher()
+      : content::RenderViewHostTestHarness(
+            base::test::TaskEnvironment::TimeSource::MOCK_TIME) {}
+
+  void SetUp() override {
+    RenderViewHostTestHarness::SetUp();
+    privacy_sandbox::tracking_protection::RegisterProfilePrefs(
+        prefs_.registry());
+    HostContentSettingsMap::RegisterProfilePrefs(prefs_.registry());
+    host_content_settings_map_ = base::MakeRefCounted<HostContentSettingsMap>(
+        &prefs_, /*is_off_the_record=*/!GetParam().run_in_regular_mode,
+        /*store_last_modified=*/false,
+        /*restore_session=*/false,
+        /*should_record_metrics=*/false);
+    management_service_ = std::make_unique<policy::ManagementService>(
+        std::vector<std::unique_ptr<policy::ManagementStatusProvider>>());
+    tracking_protection_settings_ =
+        std::make_unique<privacy_sandbox::TrackingProtectionSettings>(
+            &prefs_,
+            /*host_content_settings_map=*/host_content_settings_map_.get(),
+            /*management_service=*/management_service_.get(),
+            /*is_incognito=*/!GetParam().run_in_regular_mode);
+  }
+
+  void TearDown() override {
+    host_content_settings_map_->ShutdownOnUIThread();
+    tracking_protection_settings_->Shutdown();
+    RenderViewHostTestHarness::TearDown();
+  }
+
+  privacy_sandbox::TrackingProtectionSettings* tracking_protection_settings() {
+    return tracking_protection_settings_.get();
+  }
+
+ private:
+  sync_preferences::TestingPrefServiceSyncable prefs_;
+  scoped_refptr<HostContentSettingsMap> host_content_settings_map_;
+  std::unique_ptr<policy::ManagementService> management_service_;
+  std::unique_ptr<privacy_sandbox::TrackingProtectionSettings>
+      tracking_protection_settings_;
+};
 
 INSTANTIATE_TEST_SUITE_P(All,
                          CanvasInterventionsWebContentsHelperLauncher,
@@ -93,8 +128,14 @@
        InterventionsNavigationPropagatesCanvasInterventionsFeature) {
   WebContents* web_contents = RenderViewHostTestHarness::web_contents();
   TestParam param = GetParam();
-  InterventionsWebContentsHelper::CreateForWebContents(
-      web_contents, /*is_incognito=*/!param.run_in_regular_mode);
+  fingerprinting_protection_interventions::
+      CanvasInterventionsWebContentsHelper::CreateForWebContents(
+          web_contents, tracking_protection_settings(),
+          !param.run_in_regular_mode);
+
+  EXPECT_NE(nullptr, CanvasInterventionsWebContentsHelper::FromWebContents(
+                         RenderViewHostTestHarness::web_contents()));
+
   BlockReadbackFeatureFlag block_readback_feature_flag(
       param.enable_block_canvas_readback,
       param.feature_enabled_in_regular_mode);
diff --git a/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.cc b/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.cc
deleted file mode 100644
index b8fb943..0000000
--- a/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h"
-
-#include "base/feature_list.h"
-#include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
-#include "content/public/browser/navigation_handle.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_user_data.h"
-
-namespace content {
-class WebContents;
-}  // namespace content
-
-namespace fingerprinting_protection_interventions {
-
-// static
-void InterventionsWebContentsHelper::CreateForWebContents(
-    content::WebContents* web_contents,
-    bool is_incognito) {
-  // Do nothing if a InterventionsWebContentsHelper
-  // already exists for the current WebContents.
-  if (FromWebContents(web_contents)) {
-    return;
-  }
-
-  content::WebContentsUserData<
-      InterventionsWebContentsHelper>::CreateForWebContents(web_contents,
-                                                            is_incognito);
-}
-
-void InterventionsWebContentsHelper::ReadyToCommitNavigation(
-    content::NavigationHandle* navigation_handle) {
-  auto& mutable_runtime_feature_state =
-      navigation_handle->GetMutableRuntimeFeatureStateContext();
-  bool canvas_base_feature_enabled =
-      features::ShouldBlockCanvasReadbackForIncognitoState(is_incognito_);
-
-  if (mutable_runtime_feature_state.IsBlockCanvasReadbackEnabled() !=
-      canvas_base_feature_enabled) {
-    mutable_runtime_feature_state.SetBlockCanvasReadbackEnabled(
-        canvas_base_feature_enabled);
-  }
-}
-
-// private
-InterventionsWebContentsHelper::InterventionsWebContentsHelper(
-    content::WebContents* web_contents,
-    bool is_incognito)
-    : content::WebContentsUserData<InterventionsWebContentsHelper>(
-          *web_contents),
-      content::WebContentsObserver(web_contents),
-      is_incognito_(is_incognito) {}
-
-InterventionsWebContentsHelper::~InterventionsWebContentsHelper() = default;
-
-WEB_CONTENTS_USER_DATA_KEY_IMPL(InterventionsWebContentsHelper);
-
-}  // namespace fingerprinting_protection_interventions
diff --git a/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h b/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h
deleted file mode 100644
index c613d6ce..0000000
--- a/components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_FINGERPRINTING_PROTECTION_FILTER_INTERVENTIONS_BROWSER_INTERVENTIONS_WEB_CONTENTS_HELPER_H_
-#define COMPONENTS_FINGERPRINTING_PROTECTION_FILTER_INTERVENTIONS_BROWSER_INTERVENTIONS_WEB_CONTENTS_HELPER_H_
-
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/web_contents_observer.h"
-#include "content/public/browser/web_contents_user_data.h"
-
-namespace content {
-class NavigationHandle;
-class WebContents;
-}  // namespace content
-
-namespace fingerprinting_protection_interventions {
-
-// The InterventionsWebContentsHelper is used to control the BlockCanvasReadback
-// Runtime Enabled Feature for the navigations, based on whether the
-// browser-level feature is enabled and the user is in Incognito.
-
-class InterventionsWebContentsHelper
-    : public content::WebContentsUserData<InterventionsWebContentsHelper>,
-      public content::WebContentsObserver {
- public:
-  static void CreateForWebContents(content::WebContents* web_contents,
-                                   bool is_incognito);
-
-  InterventionsWebContentsHelper(const InterventionsWebContentsHelper&) =
-      delete;
-  InterventionsWebContentsHelper& operator=(
-      const InterventionsWebContentsHelper&) = delete;
-
-  ~InterventionsWebContentsHelper() override;
-
- protected:
-  InterventionsWebContentsHelper(content::WebContents* web_contents,
-                                 bool is_incognito);
-
-  // content::WebContentsObserver:
-  void ReadyToCommitNavigation(
-      content::NavigationHandle* navigation_handle) override;
-
- private:
-  friend class content::WebContentsUserData<InterventionsWebContentsHelper>;
-  bool is_incognito_;
-
-  WEB_CONTENTS_USER_DATA_KEY_DECL();
-};
-
-}  // namespace fingerprinting_protection_interventions
-
-#endif  // COMPONENTS_FINGERPRINTING_PROTECTION_FILTER_INTERVENTIONS_BROWSER_INTERVENTIONS_WEB_CONTENTS_HELPER_H_
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
index 2cdb193..67e5e4b 100644
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -1678,21 +1678,14 @@
   return false;
 }
 
-bool HistoryBackend::GetMostRecentVisitsForURL(URLID id,
-                                               int max_visits,
-                                               VisitVector* visits) {
-  if (db_)
-    return db_->GetMostRecentVisitsForURL(id, max_visits, visits);
-  return false;
-}
-
 QueryURLAndVisitsResult HistoryBackend::GetMostRecentVisitsForGurl(
     GURL url,
-    int max_visits) {
+    int max_visits,
+    VisitQuery404sPolicy policy_for_404_visits) {
   QueryURLAndVisitsResult result;
   if (db_ && GetURL(url, &result.row) &&
       db_->GetMostRecentVisitsForURL(result.row.id(), max_visits,
-                                     &result.visits)) {
+                                     policy_for_404_visits, &result.visits)) {
     result.success = true;
   }
   return result;
diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h
index d0128a9..f554433 100644
--- a/components/history/core/browser/history_backend.h
+++ b/components/history/core/browser/history_backend.h
@@ -667,11 +667,10 @@
   // TODO(manukh): DEPRECATED (see above comment)
   bool GetMostRecentVisitForURL(URLID id, VisitRow* visit_row) override;
 
-  // Fetches up to `max_visits` most recent visits for the passed URL.
-  // TODO(manukh): Rename to `GetMostRecentVisitsForUrlId`.
-  bool GetMostRecentVisitsForURL(URLID id, int max_visits, VisitVector* visits);
-
-  QueryURLAndVisitsResult GetMostRecentVisitsForGurl(GURL url, int max_visits);
+  QueryURLAndVisitsResult GetMostRecentVisitsForGurl(
+      GURL url,
+      int max_visits,
+      VisitQuery404sPolicy policy_for_404_visits);
 
   // Gets whether the URL is known to sync.
   bool GetIsUrlKnownToSync(URLID id, bool* is_known_to_sync);
diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc
index 1313f29a..e2aac029 100644
--- a/components/history/core/browser/history_backend_unittest.cc
+++ b/components/history/core/browser/history_backend_unittest.cc
@@ -1235,8 +1235,9 @@
   URLRow url_row;
   ASSERT_TRUE(backend_->GetURL(url, &url_row));
   VisitVector visits;
-  ASSERT_TRUE(backend_->GetMostRecentVisitsForURL(
-      backend_->db()->GetRowForURL(url, nullptr), kMaxVisitsToQuery, &visits));
+  ASSERT_TRUE(backend_->db_->GetMostRecentVisitsForURL(
+      backend_->db()->GetRowForURL(url, nullptr), kMaxVisitsToQuery,
+      VisitQuery404sPolicy::kInclude404s, &visits));
   ASSERT_EQ(1u, visits.size());
 
   // ...but it should not be tracked by `VisitTracker`.
@@ -2514,7 +2515,8 @@
   VisitVector visits;
   URLRow row;
   URLID id = backend_->db()->GetRowForURL(url1, &row);
-  ASSERT_TRUE(backend_->db()->GetMostRecentVisitsForURL(id, 1, &visits));
+  ASSERT_TRUE(backend_->db()->GetMostRecentVisitsForURL(
+      id, 1, VisitQuery404sPolicy::kInclude404s, &visits));
   ASSERT_EQ(1U, visits.size());
   EXPECT_EQ(visits1[2].first, visits[0].visit_time);
 }
@@ -3301,9 +3303,9 @@
 
   // Visits to http://example.com are untouched.
   VisitVector visit_vector;
-  EXPECT_TRUE(backend_->GetMostRecentVisitsForURL(
+  EXPECT_TRUE(backend_->db_->GetMostRecentVisitsForURL(
       backend_->db_->GetRowForURL(GURL("http://example.com"), nullptr),
-      kMaxVisitsToQuery, &visit_vector));
+      kMaxVisitsToQuery, VisitQuery404sPolicy::kInclude404s, &visit_vector));
   ASSERT_EQ(5u, visit_vector.size());
   EXPECT_EQ(base::Time() + base::Microseconds(8), visit_vector[0].visit_time);
   EXPECT_EQ(base::Time() + base::Microseconds(6), visit_vector[1].visit_time);
@@ -3314,9 +3316,9 @@
   // Visits to http://example.net between [2,8] are removed, including the 404
   // visit at index 5.
   visit_vector.clear();
-  EXPECT_TRUE(backend_->GetMostRecentVisitsForURL(
+  EXPECT_TRUE(backend_->db_->GetMostRecentVisitsForURL(
       backend_->db_->GetRowForURL(GURL("http://example.net"), nullptr),
-      kMaxVisitsToQuery, &visit_vector));
+      kMaxVisitsToQuery, VisitQuery404sPolicy::kInclude404s, &visit_vector));
   ASSERT_EQ(2u, visit_vector.size());
   EXPECT_EQ(base::Time() + base::Microseconds(9), visit_vector[0].visit_time);
   EXPECT_EQ(base::Time() + base::Microseconds(1), visit_vector[1].visit_time);
@@ -3654,13 +3656,19 @@
 
   // Grab the resulting visits.
   VisitVector visits1;
-  backend_->GetMostRecentVisitsForURL(url1.id(), kMaxVisitsToQuery, &visits1);
+  backend_->db_->GetMostRecentVisitsForURL(url1.id(), kMaxVisitsToQuery,
+                                           VisitQuery404sPolicy::kInclude404s,
+                                           &visits1);
   ASSERT_EQ(visits1.size(), 1u);
   VisitVector visits2;
-  backend_->GetMostRecentVisitsForURL(url2.id(), kMaxVisitsToQuery, &visits2);
+  backend_->db_->GetMostRecentVisitsForURL(url2.id(), kMaxVisitsToQuery,
+                                           VisitQuery404sPolicy::kInclude404s,
+                                           &visits2);
   ASSERT_EQ(visits2.size(), 1u);
   VisitVector visits3;
-  backend_->GetMostRecentVisitsForURL(url3.id(), kMaxVisitsToQuery, &visits3);
+  backend_->db_->GetMostRecentVisitsForURL(url3.id(), kMaxVisitsToQuery,
+                                           VisitQuery404sPolicy::kInclude404s,
+                                           &visits3);
   ASSERT_EQ(visits3.size(), 1u);
 
   // The page transition, including the qualifier, should have been preserved
@@ -4199,8 +4207,9 @@
   ASSERT_TRUE(backend_->GetURL(url, &url_row));
 
   VisitVector visits;
-  ASSERT_TRUE(backend_->GetMostRecentVisitsForURL(
-      backend_->db_->GetRowForURL(url, nullptr), kMaxVisitsToQuery, &visits));
+  ASSERT_TRUE(backend_->db_->GetMostRecentVisitsForURL(
+      backend_->db_->GetRowForURL(url, nullptr), kMaxVisitsToQuery,
+      VisitQuery404sPolicy::kInclude404s, &visits));
   ASSERT_EQ(1u, visits.size());
 
   const VisitID visit_id = visits[0].visit_id;
diff --git a/components/history/core/browser/history_service.cc b/components/history/core/browser/history_service.cc
index 0ea9ec07..385b56f 100644
--- a/components/history/core/browser/history_service.cc
+++ b/components/history/core/browser/history_service.cc
@@ -1263,6 +1263,7 @@
 base::CancelableTaskTracker::TaskId HistoryService::GetMostRecentVisitsForGurl(
     GURL url,
     int max_visits,
+    VisitQuery404sPolicy policy_for_404_visits,
     QueryURLAndVisitsCallback callback,
     base::CancelableTaskTracker* tracker) {
   DCHECK(backend_task_runner_) << "History service being called after cleanup";
@@ -1270,7 +1271,7 @@
   return tracker->PostTaskAndReplyWithResult(
       backend_task_runner_.get(), FROM_HERE,
       base::BindOnce(&HistoryBackend::GetMostRecentVisitsForGurl,
-                     history_backend_, url, max_visits),
+                     history_backend_, url, max_visits, policy_for_404_visits),
       std::move(callback));
 }
 
diff --git a/components/history/core/browser/history_service.h b/components/history/core/browser/history_service.h
index 3a24a405..638e90a 100644
--- a/components/history/core/browser/history_service.h
+++ b/components/history/core/browser/history_service.h
@@ -496,6 +496,7 @@
   base::CancelableTaskTracker::TaskId GetMostRecentVisitsForGurl(
       GURL url,
       int max_visits,
+      VisitQuery404sPolicy policy_for_404_visits,
       QueryURLAndVisitsCallback callback,
       base::CancelableTaskTracker* tracker);
 
diff --git a/components/history/core/browser/history_service_unittest.cc b/components/history/core/browser/history_service_unittest.cc
index 1e54691..d12b6916 100644
--- a/components/history/core/browser/history_service_unittest.cc
+++ b/components/history/core/browser/history_service_unittest.cc
@@ -1442,6 +1442,10 @@
 }
 
 TEST_F(HistoryServiceTest, GetMostRecentVisitsForGurl) {
+  // Allow 404s to be saved to history.
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(history::kVisitedLinksOn404);
+
   HistoryService* history = history_service_.get();
   ASSERT_TRUE(history);
 
@@ -1455,12 +1459,33 @@
   AddPageInThePast(history, "http://www.google.com/", 2);
   // Should not return older visits.
   AddPageInThePast(history, "http://www.google.com/", 6);
+  // Should include or ignore 404s based on `policy_for_404_visits`.
+  AddPageInThePast(history, "http://www.google.com/", 2, /*is_404=*/true);
 
   base::test::TestFuture<QueryURLAndVisitsResult> future;
   history->GetMostRecentVisitsForGurl(GURL("http://www.google.com/"), 3,
+                                      VisitQuery404sPolicy::kInclude404s,
                                       future.GetCallback(), &tracker_);
-  const auto result = future.Take();
+  auto result = future.Take();
   EXPECT_EQ(result.row.id(), 1);
+  // We specified that 404s should be included, so the 404 visit should be
+  // returned.
+  EXPECT_THAT(result.visits,
+              testing::ElementsAre(
+                  testing::AllOf(testing::Field(&VisitRow::url_id, 1),
+                                 testing::Field(&VisitRow::visit_id, 3)),
+                  testing::AllOf(testing::Field(&VisitRow::url_id, 1),
+                                 testing::Field(&VisitRow::visit_id, 7)),
+                  testing::AllOf(testing::Field(&VisitRow::url_id, 1),
+                                 testing::Field(&VisitRow::visit_id, 5))));
+
+  history->GetMostRecentVisitsForGurl(GURL("http://www.google.com/"), 3,
+                                      VisitQuery404sPolicy::kExclude404s,
+                                      future.GetCallback(), &tracker_);
+  result = future.Take();
+  EXPECT_EQ(result.row.id(), 1);
+  // We specified that 404s should be excluded, so the non-404 visit from 3 days
+  // ago should get returned instead instead of the 404 from 2 days ago.
   EXPECT_THAT(result.visits,
               testing::ElementsAre(
                   testing::AllOf(testing::Field(&VisitRow::url_id, 1),
diff --git a/components/history/core/browser/visit_database.cc b/components/history/core/browser/visit_database.cc
index ec67c91..628de58 100644
--- a/components/history/core/browser/visit_database.cc
+++ b/components/history/core/browser/visit_database.cc
@@ -929,18 +929,38 @@
   return statement.ColumnInt64(0);
 }
 
-bool VisitDatabase::GetMostRecentVisitsForURL(URLID url_id,
-                                              int max_results,
-                                              VisitVector* visits) {
+bool VisitDatabase::GetMostRecentVisitsForURL(
+    URLID url_id,
+    int max_results,
+    VisitQuery404sPolicy policy_for_404_visits,
+    VisitVector* visits) {
   visits->clear();
 
-  // The visit_time values can be duplicated in a redirect chain, so we sort
-  // by id too, to ensure a consistent ordering just in case.
-  sql::Statement statement(GetDB().GetCachedStatement(
-      SQL_FROM_HERE, "SELECT" HISTORY_VISIT_ROW_FIELDS "FROM visits "
-                     "WHERE url=? "
-                     "ORDER BY visit_time DESC, id DESC "
-                     "LIMIT ?"));
+  sql::Statement statement;
+  switch (policy_for_404_visits) {
+    case VisitQuery404sPolicy::kInclude404s:
+      // The visit_time values can be duplicated in a redirect chain, so we sort
+      // by id too, to ensure a consistent ordering just in case.
+      statement.Assign(GetDB().GetCachedStatement(
+          SQL_FROM_HERE, "SELECT" HISTORY_VISIT_ROW_FIELDS "FROM visits "
+                         "WHERE url=? "
+                         "ORDER BY visit_time DESC, id DESC "
+                         "LIMIT ?"));
+      break;
+    case VisitQuery404sPolicy::kExclude404s:
+      // The visit_time values can be duplicated in a redirect chain, so we sort
+      // by id too, to ensure a consistent ordering just in case.
+      statement.Assign(GetDB().GetCachedStatement(
+          SQL_FROM_HERE,
+          "SELECT" HISTORY_VISIT_ROW_FIELDS
+          "FROM visits v "
+          "LEFT OUTER JOIN context_annotations ca ON v.id=ca.visit_id "
+          "WHERE v.url=? "
+          "AND (ca.response_code IS NULL OR ca.response_code!=404) "
+          "ORDER BY v.visit_time DESC, v.id DESC "
+          "LIMIT ?"));
+      break;
+  }
   statement.BindInt64(0, url_id);
   statement.BindInt(1, max_results);
 
diff --git a/components/history/core/browser/visit_database.h b/components/history/core/browser/visit_database.h
index eb9f7c0..a020373d 100644
--- a/components/history/core/browser/visit_database.h
+++ b/components/history/core/browser/visit_database.h
@@ -181,13 +181,16 @@
   // the found visit. When no visit is found, the row will be unchanged.
   VisitID GetMostRecentVisitForURL(URLID url_id, VisitRow* visit_row);
 
-  // Returns the `max_results` most recent visit sessions for `url_id`.
+  // Returns the `max_results` most recent visit sessions for `url_id`. Includes
+  // or excludes visits with an HTTP response code of 404 according to
+  // `policy_for_404_visits`.
   //
   // Returns false if there's a failure preparing the statement. True
-  // otherwise. (No results are indicated with an empty `visits`
+  // otherwise. (No matching results is indicated with an empty `visits`
   // vector.)
   bool GetMostRecentVisitsForURL(URLID url_id,
                                  int max_results,
+                                 VisitQuery404sPolicy policy_for_404_visits,
                                  VisitVector* visits);
 
   // Finds a redirect coming from the given `from_visit`. If a redirect is
diff --git a/components/history/core/browser/visit_database_unittest.cc b/components/history/core/browser/visit_database_unittest.cc
index 0d6cb104..f77ab21 100644
--- a/components/history/core/browser/visit_database_unittest.cc
+++ b/components/history/core/browser/visit_database_unittest.cc
@@ -287,6 +287,89 @@
   EXPECT_EQ(out_visit.visit_time, kNow);
 }
 
+TEST_F(VisitDatabaseTest, GetMostRecentVisitsForURL_NoVisits) {
+  const URLID kUrlId = 1U;
+
+  // Should return an empty vector when there are no visits.
+  VisitVector out_visits;
+  ASSERT_TRUE(GetMostRecentVisitsForURL(
+      kUrlId, 1, VisitQuery404sPolicy::kInclude404s, &out_visits));
+  EXPECT_EQ(out_visits.size(), 0U);
+  ASSERT_TRUE(GetMostRecentVisitsForURL(
+      kUrlId, 1, VisitQuery404sPolicy::kExclude404s, &out_visits));
+  EXPECT_EQ(out_visits.size(), 0U);
+}
+
+TEST_F(VisitDatabaseTest, GetMostRecentVisitsForURL_Simple) {
+  const URLID kUrlId = 1U;
+  const base::Time kNow = Time::Now();
+
+  // Add two visits for the same URL ID with different visit times.
+  for (int visit_number = 1; visit_number <= 2; ++visit_number) {
+    VisitRow visit;
+    visit.url_id = kUrlId;
+    visit.visit_id = visit_number;
+    visit.visit_time = kNow - base::Days(visit_number);
+    ASSERT_TRUE(AddVisit(&visit, SOURCE_BROWSED));
+    ASSERT_EQ(visit_number, visit.visit_id);
+  }
+
+  // Should return both visits in recency order, regardless of
+  // `policy_for_404_visits`.
+  VisitVector out_visits;
+  ASSERT_TRUE(GetMostRecentVisitsForURL(
+      kUrlId, 100, VisitQuery404sPolicy::kInclude404s, &out_visits));
+  ASSERT_EQ(out_visits.size(), 2U);
+  EXPECT_EQ(out_visits.front().visit_id, 1);
+  EXPECT_EQ(out_visits.back().visit_id, 2);
+  ASSERT_TRUE(GetMostRecentVisitsForURL(
+      kUrlId, 100, VisitQuery404sPolicy::kExclude404s, &out_visits));
+  ASSERT_EQ(out_visits.size(), 2U);
+  EXPECT_EQ(out_visits.front().visit_id, 1);
+  EXPECT_EQ(out_visits.back().visit_id, 2);
+}
+
+TEST_F(VisitDatabaseTest, GetMostRecentVisitsForURL_404Policy) {
+  const URLID kUrlId = 1U;
+  const base::Time kNow = Time::Now();
+  VisitContextAnnotations context_annotations_non_404;
+  context_annotations_non_404.on_visit = {.response_code = 500};
+  VisitContextAnnotations context_annotations_404;
+  context_annotations_404.on_visit = {.response_code = 404};
+
+  // Add a non-404 visit for the URL.
+  VisitRow visit_non_404;
+  visit_non_404.url_id = kUrlId;
+  visit_non_404.visit_id = 1;
+  visit_non_404.visit_time = kNow - base::Days(2);
+  ASSERT_TRUE(AddVisit(&visit_non_404, SOURCE_BROWSED));
+  ASSERT_EQ(visit_non_404.visit_id, 1);
+  AddContextAnnotationsForVisit(visit_non_404.visit_id,
+                                context_annotations_non_404);
+
+  // Add a more recent 404 visit for the URL.
+  VisitRow visit_404;
+  visit_404.url_id = kUrlId;
+  visit_404.visit_id = 2;
+  visit_404.visit_time = kNow - base::Days(1);
+  ASSERT_TRUE(AddVisit(&visit_404, SOURCE_BROWSED));
+  ASSERT_EQ(visit_404.visit_id, 2);
+  AddContextAnnotationsForVisit(visit_404.visit_id, context_annotations_404);
+
+  // When including 404 visits, we should get both visits back with the 404
+  // recent first.
+  VisitVector out_visits;
+  ASSERT_TRUE(GetMostRecentVisitsForURL(
+      kUrlId, 100, VisitQuery404sPolicy::kInclude404s, &out_visits));
+  ASSERT_EQ(out_visits.size(), 2U);
+  EXPECT_THAT(out_visits.front(), MatchesVisitInfo(visit_404));
+  EXPECT_THAT(out_visits.back(), MatchesVisitInfo(visit_non_404));
+  ASSERT_TRUE(GetMostRecentVisitsForURL(
+      kUrlId, 100, VisitQuery404sPolicy::kExclude404s, &out_visits));
+  ASSERT_EQ(out_visits.size(), 1U);
+  EXPECT_THAT(out_visits.front(), MatchesVisitInfo(visit_non_404));
+}
+
 TEST_F(VisitDatabaseTest, GetVisibleVisitCountToHost) {
   // Add a primary main frame non-redirect visit to a URL.
   GURL url("http://www.google.com/");
diff --git a/components/ip_protection/common/BUILD.gn b/components/ip_protection/common/BUILD.gn
index 0eb36fb..1ef3103 100644
--- a/components/ip_protection/common/BUILD.gn
+++ b/components/ip_protection/common/BUILD.gn
@@ -404,6 +404,7 @@
     ":ip_protection_token_fetcher",
     ":ip_protection_token_fetcher_helper",
     "//base",
+    "//net/third_party/quiche:blind_sign_auth",
     "//services/network/public/cpp",
   ]
   deps = [
@@ -412,7 +413,6 @@
     ":ip_protection_telemetry",
     ":ip_protection_token_fetcher_helper",
     "//components/signin/public/identity_manager",
-    "//net/third_party/quiche:blind_sign_auth",
   ]
 }
 
diff --git a/components/ip_protection/common/ip_protection_proxy_delegate.cc b/components/ip_protection/common/ip_protection_proxy_delegate.cc
index de1e563..cb38cc7a 100644
--- a/components/ip_protection/common/ip_protection_proxy_delegate.cc
+++ b/components/ip_protection/common/ip_protection_proxy_delegate.cc
@@ -213,7 +213,8 @@
   }
 
   if (!net::features::kIpPrivacyDirectOnly.Get()) {
-    proxy_list.DeprioritizeBadProxyChains(proxy_retry_info);
+    proxy_list.DeprioritizeBadProxyChains(proxy_retry_info,
+                                          /*remove_bad_proxy_chains=*/true);
     if (proxy_list.IsEmpty()) {
       return;
     }
diff --git a/components/ip_protection/common/ip_protection_proxy_delegate_unittest.cc b/components/ip_protection/common/ip_protection_proxy_delegate_unittest.cc
index 8bc9db2..58a4666 100644
--- a/components/ip_protection/common/ip_protection_proxy_delegate_unittest.cc
+++ b/components/ip_protection/common/ip_protection_proxy_delegate_unittest.cc
@@ -339,6 +339,12 @@
   std::optional<HeadersReceived> headers_received_;
 };
 
+// Tests in ip_protection_url_request_http_job_unittest.cc exercise the delegate
+// by making a network request. This tests the full integration path through
+// the network stack.
+//
+// Therefore, prefer adding new tests to that suite if its simpler
+// MockIpProtectionCore is sufficient.
 class IpProtectionProxyDelegateTest : public testing::Test {
  public:
   IpProtectionProxyDelegateTest() = default;
@@ -505,83 +511,6 @@
   EXPECT_TRUE(headers->IsEmpty());
 }
 
-TEST_F(IpProtectionProxyDelegateTest, OnResolveProxyDeprioritizesBadProxies) {
-  std::map<std::string, std::set<std::string>> first_party_map;
-  first_party_map["example.com"] = {};
-  auto masked_domain_list_manager = CreateMdlManager(first_party_map);
-  auto ipp_core =
-      std::make_unique<MockIpProtectionCore>(&masked_domain_list_manager);
-  ipp_core->SetNextAuthToken(MakeAuthToken("Bearer: a-token"));
-  ipp_core->SetProxyList({MakeChain({"proxya", "proxyb"}),
-                          MakeChain({"backup-proxya", "backup-proxyb"})});
-  auto delegate = CreateDelegate(ipp_core.get());
-
-  net::ProxyRetryInfoMap retry_map;
-  net::ProxyRetryInfo& info = retry_map[net::ProxyChain::ForIpProtection(
-      {net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
-                                               "proxya", std::nullopt),
-       net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
-                                               "proxyb", std::nullopt)})];
-  info.bad_until = base::TimeTicks::Now() + base::Days(2);
-
-  net::ProxyInfo result;
-  result.UseDirect();
-  delegate->OnResolveProxy(GURL(kHttpsUrl),
-                           net::NetworkAnonymizationKey::CreateCrossSite(
-                               net::SchemefulSite(GURL("https://top.com"))),
-                           "GET", std::move(retry_map), &result);
-
-  net::ProxyList expected_proxy_list;
-  expected_proxy_list.AddProxyChain(net::ProxyChain::ForIpProtection(
-      {net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
-                                               "backup-proxya", std::nullopt),
-       net::ProxyServer::FromSchemeHostAndPort(
-           net::ProxyServer::SCHEME_HTTPS, "backup-proxyb", std::nullopt)}));
-  expected_proxy_list.AddProxyChain(net::ProxyChain::ForIpProtection({}));
-  expected_proxy_list.AddProxyChain(net::ProxyChain::ForIpProtection(
-      {net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
-                                               "proxya", std::nullopt),
-       net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
-                                               "proxyb", std::nullopt)}));
-
-  EXPECT_TRUE(result.proxy_list().Equals(expected_proxy_list))
-      << "Got: " << result.proxy_list().ToDebugString();
-  EXPECT_TRUE(result.is_for_ip_protection());
-  histogram_tester_.ExpectUniqueSample(kProxyResolutionHistogram,
-                                       ProxyResolutionResult::kAttemptProxy, 1);
-}
-
-TEST_F(IpProtectionProxyDelegateTest, OnResolveProxyAllProxiesBad) {
-  std::map<std::string, std::set<std::string>> first_party_map;
-  first_party_map["example.com"] = {};
-  auto masked_domain_list_manager = CreateMdlManager(first_party_map);
-  auto ipp_core =
-      std::make_unique<MockIpProtectionCore>(&masked_domain_list_manager);
-  ipp_core->SetNextAuthToken(MakeAuthToken("Bearer: a-token"));
-  ipp_core->SetProxyList({MakeChain({"proxya", "proxyb"})});
-  auto delegate = CreateDelegate(ipp_core.get());
-
-  net::ProxyRetryInfoMap retry_map;
-  net::ProxyRetryInfo& info = retry_map[net::ProxyChain::ForIpProtection(
-      {net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
-                                               "proxya", std::nullopt),
-       net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
-                                               "proxyb", std::nullopt)})];
-  info.bad_until = base::TimeTicks::Now() + base::Days(2);
-
-  net::ProxyInfo result;
-  result.UseDirect();
-  delegate->OnResolveProxy(GURL(kHttpsUrl),
-                           net::NetworkAnonymizationKey::CreateCrossSite(
-                               net::SchemefulSite(GURL("https://top.com"))),
-                           "GET", std::move(retry_map), &result);
-
-  EXPECT_TRUE(result.is_direct());
-  EXPECT_FALSE(result.is_for_ip_protection());
-  histogram_tester_.ExpectUniqueSample(kProxyResolutionHistogram,
-                                       ProxyResolutionResult::kAttemptProxy, 1);
-}
-
 TEST_F(IpProtectionProxyDelegateTest,
        OnResolveProxyMaskedDomainListManagerMatch) {
   std::map<std::string, std::set<std::string>> first_party_map;
diff --git a/components/ip_protection/common/ip_protection_token_direct_fetcher.h b/components/ip_protection/common/ip_protection_token_direct_fetcher.h
index a9180ab..53f39ef 100644
--- a/components/ip_protection/common/ip_protection_token_direct_fetcher.h
+++ b/components/ip_protection/common/ip_protection_token_direct_fetcher.h
@@ -22,6 +22,7 @@
 #include "components/ip_protection/common/ip_protection_data_types.h"
 #include "components/ip_protection/common/ip_protection_token_fetcher.h"
 #include "components/ip_protection/common/ip_protection_token_fetcher_helper.h"
+#include "net/third_party/quiche/src/quiche/blind_sign_auth/blind_sign_auth_interface.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 
 namespace ip_protection {
diff --git a/components/ip_protection/common/ip_protection_token_manager_impl.cc b/components/ip_protection/common/ip_protection_token_manager_impl.cc
index ceb4677..4afd56b 100644
--- a/components/ip_protection/common/ip_protection_token_manager_impl.cc
+++ b/components/ip_protection/common/ip_protection_token_manager_impl.cc
@@ -371,7 +371,9 @@
   // Log the number of tokens successfully fetched.
   Telemetry().RecordTokenCountEvent(
       proxy_layer_, IpProtectionTokenCountEvent::kIssued, tokens->size());
-  Telemetry().TokenDemandDuringBatchGeneration(tokens_demanded_during_fetch_);
+  if (cache_has_been_filled_) {
+    Telemetry().TokenDemandDuringBatchGeneration(tokens_demanded_during_fetch_);
+  }
 
   cache.insert(cache.end(), std::make_move_iterator(tokens->begin()),
                std::make_move_iterator(tokens->end()));
diff --git a/components/ip_protection/common/ip_protection_token_manager_impl_unittest.cc b/components/ip_protection/common/ip_protection_token_manager_impl_unittest.cc
index 39455136..6b9d36f8 100644
--- a/components/ip_protection/common/ip_protection_token_manager_impl_unittest.cc
+++ b/components/ip_protection/common/ip_protection_token_manager_impl_unittest.cc
@@ -750,6 +750,8 @@
 
   // Histogram should have no samples for a prefill.
   histogram_tester_.ExpectTotalCount(kGeoChangeTokenPresence, 0);
+  histogram_tester_.ExpectTotalCount(kTokenDemandDuringBatchGenerationHistogram,
+                                     0);
 }
 
 // The cache will initiate a refill when it reaches the low-water mark.
@@ -1400,10 +1402,18 @@
 
 TEST_F(IpProtectionTokenManagerImplTest,
        TokenDemandDuringTryGetAuthTokensSuccess) {
-  // Begin fetching tokens.
+  // Fill the cache once.
+  ipp_proxy_a_token_fetcher_->ExpectTryGetAuthTokensCall(
+      expected_batch_size_,
+      TokenBatch(expected_batch_size_, kFutureExpiration, kMountainViewGeo));
+  ipp_proxy_a_token_manager_->EnableCacheManagementForTesting();
+  WaitForTryGetAuthTokensCompletion(ProxyLayer::kProxyA);
+  ASSERT_TRUE(ipp_proxy_a_token_manager_->WasTokenCacheEverFilled());
+
+  // Begin fetching tokens for a new geo.
   ipp_proxy_a_token_fetcher_->SetPauseTryGetAuthTokensForTesting(
       task_environment_.QuitClosure());
-  ipp_proxy_a_token_manager_->EnableCacheManagementForTesting();
+  ipp_proxy_a_token_manager_->SetCurrentGeo(kSunnyvaleGeoId);
   task_environment_.RunUntilQuit();
   ASSERT_TRUE(ipp_proxy_a_token_manager_->fetching_auth_tokens_for_testing());
 
@@ -1416,7 +1426,7 @@
   ipp_proxy_a_token_manager_->SetOnTryGetAuthTokensCompletedForTesting(
       task_environment_.QuitClosure());
   ipp_proxy_a_token_fetcher_->ResumeTryGetAuthTokensForTesting(
-      TokenBatch(expected_batch_size_, kFutureExpiration, kMountainViewGeo),
+      TokenBatch(expected_batch_size_, kFutureExpiration, kSunnyvaleGeo),
       std::nullopt);
   task_environment_.RunUntilQuit();
   histogram_tester_.ExpectUniqueSample(
@@ -1425,10 +1435,18 @@
 
 TEST_F(IpProtectionTokenManagerImplTest,
        TokenDemandDuringTryGetAuthTokensError) {
-  // Begin fetching tokens.
+  // Fill the cache once.
+  ipp_proxy_a_token_fetcher_->ExpectTryGetAuthTokensCall(
+      expected_batch_size_,
+      TokenBatch(expected_batch_size_, kFutureExpiration, kMountainViewGeo));
+  ipp_proxy_a_token_manager_->EnableCacheManagementForTesting();
+  WaitForTryGetAuthTokensCompletion(ProxyLayer::kProxyA);
+  ASSERT_TRUE(ipp_proxy_a_token_manager_->WasTokenCacheEverFilled());
+
+  // Begin fetching tokens for a new geo.
   ipp_proxy_a_token_fetcher_->SetPauseTryGetAuthTokensForTesting(
       task_environment_.QuitClosure());
-  ipp_proxy_a_token_manager_->EnableCacheManagementForTesting();
+  ipp_proxy_a_token_manager_->SetCurrentGeo(kSunnyvaleGeoId);
   task_environment_.RunUntilQuit();
   ASSERT_TRUE(ipp_proxy_a_token_manager_->fetching_auth_tokens_for_testing());
 
diff --git a/components/ip_protection/common/ip_protection_url_request_http_job_unittest.cc b/components/ip_protection/common/ip_protection_url_request_http_job_unittest.cc
index fe0eb05..781bd25 100644
--- a/components/ip_protection/common/ip_protection_url_request_http_job_unittest.cc
+++ b/components/ip_protection/common/ip_protection_url_request_http_job_unittest.cc
@@ -47,19 +47,48 @@
     "HTTP/1.1 200 OK\r\n"
     "Content-Length: 12\r\n\r\n";
 
-const char kResponseBody[] = "Test Content";
+const std::string_view kResponseBody = "Test Content";
+
+constexpr std::string_view kConnectToProxyBHeaders =
+    "CONNECT proxy-b:443 HTTP/1.1\r\n"
+    "Host: proxy-b:443\r\n"
+    "Proxy-Connection: keep-alive\r\n\r\n";
+constexpr std::string_view kConnectToProxyDHeaders =
+    "CONNECT proxy-d:443 HTTP/1.1\r\n"
+    "Host: proxy-d:443\r\n"
+    "Proxy-Connection: keep-alive\r\n\r\n";
+
+constexpr std::string_view kConnectToProxyResponse =
+    "HTTP/1.1 200 Connection Established\r\n\r\n";
+
+constexpr std::string_view kConnectToDestinationHeaders =
+    "CONNECT www.example.com:80 HTTP/1.1\r\n"
+    "Host: www.example.com:80\r\n"
+    "Proxy-Connection: keep-alive\r\n\r\n";
+constexpr std::string_view kConnectToDestinationResponse =
+    "HTTP/1.1 200 Connection Established\r\n\r\n";
 
 net::ProxyChain GetIpProtectionProxyChain() {
-  net::ProxyServer proxy_server_a = net::ProxyServer::FromSchemeHostAndPort(
-      net::ProxyServer::SCHEME_HTTPS, "proxy-a", 443);
-  net::ProxyServer proxy_server_b = net::ProxyServer::FromSchemeHostAndPort(
-      net::ProxyServer::SCHEME_HTTPS, "proxy-b", 443);
-  return net::ProxyChain::ForIpProtection({proxy_server_a, proxy_server_b});
+  return net::ProxyChain::ForIpProtection(
+      {net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
+                                               "proxy-a", 443),
+       net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
+                                               "proxy-b", 443)});
+}
+
+net::ProxyChain GetIpProtectionProxyChain2() {
+  return net::ProxyChain::ForIpProtection(
+      {net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
+                                               "proxy-c", 443),
+       net::ProxyServer::FromSchemeHostAndPort(net::ProxyServer::SCHEME_HTTPS,
+                                               "proxy-d", 443)});
 }
 
 // A wrapper around SocketDataProvider that owns the reads and writes.
 struct SocketDataWrapper {
-  std::unique_ptr<net::StaticSocketDataProvider> socket_data;
+  std::unique_ptr<net::StaticSocketDataProvider> socket_data_provider;
+  // For successful requests that use SSL.
+  std::vector<net::SSLSocketDataProvider> ssl_data_providers;
   // Might be empty if the request only mocks connection.
   std::vector<net::MockWrite> writes;
   std::vector<net::MockRead> reads;
@@ -67,8 +96,9 @@
 
 SocketDataWrapper CreateRequestFailsSocketData() {
   SocketDataWrapper wrapper;
-  wrapper.socket_data = std::make_unique<net::StaticSocketDataProvider>();
-  wrapper.socket_data->set_connect_data(
+  wrapper.socket_data_provider =
+      std::make_unique<net::StaticSocketDataProvider>();
+  wrapper.socket_data_provider->set_connect_data(
       net::MockConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_RESET));
   return wrapper;
 }
@@ -81,8 +111,42 @@
   wrapper.reads.emplace_back(kResponseBody);
   wrapper.reads.emplace_back(net::ASYNC, net::OK);
 
-  wrapper.socket_data = std::make_unique<net::StaticSocketDataProvider>(
-      wrapper.reads, wrapper.writes);
+  wrapper.socket_data_provider =
+      std::make_unique<net::StaticSocketDataProvider>(wrapper.reads,
+                                                      wrapper.writes);
+  return wrapper;
+}
+
+SocketDataWrapper CreateProxiedRequestSucceedsSocketData(
+    const net::ProxyChain& proxy_chain) {
+  SocketDataWrapper wrapper;
+
+  // We can't construct the string dynamically because net::MockWrite doesn't
+  // store the string; it stores a string_view.
+  std::string_view connect_to_proxy_headers;
+  std::string second_hop_proxy_host = proxy_chain.GetProxyServer(1).GetHost();
+  if (second_hop_proxy_host == "proxy-b") {
+    connect_to_proxy_headers = kConnectToProxyBHeaders;
+  } else if (second_hop_proxy_host == "proxy-d") {
+    connect_to_proxy_headers = kConnectToProxyDHeaders;
+  } else {
+    NOTREACHED();
+  }
+  wrapper.writes.emplace_back(connect_to_proxy_headers);
+  wrapper.reads.emplace_back(kConnectToProxyResponse);
+  wrapper.ssl_data_providers.emplace_back(net::ASYNC, net::OK);
+
+  wrapper.writes.emplace_back(kConnectToDestinationHeaders);
+  wrapper.reads.emplace_back(kConnectToDestinationResponse);
+  wrapper.ssl_data_providers.emplace_back(net::ASYNC, net::OK);
+
+  wrapper.writes.emplace_back(kSimpleGetMockWrite);
+  wrapper.reads.emplace_back(kResponseHeaders);
+  wrapper.reads.emplace_back(kResponseBody);
+
+  wrapper.socket_data_provider =
+      std::make_unique<net::StaticSocketDataProvider>(wrapper.reads,
+                                                      wrapper.writes);
   return wrapper;
 }
 
@@ -172,8 +236,11 @@
                                    TRAFFIC_ANNOTATION_FOR_TESTS);
   }
 
-  void AddSocketDataProvider(SocketDataWrapper& wrapper) {
-    socket_factory_.AddSocketDataProvider(wrapper.socket_data.get());
+  void AddSocketData(SocketDataWrapper& wrapper) {
+    socket_factory_.AddSocketDataProvider(wrapper.socket_data_provider.get());
+    for (auto& ssl_data : wrapper.ssl_data_providers) {
+      socket_factory_.AddSSLSocketDataProvider(&ssl_data);
+    }
   }
 
  private:
@@ -260,10 +327,10 @@
 
   // Mock a request to the proxy that fails.
   auto connect_data = CreateRequestFailsSocketData();
-  request_context.AddSocketDataProvider(connect_data);
+  request_context.AddSocketData(connect_data);
   // Mock a direct request that succeeds.
   auto direct_data = CreateDirectRequestSucceedsSocketData();
-  request_context.AddSocketDataProvider(direct_data);
+  request_context.AddSocketData(direct_data);
 
   net::TestDelegate delegate;
   base::HistogramTester histograms;
@@ -295,7 +362,7 @@
 
   // Mock a direct request that succeeds.
   auto direct_data = CreateDirectRequestSucceedsSocketData();
-  request_context.AddSocketDataProvider(direct_data);
+  request_context.AddSocketData(direct_data);
 
   base::HistogramTester histograms;
   net::TestDelegate delegate;
@@ -329,7 +396,7 @@
 
   // Mock a direct request that succeeds.
   auto direct_data = CreateDirectRequestSucceedsSocketData();
-  request_context.AddSocketDataProvider(direct_data);
+  request_context.AddSocketData(direct_data);
 
   base::HistogramTester histograms;
   net::TestDelegate delegate;
@@ -350,21 +417,26 @@
   CheckRequestMetrics(histograms, RequestMetricsExpectations::kSuccess);
 }
 
-TEST_F(IpProtectionUrlRequestHttpJobTest, BadProxyChain) {
+TEST_F(IpProtectionUrlRequestHttpJobTest, AllBadProxyChains) {
   base::test::ScopedFeatureList scoped_feature_list(
       net::features::kEnableIpProtectionProxy);
 
   UrlRequestContextWrapper request_context;
-  request_context.ipp_core().SetProxyList({GetIpProtectionProxyChain()});
+  request_context.ipp_core().SetProxyList(
+      {GetIpProtectionProxyChain(), GetIpProtectionProxyChain2()});
 
   {
     // Mock a request to the proxy that fails.
-    auto connect_data = CreateRequestFailsSocketData();
-    request_context.AddSocketDataProvider(connect_data);
+    auto connect_data1 = CreateRequestFailsSocketData();
+    request_context.AddSocketData(connect_data1);
+
+    // Mock a request to the proxy that fails.
+    auto connect_data2 = CreateRequestFailsSocketData();
+    request_context.AddSocketData(connect_data2);
 
     // Mock a direct request that succeeds.
     auto direct_data = CreateDirectRequestSucceedsSocketData();
-    request_context.AddSocketDataProvider(direct_data);
+    request_context.AddSocketData(direct_data);
 
     base::HistogramTester histograms;
     net::TestDelegate delegate;
@@ -384,7 +456,7 @@
 
   // Mock a direct request that succeeds.
   auto direct_data = CreateDirectRequestSucceedsSocketData();
-  request_context.AddSocketDataProvider(direct_data);
+  request_context.AddSocketData(direct_data);
 
   base::HistogramTester histograms;
   net::TestDelegate delegate;
@@ -401,4 +473,65 @@
   CheckRequestMetrics(histograms, RequestMetricsExpectations::kDirectOnly);
 }
 
+TEST_F(IpProtectionUrlRequestHttpJobTest, OneBadProxyChain) {
+  base::test::ScopedFeatureList scoped_feature_list(
+      net::features::kEnableIpProtectionProxy);
+
+  UrlRequestContextWrapper request_context;
+  request_context.ipp_core().SetProxyList(
+      {GetIpProtectionProxyChain(), GetIpProtectionProxyChain2()});
+
+  {
+    // Mock a request to the ProxyChain that fails. This proxy chain will be
+    // marked as a bad proxy chain.
+    auto connect_data = CreateRequestFailsSocketData();
+    request_context.AddSocketData(connect_data);
+
+    // Mock a request to the proxy chain that succeeds.
+    auto proxy_data =
+        CreateProxiedRequestSucceedsSocketData(GetIpProtectionProxyChain2());
+    request_context.AddSocketData(proxy_data);
+
+    base::HistogramTester histograms;
+    net::TestDelegate delegate;
+    std::unique_ptr<net::URLRequest> request =
+        request_context.CreateRequest(GURL(kUrl), &delegate);
+    request->Start();
+    ASSERT_TRUE(request->is_pending());
+    delegate.RunUntilComplete();
+
+    ASSERT_THAT(delegate.request_status(), IsOk());
+    EXPECT_EQ(GetIpProtectionProxyChain2(), request->proxy_chain());
+    EXPECT_THAT(request_context.proxy_resolution_service().proxy_retry_info(),
+                Contains(Key(GetIpProtectionProxyChain())));
+    CheckRequestMetrics(histograms, RequestMetricsExpectations::kSuccess);
+  }
+
+  // Mock a request to the proxy that fails.
+  auto connect_data = CreateRequestFailsSocketData();
+  request_context.AddSocketData(connect_data);
+  // Mock a request to direct that fails.
+  auto direct_data = CreateRequestFailsSocketData();
+  request_context.AddSocketData(direct_data);
+
+  net::TestDelegate delegate;
+  std::unique_ptr<net::URLRequest> request =
+      request_context.CreateRequest(GURL(kUrl), &delegate);
+
+  request->Start();
+  ASSERT_TRUE(request->is_pending());
+  delegate.RunUntilComplete();
+
+  // Since the first proxy chain was marked as bad, it should have been removed
+  // from the proxy list. We shouldn't fall back and the request should fail.
+  EXPECT_THAT(delegate.request_status(),
+              net::test::IsError(net::ERR_CONNECTION_RESET));
+  EXPECT_EQ(net::ProxyChain::ForIpProtection({}), request->proxy_chain());
+
+  connect_data.socket_data_provider->ExpectAllReadDataConsumed();
+  connect_data.socket_data_provider->ExpectAllWriteDataConsumed();
+  direct_data.socket_data_provider->ExpectAllReadDataConsumed();
+  direct_data.socket_data_provider->ExpectAllWriteDataConsumed();
+}
+
 }  // namespace ip_protection
diff --git a/components/omnibox/browser/searchbox.mojom b/components/omnibox/browser/searchbox.mojom
index 557e65c..79b63e85 100644
--- a/components/omnibox/browser/searchbox.mojom
+++ b/components/omnibox/browser/searchbox.mojom
@@ -83,6 +83,12 @@
   // holes for sale in" is "hobbit holes for sale" and the match contents
   // would be the text following "sale".
   mojo_base.mojom.String16? tail_suggest_common_prefix;
+  // Derived from `AutocompleteMatch::associated_keyword` and a few other
+  // fields. Determines the text shown in the keyword chip, which is shown if
+  // this is non-empty.
+  string keyword_chip_hint;
+  // Similar to `keyword_chip_text`, but the a11y label for the chip.
+  string keyword_chip_a11y;
 };
 
 // Information about a suggested tab in the WebUI.
diff --git a/components/omnibox/browser/url_index_private_data.cc b/components/omnibox/browser/url_index_private_data.cc
index b929f5c..cd1931d 100644
--- a/components/omnibox/browser/url_index_private_data.cc
+++ b/components/omnibox/browser/url_index_private_data.cc
@@ -105,7 +105,8 @@
     history::HistoryBackend* backend,
     history::HistoryDatabase* db) {
   succeeded_ = db->GetMostRecentVisitsForURL(
-      url_id_, URLIndexPrivateData::kMaxVisitsToStoreInCache, &recent_visits_);
+      url_id_, URLIndexPrivateData::kMaxVisitsToStoreInCache,
+      history::VisitQuery404sPolicy::kExclude404s, &recent_visits_);
   if (!succeeded_)
     recent_visits_.clear();
   return true;  // Always claim to be done; do not retry failures.
@@ -760,9 +761,11 @@
     // However, unittest code actually calls this on the UI thread.
     // So we don't do any thread checks.
     history::VisitVector recent_visits;
-    if (history_db->GetMostRecentVisitsForURL(row_id, kMaxVisitsToStoreInCache,
-                                              &recent_visits))
+    if (history_db->GetMostRecentVisitsForURL(
+            row_id, kMaxVisitsToStoreInCache,
+            history::VisitQuery404sPolicy::kExclude404s, &recent_visits)) {
       UpdateRecentVisits(row_id, recent_visits);
+    }
   } else if (history_service) {
     DCHECK(tracker);
     ScheduleUpdateRecentVisits(history_service, row_id, tracker);
@@ -964,4 +967,3 @@
     return (r1.visit_count() > r2.visit_count());
   return (r1.last_visit() > r2.last_visit());
 }
-
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
index e2ad12cd..9ed301da 100644
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -171,6 +171,9 @@
 // accommodate the autocompletions.
 BASE_FEATURE(kRichAutocompletion, "OmniboxRichAutocompletion", ENABLED);
 
+// If enabled, removes the cutout for the location bar and fills the entire
+// popup content with the WebUI WebView.
+BASE_FEATURE(kWebUIOmniboxFullPopup, DISABLED);
 // If enabled, shows the omnibox suggestions in the popup in WebUI.
 BASE_FEATURE(kWebUIOmniboxPopup, DISABLED);
 // Enables the WebUI for omnibox suggestions without modifying the popup UI.
diff --git a/components/omnibox/common/omnibox_features.h b/components/omnibox/common/omnibox_features.h
index 0c60a60..45cf7c69 100644
--- a/components/omnibox/common/omnibox_features.h
+++ b/components/omnibox/common/omnibox_features.h
@@ -60,6 +60,7 @@
 BASE_DECLARE_FEATURE(kShowPopupOnMouseReleased);
 BASE_DECLARE_FEATURE(kMostVisitedTilesHorizontalRenderGroup);
 BASE_DECLARE_FEATURE(kRichAutocompletion);
+BASE_DECLARE_FEATURE(kWebUIOmniboxFullPopup);
 BASE_DECLARE_FEATURE(kWebUIOmniboxPopup);
 BASE_DECLARE_FEATURE(kWebUIOmniboxPopupDebug);
 extern const base::FeatureParam<bool> kWebUIOmniboxPopupDebugSxSParam;
diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer.cc b/components/page_load_metrics/browser/metrics_web_contents_observer.cc
index 7decbac..21ee854 100644
--- a/components/page_load_metrics/browser/metrics_web_contents_observer.cc
+++ b/components/page_load_metrics/browser/metrics_web_contents_observer.cc
@@ -45,6 +45,7 @@
 #include "net/http/http_response_headers.h"
 #include "services/network/public/mojom/fetch_api.mojom-shared.h"
 #include "third_party/blink/public/common/loader/resource_type_util.h"
+#include "third_party/blink/public/mojom/loader/resource_load_info.mojom.h"
 #include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom.h"
 #include "ui/base/page_transition_types.h"
 #include "url/url_constants.h"
diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer.h b/components/page_load_metrics/browser/metrics_web_contents_observer.h
index 59c8035f..4e2cde1 100644
--- a/components/page_load_metrics/browser/metrics_web_contents_observer.h
+++ b/components/page_load_metrics/browser/metrics_web_contents_observer.h
@@ -16,8 +16,8 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "base/time/time.h"
-#include "components/page_load_metrics/browser/page_load_metrics_observer.h"
-#include "components/page_load_metrics/common/page_load_metrics.mojom.h"
+#include "components/page_load_metrics/browser/page_load_metrics_observer_interface.h"
+#include "components/page_load_metrics/common/page_load_metrics.mojom-forward.h"
 #include "components/page_load_metrics/common/page_load_timing.h"
 #include "content/public/browser/auction_result.h"
 #include "content/public/browser/render_frame_host_receiver_set.h"
@@ -28,7 +28,7 @@
 #include "net/cookies/canonical_cookie.h"
 #include "services/network/public/mojom/fetch_api.mojom-forward.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
-#include "third_party/blink/public/mojom/loader/resource_load_info.mojom.h"
+#include "third_party/blink/public/mojom/loader/resource_load_info.mojom-forward.h"
 #include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom-forward.h"
 #include "third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom.h"
 
@@ -39,11 +39,12 @@
 
 namespace page_load_metrics {
 
-struct MemoryUpdate;
+class MetricsLifecycleObserver;
 class PageLoadMetricsEmbedderInterface;
 class PageLoadMetricsMemoryTracker;
+class PageLoadMetricsObserverDelegate;
 class PageLoadTracker;
-class MetricsLifecycleObserver;
+struct MemoryUpdate;
 
 // MetricsWebContentsObserver tracks page loads and loading metrics
 // related data based on IPC messages received from a
diff --git a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
index aab35bfc..da32a583 100644
--- a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
+++ b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
@@ -29,6 +29,7 @@
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/preloading_data.h"
 #include "content/public/common/process_type.h"
+#include "net/base/load_timing_info.h"
 #include "net/http/http_response_headers.h"
 #include "services/network/public/cpp/request_destination.h"
 #include "third_party/blink/public/common/features.h"
diff --git a/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc b/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc
index 3627445a..c4ddafb 100644
--- a/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_test_waiter.cc
@@ -9,6 +9,7 @@
 #include "components/page_load_metrics/browser/observers/page_load_metrics_observer_tester.h"
 #include "components/page_load_metrics/browser/page_load_metrics_observer.h"
 #include "components/page_load_metrics/common/page_load_metrics.mojom.h"
+#include "net/base/load_timing_info.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/mojom/loader/resource_load_info.mojom-shared.h"
 
@@ -152,12 +153,12 @@
 
 PageLoadMetricsTestWaiter::PageLoadMetricsTestWaiter(
     content::WebContents* web_contents,
-    const char* observer_name_)
-    : MetricsLifecycleObserver(web_contents), observer_name_(observer_name_) {}
+    const char* observer_name)
+    : MetricsLifecycleObserver(web_contents), observer_name_(observer_name) {}
 
 PageLoadMetricsTestWaiter::~PageLoadMetricsTestWaiter() {
   CHECK(did_add_observer_);
-  CHECK_EQ(nullptr, run_loop_.get());
+  CHECK(!run_loop_);
 }
 
 void PageLoadMetricsTestWaiter::AddPageExpectation(TimingField field) {
@@ -338,7 +339,7 @@
   }
 
   // Increment image lcp update counts.
-  if (!new_soft_navigation_metrics.largest_contentful_paint.is_null()) {
+  if (new_soft_navigation_metrics.largest_contentful_paint) {
     if (new_soft_navigation_metrics.largest_contentful_paint
             ->largest_image_paint.has_value() &&
         new_soft_navigation_metrics.largest_contentful_paint
@@ -354,7 +355,7 @@
   }
 
   // Increment text lcp update counts.
-  if (!new_soft_navigation_metrics.largest_contentful_paint.is_null()) {
+  if (new_soft_navigation_metrics.largest_contentful_paint) {
     if (new_soft_navigation_metrics.largest_contentful_paint->largest_text_paint
             .has_value() &&
         new_soft_navigation_metrics.largest_contentful_paint->largest_text_paint
diff --git a/components/page_load_metrics/browser/page_load_metrics_test_waiter.h b/components/page_load_metrics/browser/page_load_metrics_test_waiter.h
index 7231c98..803d453 100644
--- a/components/page_load_metrics/browser/page_load_metrics_test_waiter.h
+++ b/components/page_load_metrics/browser/page_load_metrics_test_waiter.h
@@ -53,8 +53,8 @@
   };
 
   explicit PageLoadMetricsTestWaiter(content::WebContents* web_contents);
-  explicit PageLoadMetricsTestWaiter(content::WebContents* web_contents,
-                                     const char* observer_name_);
+  PageLoadMetricsTestWaiter(content::WebContents* web_contents,
+                            const char* observer_name);
 
   ~PageLoadMetricsTestWaiter() override;
 
diff --git a/components/password_manager/ios/BUILD.gn b/components/password_manager/ios/BUILD.gn
index da2a1fe7f..43871bc 100644
--- a/components/password_manager/ios/BUILD.gn
+++ b/components/password_manager/ios/BUILD.gn
@@ -170,6 +170,7 @@
     "//components/password_manager/core/common:features",
     "//components/password_manager/ios:password_manager_feature_header",
     "//components/password_manager/ios:test_support",
+    "//components/test/ios",
     "//components/ukm:test_support",
     "//components/ukm/ios:ukm_url_recorder",
     "//ios/web/js_messaging",
diff --git a/components/password_manager/services/csv_password/csv_password_parser_impl_unittest.cc b/components/password_manager/services/csv_password/csv_password_parser_impl_unittest.cc
index 0266ca56..2008b68 100644
--- a/components/password_manager/services/csv_password/csv_password_parser_impl_unittest.cc
+++ b/components/password_manager/services/csv_password/csv_password_parser_impl_unittest.cc
@@ -34,6 +34,7 @@
 
  private:
   std::unique_ptr<CSVPasswordParserImpl> parser_;
+  base::test::TaskEnvironment task_environment_;
 };
 
 TEST_F(CSVPasswordParserImplTest, ParseEmptyFile) {
diff --git a/components/password_manager/services/csv_password/ios/csv_password_parser_impl.mm b/components/password_manager/services/csv_password/ios/csv_password_parser_impl.mm
index 1ecccc1..9fe5a8a 100644
--- a/components/password_manager/services/csv_password/ios/csv_password_parser_impl.mm
+++ b/components/password_manager/services/csv_password/ios/csv_password_parser_impl.mm
@@ -10,33 +10,25 @@
 #include <vector>
 
 #include "base/strings/sys_string_conversions.h"
+#include "base/task/thread_pool.h"
 #include "components/password_manager/services/csv_password/ios/csv_passwords_parser_swift.h"
 
-namespace password_manager {
+namespace {
 
-CSVPasswordParserImpl::CSVPasswordParserImpl(
-    mojo::PendingReceiver<mojom::CSVPasswordParser> receiver)
-    : receiver_(this, std::move(receiver)) {}
-
-CSVPasswordParserImpl::~CSVPasswordParserImpl() = default;
-
-void CSVPasswordParserImpl::ParseCSV(const std::string& raw_csv,
-                                     ParseCSVCallback callback) {
-  mojom::CSVPasswordSequencePtr result = nullptr;
-
+password_manager::mojom::CSVPasswordSequencePtr DoParseCSV(
+    const std::string& raw_csv) {
   if (raw_csv.empty()) {
-    std::move(callback).Run(std::move(result));
-    return;
+    return nullptr;
   }
 
   CSVPasswordsParser* parser =
       [CSVPasswordsParser fromCSVInput:base::SysUTF8ToNSString(raw_csv)];
   if (!parser.passwords) {
-    std::move(callback).Run(std::move(result));
-    return;
+    return nullptr;
   }
 
-  result = mojom::CSVPasswordSequence::New();
+  password_manager::mojom::CSVPasswordSequencePtr result =
+      password_manager::mojom::CSVPasswordSequence::New();
   size_t count = [parser.passwords count];
   result->csv_passwords.reserve(count);
   for (PasswordData* parsed_password in parser.passwords) {
@@ -58,7 +50,25 @@
     }
   }
 
-  std::move(callback).Run(std::move(result));
+  return result;
+}
+
+}  // namespace
+
+namespace password_manager {
+
+CSVPasswordParserImpl::CSVPasswordParserImpl(
+    mojo::PendingReceiver<mojom::CSVPasswordParser> receiver)
+    : receiver_(this, std::move(receiver)) {}
+
+CSVPasswordParserImpl::~CSVPasswordParserImpl() = default;
+
+void CSVPasswordParserImpl::ParseCSV(const std::string& raw_csv,
+                                     ParseCSVCallback callback) {
+  base::ThreadPool::PostTaskAndReplyWithResult(
+      FROM_HERE, {base::TaskPriority::USER_VISIBLE},
+      base::BindOnce(&DoParseCSV, base::OwnedRef(raw_csv)),
+      std::move(callback));
 }
 
 }  // namespace password_manager
diff --git a/components/payments/content/BUILD.gn b/components/payments/content/BUILD.gn
index 249362d..88f7cc55 100644
--- a/components/payments/content/BUILD.gn
+++ b/components/payments/content/BUILD.gn
@@ -203,6 +203,7 @@
     "mock_web_payments_web_data_service.cc",
     "mock_web_payments_web_data_service.h",
   ]
+  public_deps = [ "//components/payments/content/browser_binding:test_support" ]
   deps = [
     ":utils",
     "//base/test:test_support",
@@ -214,10 +215,6 @@
     "//testing/gtest",
     "//third_party/blink/public:blink_headers",
   ]
-  if (is_android) {
-    public_deps =
-        [ "//components/payments/content/browser_binding:test_support" ]
-  }
 }
 
 group("unit_tests") {
@@ -230,7 +227,7 @@
     deps +=
         [ "//components/payments/content/browser_binding:android_unittests" ]
   }
-  if (is_mac || is_win || is_linux) {
+  if (is_mac || is_win || is_linux || is_chromeos) {
     deps +=
         [ "//components/payments/content/browser_binding:desktop_unittests" ]
   }
diff --git a/components/payments/content/browser_binding/BUILD.gn b/components/payments/content/browser_binding/BUILD.gn
index 5d6225f..f29195e9 100644
--- a/components/payments/content/browser_binding/BUILD.gn
+++ b/components/payments/content/browser_binding/BUILD.gn
@@ -1,3 +1,5 @@
+is_desktop = is_mac || is_win || is_linux || is_chromeos || is_fuchsia
+
 source_set("browser_binding") {
   visibility = [ "//components/payments/content/*" ]
   public_deps = [
@@ -7,7 +9,7 @@
   if (is_android) {
     deps = [ ":android" ]
   }
-  if (is_mac || is_win || is_linux) {
+  if (is_desktop) {
     deps = [ ":desktop" ]
   }
 }
@@ -59,29 +61,45 @@
   ]
 }
 
-if (is_android) {
-  source_set("browser_bound_keys_deleter_factory") {
-    sources = [
-      "browser_bound_keys_deleter.cc",
-      "browser_bound_keys_deleter.h",
-      "browser_bound_keys_deleter_factory.cc",
-      "browser_bound_keys_deleter_factory.h",
+source_set("browser_bound_key_deleter") {
+  sources = [
+    "browser_bound_key_deleter.h",
+    "browser_bound_key_deleter_factory.cc",
+    "browser_bound_key_deleter_factory.h",
+  ]
+  public_deps = [
+    "//base",  # base/no_destructor.h
+    "//components/keyed_service/content",
+    "//components/payments/content:utils",
+  ]
+  deps = [
+    ":passkey_browser_binder",
+    "//components/keyed_service/content",
+    "//components/webdata_services",
+    "//content/public/browser",
+  ]
+
+  if (is_android) {
+    sources += [
+      "browser_bound_key_deleter_android.cc",
+      "browser_bound_key_deleter_android.h",
     ]
-    public_deps = [
-      "//base",  # base/no_destructor.h
-      "//components/keyed_service/content",
-      "//components/payments/content:utils",
-    ]
-    deps = [
+    deps += [
       ":android",
-      ":passkey_browser_binder",
-      "//components/keyed_service/content",
       "//components/webauthn/android",
-      "//components/webdata_services",
-      "//content/public/browser",
     ]
   }
 
+  if (is_desktop) {
+    sources += [
+      "browser_bound_key_deleter_desktop.cc",
+      "browser_bound_key_deleter_desktop.h",
+    ]
+    deps += [ ":desktop" ]
+  }
+}
+
+if (is_android) {
   source_set("android") {
     visibility = [ ":*" ]
     sources = [
@@ -90,6 +108,10 @@
       "browser_bound_key_store_android.cc",
       "browser_bound_key_store_android.h",
     ]
+    public_deps = [
+      "//components/keyed_service/content",
+      "//components/payments/content:utils",
+    ]
     deps = [
       ":interface",
       "//base",
@@ -111,21 +133,9 @@
       "//testing/gtest",
     ]
   }
-
-  source_set("test_support") {
-    testonly = true
-    sources = [
-      "mock_browser_bound_keys_deleter.cc",
-      "mock_browser_bound_keys_deleter.h",
-    ]
-    public_deps = [
-      ":browser_bound_keys_deleter_factory",
-      "//testing/gmock",
-    ]
-  }
 }
 
-if (is_mac || is_win || is_linux) {
+if (is_desktop) {
   source_set("desktop") {
     visibility = [ ":*" ]
     sources = [
@@ -183,3 +193,15 @@
   ]
   deps = [ "//base" ]
 }
+
+source_set("test_support") {
+  testonly = true
+  sources = [
+    "mock_browser_bound_key_deleter.cc",
+    "mock_browser_bound_key_deleter.h",
+  ]
+  public_deps = [
+    ":browser_bound_key_deleter",
+    "//testing/gmock",
+  ]
+}
diff --git a/components/payments/content/browser_binding/browser_bound_keys_deleter.h b/components/payments/content/browser_binding/browser_bound_key_deleter.h
similarity index 69%
rename from components/payments/content/browser_binding/browser_bound_keys_deleter.h
rename to components/payments/content/browser_binding/browser_bound_key_deleter.h
index 257810b..eca4c408 100644
--- a/components/payments/content/browser_binding/browser_bound_keys_deleter.h
+++ b/components/payments/content/browser_binding/browser_bound_key_deleter.h
@@ -2,8 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEYS_DELETER_H_
-#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEYS_DELETER_H_
+#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_H_
+#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_H_
+
+#include <memory>
 
 #include "base/memory/scoped_refptr.h"
 #include "components/keyed_service/core/keyed_service.h"
@@ -13,8 +15,7 @@
 
 class BrowserBoundKeyDeleter : public KeyedService {
  public:
-  explicit BrowserBoundKeyDeleter(
-      scoped_refptr<WebPaymentsWebDataService> web_data_service);
+  BrowserBoundKeyDeleter() = default;
 
   // Non-copyable
   BrowserBoundKeyDeleter(const BrowserBoundKeyDeleter&) = delete;
@@ -24,16 +25,17 @@
   BrowserBoundKeyDeleter(const BrowserBoundKeyDeleter&&) = delete;
   BrowserBoundKeyDeleter operator=(const BrowserBoundKeyDeleter&&) = delete;
 
-  ~BrowserBoundKeyDeleter() override;
+  ~BrowserBoundKeyDeleter() override = default;
 
   // Starts the asynchronous process to find browser bound keys and delete them.
-  // Declared virtual to allow overriding by testing mocks.
-  virtual void RemoveInvalidBBKs();
-
- private:
-  scoped_refptr<WebPaymentsWebDataService> web_data_service_;
+  virtual void RemoveInvalidBBKs() = 0;
 };
 
+// Get a platform specific instance of the BrowserBoundKeyDeleter. This function
+// has per-platform implementations.
+std::unique_ptr<BrowserBoundKeyDeleter> GetBrowserBoundKeyDeleterInstance(
+    scoped_refptr<WebPaymentsWebDataService> web_data_service);
+
 }  // namespace payments
 
-#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEYS_DELETER_H_
+#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_H_
diff --git a/components/payments/content/browser_binding/browser_bound_keys_deleter.cc b/components/payments/content/browser_binding/browser_bound_key_deleter_android.cc
similarity index 83%
rename from components/payments/content/browser_binding/browser_bound_keys_deleter.cc
rename to components/payments/content/browser_binding/browser_bound_key_deleter_android.cc
index e4b44cf..c1d0f3d 100644
--- a/components/payments/content/browser_binding/browser_bound_keys_deleter.cc
+++ b/components/payments/content/browser_binding/browser_bound_key_deleter_android.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter_android.h"
 
 #include "components/payments/content/browser_binding/passkey_browser_binder.h"
 #include "components/payments/content/web_payments_web_data_service.h"
@@ -11,13 +11,18 @@
 
 namespace payments {
 
-BrowserBoundKeyDeleter::BrowserBoundKeyDeleter(
+std::unique_ptr<BrowserBoundKeyDeleter> GetBrowserBoundKeyDeleterInstance(
+    scoped_refptr<WebPaymentsWebDataService> web_data_service) {
+  return std::make_unique<BrowserBoundKeyDeleterAndroid>(web_data_service);
+}
+
+BrowserBoundKeyDeleterAndroid::BrowserBoundKeyDeleterAndroid(
     scoped_refptr<WebPaymentsWebDataService> web_data_service)
     : web_data_service_(web_data_service) {}
 
-BrowserBoundKeyDeleter::~BrowserBoundKeyDeleter() = default;
+BrowserBoundKeyDeleterAndroid::~BrowserBoundKeyDeleterAndroid() = default;
 
-void BrowserBoundKeyDeleter::RemoveInvalidBBKs() {
+void BrowserBoundKeyDeleterAndroid::RemoveInvalidBBKs() {
   if (!web_data_service_) {
     // There are no browser bound keys to be removed when there is no
     // WebPaymentsWebDataService.
diff --git a/components/payments/content/browser_binding/browser_bound_key_deleter_android.h b/components/payments/content/browser_binding/browser_bound_key_deleter_android.h
new file mode 100644
index 0000000..9c50541
--- /dev/null
+++ b/components/payments/content/browser_binding/browser_bound_key_deleter_android.h
@@ -0,0 +1,29 @@
+// 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.
+
+#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_ANDROID_H_
+#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_ANDROID_H_
+
+#include "base/memory/scoped_refptr.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter.h"
+#include "components/payments/content/web_payments_web_data_service.h"
+
+namespace payments {
+
+class BrowserBoundKeyDeleterAndroid : public BrowserBoundKeyDeleter {
+ public:
+  explicit BrowserBoundKeyDeleterAndroid(
+      scoped_refptr<WebPaymentsWebDataService> web_data_service);
+
+  ~BrowserBoundKeyDeleterAndroid() override;
+
+  void RemoveInvalidBBKs() override;
+
+ private:
+  scoped_refptr<WebPaymentsWebDataService> web_data_service_;
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_ANDROID_H_
diff --git a/components/payments/content/browser_binding/browser_bound_key_deleter_desktop.cc b/components/payments/content/browser_binding/browser_bound_key_deleter_desktop.cc
new file mode 100644
index 0000000..ca121644
--- /dev/null
+++ b/components/payments/content/browser_binding/browser_bound_key_deleter_desktop.cc
@@ -0,0 +1,26 @@
+// 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.
+
+#include "components/payments/content/browser_binding/browser_bound_key_deleter_desktop.h"
+
+#include <memory>
+
+#include "components/payments/content/browser_binding/browser_bound_key_deleter.h"
+
+namespace payments {
+
+std::unique_ptr<BrowserBoundKeyDeleter> GetBrowserBoundKeyDeleterInstance(
+    scoped_refptr<WebPaymentsWebDataService> web_data_service) {
+  return std::make_unique<BrowserBoundKeyDeleterDesktop>();
+}
+
+BrowserBoundKeyDeleterDesktop::BrowserBoundKeyDeleterDesktop() = default;
+
+BrowserBoundKeyDeleterDesktop::~BrowserBoundKeyDeleterDesktop() = default;
+
+void BrowserBoundKeyDeleterDesktop::RemoveInvalidBBKs() {
+  // TODO(crbug.com/441553248): Implement in a follow-up CL.
+}
+
+}  // namespace payments
diff --git a/components/payments/content/browser_binding/browser_bound_key_deleter_desktop.h b/components/payments/content/browser_binding/browser_bound_key_deleter_desktop.h
new file mode 100644
index 0000000..e507009
--- /dev/null
+++ b/components/payments/content/browser_binding/browser_bound_key_deleter_desktop.h
@@ -0,0 +1,23 @@
+// 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.
+
+#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_DESKTOP_H_
+#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_DESKTOP_H_
+
+#include "components/payments/content/browser_binding/browser_bound_key_deleter.h"
+
+namespace payments {
+
+class BrowserBoundKeyDeleterDesktop : public BrowserBoundKeyDeleter {
+ public:
+  explicit BrowserBoundKeyDeleterDesktop();
+
+  ~BrowserBoundKeyDeleterDesktop() override;
+
+  void RemoveInvalidBBKs() override;
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_DESKTOP_H_
diff --git a/components/payments/content/browser_binding/browser_bound_keys_deleter_factory.cc b/components/payments/content/browser_binding/browser_bound_key_deleter_factory.cc
similarity index 93%
rename from components/payments/content/browser_binding/browser_bound_keys_deleter_factory.cc
rename to components/payments/content/browser_binding/browser_bound_key_deleter_factory.cc
index 682502d..2aeba82 100644
--- a/components/payments/content/browser_binding/browser_bound_keys_deleter_factory.cc
+++ b/components/payments/content/browser_binding/browser_bound_key_deleter_factory.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter_factory.h"
 
 #include "base/logging.h"
 #include "base/memory/scoped_refptr.h"
@@ -11,8 +11,7 @@
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
 #include "components/keyed_service/core/keyed_service.h"
-#include "components/payments/content/browser_binding/browser_bound_key_store_android.h"
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter.h"
 #include "components/webdata_services/web_data_service_wrapper.h"
 #include "components/webdata_services/web_data_service_wrapper_factory.h"
 #include "content/public/browser/browser_context.h"
@@ -55,7 +54,7 @@
   if (service_for_testing_) {
     service = std::move(service_for_testing_);
   } else {
-    service = std::make_unique<BrowserBoundKeyDeleter>(
+    service = GetBrowserBoundKeyDeleterInstance(
         webdata_services::WebDataServiceWrapperFactory::
             GetWebPaymentsWebDataServiceForBrowserContext(
                 context, ServiceAccessType::EXPLICIT_ACCESS));
diff --git a/components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h b/components/payments/content/browser_binding/browser_bound_key_deleter_factory.h
similarity index 95%
rename from components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h
rename to components/payments/content/browser_binding/browser_bound_key_deleter_factory.h
index c0351b55..2e0fa913 100644
--- a/components/payments/content/browser_binding/browser_bound_keys_deleter_factory.h
+++ b/components/payments/content/browser_binding/browser_bound_key_deleter_factory.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEYS_DELETER_FACTORY_H_
-#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEYS_DELETER_FACTORY_H_
+#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_FACTORY_H_
+#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_FACTORY_H_
 
 #include "base/no_destructor.h"
 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
@@ -54,4 +54,4 @@
 
 }  // namespace payments
 
-#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEYS_DELETER_FACTORY_H_
+#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_BROWSER_BOUND_KEY_DELETER_FACTORY_H_
diff --git a/components/payments/content/browser_binding/mock_browser_bound_keys_deleter.cc b/components/payments/content/browser_binding/mock_browser_bound_key_deleter.cc
similarity index 69%
rename from components/payments/content/browser_binding/mock_browser_bound_keys_deleter.cc
rename to components/payments/content/browser_binding/mock_browser_bound_key_deleter.cc
index 7bcc2d8..fc2511b 100644
--- a/components/payments/content/browser_binding/mock_browser_bound_keys_deleter.cc
+++ b/components/payments/content/browser_binding/mock_browser_bound_key_deleter.cc
@@ -2,12 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/payments/content/browser_binding/mock_browser_bound_keys_deleter.h"
+#include "components/payments/content/browser_binding/mock_browser_bound_key_deleter.h"
 
 namespace payments {
 
-MockBrowserBoundKeyDeleter::MockBrowserBoundKeyDeleter()
-    : BrowserBoundKeyDeleter(/*web_data_service=*/nullptr) {}
+MockBrowserBoundKeyDeleter::MockBrowserBoundKeyDeleter() = default;
 
 MockBrowserBoundKeyDeleter::~MockBrowserBoundKeyDeleter() = default;
 
diff --git a/components/payments/content/browser_binding/mock_browser_bound_keys_deleter.h b/components/payments/content/browser_binding/mock_browser_bound_key_deleter.h
similarity index 88%
rename from components/payments/content/browser_binding/mock_browser_bound_keys_deleter.h
rename to components/payments/content/browser_binding/mock_browser_bound_key_deleter.h
index 56863626..637db1b9 100644
--- a/components/payments/content/browser_binding/mock_browser_bound_keys_deleter.h
+++ b/components/payments/content/browser_binding/mock_browser_bound_key_deleter.h
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_MOCK_BROWSER_BOUND_KEYS_DELETER_H_
-#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_MOCK_BROWSER_BOUND_KEYS_DELETER_H_
+#ifndef COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_MOCK_BROWSER_BOUND_KEY_DELETER_H_
+#define COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_MOCK_BROWSER_BOUND_KEY_DELETER_H_
 
-#include "components/payments/content/browser_binding/browser_bound_keys_deleter.h"
+#include "components/payments/content/browser_binding/browser_bound_key_deleter.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
 namespace payments {
@@ -21,4 +21,4 @@
 
 }  // namespace payments
 
-#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_MOCK_BROWSER_BOUND_KEYS_DELETER_H_
+#endif  // COMPONENTS_PAYMENTS_CONTENT_BROWSER_BINDING_MOCK_BROWSER_BOUND_KEY_DELETER_H_
diff --git a/components/policy/resources/templates/policies.yaml b/components/policy/resources/templates/policies.yaml
index c906674e..28503f0 100644
--- a/components/policy/resources/templates/policies.yaml
+++ b/components/policy/resources/templates/policies.yaml
@@ -1399,6 +1399,7 @@
   1398: PreferSlowCiphers
   1399: DeveloperToolsAvailabilityAllowlist
   1400: DeveloperToolsAvailabilityBlocklist
+  1401: LocalNetworkAccessRestrictionsTemporaryOptOut
 atomic_groups:
   1: Homepage
   2: RemoteAccess
diff --git a/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallCloudPolicyChecksEnabled.yaml b/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallCloudPolicyChecksEnabled.yaml
index b4feacde..7ed60fd 100644
--- a/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallCloudPolicyChecksEnabled.yaml
+++ b/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallCloudPolicyChecksEnabled.yaml
@@ -22,6 +22,7 @@
   cloud_only: true
   dynamic_refresh: true
   per_profile: true
+  internal_only: true
 items:
 - caption: Validate whether an extension can be installed or not with a cloud service.
   value: true
@@ -33,8 +34,8 @@
 - file://extensions/OWNERS
 schema:
   type: boolean
-future_on:
-- chrome.*
-- chrome_os
+supported_on:
+- chrome.*:142-
+- chrome_os:142-
 type: main
 tags: []
diff --git a/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsTemporaryOptOut.yaml b/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsTemporaryOptOut.yaml
new file mode 100644
index 0000000..5a29914
--- /dev/null
+++ b/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsTemporaryOptOut.yaml
@@ -0,0 +1,57 @@
+owners:
+- hchao@chromium.org
+- cthomp@chromium.org
+- chrome-secure-web-and-net@chromium.org
+
+caption: Specifies whether to (temporarily) opt out of Local Network Access
+  restrictions
+
+desc: |-
+  When this policy is set to Enabled, <ph name="LOCAL_NETWORK_ACCESS">Local Network Access</ph>
+  requests will only display warnings in <ph
+  name="CHROME_DEVTOOLS_NAME">Chrome DevTools</ph> due to <ph
+  name="LOCAL_NETWORK_ACCESS">Local Network Access</ph> checks failing.
+
+  When this policy is set to Disabled or unset, <ph
+  name="LOCAL_NETWORK_ACCESS">Local Network Access</ph> requests will use the
+  default handling of these requests.
+
+  See https://wicg.github.io/local-network-access/ for <ph
+  name="LOCAL_NETWORK_ACCESS">Local Network Access</ph> restrictions.
+
+  This enterprise policy is temporary, and will be removed after M146.
+
+  Long term, the policy <ph
+  name="LOCAL_NETWORK_ACCESS_ALLOWED_FOR_URLS_POLICY_NAME">LocalNetworkAccessAllowedForUrls</ph>
+  can be used to allowlist URL patterns that should be automatically granted
+  the <ph name="LOCAL_NETWORK_ACCESS">Local Network Access</ph> permission.
+
+  Note that if the policy <ph
+  name="LOCAL_NETWORK_ACCESS_RESTRICTIONS_ENABLED_POLICY_NAME">LocalNetworkAccessRestrictionsEnabled</ph>
+  is enabled, it will take precedence over this policy.
+default: false
+
+supported_on:
+- chrome.*:142-
+- chrome_os:142-
+- android:142-
+
+features:
+  dynamic_refresh: true
+  per_profile: true
+
+type: main
+
+schema:
+  type: boolean
+
+items:
+- caption: Temporarily opt out of restrictions on requests to local network endpoints
+  value: true
+- caption: Use default behavior when determining if websites can make requests
+    to local network endpoints
+  value: false
+
+example_value: true
+
+tags: []
diff --git a/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml b/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml
index 9b5c40f..3bbda7f 100644
--- a/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml
+++ b/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml
@@ -4,3 +4,4 @@
   - LocalNetworkAccessAllowedForUrls
   - LocalNetworkAccessBlockedForUrls
   - LocalNetworkAccessRestrictionsEnabled
+  - LocalNetworkAccessRestrictionsTemporaryOptOut
diff --git a/components/policy/test/data/pref_mapping/LocalNetworkAccessRestrictionsTemporaryOptOut.json b/components/policy/test/data/pref_mapping/LocalNetworkAccessRestrictionsTemporaryOptOut.json
new file mode 100644
index 0000000..fbcceba
--- /dev/null
+++ b/components/policy/test/data/pref_mapping/LocalNetworkAccessRestrictionsTemporaryOptOut.json
@@ -0,0 +1,19 @@
+[
+  {
+    "os": [
+      "win",
+      "linux",
+      "mac",
+      "chromeos",
+      "android"
+    ],
+    "simple_policy_pref_mapping_test": {
+      "pref_name": "managed_local_network_access_restrictions_temporary_opt_out",
+      "default_value": false,
+      "values_to_test": [
+        true,
+        false
+      ]
+    }
+  }
+]
diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc
index 270db8f..ec97add0 100644
--- a/components/segmentation_platform/public/features.cc
+++ b/components/segmentation_platform/public/features.cc
@@ -255,6 +255,11 @@
     &kAppBundlePromoEphemeralCard, "max_app_bundle_apps_installed",
     /*default_value=*/4};
 
+bool IsAppBundlePromoEphemeralCardEnabled() {
+  return base::FeatureList::IsEnabled(
+      segmentation_platform::features::kAppBundlePromoEphemeralCard);
+}
+
 BASE_FEATURE(kDefaultBrowserMagicStackIos,
 #if BUILDFLAG(IS_IOS)
              base::FEATURE_DISABLED_BY_DEFAULT);
@@ -267,6 +272,11 @@
     "max_default_browser_magic_stack_ios_impressions",
     /*default_value=*/6};
 
+bool IsDefaultBrowserMagicStackEnabled() {
+  return base::FeatureList::IsEnabled(
+      segmentation_platform::features::kDefaultBrowserMagicStackIos);
+}
+
 BASE_FEATURE(kAndroidTipsNotifications, base::FEATURE_DISABLED_BY_DEFAULT);
 
 constexpr base::FeatureParam<bool> kTrustAndSafety{&kAndroidTipsNotifications,
diff --git a/components/segmentation_platform/public/features.h b/components/segmentation_platform/public/features.h
index ba710c0..dd51f3e 100644
--- a/components/segmentation_platform/public/features.h
+++ b/components/segmentation_platform/public/features.h
@@ -205,6 +205,9 @@
 // device to have the card be shown.
 extern const base::FeatureParam<int> kMaxAppBundleAppsInstalled;
 
+// Whether the App Bundle promo module should be shown in the Magic Stack.
+bool IsAppBundlePromoEphemeralCardEnabled();
+
 // Feature flag to enable the ephemeral Default Browser card in the Magic Stack
 // on iOS.
 BASE_DECLARE_FEATURE(kDefaultBrowserMagicStackIos);
@@ -212,6 +215,9 @@
 // card should be hidden.
 extern const base::FeatureParam<int> kMaxDefaultBrowserMagicStackIosImpressions;
 
+// Whether the Default Browser promo module should be shown in the Magic Stack.
+bool IsDefaultBrowserMagicStackEnabled();
+
 // Feature flag for enabling the tips notifications ranker.
 BASE_DECLARE_FEATURE(kAndroidTipsNotifications);
 
diff --git a/components/shared_highlighting/core/common/disabled_sites.cc b/components/shared_highlighting/core/common/disabled_sites.cc
index c299a41..6d09660 100644
--- a/components/shared_highlighting/core/common/disabled_sites.cc
+++ b/components/shared_highlighting/core/common/disabled_sites.cc
@@ -19,7 +19,7 @@
 
 bool IsAmpGenerationEnabled() {
 #if BUILDFLAG(IS_IOS)
-  return base::FeatureList::IsEnabled(kSharedHighlightingAmp);
+  return false;
 #else
   return true;
 #endif
diff --git a/components/shared_highlighting/core/common/shared_highlighting_features.cc b/components/shared_highlighting/core/common/shared_highlighting_features.cc
index effb1dbc..612d2a0 100644
--- a/components/shared_highlighting/core/common/shared_highlighting_features.cc
+++ b/components/shared_highlighting/core/common/shared_highlighting_features.cc
@@ -9,10 +9,6 @@
 
 namespace shared_highlighting {
 
-#if BUILDFLAG(IS_IOS)
-BASE_FEATURE(kSharedHighlightingAmp, base::FEATURE_DISABLED_BY_DEFAULT);
-#endif
-
 BASE_FEATURE(kSharedHighlightingManager, base::FEATURE_DISABLED_BY_DEFAULT);
 
 int GetPreemptiveLinkGenTimeoutLengthMs() {
diff --git a/components/shared_highlighting/core/common/shared_highlighting_features.h b/components/shared_highlighting/core/common/shared_highlighting_features.h
index 2eb01bf0..29ad3c30 100644
--- a/components/shared_highlighting/core/common/shared_highlighting_features.h
+++ b/components/shared_highlighting/core/common/shared_highlighting_features.h
@@ -16,11 +16,6 @@
 // Sets the timeout length for pre-emptive link generation.
 extern const base::FeatureParam<int> kPreemptiveLinkGenTimeoutLengthMs;
 
-#if BUILDFLAG(IS_IOS)
-// Enables shared highlighting for AMP viewers pages.
-BASE_DECLARE_FEATURE(kSharedHighlightingAmp);
-#endif
-
 // Enables the new SharedHighlightingManager refactoring.
 BASE_DECLARE_FEATURE(kSharedHighlightingManager);
 
diff --git a/components/signin/public/base/signin_metrics.h b/components/signin/public/base/signin_metrics.h
index eeefe475..cf9ee04 100644
--- a/components/signin/public/base/signin_metrics.h
+++ b/components/signin/public/base/signin_metrics.h
@@ -7,11 +7,14 @@
 
 #include <limits.h>
 
-#include "base/time/time.h"
 #include "build/build_config.h"
 #include "components/signin/public/base/consent_level.h"
 #include "google_apis/gaia/google_service_auth_error.h"
 
+namespace base {
+class TimeDelta;
+}  // namespace base
+
 namespace signin_metrics {
 
 // Track all the ways a profile can become signed out as a histogram.
diff --git a/components/signin/public/base/signin_switches.cc b/components/signin/public/base/signin_switches.cc
index 9159810..64040d59 100644
--- a/components/signin/public/base/signin_switches.cc
+++ b/components/signin/public/base/signin_switches.cc
@@ -329,6 +329,30 @@
 BASE_FEATURE(kSignInPromoMaterialNextUI, base::FEATURE_ENABLED_BY_DEFAULT);
 #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
 
+BASE_FEATURE(kSigninWindows10DepreciationStateForTesting,
+             base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kSigninWindows10DepreciationStateBypassForTesting,
+             base::FEATURE_DISABLED_BY_DEFAULT);
+bool IsSigninWindows10DepreciationState() {
+  // Bypass the feature for testing.
+  if (base::FeatureList::IsEnabled(
+          switches::kSigninWindows10DepreciationStateBypassForTesting)) {
+    return false;
+  }
+
+  // Force enable the feature for testing.
+  if (base::FeatureList::IsEnabled(
+          switches::kSigninWindows10DepreciationStateForTesting)) {
+    return true;
+  }
+#if BUILDFLAG(IS_WIN)
+  return base::win::GetVersion() >= base::win::Version::WIN7 &&
+         base::win::GetVersion() <= base::win::Version::WIN10_22H2;
+#else
+  return false;
+#endif
+}
+
 #if BUILDFLAG(IS_ANDROID)
 // Feature to bypass double-checking that signin callers have correctly gotten
 // the user to accept account management. This check is slow and not strictly
diff --git a/components/signin/public/base/signin_switches.h b/components/signin/public/base/signin_switches.h
index 974759b..5904f1a 100644
--- a/components/signin/public/base/signin_switches.h
+++ b/components/signin/public/base/signin_switches.h
@@ -283,6 +283,18 @@
 BASE_DECLARE_FEATURE(kSignInPromoMaterialNextUI);
 #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
 
+// Feature flag used for testing purposes only:
+//
+// Set this flag to force the flow on any platform.
+COMPONENT_EXPORT(SIGNIN_SWITCHES)
+BASE_DECLARE_FEATURE(kSigninWindows10DepreciationStateForTesting);
+// Set this flag to force the flow off on Windows 10 (a lot of bots run on
+// Windows 10) - to avoid having generic tests having a per platform
+// expectations.
+COMPONENT_EXPORT(SIGNIN_SWITCHES)
+BASE_DECLARE_FEATURE(kSigninWindows10DepreciationStateBypassForTesting);
+COMPONENT_EXPORT(SIGNIN_SWITCHES) bool IsSigninWindows10DepreciationState();
+
 #if BUILDFLAG(IS_ANDROID)
 COMPONENT_EXPORT(SIGNIN_SWITCHES)
 BASE_DECLARE_FEATURE(kSkipCheckForAccountManagementOnSignin);
diff --git a/components/sync/protocol/autofill_valuable_specifics.proto b/components/sync/protocol/autofill_valuable_specifics.proto
index 1126227..a0fd00f4 100644
--- a/components/sync/protocol/autofill_valuable_specifics.proto
+++ b/components/sync/protocol/autofill_valuable_specifics.proto
@@ -98,6 +98,12 @@
   // The arrival date. This is a server-provided timestamp with units in
   // microseconds.
   optional int64 arrival_date_unix_epoch_micros = 8;
+
+  // The airline logo. This is a Google URI pointing to an image.
+  optional string airline_logo = 9;
+
+  // The carrier code e.g. BA for British Airways.
+  optional string carrier_code = 10;
 }
 
 // Valuables coming from Google Wallet.
diff --git a/components/sync/protocol/contextual_task_specifics.proto b/components/sync/protocol/contextual_task_specifics.proto
index c043d81..227fc83 100644
--- a/components/sync/protocol/contextual_task_specifics.proto
+++ b/components/sync/protocol/contextual_task_specifics.proto
@@ -16,6 +16,34 @@
 
 // Sync datatype representing a contextual task.
 message ContextualTaskSpecifics {
-  // TODO(crbug.com/445840788): In CL #2, add fields that you wish to sync, then
-  // update proto_visitors.h and potentially proto_enum_conversions.*.
+  // ID to uniquely identify the specifics proto.
+  optional string guid = 1;
+
+  oneof entity {
+    ContextualTask contextual_task = 2;
+    UrlResource url_resource = 3;
+  }
+
+  // A mechanism to identify the client version that wrote this specifics.
+  // Designed to aid business logic when reading newly added fields that
+  // didn't exist in older clients.
+  // The client version must be incremented whenever a new field is added to the
+  // specifics.
+  optional int32 version = 4;
+}
+
+message ContextualTask {
+  // Title of the task.
+  optional string title = 1;
+
+  // ID of the AI thread that is associated with the task.
+  optional string thread_id = 2;
+}
+
+message UrlResource {
+  // The GUID of its task.
+  optional string task_guid = 1;
+
+  // URL attached to the task.
+  optional string url = 2;
 }
diff --git a/components/sync/protocol/proto_visitors.h b/components/sync/protocol/proto_visitors.h
index 09f6a3dd..c623396 100644
--- a/components/sync/protocol/proto_visitors.h
+++ b/components/sync/protocol/proto_visitors.h
@@ -2066,6 +2066,8 @@
   VISIT(arrival_airport);
   VISIT(departure_date_unix_epoch_micros);
   VISIT(arrival_date_unix_epoch_micros);
+  VISIT(airline_logo);
+  VISIT(carrier_code);
 }
 
 VISIT_PROTO_FIELDS(const sync_pb::AccountSettingSpecifics& proto) {
@@ -2151,8 +2153,21 @@
   VISIT(title);
 }
 
+VISIT_PROTO_FIELDS(const sync_pb::ContextualTask& proto) {
+  VISIT(title);
+  VISIT(thread_id);
+}
+
+VISIT_PROTO_FIELDS(const sync_pb::UrlResource& proto) {
+  VISIT(task_guid);
+  VISIT(url);
+}
+
 VISIT_PROTO_FIELDS(const sync_pb::ContextualTaskSpecifics& proto) {
-  // TODO(crbug.com/445840788): In CL #2, VISIT fields added to specifics.
+  VISIT(guid);
+  VISIT(contextual_task);
+  VISIT(url_resource);
+  VISIT(version);
 }
 
 }  // namespace syncer
diff --git a/components/tabs/BUILD.gn b/components/tabs/BUILD.gn
index 8dea2e3..0e207cc 100644
--- a/components/tabs/BUILD.gn
+++ b/components/tabs/BUILD.gn
@@ -6,6 +6,7 @@
 
 source_set("public") {
   sources = [
+    "public/direct_child_walker.h",
     "public/pinned_tab_collection.h",
     "public/split_tab_collection.h",
     "public/split_tab_data.h",
@@ -94,6 +95,7 @@
   # TODO(crbug.com/415965103): tab_collection_storage_unittest.cc
   # TODO(crbug.com/415965106): tab_iterator_unittest.cc
   sources = [
+    "public/direct_child_walker_unittest.cc",
     "public/supports_handles_unittest.cc",
     "public/tab_collection_observer_unittest.cc",
     "public/tab_handle_factory_unittest.cc",
diff --git a/components/tabs/impl/tab_collection.cc b/components/tabs/impl/tab_collection.cc
index f3d62115..73b7d26b 100644
--- a/components/tabs/impl/tab_collection.cc
+++ b/components/tabs/impl/tab_collection.cc
@@ -324,4 +324,9 @@
   }
 }
 
+const ChildrenVector& TabCollection::GetChildren(
+    base::PassKey<DirectChildWalker> pass_key) const {
+  return GetChildren();
+}
+
 }  // namespace tabs
diff --git a/components/tabs/public/direct_child_walker.h b/components/tabs/public/direct_child_walker.h
new file mode 100644
index 0000000..1155cdc
--- /dev/null
+++ b/components/tabs/public/direct_child_walker.h
@@ -0,0 +1,55 @@
+// 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.
+
+#ifndef COMPONENTS_TABS_PUBLIC_DIRECT_CHILD_WALKER_H_
+#define COMPONENTS_TABS_PUBLIC_DIRECT_CHILD_WALKER_H_
+
+#include "base/notreached.h"
+#include "base/types/pass_key.h"
+#include "components/tabs/public/tab_collection.h"
+#include "components/tabs/public/tab_interface.h"
+
+namespace tabs {
+
+// DirectChildWalker iterates over the direct children of a TabCollection
+// and calls a processor for each child.
+class DirectChildWalker {
+ public:
+  // The interface that callers must implement to process the children.
+  class Processor {
+   public:
+    virtual ~Processor() = default;
+    virtual void ProcessTab(const TabInterface* tab) = 0;
+    virtual void ProcessCollection(const TabCollection* collection) = 0;
+  };
+
+  DirectChildWalker(const TabCollection* collection, Processor* processor)
+      : collection_(collection), processor_(processor) {}
+
+  void Walk() {
+    for (const auto& child :
+         collection_->GetChildren(base::PassKey<DirectChildWalker>())) {
+      if (std::holds_alternative<std::unique_ptr<TabInterface>>(child)) {
+        const TabInterface* tab =
+            std::get<std::unique_ptr<TabInterface>>(child).get();
+        processor_->ProcessTab(tab);
+      } else if (std::holds_alternative<std::unique_ptr<TabCollection>>(
+                     child)) {
+        const TabCollection* collection =
+            std::get<std::unique_ptr<TabCollection>>(child).get();
+        processor_->ProcessCollection(collection);
+      } else {
+        NOTREACHED() << "unknown node type";
+      }
+    }
+  }
+
+ private:
+  const raw_ptr<const TabCollection> collection_;
+  const raw_ptr<Processor> processor_;
+};
+
+}  // namespace tabs
+
+#endif  // COMPONENTS_TABS_PUBLIC_DIRECT_CHILD_WALKER_H_
diff --git a/components/tabs/public/direct_child_walker_unittest.cc b/components/tabs/public/direct_child_walker_unittest.cc
new file mode 100644
index 0000000..1d5ebcd
--- /dev/null
+++ b/components/tabs/public/direct_child_walker_unittest.cc
@@ -0,0 +1,81 @@
+// 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.
+
+#include "components/tabs/public/direct_child_walker.h"
+
+#include "components/tabs/public/mock_tab_interface.h"
+#include "components/tabs/public/tab_collection.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace tabs {
+
+namespace {
+
+class MockProcessor : public DirectChildWalker::Processor {
+ public:
+  MOCK_METHOD(void, ProcessTab, (const TabInterface* tab), (override));
+  MOCK_METHOD(void,
+              ProcessCollection,
+              (const TabCollection* collection),
+              (override));
+};
+
+class MockTabCollection : public TabCollection {
+ public:
+  MockTabCollection()
+      : TabCollection(TabCollection::Type::TABSTRIP,
+                      {TabCollection::Type::GROUP},
+                      true) {}
+
+  MOCK_METHOD(const ChildrenVector&,
+              GetChildren,
+              (base::PassKey<DirectChildWalker>),
+              (const, override));
+};
+
+class DirectChildWalkerTest : public testing::Test {
+ protected:
+  MockProcessor mock_processor_;
+  testing::StrictMock<MockTabCollection> collection_;
+};
+
+TEST_F(DirectChildWalkerTest, WalksEmptyCollection) {
+  ChildrenVector children;
+  EXPECT_CALL(collection_, GetChildren(testing::_))
+      .WillOnce(testing::ReturnRef(children));
+
+  DirectChildWalker walker(&collection_, &mock_processor_);
+  walker.Walk();
+}
+
+TEST_F(DirectChildWalkerTest, WalksMixedCollectionInOrder) {
+  ChildrenVector children;
+  children.emplace_back(std::make_unique<MockTabInterface>());
+  auto* tab1_ptr =
+      std::get<std::unique_ptr<TabInterface>>(children.back()).get();
+  children.emplace_back(std::make_unique<MockTabCollection>());
+  auto* collection_ptr =
+      std::get<std::unique_ptr<TabCollection>>(children.back()).get();
+  children.emplace_back(std::make_unique<MockTabInterface>());
+  auto* tab2_ptr =
+      std::get<std::unique_ptr<TabInterface>>(children.back()).get();
+
+  EXPECT_CALL(collection_, GetChildren(testing::_))
+      .WillOnce(testing::ReturnRef(children));
+
+  {
+    testing::InSequence s;
+    EXPECT_CALL(mock_processor_, ProcessTab(tab1_ptr));
+    EXPECT_CALL(mock_processor_, ProcessCollection(collection_ptr));
+    EXPECT_CALL(mock_processor_, ProcessTab(tab2_ptr));
+  }
+
+  DirectChildWalker walker(&collection_, &mock_processor_);
+  walker.Walk();
+}
+
+}  // namespace
+
+}  // namespace tabs
diff --git a/components/tabs/public/tab_collection.h b/components/tabs/public/tab_collection.h
index 7397959..3585f4d 100644
--- a/components/tabs/public/tab_collection.h
+++ b/components/tabs/public/tab_collection.h
@@ -30,6 +30,7 @@
 
 class TabInterface;
 class TabCollectionObserver;
+class DirectChildWalker;
 
 DECLARE_HANDLE_FACTORY(TabCollection);
 
@@ -226,6 +227,9 @@
     return GetChildren();
   }
 
+  virtual const ChildrenVector& GetChildren(
+      base::PassKey<DirectChildWalker> pass_key) const;
+
   using NodeHandle = std::variant<Handle, TabHandle>;
   using NodeHandles = std::vector<NodeHandle>;
 
diff --git a/components/test/ios/BUILD.gn b/components/test/ios/BUILD.gn
index 248b51e..2e125e2 100644
--- a/components/test/ios/BUILD.gn
+++ b/components/test/ios/BUILD.gn
@@ -3,6 +3,7 @@
 # found in the LICENSE file.
 
 source_set("ios") {
+  assert(is_ios, "components/test/ios/BUILD.gn only usable for iOS")
   testonly = true
   sources = [ "test_utils.h" ]
 }
diff --git a/components/test/ios/OWNERS b/components/test/ios/OWNERS
new file mode 100644
index 0000000..24ee7a7
--- /dev/null
+++ b/components/test/ios/OWNERS
@@ -0,0 +1,2 @@
+arthurmilchior@chromium.org
+sdefresne@chromium.org
\ No newline at end of file
diff --git a/components/variations/seed_reader_writer.cc b/components/variations/seed_reader_writer.cc
index 022500a..c93c4f28 100644
--- a/components/variations/seed_reader_writer.cc
+++ b/components/variations/seed_reader_writer.cc
@@ -338,11 +338,6 @@
   local_state_->SetTime(fields_prefs_->client_fetch_time, fetch_time);
 }
 
-bool SeedReaderWriter::HasPendingWrite() const {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return seed_writer_ && seed_writer_->HasPendingWrite();
-}
-
 void SeedReaderWriter::ClearPermanentConsistencyCountryAndVersion() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (ShouldUseSeedFile()) {
@@ -785,6 +780,11 @@
                      std::move(signature)));
 }
 
+bool SeedReaderWriter::HasPendingWrite() const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  return seed_writer_ && seed_writer_->HasPendingWrite();
+}
+
 // TODO(crbug.com/433877973): Execute in background thread if sync is not
 // required.
 // static
diff --git a/components/variations/seed_reader_writer.h b/components/variations/seed_reader_writer.h
index 87a407a..13d0566 100644
--- a/components/variations/seed_reader_writer.h
+++ b/components/variations/seed_reader_writer.h
@@ -175,9 +175,6 @@
   // Updates the time of the last fetch of the seed.
   void SetFetchTime(base::Time client_fetch_time);
 
-  // Returns true if a write is scheduled but has not yet completed.
-  bool HasPendingWrite() const;
-
   // Clears the permanent consistency country and version.
   void ClearPermanentConsistencyCountryAndVersion();
 
@@ -297,6 +294,9 @@
   // instead.
   void GetSeedData(GetSeedDataCallback done_callback);
 
+  // Returns true if a write is scheduled but has not yet completed.
+  bool HasPendingWrite() const;
+
   // Processes the stored seed data and returns the result of the load. If a
   // pointer for the `signature` is provided, the signature will be read and
   // stored into it. The value stored into `seed_data` and `signature`
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
index b5c4a346e..b0666d9 100644
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -218,7 +218,7 @@
 // proceed with navigation. ViewTransition Animate still waits though for
 // CopyOutputRequests to be actually fulfilled.
 BASE_FEATURE(kAckCopyOutputRequestEarlyForViewTransition,
-             base::FEATURE_ENABLED_BY_DEFAULT);
+             base::FEATURE_DISABLED_BY_DEFAULT);
 
 BASE_FEATURE(kAllowUndamagedNonrootRenderPassToSkip,
 #if BUILDFLAG(IS_MAC)
diff --git a/components/viz/common/resources/shared_image_format_utils.h b/components/viz/common/resources/shared_image_format_utils.h
index 9468314a..bdb617f 100644
--- a/components/viz/common/resources/shared_image_format_utils.h
+++ b/components/viz/common/resources/shared_image_format_utils.h
@@ -10,6 +10,7 @@
 
 namespace gpu {
 class ClientSharedImage;
+class LegacyGpuMemoryBufferForVideo;
 class MappableBufferNativePixmap;
 class SharedImageFormatToBufferFormatRestrictedUtilsAccessor;
 class SharedImageFormatRestrictedUtilsAccessor;
@@ -133,6 +134,7 @@
   friend class gpu::ClientSharedImage;
   friend class gpu::SharedImageFormatToBufferFormatRestrictedUtilsAccessor;
   friend class gpu::TestSharedImageInterface;
+  friend class gpu::LegacyGpuMemoryBufferForVideo;
   friend class gpu::MappableBufferNativePixmap;
   friend class ui::WaylandOverlayManager;
 
diff --git a/components/viz/service/surfaces/surface_saved_frame.cc b/components/viz/service/surfaces/surface_saved_frame.cc
index a65dceb..bf33895 100644
--- a/components/viz/service/surfaces/surface_saved_frame.cc
+++ b/components/viz/service/surfaces/surface_saved_frame.cc
@@ -166,7 +166,10 @@
         std::move(shared_image));
   }
 
-  if (copy_request_count_ == 0) {
+  // DispatchCopyDoneCallback early for cross frame sink view transitions.
+  if ((features::ShouldAckCOREarlyForViewTransition() &&
+       directive_.maybe_cross_frame_sink()) ||
+      copy_request_count_ == 0) {
     DispatchCopyDoneCallback();
   }
 }
@@ -260,7 +263,11 @@
   DCHECK_GT(copy_request_count_, 0u);
   // Even if we early out, we update the count since we are no longer waiting
   // for this result.
-  if (--copy_request_count_ == 0) {
+  --copy_request_count_;
+  // Callback is run already for cross frame view transitions.
+  if (!(features::ShouldAckCOREarlyForViewTransition() &&
+        directive_.maybe_cross_frame_sink()) &&
+      copy_request_count_ == 0) {
     DispatchCopyDoneCallback();
   }
 
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index fbcca47..6a4e6166 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -3769,9 +3769,15 @@
 fuzzer_test("content_sms_parser_fuzzer") {
   sources = [ "sms/sms_parser_fuzzer.cc" ]
   deps = [
+    # This parser depends on `./sms/sms_parser.h` from `:browser`.
+    #
+    # However `:browser` doesn't properly declare its dependency on
+    # `//content/public/renderer:renderer_sources`, causing linker errors if
+    # it was used alone.
+    # As a result, we depend on both here:
     ":browser",
-    "//base",
     "//content/public/browser:browser_sources",
+    "//content/public/renderer:renderer_sources",
   ]
 }
 
@@ -3785,8 +3791,16 @@
   sources =
       [ "renderer_host/partitioned_popins/partitioned_popins_policy_fuzzer.cc" ]
   deps = [
+    # This parser depends on `./renderer_host/partitioned_popins/partitioned_popins_policy.h`
+    # from `:browser`.
+    #
+    # However `:browser` doesn't properly declare its dependency on
+    # `//content/public/renderer:renderer_sources`, causing linker errors if
+    # it was used alone.
+    # As a result, we depend on both here:
     ":browser",
     "//content/public/browser:browser_sources",
+    "//content/public/renderer:renderer_sources",
   ]
   seed_corpus = "//content/test/data/fuzzer_corpus/partitioned_popin_policy/"
 }
diff --git a/content/browser/devtools/dedicated_worker_devtools_agent_host.cc b/content/browser/devtools/dedicated_worker_devtools_agent_host.cc
index 9bf6d1a..fa4dfe66 100644
--- a/content/browser/devtools/dedicated_worker_devtools_agent_host.cc
+++ b/content/browser/devtools/dedicated_worker_devtools_agent_host.cc
@@ -75,7 +75,8 @@
       protocol::TargetHandler::AccessMode::kAutoAttachOnly, GetId(),
       auto_attacher_.get(), session);
   session->CreateAndAddHandler<protocol::NetworkHandler>(
-      GetId(), devtools_worker_token(), GetIOContext(), base::DoNothing(),
+      GetId(), devtools_worker_token(), GetIOContext(),
+      GetProcessHost()->GetStoragePartition(), base::DoNothing(),
       session->GetClient());
   return true;
 }
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
index 9306a96..ec87a63 100644
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1210,6 +1210,7 @@
     const std::string& host_id,
     const base::UnguessableToken& devtools_token,
     DevToolsIOContext* io_context,
+    StoragePartition* maybe_storage_partition,
     base::RepeatingClosure update_loader_factories_callback,
     DevToolsAgentHostClient* client,
     base::OnceClosure cleanup_after_modifications_callback)
@@ -1219,7 +1220,7 @@
       io_context_(io_context),
       client_(client),
       browser_context_(nullptr),
-      storage_partition_(nullptr),
+      storage_partition_(maybe_storage_partition),
       host_(nullptr),
       enabled_(false),
 #if BUILDFLAG(ENABLE_REPORTING)
@@ -1456,6 +1457,7 @@
     storage_partition_ = nullptr;
     browser_context_ = nullptr;
   }
+  MaybeEnableDurableMessages();
   host_ = frame_host;
   if (background_sync_restorer_)
     background_sync_restorer_->SetStoragePartition(storage_partition_);
@@ -1467,25 +1469,14 @@
     std::optional<int> max_post_data_size,
     std::optional<bool> report_direct_socket_traffic,
     std::optional<bool> enable_durable_messages) {
-  enabled_ = true;
-  network::mojom::NetworkDurableMessageConfigPtr durable_messages_config;
-  if (enable_durable_messages.value_or(false)) {
-    if (!storage_partition_ || devtools_token_.is_empty()) {
-      return Response::ServerError(
-          "Durable messages cannot be enabled without a valid "
-          "storage partition and devtools token");
-    }
-    if (!max_total_size.has_value()) {
-      return Response::InvalidParams(
-          "maxTotalBufferSize is required with enableDurableMessages");
-    }
-    durable_messages_config =
-        network::mojom::NetworkDurableMessageConfig::New();
-    durable_messages_config->http_storage_max_size = max_total_size.value();
-    ConfigureDurableMessageCollector(std::move(durable_messages_config));
-  } else {
-    durable_message_collector_.reset();
+  enable_durable_messages_ = enable_durable_messages.value_or(false);
+  durable_message_max_total_size_ = max_total_size.value_or(0);
+  if (enable_durable_messages_ && !durable_message_max_total_size_) {
+    return Response::InvalidParams(
+        "maxTotalBufferSize is required with enableDurableMessages");
   }
+  MaybeEnableDurableMessages();
+  enabled_ = true;
   return Response::FallThrough();
 }
 
@@ -4106,5 +4097,20 @@
       .Build();
 }
 
+void NetworkHandler::MaybeEnableDurableMessages() {
+  if (!enable_durable_messages_) {
+    durable_message_collector_.reset();
+    return;
+  }
+  if (!storage_partition_ || devtools_token_.is_empty()) {
+    return;
+  }
+  network::mojom::NetworkDurableMessageConfigPtr durable_messages_config;
+  durable_messages_config = network::mojom::NetworkDurableMessageConfig::New();
+  durable_messages_config->http_storage_max_size =
+      durable_message_max_total_size_;
+  ConfigureDurableMessageCollector(std::move(durable_messages_config));
+}
+
 }  // namespace protocol
 }  // namespace content
diff --git a/content/browser/devtools/protocol/network_handler.h b/content/browser/devtools/protocol/network_handler.h
index df216d75..e4ff732f 100644
--- a/content/browser/devtools/protocol/network_handler.h
+++ b/content/browser/devtools/protocol/network_handler.h
@@ -74,14 +74,14 @@
 #endif  // BUILDFLAG(ENABLE_REPORTING)
                        public Network::Backend {
  public:
-  NetworkHandler(
-      const std::string& host_id,
-      const base::UnguessableToken& devtools_token,
-      DevToolsIOContext* io_context,
-      base::RepeatingClosure update_loader_factories_callback,
-      DevToolsAgentHostClient* client,
-      base::OnceClosure cleanup_after_modifications_callback =
-          base::OnceClosure());
+  NetworkHandler(const std::string& host_id,
+                 const base::UnguessableToken& devtools_token,
+                 DevToolsIOContext* io_context,
+                 StoragePartition* maybe_storage_partition,
+                 base::RepeatingClosure update_loader_factories_callback,
+                 DevToolsAgentHostClient* client,
+                 base::OnceClosure cleanup_after_modifications_callback =
+                     base::OnceClosure());
 
   NetworkHandler(const NetworkHandler&) = delete;
   NetworkHandler& operator=(const NetworkHandler&) = delete;
@@ -407,6 +407,7 @@
 
   void GotAllCookies(std::unique_ptr<GetAllCookiesCallback> callback,
                      const std::vector<net::CanonicalCookie>& cookies);
+  void MaybeEnableDurableMessages();
 
   // TODO(dgozman): Remove this.
   const std::string host_id_;
@@ -423,6 +424,8 @@
   bool enable_third_party_cookie_restriction_ = false;
   bool disable_third_party_cookie_metadata_ = false;
   bool disable_third_party_cookie_heuristics_ = false;
+  bool enable_durable_messages_ = false;
+  int durable_message_max_total_size_ = 0;
 
 #if BUILDFLAG(ENABLE_REPORTING)
   mojo::Receiver<network::mojom::ReportingApiObserver> reporting_receiver_;
diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc
index bcd8d328..843043c 100644
--- a/content/browser/devtools/render_frame_devtools_agent_host.cc
+++ b/content/browser/devtools/render_frame_devtools_agent_host.cc
@@ -375,7 +375,7 @@
       GetId(),
       frame_host_ ? frame_host_->devtools_frame_token()
                   : base::UnguessableToken(),
-      GetIOContext(),
+      GetIOContext(), /*maybe_storage_partition=*/nullptr,
       base::BindRepeating(
           &RenderFrameDevToolsAgentHost::UpdateResourceLoaderFactories,
           base::Unretained(this)),
diff --git a/content/browser/devtools/service_worker_devtools_agent_host.cc b/content/browser/devtools/service_worker_devtools_agent_host.cc
index a1c2e5ea..4662e5f 100644
--- a/content/browser/devtools/service_worker_devtools_agent_host.cc
+++ b/content/browser/devtools/service_worker_devtools_agent_host.cc
@@ -244,7 +244,8 @@
   session->CreateAndAddHandler<protocol::IOHandler>(GetIOContext());
   session->CreateAndAddHandler<protocol::InspectorHandler>();
   session->CreateAndAddHandler<protocol::NetworkHandler>(
-      GetId(), devtools_worker_token_, GetIOContext(), base::DoNothing(),
+      GetId(), devtools_worker_token_, GetIOContext(),
+      context_wrapper()->storage_partition(), base::DoNothing(),
       session->GetClient());
 
   session->CreateAndAddHandler<protocol::FetchHandler>(
diff --git a/content/browser/devtools/shared_worker_devtools_agent_host.cc b/content/browser/devtools/shared_worker_devtools_agent_host.cc
index 47c9cf25..d52d021 100644
--- a/content/browser/devtools/shared_worker_devtools_agent_host.cc
+++ b/content/browser/devtools/shared_worker_devtools_agent_host.cc
@@ -102,7 +102,8 @@
   session->CreateAndAddHandler<protocol::InspectorHandler>();
   session->CreateAndAddHandler<protocol::NetworkHandler>(
       GetId(), devtools_worker_token_, GetIOContext(),
-      base::BindRepeating([] {}), session->GetClient());
+      GetProcessHost()->GetStoragePartition(), base::BindRepeating([] {}),
+      session->GetClient());
   // TODO(crbug.com/40154954): support pushing updated loader factories down to
   // renderer.
   session->CreateAndAddHandler<protocol::FetchHandler>(
diff --git a/content/browser/interest_group/interest_group_browsertest.cc b/content/browser/interest_group/interest_group_browsertest.cc
index f86ca5e..76d3577 100644
--- a/content/browser/interest_group/interest_group_browsertest.cc
+++ b/content/browser/interest_group/interest_group_browsertest.cc
@@ -5866,8 +5866,9 @@
   EXPECT_EQ(url, RunAuctionAndWaitForUrl(auction_config2));
 }
 
+// TODO(crbug.com/444872127): Flaky.
 IN_PROC_BROWSER_TEST_F(InterestGroupBrowserTest,
-                       RunAuctionWithTooLongTrustedScoringSignalsUrl) {
+                       DISABLED_RunAuctionWithTooLongTrustedScoringSignalsUrl) {
   GURL url = embedded_https_test_server().GetURL("a.test", "/echo");
   url::Origin origin = url::Origin::Create(url);
   GURL decision_url = embedded_https_test_server().GetURL(
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index ccb3670..259cab6 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -8523,7 +8523,14 @@
       ContentBrowserClient::PrivateNetworkRequestPolicyOverride::
           kBlockInsteadOfWarn) {
     private_network_request_policy_ =
-        OverrideBlockWithWarn(private_network_request_policy_);
+        OverrideToBlockInsteadOfWarn(private_network_request_policy_);
+  }
+
+  if (policy_override ==
+      ContentBrowserClient::PrivateNetworkRequestPolicyOverride::
+          kWarnInsteadOfBlock) {
+    private_network_request_policy_ =
+        OverrideToWarnInsteadOfBlock(private_network_request_policy_);
   }
 }
 
diff --git a/content/browser/renderer_host/private_network_access_util.cc b/content/browser/renderer_host/private_network_access_util.cc
index c860d9a..dfaf0b4 100644
--- a/content/browser/renderer_host/private_network_access_util.cc
+++ b/content/browser/renderer_host/private_network_access_util.cc
@@ -354,9 +354,7 @@
   return IPAddressSpaceForSpecialScheme(url, client);
 }
 
-// TODO(crbug.com/395895368): rename to be more clear about functionality (as
-// its not overriding block with warn, but the other way around).
-network::mojom::PrivateNetworkRequestPolicy OverrideBlockWithWarn(
+network::mojom::PrivateNetworkRequestPolicy OverrideToBlockInsteadOfWarn(
     network::mojom::PrivateNetworkRequestPolicy policy) {
   switch (policy) {
     case network::mojom::PrivateNetworkRequestPolicy::kWarn:
@@ -365,7 +363,27 @@
       return network::mojom::PrivateNetworkRequestPolicy::kPreflightBlock;
     case network::mojom::PrivateNetworkRequestPolicy::kPermissionWarn:
       return network::mojom::PrivateNetworkRequestPolicy::kPermissionBlock;
-    default:
+    case network::mojom::PrivateNetworkRequestPolicy::kAllow:
+    case network::mojom::PrivateNetworkRequestPolicy::kBlock:
+    case network::mojom::PrivateNetworkRequestPolicy::kPreflightBlock:
+    case network::mojom::PrivateNetworkRequestPolicy::kPermissionBlock:
+      return policy;
+  }
+}
+
+network::mojom::PrivateNetworkRequestPolicy OverrideToWarnInsteadOfBlock(
+    network::mojom::PrivateNetworkRequestPolicy policy) {
+  switch (policy) {
+    case network::mojom::PrivateNetworkRequestPolicy::kBlock:
+      return network::mojom::PrivateNetworkRequestPolicy::kWarn;
+    case network::mojom::PrivateNetworkRequestPolicy::kPreflightBlock:
+      return network::mojom::PrivateNetworkRequestPolicy::kPreflightWarn;
+    case network::mojom::PrivateNetworkRequestPolicy::kPermissionBlock:
+      return network::mojom::PrivateNetworkRequestPolicy::kPermissionWarn;
+    case network::mojom::PrivateNetworkRequestPolicy::kAllow:
+    case network::mojom::PrivateNetworkRequestPolicy::kWarn:
+    case network::mojom::PrivateNetworkRequestPolicy::kPreflightWarn:
+    case network::mojom::PrivateNetworkRequestPolicy::kPermissionWarn:
       return policy;
   }
 }
diff --git a/content/browser/renderer_host/private_network_access_util.h b/content/browser/renderer_host/private_network_access_util.h
index ef8b879..82524e32 100644
--- a/content/browser/renderer_host/private_network_access_util.h
+++ b/content/browser/renderer_host/private_network_access_util.h
@@ -71,7 +71,10 @@
     network::mojom::URLResponseHead* response_head,
     ContentBrowserClient* client);
 
-network::mojom::PrivateNetworkRequestPolicy OverrideBlockWithWarn(
+network::mojom::PrivateNetworkRequestPolicy OverrideToBlockInsteadOfWarn(
+    network::mojom::PrivateNetworkRequestPolicy);
+
+network::mojom::PrivateNetworkRequestPolicy OverrideToWarnInsteadOfBlock(
     network::mojom::PrivateNetworkRequestPolicy);
 
 }  // namespace content
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 4897046..bbf1fa5 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -5554,7 +5554,14 @@
     case ContentBrowserClient::PrivateNetworkRequestPolicyOverride::
         kBlockInsteadOfWarn:
       private_network_request_policy_ =
-          OverrideBlockWithWarn(DerivePrivateNetworkRequestPolicy(
+          OverrideToBlockInsteadOfWarn(DerivePrivateNetworkRequestPolicy(
+              policy_container_host_->policies(),
+              PrivateNetworkRequestContext::kSubresource));
+      break;
+    case ContentBrowserClient::PrivateNetworkRequestPolicyOverride::
+        kWarnInsteadOfBlock:
+      private_network_request_policy_ =
+          OverrideToWarnInsteadOfBlock(DerivePrivateNetworkRequestPolicy(
               policy_container_host_->policies(),
               PrivateNetworkRequestContext::kSubresource));
       break;
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index bdb1684..512feca 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1922,6 +1922,14 @@
             ? metrics_memory_region_
             : nullptr,
         tracing_config_memory_region_, tracing_output_memory_region_);
+
+    TRACE_EVENT_BEGIN(
+        "ipc", "RenderProcessHostImpl.Channel.ProcessLaunchPauseToUnpause",
+        tracing_track_, ChromeTrackEvent::kRenderProcessHost, *this);
+    TRACE_EVENT_BEGIN(
+        "ipc", "RenderProcessHostImpl.Channel.ProcessLaunchPauseToFlush",
+        tracing_track_, ChromeTrackEvent::kRenderProcessHost, *this);
+    pause_channel_on_process_launch_time_ = base::TimeTicks::Now();
     channel_->Pause();
 
     // In single process mode, browser-side tracing and memory will cover the
@@ -2021,6 +2029,10 @@
 
   // We start the Channel in a paused state. It will be briefly unpaused again
   // in Init() if applicable, before process launch is initiated.
+  TRACE_EVENT_BEGIN(
+      "ipc", "RenderProcessHostImpl.Channel.InitPauseToUnpauseTime",
+      tracing_track_, ChromeTrackEvent::kRenderProcessHost, *this);
+  pause_channel_on_init_time_ = base::TimeTicks::Now();
   channel_->Pause();
 
   InitializeSharedMemoryRegionsOnceChannelIsUp();
@@ -5695,6 +5707,18 @@
     // yet to ensure that any initialization messages sent here (e.g., things
     // done in response to OnRenderProcessHostCreated; see below) preempt
     // already queued messages.
+    base::UmaHistogramMediumTimes(
+        "Mojo.Channel.ChannelInitPauseToUnpauseTime",
+        base::TimeTicks::Now() - pause_channel_on_init_time_);
+    base::UmaHistogramMediumTimes(
+        "Mojo.Channel.ProcessLaunchPauseToUnpauseTime",
+        base::TimeTicks::Now() - pause_channel_on_process_launch_time_);
+    // "RenderProcessHostImpl.Channel.InitPauseToUnpauseTime"
+    TRACE_EVENT_END("ipc", tracing_track_, ChromeTrackEvent::kRenderProcessHost,
+                    *this);
+    // "RenderProcessHostImpl.Channel.ProcessLaunchPauseToUnpauseTime"
+    TRACE_EVENT_END("ipc", tracing_track_, ChromeTrackEvent::kRenderProcessHost,
+                    *this);
     channel_->Unpause(false /* flush */);
 
     gpu_client_->SetClientPid(GetProcess().Pid());
@@ -5753,8 +5777,18 @@
   for (auto* observer : GetAllCreationObservers())
     observer->OnRenderProcessHostCreated(this);
 
-  if (child_process_launcher_)
+  if (child_process_launcher_) {
+    base::UmaHistogramMediumTimes(
+        "Mojo.Channel.ChannelInitPauseToFlushTime",
+        base::TimeTicks::Now() - pause_channel_on_init_time_);
+    base::UmaHistogramMediumTimes(
+        "Mojo.Channel.ProcessLaunchPauseToFlushTime",
+        base::TimeTicks::Now() - pause_channel_on_process_launch_time_);
+    // "RenderProcessHostImpl.Channel.ProcessLaunchPauseToFlush"
+    TRACE_EVENT_END("ipc", tracing_track_, ChromeTrackEvent::kRenderProcessHost,
+                    *this);
     channel_->Flush();
+  }
 
   if (IsReady()) {
     DCHECK(!sent_render_process_ready_);
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index 9c80310..0da7d80 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -1387,6 +1387,11 @@
   // Stores the time at which the last successful call to Init happened.
   base::TimeTicks last_init_time_;
 
+  // Stores the last time Pause() was called on the IPC channel when the channel
+  // was initialized / renderer process launch was requested, respectively.
+  base::TimeTicks pause_channel_on_init_time_;
+  base::TimeTicks pause_channel_on_process_launch_time_;
+
   // Used to launch and terminate the process without blocking the UI thread.
   std::unique_ptr<ChildProcessLauncher> child_process_launcher_;
 
diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc
index a0b60db..6149566 100644
--- a/content/browser/service_worker/embedded_worker_instance.cc
+++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -478,6 +478,8 @@
   // Set initial canvas noise token, which ensures tokens are available as soon
   // as worker execution context is ready.
   params->canvas_noise_token = GetOrCreateCanvasNoiseToken();
+  params->canvas_noise_token_observer =
+      canvas_noise_token_updater_.BindNewPipeAndPassReceiver();
 
   SendStartWorker(std::move(params));
   std::move(callback).Run(blink::ServiceWorkerStatusCode::kOk);
@@ -1064,6 +1066,7 @@
   process_handle_.reset();
   subresource_loader_updater_.reset();
   coep_reporter_.reset();
+  canvas_noise_token_updater_.reset();
   status_ = blink::EmbeddedWorkerStatus::kStopped;
   starting_phase_ = NOT_STARTING;
   thread_id_ = ServiceWorkerConsts::kInvalidEmbeddedWorkerThreadId;
@@ -1326,6 +1329,12 @@
   return new_dip_reporter;
 }
 
+void EmbeddedWorkerInstance::UpdateCanvasNoiseToken() {
+  if (canvas_noise_token_updater_.is_bound()) {
+    canvas_noise_token_updater_->OnTokenReceived(GetOrCreateCanvasNoiseToken());
+  }
+}
+
 std::optional<blink::NoiseToken>
 EmbeddedWorkerInstance::GetOrCreateCanvasNoiseToken() {
   DCHECK(context_);
diff --git a/content/browser/service_worker/embedded_worker_instance.h b/content/browser/service_worker/embedded_worker_instance.h
index 68122bf..1e973c0f 100644
--- a/content/browser/service_worker/embedded_worker_instance.h
+++ b/content/browser/service_worker/embedded_worker_instance.h
@@ -32,6 +32,7 @@
 #include "third_party/blink/public/common/service_worker/service_worker_status_code.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/controller_service_worker.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/embedded_worker.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker.mojom.h"
@@ -281,6 +282,11 @@
   mojo::PendingRemote<network::mojom::DocumentIsolationPolicyReporter>
   GetDipReporter();
 
+  // Canvas noise tokens can be updated through user bypass or removing browsing
+  // data. A new token value will be regenerated. This function ensures this new
+  // token is updated on the renderer.
+  void UpdateCanvasNoiseToken();
+
   // Helper to get or create a new canvas noise token for this worker.
   std::optional<blink::NoiseToken> GetOrCreateCanvasNoiseToken();
 
@@ -444,6 +450,12 @@
   mojo::PendingReceiver<blink::mojom::ReportingObserver>
       dip_reporting_observer_receiver_;
 
+  // Remote to handle updates of the canvas noise token to its respective
+  // service worker. This is bounded when the ServiceWorker is started, and
+  // unbound when released.
+  mojo::Remote<blink::mojom::CanvasNoiseTokenUpdater>
+      canvas_noise_token_updater_;
+
   bool in_dtor_{false};
 
   base::WeakPtrFactory<EmbeddedWorkerInstance> weak_factory_{this};
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc
index c392d886..dd0b332 100644
--- a/content/browser/service_worker/service_worker_browsertest.cc
+++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -42,11 +42,9 @@
 #include "base/uuid.h"
 #include "base/values.h"
 #include "build/build_config.h"
-#include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
 #include "components/services/storage/public/mojom/cache_storage_control.mojom.h"
 #include "components/ukm/test_ukm_recorder.h"
 #include "content/browser/child_process_security_policy_impl.h"
-#include "content/browser/fingerprinting_protection/canvas_noise_token_data.h"
 #include "content/browser/process_lock.h"
 #include "content/browser/renderer_host/code_cache_host_impl.h"
 #include "content/browser/renderer_host/render_frame_host_impl.h"
@@ -7998,135 +7996,4 @@
                      "Math.ceil(performance.getEntriesByType('navigation')[0]."
                      "responseStart) < 2000"));
 }
-
-class CanvasNoiseTestContentBrowserClient
-    : public ContentBrowserTestContentBrowserClient {
- public:
-  explicit CanvasNoiseTestContentBrowserClient() = default;
-  ~CanvasNoiseTestContentBrowserClient() override = default;
-
- private:
-  bool ShouldEnableCanvasNoise(content::BrowserContext* browser_context,
-                               const GURL& origin) override {
-    return enabled_;
-  }
-
-  bool enabled_ = true;
-};
-
-class ServiceWorkerCanvasNoiseTokenBrowserTest
-    : public ServiceWorkerBrowserTest {
- public:
-  ServiceWorkerCanvasNoiseTokenBrowserTest() = default;
-
-  void SetUpOnMainThread() override {
-    ServiceWorkerBrowserTest::SetUpOnMainThread();
-    host_resolver()->AddRule("*", "127.0.0.1");
-    embedded_test_server()->StartAcceptingConnections();
-
-    content_browser_client_ =
-        std::make_unique<CanvasNoiseTestContentBrowserClient>();
-  }
-
-  void SetUpCommandLine(base::CommandLine* command_line) override {
-    ServiceWorkerBrowserTest::SetUpCommandLine(command_line);
-    command_line->AppendSwitch(switches::kExposeInternalsForTesting);
-  }
-
-  WebContents* web_contents() const { return shell()->web_contents(); }
-
-  // This can change depending on the origin of the currently navigated site.
-  // See https://crbug.com/442616874 on why we don't use the CanvasNoiseToken
-  // from the Page.
-  std::optional<blink::NoiseToken> GetCurrentPageToken() {
-    return GetCanvasNoiseTokenForPage(
-        web_contents()->GetPrimaryMainFrame()->GetPage());
-  }
-
-  // Gets the canvas noise token from the Service Worker in the renderer.
-  std::optional<blink::NoiseToken> GetNoiseHashesFromServiceWorker(
-      RenderFrameHost* rfh) {
-    EvalJsResult js_result = EvalJs(rfh, R"(
-	new Promise(resolve => {
-	    navigator.serviceWorker.ready.then((reg) => reg.active.postMessage({}));
-	    navigator.serviceWorker.addEventListener('message', (event) => {
-	      resolve(event.data);
-	})});
-      )");
-
-    CHECK(js_result.is_ok());
-    if (js_result == base::Value()) {
-      return std::nullopt;
-    }
-    uint64_t token;
-    CHECK(base::StringToUint64(js_result.ExtractString(), &token));
-    return blink::NoiseToken(token);
-  }
-
-  scoped_refptr<ServiceWorkerVersion> RegisterCanvasServiceWorkerVersion(
-      GURL page_url) {
-    WorkerRunningStatusObserver observer(public_context());
-    EXPECT_TRUE(NavigateToURL(shell(), page_url));
-    EXPECT_EQ("DONE", EvalJs(shell(), "register('canvas_noise_worker.js');"));
-    observer.WaitUntilRunning();
-    return wrapper()->GetLiveVersion(observer.version_id());
-  }
-
- protected:
-  std::unique_ptr<CanvasNoiseTestContentBrowserClient> content_browser_client_;
-  base::test::ScopedFeatureList scoped_feature_list_{
-      fingerprinting_protection_interventions::features::kCanvasNoise};
-};
-
-IN_PROC_BROWSER_TEST_F(ServiceWorkerCanvasNoiseTokenBrowserTest,
-                       SameOriginServiceWorkerHasSameCanvasNoiseToken) {
-  const GURL page_url = embedded_test_server()->GetURL(
-      "/service_worker/create_service_worker.html");
-  scoped_refptr<ServiceWorkerVersion> version =
-      RegisterCanvasServiceWorkerVersion(page_url);
-
-  // TODO(https://crbug.com/442616874): change to EXPECT_EQ once we key canvas
-  // noise tokens with StorageKey.
-  EXPECT_NE(GetCurrentPageToken(),
-            version->embedded_worker()->GetOrCreateCanvasNoiseToken());
-
-  std::optional<blink::NoiseToken> worker_token =
-      GetNoiseHashesFromServiceWorker(web_contents()->GetPrimaryMainFrame());
-  EXPECT_EQ(worker_token,
-            version->embedded_worker()->GetOrCreateCanvasNoiseToken());
-}
-
-IN_PROC_BROWSER_TEST_F(ServiceWorkerCanvasNoiseTokenBrowserTest,
-                       CrossOriginServiceWorkerHasSameCanvasNoiseToken) {
-  ASSERT_TRUE(embedded_https_test_server().Start());
-  const GURL iframe_url = embedded_https_test_server().GetURL(
-      "b.com", "/service_worker/create_service_worker.html");
-
-  // Now create a cross origin subframe that spawns a service worker.
-  ASSERT_TRUE(NavigateToURL(
-      shell(), embedded_https_test_server().GetURL(
-                   "a.com", "/service_worker/one_subframe.html?subframe_url=" +
-                                iframe_url.spec())));
-  auto* subframe_rfh =
-      static_cast<RenderFrameHostImpl*>(ChildFrameAt(shell(), 0));
-  ASSERT_EQ(subframe_rfh->GetLastCommittedURL(), iframe_url);
-  EXPECT_EQ("DONE",
-            EvalJs(subframe_rfh, "register('canvas_noise_worker.js');"));
-  std::optional<blink::NoiseToken> subframe_worker_token =
-      GetNoiseHashesFromServiceWorker(subframe_rfh);
-
-  std::vector<ServiceWorkerVersionInfo> versions =
-      wrapper()->GetAllLiveVersionInfo();
-  EXPECT_EQ(versions.size(), 1);
-  scoped_refptr<ServiceWorkerVersion> version =
-      wrapper()->GetLiveVersion(versions[0].version_id);
-
-  EXPECT_EQ(subframe_worker_token,
-            version->embedded_worker()->GetOrCreateCanvasNoiseToken());
-
-  // TODO(https://crbug.com/442616874): change to EXPECT_EQ once we key canvas
-  // noise tokens with StorageKey.
-  EXPECT_NE(GetCurrentPageToken(), subframe_worker_token);
-}
-
 }  // namespace content
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
index 25c9e17b..c0ed6c8 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -1087,6 +1087,21 @@
                    : false;
 }
 
+void ServiceWorkerContextWrapper::UpdateAllCanvasNoiseTokensFromTopLevelSite(
+    const GURL& top_level_site) {
+  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+  if (!context_core_.get()) {
+    return;
+  }
+  for (const ServiceWorkerVersionInfo& info : GetAllLiveVersionInfo()) {
+    ServiceWorkerVersion* version = GetLiveVersion(info.version_id);
+    if (version &&
+        version->key().top_level_site().IsSameSiteWith(top_level_site)) {
+      version->embedded_worker()->UpdateCanvasNoiseToken();
+    }
+  }
+}
+
 service_manager::InterfaceProvider&
 ServiceWorkerContextWrapper::GetRemoteInterfaces(
     int64_t service_worker_version_id) {
diff --git a/content/browser/service_worker/service_worker_context_wrapper.h b/content/browser/service_worker/service_worker_context_wrapper.h
index de1546db..ddb370f5 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.h
+++ b/content/browser/service_worker/service_worker_context_wrapper.h
@@ -250,6 +250,8 @@
   GetRunningServiceWorkerInfos() override;
   bool IsLiveStartingServiceWorker(int64_t service_worker_version_id) override;
   bool IsLiveRunningServiceWorker(int64_t service_worker_version_id) override;
+  void UpdateAllCanvasNoiseTokensFromTopLevelSite(
+      const GURL& top_level_site) override;
   service_manager::InterfaceProvider& GetRemoteInterfaces(
       int64_t service_worker_version_id) override;
   blink::AssociatedInterfaceProvider& GetRemoteAssociatedInterfaces(
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
index ea1c36e..c5ce536d 100644
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -250,13 +250,9 @@
           {wf::EnableInstalledApp, raw_ref(features::kInstalledApp)},
           {wf::EnableIntegrityPolicyScript,
            raw_ref(network::features::kIntegrityPolicyScript)},
-          {wf::EnableLazyInitializeMediaControls,
-           raw_ref(features::kLazyInitializeMediaControls)},
 #if BUILDFLAG(IS_CHROMEOS)
           {wf::EnableLockedMode, raw_ref(blink::features::kLockedMode)},
 #endif
-          {wf::EnableMediaCastOverlayButton,
-           raw_ref(media::kMediaCastOverlayButton)},
           {wf::EnableMediaEngagementBypassAutoplayPolicies,
            raw_ref(media::kMediaEngagementBypassAutoplayPolicies)},
           {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)},
diff --git a/content/public/android/java/src/org/chromium/content/browser/RenderCoordinatesImpl.java b/content/public/android/java/src/org/chromium/content/browser/RenderCoordinatesImpl.java
index e8de0bc6..23ae664 100644
--- a/content/public/android/java/src/org/chromium/content/browser/RenderCoordinatesImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/RenderCoordinatesImpl.java
@@ -230,6 +230,7 @@
     /**
      * @return Local CSS converted to physical coordinates.
      */
+    @Override
     public float fromLocalCssToPix(float css) {
         return css * mPageScaleFactor * mDeviceScaleFactor;
     }
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/RenderCoordinates.java b/content/public/android/java/src/org/chromium/content_public/browser/RenderCoordinates.java
index 9f3f62c..7f0eb6c 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/RenderCoordinates.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/RenderCoordinates.java
@@ -76,4 +76,9 @@
      * @return Minimum page scale factor.
      */
     float getMinPageScaleFactor();
+
+    /**
+     * @return Local CSS converted to physical coordinates.
+     */
+    float fromLocalCssToPix(float css);
 }
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 4e28e777..7658c804 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -2815,6 +2815,7 @@
   enum class PrivateNetworkRequestPolicyOverride {
     kForceAllow,
     kBlockInsteadOfWarn,
+    kWarnInsteadOfBlock,
     kDefault,
   };
 
diff --git a/content/public/browser/k_anonymity_service_delegate.h b/content/public/browser/k_anonymity_service_delegate.h
index f48a008..dfefc8c 100644
--- a/content/public/browser/k_anonymity_service_delegate.h
+++ b/content/public/browser/k_anonymity_service_delegate.h
@@ -9,9 +9,12 @@
 #include <vector>
 
 #include "base/functional/bind.h"
-#include "base/time/time.h"
 #include "content/common/content_export.h"
 
+namespace base {
+class TimeDelta;
+}  // namespace base
+
 namespace content {
 
 // The KAnonymityServiceDelegate interface provides functions to determine if
diff --git a/content/public/browser/service_worker_context.h b/content/public/browser/service_worker_context.h
index 0b06f862..b4da7995 100644
--- a/content/public/browser/service_worker_context.h
+++ b/content/public/browser/service_worker_context.h
@@ -340,6 +340,11 @@
   virtual bool IsLiveRunningServiceWorker(
       int64_t service_worker_version_id) = 0;
 
+  // Updates the canvas noise token for all Service Workers that have the same
+  // `top_level_site` as their owning blink::StorageKey's top level site.
+  virtual void UpdateAllCanvasNoiseTokensFromTopLevelSite(
+      const GURL& top_level_site) = 0;
+
   // Returns the InterfaceProvider for the worker specified by
   // `service_worker_version_id`. The caller can use InterfaceProvider to bind
   // interfaces exposed by the Service Worker. CHECKs if
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index 5851a85..30d571c 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -544,9 +544,6 @@
 BASE_FEATURE(kIsolateOrigins, base::FEATURE_DISABLED_BY_DEFAULT);
 const char kIsolateOriginsFieldTrialParamName[] = "OriginsList";
 
-// Enable lazy initialization of the media controls.
-BASE_FEATURE(kLazyInitializeMediaControls, base::FEATURE_ENABLED_BY_DEFAULT);
-
 // If this is enabled, LoadingPredictor restricts the number of preconnects for
 // the same destination to one.
 BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount,
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
index 694610c..370d6262 100644
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -155,7 +155,6 @@
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kIsolateFencedFrames);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kIsolateOrigins);
 CONTENT_EXPORT extern const char kIsolateOriginsFieldTrialParamName[];
-CONTENT_EXPORT BASE_DECLARE_FEATURE(kLazyInitializeMediaControls);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(
     kLoadingPredictorLimitPreconnectSocketCount);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kLogJsConsoleMessages);
diff --git a/content/public/test/fake_service_worker_context.cc b/content/public/test/fake_service_worker_context.cc
index 791588a7..13f728c 100644
--- a/content/public/test/fake_service_worker_context.cc
+++ b/content/public/test/fake_service_worker_context.cc
@@ -112,6 +112,11 @@
   NOTREACHED();
 }
 
+void FakeServiceWorkerContext::UpdateAllCanvasNoiseTokensFromTopLevelSite(
+    const GURL& top_level_site) {
+  NOTREACHED();
+}
+
 service_manager::InterfaceProvider&
 FakeServiceWorkerContext::GetRemoteInterfaces(
     int64_t service_worker_version_id) {
diff --git a/content/public/test/fake_service_worker_context.h b/content/public/test/fake_service_worker_context.h
index 5fd49cf..02d447f 100644
--- a/content/public/test/fake_service_worker_context.h
+++ b/content/public/test/fake_service_worker_context.h
@@ -82,6 +82,8 @@
       override;
   bool IsLiveStartingServiceWorker(int64_t service_worker_version_id) override;
   bool IsLiveRunningServiceWorker(int64_t service_worker_version_id) override;
+  void UpdateAllCanvasNoiseTokensFromTopLevelSite(
+      const GURL& top_level_site) override;
   service_manager::InterfaceProvider& GetRemoteInterfaces(
       int64_t service_worker_version_id) override;
   blink::AssociatedInterfaceProvider& GetRemoteAssociatedInterfaces(
diff --git a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
index a3a50f7e..8d7ab90 100644
--- a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
+++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
@@ -149,7 +149,8 @@
       std::move(params->content_settings_proxy), std::move(cache_storage),
       std::move(browser_interface_broker),
       std::move(params->coep_reporting_observer),
-      std::move(params->dip_reporting_observer));
+      std::move(params->dip_reporting_observer),
+      std::move(params->canvas_noise_token_observer));
 }
 
 void EmbeddedWorkerInstanceClientImpl::StopWorker() {
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
index 37691ec..bf221ce 100644
--- a/content/renderer/service_worker/service_worker_context_client.cc
+++ b/content/renderer/service_worker/service_worker_context_client.cc
@@ -45,6 +45,7 @@
 #include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/mojom/blob/blob.mojom.h"
 #include "third_party/blink/public/mojom/browser_interface_broker.mojom.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom.h"
 #include "third_party/blink/public/mojom/loader/request_context_frame_type.mojom.h"
 #include "third_party/blink/public/mojom/renderer_preference_watcher.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/controller_service_worker.mojom.h"
@@ -210,7 +211,9 @@
     mojo::PendingReceiver<blink::mojom::ReportingObserver>
         coep_reporting_observer,
     mojo::PendingReceiver<blink::mojom::ReportingObserver>
-        dip_reporting_observer) {
+        dip_reporting_observer,
+    mojo::PendingReceiver<blink::mojom::CanvasNoiseTokenUpdater>
+        canvas_noise_token_observer) {
   DCHECK(initiator_thread_task_runner_->RunsTasksInCurrentSequence());
   worker_ = std::move(worker);
   worker_->StartWorkerContext(
@@ -218,7 +221,8 @@
       std::move(content_settings), std::move(cache_storage),
       std::move(browser_interface_broker), blink_interface_registry_.get(),
       initiator_thread_task_runner_, std::move(coep_reporting_observer),
-      std::move(dip_reporting_observer));
+      std::move(dip_reporting_observer),
+      std::move(canvas_noise_token_observer));
 }
 
 blink::WebEmbeddedWorker& ServiceWorkerContextClient::worker() {
diff --git a/content/renderer/service_worker/service_worker_context_client.h b/content/renderer/service_worker/service_worker_context_client.h
index 1f5e24b..2f3ba35 100644
--- a/content/renderer/service_worker/service_worker_context_client.h
+++ b/content/renderer/service_worker/service_worker_context_client.h
@@ -29,6 +29,7 @@
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/mojom/background_fetch/background_fetch.mojom-forward.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom-forward.h"
 #include "third_party/blink/public/mojom/frame/reporting_observer.mojom.h"
 #include "third_party/blink/public/mojom/payments/payment_app.mojom-forward.h"
 #include "third_party/blink/public/mojom/service_worker/controller_service_worker.mojom-forward.h"
@@ -143,7 +144,9 @@
       mojo::PendingReceiver<blink::mojom::ReportingObserver>
           coep_reporting_observer,
       mojo::PendingReceiver<blink::mojom::ReportingObserver>
-          dip_reporting_observer);
+          dip_reporting_observer,
+      mojo::PendingReceiver<blink::mojom::CanvasNoiseTokenUpdater>
+          canvas_noise_token_observer);
 
   // Called on the initiator thread.
   blink::WebEmbeddedWorker& worker();
diff --git a/content/test/fuzzer/BUILD.gn b/content/test/fuzzer/BUILD.gn
index 40dd498..dd48068 100644
--- a/content/test/fuzzer/BUILD.gn
+++ b/content/test/fuzzer/BUILD.gn
@@ -280,6 +280,7 @@
     "//components/services/storage",
     "//content/browser/indexed_db",
     "//content/public/browser:browser_sources",
+    "//content/test:test_support",
     "//third_party/blink/public/common:headers",
   ]
   testonly = true
@@ -321,6 +322,7 @@
       "//base/test:test_support",
       "//content/browser",
       "//content/public/browser:browser_sources",
+      "//content/test:test_support",
       "//net",
       "//net:net_fuzzer_test_support",
     ]
diff --git a/docs/speed/perf_lab_platforms.md b/docs/speed/perf_lab_platforms.md
index 2911d49..e2ee68f7 100644
--- a/docs/speed/perf_lab_platforms.md
+++ b/docs/speed/perf_lab_platforms.md
@@ -42,6 +42,7 @@
  * [mac-m1_mini_2020-perf-pgo](https://ci.chromium.org/p/chrome/builders/ci/mac-m1_mini_2020-perf-pgo): Mac M1 Mini 2020.
  * [mac-m2-pro-perf](https://ci.chromium.org/p/chrome/builders/ci/mac-m2-pro-perf): Mac M2 PRO Baremetal ARM.
  * [mac-m3-pro-perf](https://ci.chromium.org/p/chrome/builders/ci/mac-m3-pro-perf): Mac M3 PRO ARM.
+ * [mac-m4-mini-perf](https://ci.chromium.org/p/chrome/builders/ci/mac-m4-mini-perf): Mac M4 mini ARM.
 
 ### Win
 
diff --git a/gin/public/isolate_holder.h b/gin/public/isolate_holder.h
index ff42cfb..2c6eee95 100644
--- a/gin/public/isolate_holder.h
+++ b/gin/public/isolate_holder.h
@@ -13,6 +13,7 @@
 #include "gin/public/v8_idle_task_runner.h"
 #include "v8/include/v8-array-buffer.h"
 #include "v8/include/v8-callbacks.h"
+#include "v8/include/v8-cppgc.h"
 #include "v8/include/v8-forward.h"
 #include "v8/include/v8-isolate.h"
 
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index e12e328..f9d513c3 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -3321,10 +3321,6 @@
   caps.render_buffer_format_bgra8888 =
       feature_info_->feature_flags().ext_render_buffer_format_bgra8888;
   caps.gpu_rasterization = false;
-  if (workarounds().broken_egl_image_ref_counting &&
-      group_->gpu_preferences().enable_threaded_texture_mailboxes) {
-    caps.disable_2d_canvas_copy_on_write = true;
-  }
   caps.chromium_gpu_fence = feature_info_->feature_flags().chromium_gpu_fence;
   caps.mesa_framebuffer_flip_y =
       feature_info_->feature_flags().mesa_framebuffer_flip_y;
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
index 7cfe819..7f73382 100644
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -801,19 +801,6 @@
       "disabled_extensions": ["GL_EXT_sRGB"]
     },
     {
-      "id": 145,
-      "cr_bugs": [585250],
-      "description": "EGLImage ref counting across EGLContext/threads is broken",
-      "os": {
-        "type": "android"
-      },
-      "gl_vendor": "Qualcomm.*",
-      "gl_renderer": "Adreno \\(TM\\) [45].*",
-      "features": [
-        "broken_egl_image_ref_counting"
-      ]
-    },
-    {
       "id": 147,
       "description": "Limit max texure size to 4096 on older Android devices.",
       "os": {
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
index d7bfd802..284da9d 100644
--- a/gpu/config/gpu_workaround_list.txt
+++ b/gpu/config/gpu_workaround_list.txt
@@ -1,7 +1,6 @@
 adjust_src_dst_region_for_blitframebuffer
 avoid_one_component_egl_images
 avoid_stencil_buffers
-broken_egl_image_ref_counting
 check_egl_fence_before_wait
 check_ycbcr_studio_g22_left_p709_for_nv12_support
 disable_2d_canvas_auto_flush
diff --git a/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.cc b/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.cc
index 372bd8b7..bc50475 100644
--- a/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.cc
+++ b/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.cc
@@ -8,6 +8,7 @@
 
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
+#include "components/viz/common/resources/shared_image_format_utils.h"
 #include "ui/gfx/buffer_format_util.h"
 #include "ui/gfx/buffer_usage_util.h"
 #include "ui/gfx/client_native_pixmap_factory.h"
@@ -19,7 +20,7 @@
 
 LegacyGpuMemoryBufferForVideo::LegacyGpuMemoryBufferForVideo(
     const gfx::Size& size,
-    gfx::BufferFormat format,
+    viz::SharedImageFormat format,
     std::unique_ptr<gfx::ClientNativePixmap> pixmap)
     : size_(size), format_(format), pixmap_(std::move(pixmap)) {}
 
@@ -38,11 +39,15 @@
     gfx::ClientNativePixmapFactory* client_native_pixmap_factory,
     gfx::GpuMemoryBufferHandle handle,
     const gfx::Size& size,
-    gfx::BufferFormat format,
+    viz::SharedImageFormat format,
     gfx::BufferUsage usage) {
+  CHECK(viz::HasEquivalentBufferFormat(format));
+  gfx::BufferFormat buffer_format =
+      viz::SharedImageFormatToBufferFormatRestrictedUtils::ToBufferFormat(
+          format);
   std::unique_ptr<gfx::ClientNativePixmap> native_pixmap =
       client_native_pixmap_factory->ImportFromHandle(
-          std::move(handle).native_pixmap_handle(), size, format, usage);
+          std::move(handle).native_pixmap_handle(), size, buffer_format, usage);
   if (!native_pixmap) {
     return nullptr;
   }
@@ -57,13 +62,12 @@
     return true;
   }
 
-  if (gfx::NumberOfPlanesForLinearBufferFormat(GetFormat()) !=
-      pixmap_->GetNumberOfPlanes()) {
+  if (GetFormat().NumberOfPlanes() !=
+      static_cast<int>(pixmap_->GetNumberOfPlanes())) {
     // RGBX8888 and BGR_565 allocates 2 planes while the gfx function returns 1
-    LOG(WARNING) << "Mismatched plane count "
-                 << gfx::BufferFormatToString(GetFormat()) << " expected "
-                 << gfx::NumberOfPlanesForLinearBufferFormat(GetFormat())
-                 << " value " << pixmap_->GetNumberOfPlanes();
+    LOG(WARNING) << "Mismatched plane count " << GetFormat().ToString()
+                 << " expected " << GetFormat().NumberOfPlanes() << " value "
+                 << pixmap_->GetNumberOfPlanes();
   }
 
   if (!pixmap_->Map()) {
@@ -87,12 +91,13 @@
   if (!data) {
     return {};
   }
-  size_t size = 0;
-  if (!PlaneSizeForBufferFormatChecked(GetSize(), GetFormat(), plane, &size)) {
+  std::optional<size_t> size = viz::SharedMemoryPlaneSizeForSharedImageFormat(
+      GetFormat(), plane, GetSize());
+  if (!size) {
     return {};
   }
 
-  return UNSAFE_BUFFERS(base::span<uint8_t>(data, size));
+  return UNSAFE_BUFFERS(base::span<uint8_t>(data, size.value()));
 }
 
 void LegacyGpuMemoryBufferForVideo::Unmap() {
diff --git a/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.h b/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.h
index 2b0700cf..a6a10bf 100644
--- a/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.h
+++ b/gpu/ipc/common/legacy_gpu_memory_buffer_for_video.h
@@ -12,6 +12,7 @@
 
 #include "base/containers/span.h"
 #include "base/synchronization/lock.h"
+#include "components/viz/common/resources/shared_image_format.h"
 #include "gpu/ipc/common/gpu_ipc_common_export.h"
 #include "ui/gfx/buffer_types.h"
 #include "ui/gfx/geometry/size.h"
@@ -46,7 +47,7 @@
   gfx::GpuMemoryBufferType GetType() const;
   gfx::GpuMemoryBufferHandle CloneHandle() const;
   gfx::Size GetSize() const { return size_; }
-  gfx::BufferFormat GetFormat() const { return format_; }
+  viz::SharedImageFormat GetFormat() const { return format_; }
 
   // Creates a GpuMemoryBufferImpl from the given |handle| for VideoFrames.
   // |size| and |format| should match what was used to allocate the |handle|.
@@ -56,17 +57,17 @@
       gfx::ClientNativePixmapFactory* client_native_pixmap_factory,
       gfx::GpuMemoryBufferHandle handle,
       const gfx::Size& size,
-      gfx::BufferFormat format,
+      viz::SharedImageFormat format,
       gfx::BufferUsage usage);
 
  private:
   LegacyGpuMemoryBufferForVideo(
       const gfx::Size& size,
-      gfx::BufferFormat format,
+      viz::SharedImageFormat format,
       std::unique_ptr<gfx::ClientNativePixmap> native_pixmap);
 
   const gfx::Size size_;
-  const gfx::BufferFormat format_;
+  const viz::SharedImageFormat format_;
 
   // Note: This lock must be held throughout the entirety of the Map() and
   // Unmap() operations to avoid corrupt mutation across multiple threads.
diff --git a/headless/BUILD.gn b/headless/BUILD.gn
index c9a2a69b..19d11a3 100644
--- a/headless/BUILD.gn
+++ b/headless/BUILD.gn
@@ -374,6 +374,7 @@
     "//components/keyed_service/content",
     "//components/origin_trials:browser",
     "//components/origin_trials:common",
+    "//components/os_crypt/async/browser",
     "//components/os_crypt/sync",
     "//components/policy:generated",
     "//components/policy/content",
diff --git a/headless/lib/browser/DEPS b/headless/lib/browser/DEPS
index 8153754..b2db5c9 100644
--- a/headless/lib/browser/DEPS
+++ b/headless/lib/browser/DEPS
@@ -43,6 +43,7 @@
   "headless_browser_impl.*": [
     "+services/device/public/cpp/geolocation/system_geolocation_source_apple.h",
     "+services/device/public/cpp/geolocation/geolocation_system_permission_manager.h",
+    "+components/os_crypt/async",
     "+components/policy",
     "+components/prefs",
     "+components/pref_registry",
@@ -50,6 +51,9 @@
     "+components/metrics",
     "+components/variations",
   ],
+  "headless_request_context_manager.cc": [
+    "+components/os_crypt/async/browser",
+  ],
   "headless_browser_impl_unittest.cc": [
     "+third_party/blink/public/common/features.h",
   ],
diff --git a/headless/lib/browser/headless_browser_context_impl.cc b/headless/lib/browser/headless_browser_context_impl.cc
index 575e455..f966839 100644
--- a/headless/lib/browser/headless_browser_context_impl.cc
+++ b/headless/lib/browser/headless_browser_context_impl.cc
@@ -77,7 +77,7 @@
           ? base::FilePath()
           : path_;
   request_context_manager_ = std::make_unique<HeadlessRequestContextManager>(
-      context_options_.get(), user_data_path);
+      context_options_.get(), user_data_path, browser->os_crypt_async());
   profile_metrics::SetBrowserProfileType(
       this, IsOffTheRecord() ? profile_metrics::BrowserProfileType::kIncognito
                              : profile_metrics::BrowserProfileType::kRegular);
diff --git a/headless/lib/browser/headless_browser_impl.cc b/headless/lib/browser/headless_browser_impl.cc
index 679015e..4a3a705 100644
--- a/headless/lib/browser/headless_browser_impl.cc
+++ b/headless/lib/browser/headless_browser_impl.cc
@@ -19,6 +19,8 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/task/single_thread_task_runner.h"
 #include "components/embedder_support/user_agent_utils.h"
+#include "components/os_crypt/async/browser/os_crypt_async.h"
+#include "components/os_crypt/async/common/encryptor.h"
 #include "components/version_info/version_info.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
@@ -203,7 +205,8 @@
   if (default_browser_context_ && !system_request_context_manager_) {
     system_request_context_manager_ =
         HeadlessRequestContextManager::CreateSystemContext(
-            HeadlessBrowserContextImpl::From(browser_context)->options());
+            HeadlessBrowserContextImpl::From(browser_context)->options(),
+            os_crypt_async());
   }
 }
 
@@ -258,6 +261,10 @@
 }
 
 void HeadlessBrowserImpl::PreMainMessageLoopRun() {
+  os_crypt_async_ = std::make_unique<os_crypt_async::OSCryptAsync>(
+      std::vector<std::pair<os_crypt_async::OSCryptAsync::Precedence,
+                            std::unique_ptr<os_crypt_async::KeyProvider>>>{});
+
   PlatformInitialize();
 
   // We don't support the tethering domain on this agent host.
@@ -273,6 +280,7 @@
 }
 
 void HeadlessBrowserImpl::PostMainMessageLoopRun() {
+  os_crypt_async_.reset();
 #if defined(HEADLESS_USE_PREFS)
   if (local_state_) {
     local_state_->CommitPendingWrite();
diff --git a/headless/lib/browser/headless_browser_impl.h b/headless/lib/browser/headless_browser_impl.h
index 1b697c0..816922b3 100644
--- a/headless/lib/browser/headless_browser_impl.h
+++ b/headless/lib/browser/headless_browser_impl.h
@@ -36,6 +36,10 @@
 }  // namespace device
 #endif
 
+namespace os_crypt_async {
+class OSCryptAsync;
+}
+
 namespace ui {
 class Compositor;
 }  // namespace ui
@@ -108,6 +112,10 @@
 
   int exit_code() const { return exit_code_; }
 
+  os_crypt_async::OSCryptAsync* os_crypt_async() {
+    return os_crypt_async_.get();
+  }
+
 #if defined(HEADLESS_USE_PREFS)
   void CreatePrefService();
   PrefService* GetPrefs();
@@ -131,6 +139,8 @@
 
   int exit_code_ = 0;
 
+  std::unique_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_;
+
   base::flat_map<std::string, std::unique_ptr<HeadlessBrowserContextImpl>>
       browser_contexts_;
   raw_ptr<HeadlessBrowserContext, AcrossTasksDanglingUntriaged>
diff --git a/headless/lib/browser/headless_request_context_manager.cc b/headless/lib/browser/headless_request_context_manager.cc
index 22d0070d..5d03e187 100644
--- a/headless/lib/browser/headless_request_context_manager.cc
+++ b/headless/lib/browser/headless_request_context_manager.cc
@@ -11,6 +11,7 @@
 #include "base/task/single_thread_task_runner.h"
 #include "build/build_config.h"
 #include "components/embedder_support/switches.h"
+#include "components/os_crypt/async/browser/os_crypt_async.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/network_service_instance.h"
 #include "headless/lib/browser/headless_browser_context_options.h"
@@ -149,9 +150,10 @@
 // static
 std::unique_ptr<HeadlessRequestContextManager>
 HeadlessRequestContextManager::CreateSystemContext(
-    const HeadlessBrowserContextOptions* options) {
+    const HeadlessBrowserContextOptions* options,
+    os_crypt_async::OSCryptAsync* os_crypt_async) {
   auto manager = std::make_unique<HeadlessRequestContextManager>(
-      options, base::FilePath());
+      options, base::FilePath(), os_crypt_async);
 
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   auto auth_params = ::network::mojom::HttpAuthDynamicParams::New();
@@ -182,7 +184,8 @@
 
 HeadlessRequestContextManager::HeadlessRequestContextManager(
     const HeadlessBrowserContextOptions* options,
-    base::FilePath user_data_path)
+    base::FilePath user_data_path,
+    os_crypt_async::OSCryptAsync* os_crypt_async)
     :
 // On Windows, Cookie encryption requires access to local_state prefs.
 #if BUILDFLAG(IS_WIN) && !defined(HEADLESS_USE_PREFS)
@@ -192,6 +195,7 @@
           !base::CommandLine::ForCurrentProcess()->HasSwitch(
               switches::kDisableCookieEncryption)),
 #endif
+      os_crypt_async_(os_crypt_async),
       user_data_path_(std::move(user_data_path)),
       disk_cache_dir_(options->disk_cache_dir()),
       accept_language_(options->accept_language()),
@@ -200,6 +204,10 @@
           options->proxy_config()
               ? std::make_unique<net::ProxyConfig>(*options->proxy_config())
               : nullptr) {
+  if (cookie_encryption_enabled_) {
+    cookie_encryption_provider_ =
+        std::make_unique<CookieEncryptionProviderImpl>(os_crypt_async_.get());
+  }
   if (!proxy_config_) {
     base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
     if (command_line->HasSwitch(switches::kNoSystemProxyConfigService)) {
@@ -213,8 +221,13 @@
 
 HeadlessRequestContextManager::~HeadlessRequestContextManager() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-  if (proxy_config_monitor_)
+  if (proxy_config_monitor_) {
     HeadlessProxyConfigMonitor::DeleteSoon(std::move(proxy_config_monitor_));
+  }
+  if (cookie_encryption_provider_) {
+    content::GetUIThreadTaskRunner({})->DeleteSoon(
+        FROM_HERE, cookie_encryption_provider_.release());
+  }
 }
 
 void HeadlessRequestContextManager::ConfigureNetworkContextParams(
@@ -249,6 +262,10 @@
 
   if (!user_data_path_.empty()) {
     context_params->enable_encrypted_cookies = cookie_encryption_enabled_;
+    if (cookie_encryption_enabled_) {
+      context_params->cookie_encryption_provider =
+          cookie_encryption_provider_->BindNewRemote();
+    }
     context_params->file_paths =
         ::network::mojom::NetworkContextFilePaths::New();
     context_params->file_paths->data_directory =
diff --git a/headless/lib/browser/headless_request_context_manager.h b/headless/lib/browser/headless_request_context_manager.h
index 321c0e3b..a1fabaf 100644
--- a/headless/lib/browser/headless_request_context_manager.h
+++ b/headless/lib/browser/headless_request_context_manager.h
@@ -14,8 +14,13 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom-forward.h"
+#include "services/network/public/cpp/cookie_encryption_provider_impl.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 
+namespace os_crypt_async {
+class OSCryptAsync;
+}
+
 namespace headless {
 
 class HeadlessBrowserContextOptions;
@@ -24,10 +29,12 @@
 class HeadlessRequestContextManager {
  public:
   static std::unique_ptr<HeadlessRequestContextManager> CreateSystemContext(
-      const HeadlessBrowserContextOptions* options);
+      const HeadlessBrowserContextOptions* options,
+      os_crypt_async::OSCryptAsync* os_crypt_async);
 
   HeadlessRequestContextManager(const HeadlessBrowserContextOptions* options,
-                                base::FilePath user_data_path);
+                                base::FilePath user_data_path,
+                                os_crypt_async::OSCryptAsync* os_crypt_async);
 
   HeadlessRequestContextManager(const HeadlessRequestContextManager&) = delete;
   HeadlessRequestContextManager& operator=(
@@ -50,12 +57,15 @@
 
   const bool cookie_encryption_enabled_;
 
+  const raw_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_;
+
   base::FilePath user_data_path_;
   base::FilePath disk_cache_dir_;
   std::string accept_language_;
   std::string user_agent_;
   std::unique_ptr<net::ProxyConfig> proxy_config_;
   std::unique_ptr<HeadlessProxyConfigMonitor> proxy_config_monitor_;
+  std::unique_ptr<CookieEncryptionProviderImpl> cookie_encryption_provider_;
 
   mojo::PendingRemote<::network::mojom::NetworkContext> system_context_;
 };
diff --git a/infra/config/PACKAGE.lock b/infra/config/PACKAGE.lock
index 360a405..776a7be 100644
--- a/infra/config/PACKAGE.lock
+++ b/infra/config/PACKAGE.lock
@@ -31,7 +31,7 @@
 			"name": "@chromium-luci",
 			"source": {
 				"repo": "https://chromium.googlesource.com/infra/chromium/+/refs/heads/main",
-				"revision": "bf99474620045f94691cfdaf7d6e482147df338b",
+				"revision": "f5e52191eacbb48390e93244b2921b725863f417",
 				"path": "starlark-libs/chromium-luci"
 			},
 			"lucicfg": "1.45.0"
diff --git a/infra/config/PACKAGE.star b/infra/config/PACKAGE.star
index 6de08cd..a2d48e3 100644
--- a/infra/config/PACKAGE.star
+++ b/infra/config/PACKAGE.star
@@ -29,7 +29,7 @@
         repo = "infra/chromium",
         ref = "refs/heads/main",
         path = "starlark-libs/chromium-luci",
-        revision = "bf99474620045f94691cfdaf7d6e482147df338b",
+        revision = "f5e52191eacbb48390e93244b2921b725863f417",
     ),
 )
 
diff --git a/infra/config/dev/subprojects/chromium/ci.star b/infra/config/dev/subprojects/chromium/ci.star
index c39fc75..859ae28 100644
--- a/infra/config/dev/subprojects/chromium/ci.star
+++ b/infra/config/dev/subprojects/chromium/ci.star
@@ -33,7 +33,7 @@
     name = "ci.shadow",
     shadows = "ci",
     constraints = luci.bucket_constraints(
-        pools = ["luci.chromium.ci"],
+        pools = ["luci.chromium.ci", "luci.chromium.btrfs"],
         service_accounts = ["chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"],
     ),
     bindings = [
diff --git a/infra/config/generated/builder-owners/lexan@google.com.txt b/infra/config/generated/builder-owners/lexan@google.com.txt
index aa2d457..33c9be86 100644
--- a/infra/config/generated/builder-owners/lexan@google.com.txt
+++ b/infra/config/generated/builder-owners/lexan@google.com.txt
@@ -29,8 +29,9 @@
 ci/ToTMacArm64PGO
 ci/ToTMacCoverage
 ci/ToTMacPGO
-ci/ToTMacRust (dbg)
-ci/ToTRustLinux (dbg)
+ci/ToTRustLinux(dbg)
+ci/ToTRustMac(dbg)
+ci/ToTRustWin(dbg)
 ci/ToTWin
 ci/ToTWin(dbg)
 ci/ToTWin(dll)
@@ -40,7 +41,6 @@
 ci/ToTWin64PGO
 ci/ToTWinASanLibfuzzer
 ci/ToTWinArm64PGO
-ci/ToTWinRust(dbg)
 ci/ToTWindowsCoverage
 ci/ToTiOS
 ci/ToTiOSDevice
diff --git a/infra/config/generated/builders/alerting-builders.txt b/infra/config/generated/builders/alerting-builders.txt
index f26e97d..bf14274 100644
--- a/infra/config/generated/builders/alerting-builders.txt
+++ b/infra/config/generated/builders/alerting-builders.txt
@@ -208,8 +208,9 @@
 ci/ToTMacArm64PGO
 ci/ToTMacCoverage
 ci/ToTMacPGO
-ci/ToTMacRust (dbg)
-ci/ToTRustLinux (dbg)
+ci/ToTRustLinux(dbg)
+ci/ToTRustMac(dbg)
+ci/ToTRustWin(dbg)
 ci/ToTWin
 ci/ToTWin(dbg)
 ci/ToTWin(dll)
@@ -218,7 +219,6 @@
 ci/ToTWin64(dll)
 ci/ToTWin64PGO
 ci/ToTWinASanLibfuzzer
-ci/ToTWinRust(dbg)
 ci/ToTWindowsCoverage
 ci/ToTiOS
 ci/ToTiOSDevice
diff --git "a/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/targets/chromium.android.json" "b/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/targets/chromium.android.json"
index 508e8e2..55c7159 100644
--- "a/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/targets/chromium.android.json"
+++ "b/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/targets/chromium.android.json"
@@ -3397,7 +3397,7 @@
             }
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 4
+          "shards": 6
         },
         "test": "android_browsertests",
         "test_id_prefix": "ninja://chrome/test:android_browsertests/"
@@ -3448,7 +3448,7 @@
             }
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 3
+          "shards": 6
         },
         "test": "android_browsertests",
         "test_id_prefix": "ninja://chrome/test:android_browsertests/"
diff --git "a/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/shadow-properties.json" "b/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/shadow-properties.json"
deleted file mode 100644
index 54c02663..0000000
--- "a/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/shadow-properties.json"
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "$build/siso": {
-    "configs": [
-      "builder"
-    ],
-    "enable_cloud_monitoring": true,
-    "enable_cloud_profiler": true,
-    "enable_cloud_trace": true,
-    "experiments": [],
-    "metrics_project": "chromium-reclient-metrics",
-    "project": "rbe-chromium-untrusted"
-  }
-}
\ No newline at end of file
diff --git "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/gn-args.json" "b/infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/gn-args.json"
similarity index 100%
rename from "infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/gn-args.json"
rename to "infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/gn-args.json"
diff --git "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/properties.json"
similarity index 89%
rename from "infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/properties.json"
rename to "infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/properties.json"
index 4e48b800..ed4ac25 100644
--- "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/properties.json"
@@ -5,14 +5,14 @@
   "$build/chromium_tests_builder_config": {
     "builder_config": {
       "additional_exclusions": [
-        "infra/config/generated/builders/ci/ToTRustLinux (dbg)/gn-args.json"
+        "infra/config/generated/builders/ci/ToTRustLinux(dbg)/gn-args.json"
       ],
       "builder_db": {
         "entries": [
           {
             "builder_id": {
               "bucket": "ci",
-              "builder": "ToTRustLinux (dbg)",
+              "builder": "ToTRustLinux(dbg)",
               "project": "chromium"
             },
             "builder_spec": {
@@ -41,11 +41,11 @@
       "builder_ids": [
         {
           "bucket": "ci",
-          "builder": "ToTRustLinux (dbg)",
+          "builder": "ToTRustLinux(dbg)",
           "project": "chromium"
         }
       ],
-      "targets_spec_directory": "src/infra/config/generated/builders/ci/ToTRustLinux (dbg)/targets"
+      "targets_spec_directory": "src/infra/config/generated/builders/ci/ToTRustLinux(dbg)/targets"
     }
   },
   "$build/siso": {
diff --git "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/shadow-properties.json" "b/infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/shadow-properties.json"
similarity index 100%
rename from "infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/shadow-properties.json"
rename to "infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/shadow-properties.json"
diff --git "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/targets/chromium.clang.json" "b/infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/targets/chromium.clang.json"
similarity index 70%
rename from "infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/targets/chromium.clang.json"
rename to "infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/targets/chromium.clang.json"
index 97c4779..a68e5e35 100644
--- "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/targets/chromium.clang.json"
+++ "b/infra/config/generated/builders/ci/ToTRustLinux\050dbg\051/targets/chromium.clang.json"
@@ -1,5 +1,5 @@
 {
-  "ToTRustLinux (dbg)": {
+  "ToTRustLinux(dbg)": {
     "additional_compile_targets": [
       "all"
     ]
diff --git "a/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/gn-args.json" "b/infra/config/generated/builders/ci/ToTRustMac\050dbg\051/gn-args.json"
similarity index 100%
rename from "infra/config/generated/builders/ci/ToTMacRust \050dbg\051/gn-args.json"
rename to "infra/config/generated/builders/ci/ToTRustMac\050dbg\051/gn-args.json"
diff --git "a/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/ToTRustMac\050dbg\051/properties.json"
similarity index 90%
rename from "infra/config/generated/builders/ci/ToTMacRust \050dbg\051/properties.json"
rename to "infra/config/generated/builders/ci/ToTRustMac\050dbg\051/properties.json"
index 502edd0..7cb7c933 100644
--- "a/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/ToTRustMac\050dbg\051/properties.json"
@@ -5,14 +5,14 @@
   "$build/chromium_tests_builder_config": {
     "builder_config": {
       "additional_exclusions": [
-        "infra/config/generated/builders/ci/ToTMacRust (dbg)/gn-args.json"
+        "infra/config/generated/builders/ci/ToTRustMac(dbg)/gn-args.json"
       ],
       "builder_db": {
         "entries": [
           {
             "builder_id": {
               "bucket": "ci",
-              "builder": "ToTMacRust (dbg)",
+              "builder": "ToTRustMac(dbg)",
               "project": "chromium"
             },
             "builder_spec": {
@@ -40,11 +40,11 @@
       "builder_ids": [
         {
           "bucket": "ci",
-          "builder": "ToTMacRust (dbg)",
+          "builder": "ToTRustMac(dbg)",
           "project": "chromium"
         }
       ],
-      "targets_spec_directory": "src/infra/config/generated/builders/ci/ToTMacRust (dbg)/targets"
+      "targets_spec_directory": "src/infra/config/generated/builders/ci/ToTRustMac(dbg)/targets"
     }
   },
   "$build/siso": {
diff --git "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/shadow-properties.json" "b/infra/config/generated/builders/ci/ToTRustMac\050dbg\051/shadow-properties.json"
similarity index 100%
copy from "infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/shadow-properties.json"
copy to "infra/config/generated/builders/ci/ToTRustMac\050dbg\051/shadow-properties.json"
diff --git "a/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/targets/chromium.clang.json" "b/infra/config/generated/builders/ci/ToTRustMac\050dbg\051/targets/chromium.clang.json"
similarity index 71%
rename from "infra/config/generated/builders/ci/ToTMacRust \050dbg\051/targets/chromium.clang.json"
rename to "infra/config/generated/builders/ci/ToTRustMac\050dbg\051/targets/chromium.clang.json"
index 191d5eef..e88bbf16 100644
--- "a/infra/config/generated/builders/ci/ToTMacRust \050dbg\051/targets/chromium.clang.json"
+++ "b/infra/config/generated/builders/ci/ToTRustMac\050dbg\051/targets/chromium.clang.json"
@@ -1,5 +1,5 @@
 {
-  "ToTMacRust (dbg)": {
+  "ToTRustMac(dbg)": {
     "additional_compile_targets": [
       "all"
     ]
diff --git "a/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/gn-args.json" "b/infra/config/generated/builders/ci/ToTRustWin\050dbg\051/gn-args.json"
similarity index 100%
rename from "infra/config/generated/builders/ci/ToTWinRust\050dbg\051/gn-args.json"
rename to "infra/config/generated/builders/ci/ToTRustWin\050dbg\051/gn-args.json"
diff --git "a/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/properties.json" "b/infra/config/generated/builders/ci/ToTRustWin\050dbg\051/properties.json"
similarity index 90%
rename from "infra/config/generated/builders/ci/ToTWinRust\050dbg\051/properties.json"
rename to "infra/config/generated/builders/ci/ToTRustWin\050dbg\051/properties.json"
index ae6f290..f28bd8d 100644
--- "a/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/ToTRustWin\050dbg\051/properties.json"
@@ -5,14 +5,14 @@
   "$build/chromium_tests_builder_config": {
     "builder_config": {
       "additional_exclusions": [
-        "infra/config/generated/builders/ci/ToTWinRust(dbg)/gn-args.json"
+        "infra/config/generated/builders/ci/ToTRustWin(dbg)/gn-args.json"
       ],
       "builder_db": {
         "entries": [
           {
             "builder_id": {
               "bucket": "ci",
-              "builder": "ToTWinRust(dbg)",
+              "builder": "ToTRustWin(dbg)",
               "project": "chromium"
             },
             "builder_spec": {
@@ -40,11 +40,11 @@
       "builder_ids": [
         {
           "bucket": "ci",
-          "builder": "ToTWinRust(dbg)",
+          "builder": "ToTRustWin(dbg)",
           "project": "chromium"
         }
       ],
-      "targets_spec_directory": "src/infra/config/generated/builders/ci/ToTWinRust(dbg)/targets"
+      "targets_spec_directory": "src/infra/config/generated/builders/ci/ToTRustWin(dbg)/targets"
     }
   },
   "$build/siso": {
diff --git "a/infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/shadow-properties.json" "b/infra/config/generated/builders/ci/ToTRustWin\050dbg\051/shadow-properties.json"
similarity index 100%
copy from "infra/config/generated/builders/ci/ToTRustLinux \050dbg\051/shadow-properties.json"
copy to "infra/config/generated/builders/ci/ToTRustWin\050dbg\051/shadow-properties.json"
diff --git "a/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/targets/chromium.clang.json" "b/infra/config/generated/builders/ci/ToTRustWin\050dbg\051/targets/chromium.clang.json"
similarity index 97%
rename from "infra/config/generated/builders/ci/ToTWinRust\050dbg\051/targets/chromium.clang.json"
rename to "infra/config/generated/builders/ci/ToTRustWin\050dbg\051/targets/chromium.clang.json"
index f4b77986..6345117 100644
--- "a/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/targets/chromium.clang.json"
+++ "b/infra/config/generated/builders/ci/ToTRustWin\050dbg\051/targets/chromium.clang.json"
@@ -1,5 +1,5 @@
 {
-  "ToTWinRust(dbg)": {
+  "ToTRustWin(dbg)": {
     "additional_compile_targets": [
       "all"
     ],
diff --git "a/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/shadow-properties.json" "b/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/shadow-properties.json"
deleted file mode 100644
index 54c02663..0000000
--- "a/infra/config/generated/builders/ci/ToTWinRust\050dbg\051/shadow-properties.json"
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "$build/siso": {
-    "configs": [
-      "builder"
-    ],
-    "enable_cloud_monitoring": true,
-    "enable_cloud_profiler": true,
-    "enable_cloud_trace": true,
-    "experiments": [],
-    "metrics_project": "chromium-reclient-metrics",
-    "project": "rbe-chromium-untrusted"
-  }
-}
\ No newline at end of file
diff --git a/infra/config/generated/builders/ci/android-16-x64-dbg-tests/targets/chromium.android.json b/infra/config/generated/builders/ci/android-16-x64-dbg-tests/targets/chromium.android.json
index 0303b59a..24278bc 100644
--- a/infra/config/generated/builders/ci/android-16-x64-dbg-tests/targets/chromium.android.json
+++ b/infra/config/generated/builders/ci/android-16-x64-dbg-tests/targets/chromium.android.json
@@ -93,7 +93,7 @@
             }
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 4
+          "shards": 6
         },
         "test": "android_browsertests",
         "test_id_prefix": "ninja://chrome/test:android_browsertests/"
@@ -144,7 +144,7 @@
             }
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 3
+          "shards": 6
         },
         "test": "android_browsertests",
         "test_id_prefix": "ninja://chrome/test:android_browsertests/"
diff --git a/infra/config/generated/builders/ci/tvos-rel-fyi/properties.json b/infra/config/generated/builders/ci/tvos-rel-fyi/properties.json
index 2f75a44..8f96a124 100644
--- a/infra/config/generated/builders/ci/tvos-rel-fyi/properties.json
+++ b/infra/config/generated/builders/ci/tvos-rel-fyi/properties.json
@@ -69,5 +69,5 @@
   },
   "builder_group": "chromium.fyi",
   "recipe": "chromium",
-  "xcode_build_version": "17b5025f"
+  "xcode_build_version": "17a324"
 }
\ No newline at end of file
diff --git a/infra/config/generated/builders/ci/tvos-rel-fyi/targets/chromium.fyi.json b/infra/config/generated/builders/ci/tvos-rel-fyi/targets/chromium.fyi.json
index 7d81033..5feccb9 100644
--- a/infra/config/generated/builders/ci/tvos-rel-fyi/targets/chromium.fyi.json
+++ b/infra/config/generated/builders/ci/tvos-rel-fyi/targets/chromium.fyi.json
@@ -20,7 +20,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -51,7 +51,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -72,7 +72,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -103,7 +103,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -124,7 +124,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -155,7 +155,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -176,7 +176,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -207,7 +207,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -228,7 +228,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -259,7 +259,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
diff --git a/infra/config/generated/builders/gn_args_locations.json b/infra/config/generated/builders/gn_args_locations.json
index 19501ad..a021941 100644
--- a/infra/config/generated/builders/gn_args_locations.json
+++ b/infra/config/generated/builders/gn_args_locations.json
@@ -190,8 +190,9 @@
     "ToTMacArm64PGO": "ci/ToTMacArm64PGO/gn-args.json",
     "ToTMacCoverage": "ci/ToTMacCoverage/gn-args.json",
     "ToTMacPGO": "ci/ToTMacPGO/gn-args.json",
-    "ToTMacRust (dbg)": "ci/ToTMacRust (dbg)/gn-args.json",
-    "ToTRustLinux (dbg)": "ci/ToTRustLinux (dbg)/gn-args.json",
+    "ToTRustLinux(dbg)": "ci/ToTRustLinux(dbg)/gn-args.json",
+    "ToTRustMac(dbg)": "ci/ToTRustMac(dbg)/gn-args.json",
+    "ToTRustWin(dbg)": "ci/ToTRustWin(dbg)/gn-args.json",
     "ToTWin": "ci/ToTWin/gn-args.json",
     "ToTWin(dbg)": "ci/ToTWin(dbg)/gn-args.json",
     "ToTWin(dll)": "ci/ToTWin(dll)/gn-args.json",
@@ -201,7 +202,6 @@
     "ToTWin64PGO": "ci/ToTWin64PGO/gn-args.json",
     "ToTWinASanLibfuzzer": "ci/ToTWinASanLibfuzzer/gn-args.json",
     "ToTWinArm64PGO": "ci/ToTWinArm64PGO/gn-args.json",
-    "ToTWinRust(dbg)": "ci/ToTWinRust(dbg)/gn-args.json",
     "ToTWindowsCoverage": "ci/ToTWindowsCoverage/gn-args.json",
     "ToTiOS": "ci/ToTiOS/gn-args.json",
     "ToTiOSDevice": "ci/ToTiOSDevice/gn-args.json",
diff --git a/infra/config/generated/builders/try/android-16-x64-dbg/targets/chromium.android.json b/infra/config/generated/builders/try/android-16-x64-dbg/targets/chromium.android.json
index d52340d..b3299116 100644
--- a/infra/config/generated/builders/try/android-16-x64-dbg/targets/chromium.android.json
+++ b/infra/config/generated/builders/try/android-16-x64-dbg/targets/chromium.android.json
@@ -94,7 +94,7 @@
             }
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 4
+          "shards": 6
         },
         "test": "android_browsertests",
         "test_id_prefix": "ninja://chrome/test:android_browsertests/"
@@ -145,7 +145,7 @@
             }
           },
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
-          "shards": 3
+          "shards": 6
         },
         "test": "android_browsertests",
         "test_id_prefix": "ninja://chrome/test:android_browsertests/"
diff --git a/infra/config/generated/builders/try/tvos-rel-fyi/properties.json b/infra/config/generated/builders/try/tvos-rel-fyi/properties.json
index 2c020db..fbe4183 100644
--- a/infra/config/generated/builders/try/tvos-rel-fyi/properties.json
+++ b/infra/config/generated/builders/try/tvos-rel-fyi/properties.json
@@ -62,5 +62,5 @@
   },
   "builder_group": "tryserver.chromium.mac",
   "recipe": "chromium_trybot",
-  "xcode_build_version": "17b5025f"
+  "xcode_build_version": "17a324"
 }
\ No newline at end of file
diff --git a/infra/config/generated/builders/try/tvos-rel-fyi/targets/chromium.fyi.json b/infra/config/generated/builders/try/tvos-rel-fyi/targets/chromium.fyi.json
index 7d81033..5feccb9 100644
--- a/infra/config/generated/builders/try/tvos-rel-fyi/targets/chromium.fyi.json
+++ b/infra/config/generated/builders/try/tvos-rel-fyi/targets/chromium.fyi.json
@@ -20,7 +20,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -51,7 +51,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -72,7 +72,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -103,7 +103,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -124,7 +124,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -155,7 +155,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -176,7 +176,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -207,7 +207,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
@@ -228,7 +228,7 @@
           "--out-dir",
           "${ISOLATED_OUTDIR}",
           "--xcode-build-version",
-          "17b5025f",
+          "17a324",
           "--xctest"
         ],
         "merge": {
@@ -259,7 +259,7 @@
               "path": "Runtime-tvos-26.0"
             },
             {
-              "name": "xcode_ios_17b5025f",
+              "name": "xcode_ios_17a324",
               "path": "Xcode.app"
             }
           ],
diff --git a/infra/config/generated/health-specs/health-specs.json b/infra/config/generated/health-specs/health-specs.json
index af19a48..2ce2004 100644
--- a/infra/config/generated/health-specs/health-specs.json
+++ b/infra/config/generated/health-specs/health-specs.json
@@ -5032,7 +5032,7 @@
           }
         ]
       },
-      "ToTMacRust (dbg)": {
+      "ToTRustLinux(dbg)": {
         "contact_team_email": "lexan@google.com",
         "problem_specs": [
           {
@@ -5056,7 +5056,31 @@
           }
         ]
       },
-      "ToTRustLinux (dbg)": {
+      "ToTRustMac(dbg)": {
+        "contact_team_email": "lexan@google.com",
+        "problem_specs": [
+          {
+            "name": "Unhealthy",
+            "period_days": 7,
+            "score": 5,
+            "thresholds": {
+              "build_time": {},
+              "fail_rate": {},
+              "infra_fail_rate": {},
+              "pending_time": {}
+            }
+          },
+          {
+            "name": "Low Value",
+            "period_days": 90,
+            "score": 1,
+            "thresholds": {
+              "fail_rate": {}
+            }
+          }
+        ]
+      },
+      "ToTRustWin(dbg)": {
         "contact_team_email": "lexan@google.com",
         "problem_specs": [
           {
@@ -5296,30 +5320,6 @@
           }
         ]
       },
-      "ToTWinRust(dbg)": {
-        "contact_team_email": "lexan@google.com",
-        "problem_specs": [
-          {
-            "name": "Unhealthy",
-            "period_days": 7,
-            "score": 5,
-            "thresholds": {
-              "build_time": {},
-              "fail_rate": {},
-              "infra_fail_rate": {},
-              "pending_time": {}
-            }
-          },
-          {
-            "name": "Low Value",
-            "period_days": 90,
-            "score": 1,
-            "thresholds": {
-              "fail_rate": {}
-            }
-          }
-        ]
-      },
       "ToTWindowsCoverage": {
         "contact_team_email": "lexan@google.com",
         "problem_specs": [
diff --git a/infra/config/generated/luci/cr-buildbucket-dev.cfg b/infra/config/generated/luci/cr-buildbucket-dev.cfg
index c9aca63..bb755b2 100644
--- a/infra/config/generated/luci/cr-buildbucket-dev.cfg
+++ b/infra/config/generated/luci/cr-buildbucket-dev.cfg
@@ -736,6 +736,7 @@
 buckets {
   name: "ci.shadow"
   constraints {
+    pools: "luci.chromium.btrfs"
     pools: "luci.chromium.ci"
     service_accounts: "chromium-ci-builder-dev@chops-service-accounts.iam.gserviceaccount.com"
   }
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg
index e47afcbf..f726c2b 100644
--- a/infra/config/generated/luci/cr-buildbucket.cfg
+++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -67,7 +67,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77,7 +77,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -168,7 +168,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -178,7 +178,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -1804,7 +1804,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -1814,7 +1814,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -1898,7 +1898,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -1908,7 +1908,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -1991,7 +1991,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2001,7 +2001,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2087,7 +2087,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2097,7 +2097,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2201,7 +2201,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2211,7 +2211,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2320,7 +2320,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2330,7 +2330,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2439,7 +2439,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2449,7 +2449,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2550,7 +2550,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2560,7 +2560,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2664,7 +2664,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2674,7 +2674,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2783,7 +2783,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2793,7 +2793,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -2902,7 +2902,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -2912,7 +2912,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3020,7 +3020,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3030,7 +3030,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3138,7 +3138,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3148,7 +3148,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3249,7 +3249,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3259,7 +3259,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3362,7 +3362,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3372,7 +3372,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3480,7 +3480,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3490,7 +3490,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3598,7 +3598,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3608,7 +3608,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3716,7 +3716,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3726,7 +3726,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3834,7 +3834,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3844,7 +3844,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -3952,7 +3952,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -3962,7 +3962,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4071,7 +4071,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4081,7 +4081,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4190,7 +4190,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4200,7 +4200,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4309,7 +4309,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4319,7 +4319,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4425,7 +4425,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4435,7 +4435,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4542,7 +4542,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4552,7 +4552,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4662,7 +4662,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4672,7 +4672,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4781,7 +4781,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4791,7 +4791,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -4900,7 +4900,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -4910,7 +4910,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5019,7 +5019,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5029,7 +5029,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5138,7 +5138,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5148,7 +5148,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5250,7 +5250,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5260,7 +5260,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5364,7 +5364,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5374,7 +5374,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5483,7 +5483,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5493,7 +5493,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5602,7 +5602,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5612,7 +5612,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5721,7 +5721,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5731,7 +5731,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5840,7 +5840,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5850,7 +5850,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -5959,7 +5959,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -5969,7 +5969,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6078,7 +6078,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6088,7 +6088,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6196,7 +6196,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6206,7 +6206,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6314,7 +6314,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6324,7 +6324,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6433,7 +6433,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6443,7 +6443,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6552,7 +6552,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6562,7 +6562,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6670,7 +6670,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6680,7 +6680,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6781,7 +6781,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6791,7 +6791,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -6887,7 +6887,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -6897,7 +6897,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7000,7 +7000,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7010,7 +7010,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7118,7 +7118,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7128,7 +7128,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7237,7 +7237,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7247,7 +7247,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7356,7 +7356,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7366,7 +7366,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7475,7 +7475,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7485,7 +7485,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7594,7 +7594,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7604,7 +7604,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7712,7 +7712,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7722,7 +7722,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7830,7 +7830,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7840,7 +7840,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -7948,7 +7948,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -7958,7 +7958,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8066,7 +8066,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8076,7 +8076,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8184,7 +8184,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8194,7 +8194,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8302,7 +8302,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8312,7 +8312,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8420,7 +8420,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8430,7 +8430,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8537,7 +8537,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8547,7 +8547,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8654,7 +8654,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8664,7 +8664,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8772,7 +8772,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8782,7 +8782,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -8890,7 +8890,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -8900,7 +8900,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9008,7 +9008,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9018,7 +9018,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9125,7 +9125,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9135,7 +9135,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9242,7 +9242,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9252,7 +9252,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9360,7 +9360,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9370,7 +9370,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9478,7 +9478,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9488,7 +9488,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9596,7 +9596,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9606,7 +9606,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9714,7 +9714,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9724,7 +9724,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9832,7 +9832,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9842,7 +9842,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -9950,7 +9950,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -9960,7 +9960,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10067,7 +10067,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10077,7 +10077,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10177,7 +10177,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10187,7 +10187,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10283,7 +10283,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10293,7 +10293,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10395,7 +10395,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10405,7 +10405,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10511,7 +10511,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10521,7 +10521,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10628,7 +10628,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10638,7 +10638,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10746,7 +10746,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10756,7 +10756,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10864,7 +10864,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10874,7 +10874,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -10982,7 +10982,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -10992,7 +10992,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11100,7 +11100,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11110,7 +11110,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11218,7 +11218,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11228,7 +11228,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11336,7 +11336,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11346,7 +11346,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11453,7 +11453,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11463,7 +11463,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11569,7 +11569,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11579,7 +11579,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11686,7 +11686,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11696,7 +11696,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11804,7 +11804,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11814,7 +11814,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -11922,7 +11922,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -11932,7 +11932,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12040,7 +12040,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12050,7 +12050,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12158,7 +12158,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12168,7 +12168,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12276,7 +12276,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12286,7 +12286,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12393,7 +12393,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12403,7 +12403,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12509,7 +12509,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12519,7 +12519,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12625,7 +12625,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12635,7 +12635,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12756,7 +12756,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12766,7 +12766,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -12889,7 +12889,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -12899,7 +12899,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13021,7 +13021,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13031,7 +13031,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13153,7 +13153,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13163,7 +13163,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13287,7 +13287,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13297,7 +13297,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13406,7 +13406,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13416,7 +13416,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13525,7 +13525,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13535,7 +13535,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13644,7 +13644,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13654,7 +13654,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13763,7 +13763,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13773,7 +13773,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13880,7 +13880,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -13890,7 +13890,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -13997,7 +13997,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14007,7 +14007,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14114,7 +14114,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14124,7 +14124,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14231,7 +14231,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14241,7 +14241,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14348,7 +14348,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14358,7 +14358,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14464,7 +14464,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14474,7 +14474,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14580,7 +14580,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14590,7 +14590,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14696,7 +14696,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14706,7 +14706,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14812,7 +14812,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14822,7 +14822,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -14928,7 +14928,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -14938,7 +14938,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15044,7 +15044,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15054,7 +15054,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15162,7 +15162,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15172,7 +15172,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15274,7 +15274,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15284,7 +15284,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15386,7 +15386,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15396,7 +15396,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15503,7 +15503,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15513,7 +15513,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15620,7 +15620,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15630,7 +15630,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15736,7 +15736,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15746,7 +15746,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15847,7 +15847,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15857,7 +15857,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -15953,7 +15953,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -15963,7 +15963,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16060,7 +16060,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16070,7 +16070,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16174,7 +16174,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16184,7 +16184,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16293,7 +16293,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16303,7 +16303,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16412,7 +16412,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16422,7 +16422,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16531,7 +16531,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16541,7 +16541,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16648,7 +16648,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16658,7 +16658,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16768,7 +16768,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16778,7 +16778,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -16887,7 +16887,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -16897,7 +16897,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17006,7 +17006,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17016,7 +17016,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17125,7 +17125,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17135,7 +17135,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17244,7 +17244,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17254,7 +17254,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17361,7 +17361,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17371,7 +17371,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17479,7 +17479,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17489,7 +17489,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17601,7 +17601,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17611,7 +17611,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17720,7 +17720,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17730,7 +17730,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17838,7 +17838,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17848,7 +17848,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -17957,7 +17957,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -17967,7 +17967,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18076,7 +18076,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18086,7 +18086,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18195,7 +18195,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18205,7 +18205,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18314,7 +18314,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18324,7 +18324,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18433,7 +18433,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18443,7 +18443,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18551,7 +18551,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18561,7 +18561,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18669,7 +18669,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18679,7 +18679,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18787,7 +18787,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18797,7 +18797,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -18898,7 +18898,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -18908,7 +18908,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19011,7 +19011,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19021,7 +19021,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19129,7 +19129,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19139,7 +19139,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19247,7 +19247,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19257,7 +19257,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19358,7 +19358,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19368,7 +19368,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19471,7 +19471,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19481,7 +19481,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19589,7 +19589,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19599,7 +19599,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19708,7 +19708,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19718,7 +19718,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19826,7 +19826,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19836,7 +19836,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -19944,7 +19944,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -19954,7 +19954,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20062,7 +20062,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20072,7 +20072,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20180,7 +20180,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20190,7 +20190,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20298,7 +20298,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20308,7 +20308,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20416,7 +20416,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20426,7 +20426,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20536,7 +20536,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20546,7 +20546,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20654,7 +20654,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20664,7 +20664,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20773,7 +20773,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20783,7 +20783,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -20892,7 +20892,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -20902,7 +20902,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21010,7 +21010,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21020,7 +21020,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21138,7 +21138,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21148,7 +21148,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21257,7 +21257,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21267,7 +21267,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21376,7 +21376,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21386,7 +21386,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21489,7 +21489,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21499,7 +21499,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21601,7 +21601,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21611,7 +21611,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21719,7 +21719,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21729,7 +21729,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21838,7 +21838,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21848,7 +21848,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -21957,7 +21957,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -21967,7 +21967,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22068,7 +22068,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22078,7 +22078,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22181,7 +22181,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22191,7 +22191,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22298,7 +22298,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22308,7 +22308,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22414,7 +22414,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22424,7 +22424,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22531,7 +22531,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22541,7 +22541,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22648,7 +22648,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22658,7 +22658,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22765,7 +22765,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22775,7 +22775,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22876,7 +22876,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22886,7 +22886,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -22982,7 +22982,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -22992,7 +22992,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23095,7 +23095,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23105,7 +23105,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23213,7 +23213,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23223,7 +23223,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23331,7 +23331,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23341,7 +23341,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23449,7 +23449,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23459,7 +23459,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23567,7 +23567,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23577,7 +23577,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23685,7 +23685,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23695,7 +23695,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23803,7 +23803,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23813,7 +23813,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -23921,7 +23921,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -23931,7 +23931,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24039,7 +24039,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24049,7 +24049,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24157,7 +24157,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24167,7 +24167,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24275,7 +24275,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24285,7 +24285,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24393,7 +24393,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24403,7 +24403,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24511,7 +24511,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24521,7 +24521,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24629,7 +24629,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24639,7 +24639,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24747,7 +24747,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24757,7 +24757,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24865,7 +24865,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24875,7 +24875,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -24983,7 +24983,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -24993,7 +24993,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25092,7 +25092,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25102,7 +25102,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25209,7 +25209,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25219,7 +25219,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25335,7 +25335,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25345,7 +25345,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25453,7 +25453,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25463,7 +25463,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25572,7 +25572,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25582,7 +25582,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25685,7 +25685,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25695,7 +25695,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25797,7 +25797,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25807,7 +25807,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -25916,7 +25916,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -25926,7 +25926,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26035,7 +26035,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26045,7 +26045,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26154,7 +26154,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26164,7 +26164,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26273,7 +26273,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26283,7 +26283,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26392,7 +26392,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26402,7 +26402,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26511,7 +26511,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26521,7 +26521,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26630,7 +26630,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26640,7 +26640,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26749,7 +26749,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26759,7 +26759,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26868,7 +26868,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26878,7 +26878,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -26987,7 +26987,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -26997,7 +26997,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27106,7 +27106,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27116,7 +27116,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27225,7 +27225,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27235,7 +27235,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27344,7 +27344,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27354,7 +27354,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27463,7 +27463,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27473,7 +27473,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27582,7 +27582,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27592,7 +27592,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27699,7 +27699,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27709,7 +27709,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27820,7 +27820,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27830,7 +27830,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -27953,7 +27953,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -27963,7 +27963,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28072,7 +28072,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28082,7 +28082,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28191,7 +28191,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28201,7 +28201,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28310,7 +28310,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28320,7 +28320,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28428,7 +28428,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28438,7 +28438,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28546,7 +28546,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28556,7 +28556,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28664,7 +28664,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28674,7 +28674,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28783,7 +28783,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28793,7 +28793,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -28902,7 +28902,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -28912,7 +28912,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29022,7 +29022,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29032,7 +29032,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29155,7 +29155,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29165,7 +29165,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29206,125 +29206,7 @@
       }
     }
     builders {
-      name: "ToTMacRust (dbg)"
-      swarming_host: "chromium-swarm.appspot.com"
-      dimensions: "builderless:1"
-      dimensions: "cpu:arm64"
-      dimensions: "free_space:standard"
-      dimensions: "os:Mac-15"
-      dimensions: "pool:luci.chromium.ci"
-      dimensions: "ssd:1"
-      exe {
-        cipd_package: "infra/chromium/bootstrapper/${platform}"
-        cipd_version: "latest"
-        cmd: "bootstrapper"
-      }
-      properties:
-        '{'
-        '  "$bootstrap/exe": {'
-        '    "exe": {'
-        '      "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",'
-        '      "cipd_version": "refs/heads/main",'
-        '      "cmd": ['
-        '        "luciexe"'
-        '      ]'
-        '    }'
-        '  },'
-        '  "$bootstrap/properties": {'
-        '    "properties_file": "infra/config/generated/builders/ci/ToTMacRust (dbg)/properties.json",'
-        '    "shadow_properties_file": "infra/config/generated/builders/ci/ToTMacRust (dbg)/shadow-properties.json",'
-        '    "top_level_project": {'
-        '      "ref": "refs/heads/main",'
-        '      "repo": {'
-        '        "host": "chromium.googlesource.com",'
-        '        "project": "chromium/src"'
-        '      }'
-        '    }'
-        '  },'
-        '  "alerts_enabled": true,'
-        '  "builder_group": "chromium.clang",'
-        '  "gardener_rotations": ['
-        '    "chromium.clang"'
-        '  ],'
-        '  "led_builder_is_bootstrapped": true,'
-        '  "recipe": "chromium",'
-        '  "sheriff_rotations": ['
-        '    "chromium.clang"'
-        '  ]'
-        '}'
-      execution_timeout_secs: 72000
-      build_numbers: YES
-      service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
-      experiments {
-        key: "chromium.use_per_builder_build_dir_name"
-        value: 100
-      }
-      resultdb {
-        enable: true
-        bq_exports {
-          project: "chrome-luci-data"
-          dataset: "chromium"
-          table: "ci_test_results"
-          test_results {}
-        }
-        bq_exports {
-          project: "chrome-luci-data"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
-          project: "chrome-luci-data"
-          dataset: "chromium"
-          table: "blink_web_tests_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
-            }
-          }
-        }
-        history_options {
-          use_invocation_timestamp: true
-        }
-      }
-      description_html: "Builder that builds ToT Rust and uses it to build Chromium<br/>Builder owner: <a href=mailto:lexan@google.com>lexan@google.com</a>"
-      shadow_builder_adjustments {
-        service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
-        pool: "luci.chromium.try"
-        dimensions: "free_space:"
-        dimensions: "pool:luci.chromium.try"
-      }
-      contact_team_email: "lexan@google.com"
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/alerts_enabled_count"
-        predicates: "has(build.input.properties.alerts_enabled)"
-        predicates: "string(build.input.properties.alerts_enabled) == \"true\""
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/cached_count"
-        predicates: "has(build.output.properties.is_cached)"
-        predicates: "string(build.output.properties.is_cached) == \"true\""
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/ran_tests_retry_shard_count"
-        predicates: "has(build.output.properties.ran_tests_retry_shard)"
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/ran_tests_without_patch_count"
-        predicates: "has(build.output.properties.ran_tests_without_patch)"
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/uncached_count"
-        predicates: "has(build.output.properties.is_cached)"
-        predicates: "string(build.output.properties.is_cached) == \"false\""
-      }
-    }
-    builders {
-      name: "ToTRustLinux (dbg)"
+      name: "ToTRustLinux(dbg)"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "builderless:1"
       dimensions: "cores:32"
@@ -29350,8 +29232,8 @@
         '    }'
         '  },'
         '  "$bootstrap/properties": {'
-        '    "properties_file": "infra/config/generated/builders/ci/ToTRustLinux (dbg)/properties.json",'
-        '    "shadow_properties_file": "infra/config/generated/builders/ci/ToTRustLinux (dbg)/shadow-properties.json",'
+        '    "properties_file": "infra/config/generated/builders/ci/ToTRustLinux(dbg)/properties.json",'
+        '    "shadow_properties_file": "infra/config/generated/builders/ci/ToTRustLinux(dbg)/shadow-properties.json",'
         '    "top_level_project": {'
         '      "ref": "refs/heads/main",'
         '      "repo": {'
@@ -29392,7 +29274,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29402,7 +29284,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29443,6 +29325,243 @@
       }
     }
     builders {
+      name: "ToTRustMac(dbg)"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "builderless:1"
+      dimensions: "cpu:arm64"
+      dimensions: "free_space:standard"
+      dimensions: "os:Mac-15"
+      dimensions: "pool:luci.chromium.ci"
+      dimensions: "ssd:1"
+      exe {
+        cipd_package: "infra/chromium/bootstrapper/${platform}"
+        cipd_version: "latest"
+        cmd: "bootstrapper"
+      }
+      properties:
+        '{'
+        '  "$bootstrap/exe": {'
+        '    "exe": {'
+        '      "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",'
+        '      "cipd_version": "refs/heads/main",'
+        '      "cmd": ['
+        '        "luciexe"'
+        '      ]'
+        '    }'
+        '  },'
+        '  "$bootstrap/properties": {'
+        '    "properties_file": "infra/config/generated/builders/ci/ToTRustMac(dbg)/properties.json",'
+        '    "shadow_properties_file": "infra/config/generated/builders/ci/ToTRustMac(dbg)/shadow-properties.json",'
+        '    "top_level_project": {'
+        '      "ref": "refs/heads/main",'
+        '      "repo": {'
+        '        "host": "chromium.googlesource.com",'
+        '        "project": "chromium/src"'
+        '      }'
+        '    }'
+        '  },'
+        '  "alerts_enabled": true,'
+        '  "builder_group": "chromium.clang",'
+        '  "gardener_rotations": ['
+        '    "chromium.clang"'
+        '  ],'
+        '  "led_builder_is_bootstrapped": true,'
+        '  "recipe": "chromium",'
+        '  "sheriff_rotations": ['
+        '    "chromium.clang"'
+        '  ]'
+        '}'
+      execution_timeout_secs: 72000
+      build_numbers: YES
+      service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+      experiments {
+        key: "chromium.use_per_builder_build_dir_name"
+        value: 100
+      }
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "ci_test_results"
+          test_results {}
+        }
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "gpu_ci_test_results"
+          test_results {
+            predicate {
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
+            }
+          }
+        }
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "blink_web_tests_ci_test_results"
+          test_results {
+            predicate {
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
+            }
+          }
+        }
+        history_options {
+          use_invocation_timestamp: true
+        }
+      }
+      description_html: "Builder that builds ToT Rust and uses it to build Chromium<br/>Builder owner: <a href=mailto:lexan@google.com>lexan@google.com</a>"
+      shadow_builder_adjustments {
+        service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+        pool: "luci.chromium.try"
+        dimensions: "free_space:"
+        dimensions: "pool:luci.chromium.try"
+      }
+      contact_team_email: "lexan@google.com"
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/alerts_enabled_count"
+        predicates: "has(build.input.properties.alerts_enabled)"
+        predicates: "string(build.input.properties.alerts_enabled) == \"true\""
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/cached_count"
+        predicates: "has(build.output.properties.is_cached)"
+        predicates: "string(build.output.properties.is_cached) == \"true\""
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/ran_tests_retry_shard_count"
+        predicates: "has(build.output.properties.ran_tests_retry_shard)"
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/ran_tests_without_patch_count"
+        predicates: "has(build.output.properties.ran_tests_without_patch)"
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/uncached_count"
+        predicates: "has(build.output.properties.is_cached)"
+        predicates: "string(build.output.properties.is_cached) == \"false\""
+      }
+    }
+    builders {
+      name: "ToTRustWin(dbg)"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "builderless:1"
+      dimensions: "cores:32"
+      dimensions: "cpu:x86-64"
+      dimensions: "free_space:high"
+      dimensions: "os:Windows-10"
+      dimensions: "pool:luci.chromium.ci"
+      dimensions: "ssd:0"
+      exe {
+        cipd_package: "infra/chromium/bootstrapper/${platform}"
+        cipd_version: "latest"
+        cmd: "bootstrapper"
+      }
+      properties:
+        '{'
+        '  "$bootstrap/exe": {'
+        '    "exe": {'
+        '      "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",'
+        '      "cipd_version": "refs/heads/main",'
+        '      "cmd": ['
+        '        "luciexe"'
+        '      ]'
+        '    }'
+        '  },'
+        '  "$bootstrap/properties": {'
+        '    "properties_file": "infra/config/generated/builders/ci/ToTRustWin(dbg)/properties.json",'
+        '    "shadow_properties_file": "infra/config/generated/builders/ci/ToTRustWin(dbg)/shadow-properties.json",'
+        '    "top_level_project": {'
+        '      "ref": "refs/heads/main",'
+        '      "repo": {'
+        '        "host": "chromium.googlesource.com",'
+        '        "project": "chromium/src"'
+        '      }'
+        '    }'
+        '  },'
+        '  "alerts_enabled": true,'
+        '  "builder_group": "chromium.clang",'
+        '  "gardener_rotations": ['
+        '    "chromium.clang"'
+        '  ],'
+        '  "led_builder_is_bootstrapped": true,'
+        '  "recipe": "chromium",'
+        '  "sheriff_rotations": ['
+        '    "chromium.clang"'
+        '  ]'
+        '}'
+      execution_timeout_secs: 57600
+      build_numbers: YES
+      service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+      experiments {
+        key: "chromium.use_per_builder_build_dir_name"
+        value: 100
+      }
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "ci_test_results"
+          test_results {}
+        }
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "gpu_ci_test_results"
+          test_results {
+            predicate {
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
+            }
+          }
+        }
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "blink_web_tests_ci_test_results"
+          test_results {
+            predicate {
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
+            }
+          }
+        }
+        history_options {
+          use_invocation_timestamp: true
+        }
+      }
+      description_html: "Builder that builds and tests chromium using ToT Rust,built against ToT LLVM, on windows in debug mode.<br/>Builder owner: <a href=mailto:lexan@google.com>lexan@google.com</a>"
+      shadow_builder_adjustments {
+        service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+        pool: "luci.chromium.try"
+        dimensions: "free_space:"
+        dimensions: "pool:luci.chromium.try"
+      }
+      contact_team_email: "lexan@google.com"
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/alerts_enabled_count"
+        predicates: "has(build.input.properties.alerts_enabled)"
+        predicates: "string(build.input.properties.alerts_enabled) == \"true\""
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/cached_count"
+        predicates: "has(build.output.properties.is_cached)"
+        predicates: "string(build.output.properties.is_cached) == \"true\""
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/ran_tests_retry_shard_count"
+        predicates: "has(build.output.properties.ran_tests_retry_shard)"
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/ran_tests_without_patch_count"
+        predicates: "has(build.output.properties.ran_tests_without_patch)"
+      }
+      custom_metric_definitions {
+        name: "/chrome/infra/browser/builds/uncached_count"
+        predicates: "has(build.output.properties.is_cached)"
+        predicates: "string(build.output.properties.is_cached) == \"false\""
+      }
+    }
+    builders {
       name: "ToTWin"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "builderless:1"
@@ -29511,7 +29630,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29521,7 +29640,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29630,7 +29749,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29640,7 +29759,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29749,7 +29868,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29759,7 +29878,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29868,7 +29987,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29878,7 +29997,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -29987,7 +30106,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -29997,7 +30116,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -30106,7 +30225,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -30116,7 +30235,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -30225,7 +30344,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -30235,7 +30354,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -30344,7 +30463,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -30354,7 +30473,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -30456,7 +30575,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -30466,7 +30585,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -30502,125 +30621,6 @@
       }
     }
     builders {
-      name: "ToTWinRust(dbg)"
-      swarming_host: "chromium-swarm.appspot.com"
-      dimensions: "builderless:1"
-      dimensions: "cores:32"
-      dimensions: "cpu:x86-64"
-      dimensions: "free_space:high"
-      dimensions: "os:Windows-10"
-      dimensions: "pool:luci.chromium.ci"
-      dimensions: "ssd:0"
-      exe {
-        cipd_package: "infra/chromium/bootstrapper/${platform}"
-        cipd_version: "latest"
-        cmd: "bootstrapper"
-      }
-      properties:
-        '{'
-        '  "$bootstrap/exe": {'
-        '    "exe": {'
-        '      "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",'
-        '      "cipd_version": "refs/heads/main",'
-        '      "cmd": ['
-        '        "luciexe"'
-        '      ]'
-        '    }'
-        '  },'
-        '  "$bootstrap/properties": {'
-        '    "properties_file": "infra/config/generated/builders/ci/ToTWinRust(dbg)/properties.json",'
-        '    "shadow_properties_file": "infra/config/generated/builders/ci/ToTWinRust(dbg)/shadow-properties.json",'
-        '    "top_level_project": {'
-        '      "ref": "refs/heads/main",'
-        '      "repo": {'
-        '        "host": "chromium.googlesource.com",'
-        '        "project": "chromium/src"'
-        '      }'
-        '    }'
-        '  },'
-        '  "alerts_enabled": true,'
-        '  "builder_group": "chromium.clang",'
-        '  "gardener_rotations": ['
-        '    "chromium.clang"'
-        '  ],'
-        '  "led_builder_is_bootstrapped": true,'
-        '  "recipe": "chromium",'
-        '  "sheriff_rotations": ['
-        '    "chromium.clang"'
-        '  ]'
-        '}'
-      execution_timeout_secs: 57600
-      build_numbers: YES
-      service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
-      experiments {
-        key: "chromium.use_per_builder_build_dir_name"
-        value: 100
-      }
-      resultdb {
-        enable: true
-        bq_exports {
-          project: "chrome-luci-data"
-          dataset: "chromium"
-          table: "ci_test_results"
-          test_results {}
-        }
-        bq_exports {
-          project: "chrome-luci-data"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
-          project: "chrome-luci-data"
-          dataset: "chromium"
-          table: "blink_web_tests_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
-            }
-          }
-        }
-        history_options {
-          use_invocation_timestamp: true
-        }
-      }
-      description_html: "Builder that builds and tests chromium using ToT Rust,built against ToT LLVM, on windows in debug mode.<br/>Builder owner: <a href=mailto:lexan@google.com>lexan@google.com</a>"
-      shadow_builder_adjustments {
-        service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
-        pool: "luci.chromium.try"
-        dimensions: "free_space:"
-        dimensions: "pool:luci.chromium.try"
-      }
-      contact_team_email: "lexan@google.com"
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/alerts_enabled_count"
-        predicates: "has(build.input.properties.alerts_enabled)"
-        predicates: "string(build.input.properties.alerts_enabled) == \"true\""
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/cached_count"
-        predicates: "has(build.output.properties.is_cached)"
-        predicates: "string(build.output.properties.is_cached) == \"true\""
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/ran_tests_retry_shard_count"
-        predicates: "has(build.output.properties.ran_tests_retry_shard)"
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/ran_tests_without_patch_count"
-        predicates: "has(build.output.properties.ran_tests_without_patch)"
-      }
-      custom_metric_definitions {
-        name: "/chrome/infra/browser/builds/uncached_count"
-        predicates: "has(build.output.properties.is_cached)"
-        predicates: "string(build.output.properties.is_cached) == \"false\""
-      }
-    }
-    builders {
       name: "ToTWindowsCoverage"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "builderless:1"
@@ -30690,7 +30690,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -30700,7 +30700,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -30825,7 +30825,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -30835,7 +30835,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -30947,7 +30947,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -30957,7 +30957,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31067,7 +31067,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31077,7 +31077,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31186,7 +31186,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31196,7 +31196,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31303,7 +31303,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31313,7 +31313,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31415,7 +31415,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31425,7 +31425,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31527,7 +31527,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31537,7 +31537,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31645,7 +31645,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31655,7 +31655,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31764,7 +31764,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31774,7 +31774,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -31883,7 +31883,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -31893,7 +31893,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32002,7 +32002,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32012,7 +32012,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32122,7 +32122,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32132,7 +32132,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32240,7 +32240,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32250,7 +32250,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32358,7 +32358,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32368,7 +32368,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32476,7 +32476,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32486,7 +32486,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32594,7 +32594,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32604,7 +32604,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32712,7 +32712,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32722,7 +32722,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32830,7 +32830,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32840,7 +32840,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -32948,7 +32948,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -32958,7 +32958,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33066,7 +33066,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33076,7 +33076,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33184,7 +33184,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33194,7 +33194,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33302,7 +33302,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33312,7 +33312,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33420,7 +33420,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33430,7 +33430,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33537,7 +33537,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33547,7 +33547,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33650,7 +33650,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33660,7 +33660,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33756,7 +33756,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33766,7 +33766,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33869,7 +33869,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33879,7 +33879,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -33987,7 +33987,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -33997,7 +33997,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34105,7 +34105,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34115,7 +34115,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34223,7 +34223,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34233,7 +34233,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34341,7 +34341,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34351,7 +34351,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34452,7 +34452,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34462,7 +34462,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34565,7 +34565,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34575,7 +34575,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34683,7 +34683,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34693,7 +34693,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34801,7 +34801,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34811,7 +34811,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -34919,7 +34919,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -34929,7 +34929,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35035,7 +35035,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35045,7 +35045,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35170,7 +35170,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35180,7 +35180,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35283,7 +35283,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35293,7 +35293,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35390,7 +35390,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35400,7 +35400,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35504,7 +35504,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35514,7 +35514,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35617,7 +35617,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35627,7 +35627,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35729,7 +35729,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35739,7 +35739,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35840,7 +35840,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35850,7 +35850,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -35947,7 +35947,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -35957,7 +35957,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36059,7 +36059,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36069,7 +36069,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36178,7 +36178,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36188,7 +36188,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36297,7 +36297,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36307,7 +36307,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36410,7 +36410,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36420,7 +36420,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36522,7 +36522,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36532,7 +36532,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36635,7 +36635,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36645,7 +36645,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36749,7 +36749,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36759,7 +36759,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36862,7 +36862,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36872,7 +36872,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -36976,7 +36976,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -36986,7 +36986,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37088,7 +37088,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37098,7 +37098,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37202,7 +37202,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37212,7 +37212,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37315,7 +37315,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37325,7 +37325,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37429,7 +37429,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37439,7 +37439,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37542,7 +37542,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37552,7 +37552,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37656,7 +37656,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37666,7 +37666,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37769,7 +37769,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37779,7 +37779,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37883,7 +37883,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -37893,7 +37893,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -37996,7 +37996,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38006,7 +38006,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -38104,7 +38104,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38114,7 +38114,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -38218,7 +38218,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38228,7 +38228,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -38337,7 +38337,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38347,7 +38347,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -38450,7 +38450,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38460,7 +38460,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -38564,7 +38564,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38574,7 +38574,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -38669,7 +38669,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38679,7 +38679,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -38887,7 +38887,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -38897,7 +38897,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39098,7 +39098,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39108,7 +39108,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39211,7 +39211,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39221,7 +39221,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39323,7 +39323,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39333,7 +39333,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39442,7 +39442,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39452,7 +39452,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39552,7 +39552,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39562,7 +39562,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39659,7 +39659,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39669,7 +39669,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39772,7 +39772,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39782,7 +39782,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39877,7 +39877,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39887,7 +39887,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -39988,7 +39988,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -39998,7 +39998,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40123,7 +40123,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40133,7 +40133,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40242,7 +40242,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40252,7 +40252,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40361,7 +40361,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40371,7 +40371,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40480,7 +40480,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40490,7 +40490,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40593,7 +40593,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40603,7 +40603,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40700,7 +40700,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40710,7 +40710,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40813,7 +40813,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40823,7 +40823,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -40932,7 +40932,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -40942,7 +40942,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41051,7 +41051,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41061,7 +41061,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41170,7 +41170,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41180,7 +41180,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41283,7 +41283,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41293,7 +41293,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41398,7 +41398,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41408,7 +41408,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41518,7 +41518,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41528,7 +41528,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41637,7 +41637,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41647,7 +41647,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41756,7 +41756,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41766,7 +41766,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41875,7 +41875,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -41885,7 +41885,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -41993,7 +41993,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42003,7 +42003,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42111,7 +42111,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42121,7 +42121,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42229,7 +42229,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42239,7 +42239,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42347,7 +42347,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42357,7 +42357,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42465,7 +42465,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42475,7 +42475,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42584,7 +42584,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42594,7 +42594,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42703,7 +42703,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42713,7 +42713,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42821,7 +42821,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42831,7 +42831,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -42939,7 +42939,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -42949,7 +42949,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43057,7 +43057,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43067,7 +43067,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43175,7 +43175,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43185,7 +43185,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43293,7 +43293,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43303,7 +43303,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43411,7 +43411,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43421,7 +43421,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43530,7 +43530,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43540,7 +43540,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43641,7 +43641,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43651,7 +43651,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43756,7 +43756,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43766,7 +43766,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43865,7 +43865,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43875,7 +43875,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -43970,7 +43970,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -43980,7 +43980,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44074,7 +44074,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44084,7 +44084,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44193,7 +44193,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44203,7 +44203,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44321,7 +44321,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44331,7 +44331,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44441,7 +44441,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44451,7 +44451,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44550,7 +44550,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44560,7 +44560,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44662,7 +44662,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44672,7 +44672,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44771,7 +44771,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44781,7 +44781,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -44890,7 +44890,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -44900,7 +44900,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45013,7 +45013,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45023,7 +45023,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45125,7 +45125,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45135,7 +45135,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45242,7 +45242,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45252,7 +45252,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45379,7 +45379,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45389,7 +45389,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45483,7 +45483,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45493,7 +45493,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45590,7 +45590,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45600,7 +45600,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45702,7 +45702,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45712,7 +45712,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45816,7 +45816,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45826,7 +45826,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -45922,7 +45922,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -45932,7 +45932,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46028,7 +46028,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46038,7 +46038,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46134,7 +46134,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46144,7 +46144,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46390,7 +46390,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46400,7 +46400,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46500,7 +46500,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46510,7 +46510,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46613,7 +46613,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46623,7 +46623,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46725,7 +46725,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46735,7 +46735,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46831,7 +46831,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46841,7 +46841,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -46944,7 +46944,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -46954,7 +46954,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47057,7 +47057,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47067,7 +47067,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47165,7 +47165,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47175,7 +47175,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47273,7 +47273,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47283,7 +47283,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47387,7 +47387,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47397,7 +47397,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47497,7 +47497,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47507,7 +47507,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47594,7 +47594,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47604,7 +47604,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47711,7 +47711,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47721,7 +47721,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47824,7 +47824,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47834,7 +47834,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -47943,7 +47943,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -47953,7 +47953,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48062,7 +48062,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48072,7 +48072,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48181,7 +48181,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48191,7 +48191,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48299,7 +48299,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48309,7 +48309,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48417,7 +48417,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48427,7 +48427,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48536,7 +48536,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48546,7 +48546,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48655,7 +48655,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48665,7 +48665,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48774,7 +48774,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48784,7 +48784,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -48893,7 +48893,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -48903,7 +48903,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49006,7 +49006,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49016,7 +49016,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49119,7 +49119,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49129,7 +49129,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49236,7 +49236,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49246,7 +49246,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49343,7 +49343,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49353,7 +49353,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49508,7 +49508,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49518,7 +49518,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49642,7 +49642,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49652,7 +49652,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49755,7 +49755,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49765,7 +49765,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49868,7 +49868,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49878,7 +49878,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -49987,7 +49987,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -49997,7 +49997,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -50106,7 +50106,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -50116,7 +50116,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -50225,7 +50225,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -50235,7 +50235,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -50337,7 +50337,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -50347,7 +50347,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -50450,7 +50450,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -50460,7 +50460,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -50569,7 +50569,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -50579,7 +50579,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -50688,7 +50688,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -50698,7 +50698,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -50901,7 +50901,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -50911,7 +50911,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51104,7 +51104,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51114,7 +51114,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51224,7 +51224,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51234,7 +51234,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51340,7 +51340,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51350,7 +51350,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51457,7 +51457,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51467,7 +51467,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51578,7 +51578,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51588,7 +51588,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51693,7 +51693,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51703,7 +51703,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51809,7 +51809,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51819,7 +51819,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -51925,7 +51925,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -51935,7 +51935,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52041,7 +52041,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52051,7 +52051,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52163,7 +52163,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52173,7 +52173,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52282,7 +52282,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52292,7 +52292,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52392,7 +52392,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52402,7 +52402,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52500,7 +52500,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52510,7 +52510,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52609,7 +52609,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52619,7 +52619,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52717,7 +52717,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52727,7 +52727,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52826,7 +52826,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52836,7 +52836,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -52936,7 +52936,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -52946,7 +52946,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -53045,7 +53045,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -53055,7 +53055,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -53154,7 +53154,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -53164,7 +53164,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -53394,7 +53394,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -53404,7 +53404,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -53595,7 +53595,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -53605,7 +53605,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -53781,7 +53781,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -53791,7 +53791,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -53894,7 +53894,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -53904,7 +53904,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54007,7 +54007,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54017,7 +54017,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54139,7 +54139,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54149,7 +54149,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54252,7 +54252,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54262,7 +54262,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54371,7 +54371,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54381,7 +54381,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54484,7 +54484,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54494,7 +54494,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54597,7 +54597,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54607,7 +54607,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54716,7 +54716,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54726,7 +54726,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54829,7 +54829,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54839,7 +54839,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -54943,7 +54943,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -54953,7 +54953,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55055,7 +55055,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55065,7 +55065,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55167,7 +55167,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55177,7 +55177,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55286,7 +55286,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55296,7 +55296,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55405,7 +55405,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55415,7 +55415,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55524,7 +55524,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55534,7 +55534,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55637,7 +55637,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55647,7 +55647,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55751,7 +55751,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55761,7 +55761,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55864,7 +55864,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55874,7 +55874,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -55977,7 +55977,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -55987,7 +55987,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56088,7 +56088,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56098,7 +56098,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56201,7 +56201,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56211,7 +56211,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56318,7 +56318,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56328,7 +56328,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56432,7 +56432,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56442,7 +56442,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56537,7 +56537,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56547,7 +56547,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56658,7 +56658,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56668,7 +56668,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56781,7 +56781,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56791,7 +56791,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56888,7 +56888,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -56898,7 +56898,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -56995,7 +56995,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57005,7 +57005,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57101,7 +57101,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57111,7 +57111,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57207,7 +57207,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57217,7 +57217,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57321,7 +57321,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57331,7 +57331,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57434,7 +57434,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57444,7 +57444,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57541,7 +57541,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57551,7 +57551,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57653,7 +57653,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57663,7 +57663,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57766,7 +57766,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57776,7 +57776,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57873,7 +57873,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57883,7 +57883,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -57980,7 +57980,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -57990,7 +57990,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58087,7 +58087,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58097,7 +58097,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58192,7 +58192,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58202,7 +58202,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58306,7 +58306,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58316,7 +58316,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58419,7 +58419,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58429,7 +58429,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58522,7 +58522,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58532,7 +58532,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58641,7 +58641,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58651,7 +58651,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58752,7 +58752,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58762,7 +58762,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58858,7 +58858,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58868,7 +58868,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -58964,7 +58964,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -58974,7 +58974,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59075,7 +59075,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59085,7 +59085,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59189,7 +59189,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59199,7 +59199,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59308,7 +59308,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59318,7 +59318,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59477,7 +59477,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59487,7 +59487,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59611,7 +59611,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59621,7 +59621,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59730,7 +59730,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59740,7 +59740,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59843,7 +59843,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59853,7 +59853,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -59950,7 +59950,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -59960,7 +59960,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60057,7 +60057,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60067,7 +60067,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60163,7 +60163,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60173,7 +60173,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60269,7 +60269,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60279,7 +60279,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60377,7 +60377,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60387,7 +60387,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60489,7 +60489,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60499,7 +60499,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60606,7 +60606,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60616,7 +60616,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60724,7 +60724,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60734,7 +60734,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60843,7 +60843,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60853,7 +60853,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -60962,7 +60962,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -60972,7 +60972,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61076,7 +61076,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61086,7 +61086,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61183,7 +61183,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61193,7 +61193,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61291,7 +61291,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61301,7 +61301,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61398,7 +61398,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61408,7 +61408,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61505,7 +61505,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61515,7 +61515,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61612,7 +61612,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61622,7 +61622,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61719,7 +61719,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61729,7 +61729,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -61826,7 +61826,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -61836,7 +61836,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -62009,7 +62009,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -62019,7 +62019,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -62255,7 +62255,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -62265,7 +62265,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -62458,7 +62458,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -62468,7 +62468,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -62574,7 +62574,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -62584,7 +62584,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -62692,7 +62692,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -62702,7 +62702,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -62809,7 +62809,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -62819,7 +62819,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -62919,7 +62919,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -62929,7 +62929,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63030,7 +63030,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63040,7 +63040,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63147,7 +63147,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63157,7 +63157,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63260,7 +63260,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63270,7 +63270,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63364,7 +63364,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63374,7 +63374,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63469,7 +63469,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63479,7 +63479,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63574,7 +63574,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63584,7 +63584,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63679,7 +63679,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63689,7 +63689,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63784,7 +63784,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63794,7 +63794,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63891,7 +63891,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -63901,7 +63901,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -63994,7 +63994,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64004,7 +64004,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64100,7 +64100,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64110,7 +64110,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64210,7 +64210,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64220,7 +64220,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64321,7 +64321,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64331,7 +64331,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64427,7 +64427,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64437,7 +64437,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64538,7 +64538,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64548,7 +64548,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64649,7 +64649,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64659,7 +64659,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64754,7 +64754,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64764,7 +64764,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64866,7 +64866,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64876,7 +64876,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -64977,7 +64977,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -64987,7 +64987,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65081,7 +65081,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65091,7 +65091,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65186,7 +65186,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65196,7 +65196,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65291,7 +65291,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65301,7 +65301,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65396,7 +65396,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65406,7 +65406,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65501,7 +65501,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65511,7 +65511,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65611,7 +65611,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65621,7 +65621,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65717,7 +65717,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65727,7 +65727,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65830,7 +65830,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65840,7 +65840,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -65941,7 +65941,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -65951,7 +65951,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66047,7 +66047,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66057,7 +66057,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66153,7 +66153,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66163,7 +66163,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66259,7 +66259,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66269,7 +66269,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66372,7 +66372,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66382,7 +66382,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66483,7 +66483,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66493,7 +66493,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66590,7 +66590,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66600,7 +66600,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66696,7 +66696,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66706,7 +66706,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66802,7 +66802,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66812,7 +66812,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -66915,7 +66915,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -66925,7 +66925,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67026,7 +67026,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67036,7 +67036,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67132,7 +67132,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67142,7 +67142,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67238,7 +67238,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67248,7 +67248,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67351,7 +67351,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67361,7 +67361,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67462,7 +67462,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67472,7 +67472,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67568,7 +67568,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67578,7 +67578,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67674,7 +67674,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67684,7 +67684,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67787,7 +67787,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67797,7 +67797,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67884,7 +67884,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67894,7 +67894,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -67973,7 +67973,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -67983,7 +67983,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -68059,8 +68059,8 @@
       priority: 35
       execution_timeout_secs: 10800
       caches {
-        name: "xcode_ios_17b5025f"
-        path: "xcode_ios_17b5025f.app"
+        name: "xcode_ios_17a324"
+        path: "xcode_ios_17a324.app"
       }
       build_numbers: YES
       service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -68082,7 +68082,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -68092,7 +68092,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -68320,7 +68320,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -68330,7 +68330,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -68501,7 +68501,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -68511,7 +68511,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -68628,7 +68628,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -68638,7 +68638,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -68740,7 +68740,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -68750,7 +68750,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -68852,7 +68852,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -68862,7 +68862,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -68967,7 +68967,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -68977,7 +68977,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69084,7 +69084,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69094,7 +69094,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69197,7 +69197,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69207,7 +69207,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69304,7 +69304,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69314,7 +69314,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69418,7 +69418,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69428,7 +69428,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69530,7 +69530,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69540,7 +69540,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69637,7 +69637,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69647,7 +69647,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69743,7 +69743,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69753,7 +69753,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69851,7 +69851,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69861,7 +69861,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -69964,7 +69964,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -69974,7 +69974,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70078,7 +70078,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70088,7 +70088,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70180,7 +70180,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70190,7 +70190,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70299,7 +70299,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70309,7 +70309,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70411,7 +70411,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70421,7 +70421,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70517,7 +70517,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70527,7 +70527,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70628,7 +70628,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70638,7 +70638,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70794,7 +70794,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70804,7 +70804,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -70975,7 +70975,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -70985,7 +70985,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71106,7 +71106,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71116,7 +71116,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71222,7 +71222,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71232,7 +71232,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71333,7 +71333,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71343,7 +71343,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71440,7 +71440,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71450,7 +71450,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71548,7 +71548,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71558,7 +71558,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71653,7 +71653,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71663,7 +71663,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71759,7 +71759,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71769,7 +71769,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71865,7 +71865,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71875,7 +71875,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -71971,7 +71971,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -71981,7 +71981,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72077,7 +72077,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72087,7 +72087,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72258,7 +72258,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72268,7 +72268,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72444,7 +72444,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72454,7 +72454,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72557,7 +72557,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72567,7 +72567,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72662,7 +72662,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72672,7 +72672,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72768,7 +72768,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72778,7 +72778,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72874,7 +72874,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72884,7 +72884,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -72979,7 +72979,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -72989,7 +72989,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73085,7 +73085,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73095,7 +73095,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73191,7 +73191,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73201,7 +73201,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73297,7 +73297,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73307,7 +73307,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73406,7 +73406,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73416,7 +73416,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73512,7 +73512,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73522,7 +73522,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73625,7 +73625,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73635,7 +73635,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73737,7 +73737,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73747,7 +73747,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73843,7 +73843,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73853,7 +73853,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -73949,7 +73949,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -73959,7 +73959,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74055,7 +74055,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74065,7 +74065,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74161,7 +74161,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74171,7 +74171,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74273,7 +74273,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74283,7 +74283,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74385,7 +74385,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74395,7 +74395,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74491,7 +74491,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74501,7 +74501,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74598,7 +74598,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74608,7 +74608,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74711,7 +74711,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74721,7 +74721,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74824,7 +74824,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74834,7 +74834,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -74931,7 +74931,7 @@
           table: "gpu_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -74941,7 +74941,7 @@
           table: "blink_web_tests_ci_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75056,7 +75056,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75066,7 +75066,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75157,7 +75157,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75167,7 +75167,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75258,7 +75258,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75268,7 +75268,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75358,7 +75358,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75368,7 +75368,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75455,7 +75455,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75465,7 +75465,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75554,7 +75554,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75564,7 +75564,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75655,7 +75655,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75665,7 +75665,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -75755,7 +75755,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -75765,7 +75765,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -76146,7 +76146,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -76156,7 +76156,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77054,7 +77054,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77064,7 +77064,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77155,7 +77155,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77165,7 +77165,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77251,7 +77251,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77261,7 +77261,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77350,7 +77350,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77360,7 +77360,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77458,7 +77458,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77468,7 +77468,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77571,7 +77571,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77581,7 +77581,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77684,7 +77684,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77694,7 +77694,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77798,7 +77798,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77808,7 +77808,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -77912,7 +77912,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -77922,7 +77922,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78025,7 +78025,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78035,7 +78035,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78138,7 +78138,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78148,7 +78148,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78252,7 +78252,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78262,7 +78262,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78366,7 +78366,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78376,7 +78376,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78479,7 +78479,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78489,7 +78489,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78592,7 +78592,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78602,7 +78602,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78706,7 +78706,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78716,7 +78716,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78819,7 +78819,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78829,7 +78829,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -78933,7 +78933,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -78943,7 +78943,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79046,7 +79046,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79056,7 +79056,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79160,7 +79160,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79170,7 +79170,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79273,7 +79273,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79283,7 +79283,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79387,7 +79387,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79397,7 +79397,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79500,7 +79500,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79510,7 +79510,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79608,7 +79608,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79618,7 +79618,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79722,7 +79722,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79732,7 +79732,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79836,7 +79836,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79846,7 +79846,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -79949,7 +79949,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -79959,7 +79959,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80062,7 +80062,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80072,7 +80072,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80176,7 +80176,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80186,7 +80186,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80290,7 +80290,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80300,7 +80300,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80403,7 +80403,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80413,7 +80413,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80517,7 +80517,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80527,7 +80527,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80723,7 +80723,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80733,7 +80733,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80838,7 +80838,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80848,7 +80848,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -80952,7 +80952,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -80962,7 +80962,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81065,7 +81065,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81075,7 +81075,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81190,7 +81190,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81200,7 +81200,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81301,7 +81301,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81311,7 +81311,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81408,7 +81408,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81418,7 +81418,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81540,7 +81540,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81550,7 +81550,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81653,7 +81653,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81663,7 +81663,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81768,7 +81768,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81778,7 +81778,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81883,7 +81883,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -81893,7 +81893,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -81998,7 +81998,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82008,7 +82008,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82110,7 +82110,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82120,7 +82120,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82217,7 +82217,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82227,7 +82227,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82330,7 +82330,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82340,7 +82340,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82442,7 +82442,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82452,7 +82452,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82556,7 +82556,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82566,7 +82566,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82673,7 +82673,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82683,7 +82683,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82787,7 +82787,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82797,7 +82797,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -82901,7 +82901,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -82911,7 +82911,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83015,7 +83015,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83025,7 +83025,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83129,7 +83129,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83139,7 +83139,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83243,7 +83243,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83253,7 +83253,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83357,7 +83357,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83367,7 +83367,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83471,7 +83471,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83481,7 +83481,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83585,7 +83585,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83595,7 +83595,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83699,7 +83699,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83709,7 +83709,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83813,7 +83813,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83823,7 +83823,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -83927,7 +83927,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -83937,7 +83937,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84042,7 +84042,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84052,7 +84052,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84157,7 +84157,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84167,7 +84167,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84271,7 +84271,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84281,7 +84281,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84385,7 +84385,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84395,7 +84395,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84499,7 +84499,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84509,7 +84509,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84614,7 +84614,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84624,7 +84624,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84728,7 +84728,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84738,7 +84738,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84842,7 +84842,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84852,7 +84852,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -84956,7 +84956,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -84966,7 +84966,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85070,7 +85070,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85080,7 +85080,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85180,7 +85180,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85190,7 +85190,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85293,7 +85293,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85303,7 +85303,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85406,7 +85406,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85416,7 +85416,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85517,7 +85517,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85527,7 +85527,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85630,7 +85630,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85640,7 +85640,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85744,7 +85744,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85754,7 +85754,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85870,7 +85870,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85880,7 +85880,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -85979,7 +85979,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -85989,7 +85989,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86092,7 +86092,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86102,7 +86102,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86205,7 +86205,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86215,7 +86215,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86317,7 +86317,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86327,7 +86327,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86424,7 +86424,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86434,7 +86434,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86531,7 +86531,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86541,7 +86541,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86657,7 +86657,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86667,7 +86667,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86766,7 +86766,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86776,7 +86776,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86879,7 +86879,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -86889,7 +86889,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -86991,7 +86991,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87001,7 +87001,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87098,7 +87098,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87108,7 +87108,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87206,7 +87206,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87216,7 +87216,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87318,7 +87318,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87328,7 +87328,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87439,7 +87439,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87449,7 +87449,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87551,7 +87551,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87561,7 +87561,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87659,7 +87659,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87669,7 +87669,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87765,7 +87765,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87775,7 +87775,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87871,7 +87871,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87881,7 +87881,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -87983,7 +87983,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -87993,7 +87993,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88095,7 +88095,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88105,7 +88105,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88208,7 +88208,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88218,7 +88218,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88320,7 +88320,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88330,7 +88330,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88432,7 +88432,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88442,7 +88442,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88544,7 +88544,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88554,7 +88554,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88660,7 +88660,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88670,7 +88670,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88774,7 +88774,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88784,7 +88784,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -88887,7 +88887,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -88897,7 +88897,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89000,7 +89000,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89010,7 +89010,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89113,7 +89113,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89123,7 +89123,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89238,7 +89238,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89248,7 +89248,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89350,7 +89350,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89360,7 +89360,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89458,7 +89458,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89468,7 +89468,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89583,7 +89583,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89593,7 +89593,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89695,7 +89695,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89705,7 +89705,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89803,7 +89803,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89813,7 +89813,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -89914,7 +89914,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -89924,7 +89924,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90028,7 +90028,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90038,7 +90038,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90142,7 +90142,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90152,7 +90152,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90253,7 +90253,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90263,7 +90263,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90364,7 +90364,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90374,7 +90374,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90465,7 +90465,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90475,7 +90475,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90578,7 +90578,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90588,7 +90588,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90691,7 +90691,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90701,7 +90701,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90805,7 +90805,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90815,7 +90815,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -90918,7 +90918,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -90928,7 +90928,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91035,7 +91035,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91045,7 +91045,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91152,7 +91152,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91162,7 +91162,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91269,7 +91269,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91279,7 +91279,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91381,7 +91381,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91391,7 +91391,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91490,7 +91490,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91500,7 +91500,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91607,7 +91607,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91617,7 +91617,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91723,7 +91723,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91733,7 +91733,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91836,7 +91836,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91846,7 +91846,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -91949,7 +91949,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -91959,7 +91959,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92063,7 +92063,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92073,7 +92073,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92176,7 +92176,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92186,7 +92186,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92290,7 +92290,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92300,7 +92300,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92412,7 +92412,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92422,7 +92422,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92525,7 +92525,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92535,7 +92535,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92632,7 +92632,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92642,7 +92642,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92756,7 +92756,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92766,7 +92766,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92867,7 +92867,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92877,7 +92877,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -92979,7 +92979,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -92989,7 +92989,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93090,7 +93090,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93100,7 +93100,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93202,7 +93202,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93212,7 +93212,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93314,7 +93314,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93324,7 +93324,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93425,7 +93425,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93435,7 +93435,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93538,7 +93538,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93548,7 +93548,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93651,7 +93651,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93661,7 +93661,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93761,7 +93761,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93771,7 +93771,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93871,7 +93871,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93881,7 +93881,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -93981,7 +93981,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -93991,7 +93991,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94091,7 +94091,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94101,7 +94101,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94201,7 +94201,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94211,7 +94211,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94313,7 +94313,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94323,7 +94323,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94425,7 +94425,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94435,7 +94435,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94537,7 +94537,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94547,7 +94547,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94649,7 +94649,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94659,7 +94659,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94761,7 +94761,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94771,7 +94771,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94873,7 +94873,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94883,7 +94883,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -94985,7 +94985,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -94995,7 +94995,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95097,7 +95097,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95107,7 +95107,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95210,7 +95210,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95220,7 +95220,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95323,7 +95323,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95333,7 +95333,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95436,7 +95436,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95446,7 +95446,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95595,7 +95595,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95605,7 +95605,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95711,7 +95711,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95721,7 +95721,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95836,7 +95836,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95846,7 +95846,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -95946,7 +95946,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -95956,7 +95956,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96052,7 +96052,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96062,7 +96062,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96165,7 +96165,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96175,7 +96175,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96272,7 +96272,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96282,7 +96282,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96385,7 +96385,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96395,7 +96395,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96499,7 +96499,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96509,7 +96509,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96613,7 +96613,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96623,7 +96623,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96728,7 +96728,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96738,7 +96738,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96842,7 +96842,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96852,7 +96852,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -96957,7 +96957,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -96967,7 +96967,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97082,7 +97082,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97092,7 +97092,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97193,7 +97193,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97203,7 +97203,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97301,7 +97301,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97311,7 +97311,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97408,7 +97408,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97418,7 +97418,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97520,7 +97520,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97530,7 +97530,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97630,7 +97630,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97640,7 +97640,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97740,7 +97740,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97750,7 +97750,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97850,7 +97850,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97860,7 +97860,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -97960,7 +97960,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -97970,7 +97970,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98070,7 +98070,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98080,7 +98080,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98180,7 +98180,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98190,7 +98190,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98290,7 +98290,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98300,7 +98300,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98400,7 +98400,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98410,7 +98410,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98510,7 +98510,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98520,7 +98520,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98620,7 +98620,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98630,7 +98630,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98730,7 +98730,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98740,7 +98740,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98840,7 +98840,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98850,7 +98850,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -98950,7 +98950,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -98960,7 +98960,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99060,7 +99060,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99070,7 +99070,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99170,7 +99170,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99180,7 +99180,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99280,7 +99280,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99290,7 +99290,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99390,7 +99390,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99400,7 +99400,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99500,7 +99500,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99510,7 +99510,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99610,7 +99610,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99620,7 +99620,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99720,7 +99720,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99730,7 +99730,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99830,7 +99830,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99840,7 +99840,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -99940,7 +99940,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -99950,7 +99950,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100050,7 +100050,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100060,7 +100060,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100160,7 +100160,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100170,7 +100170,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100268,7 +100268,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100278,7 +100278,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100377,7 +100377,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100387,7 +100387,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100485,7 +100485,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100495,7 +100495,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100593,7 +100593,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100603,7 +100603,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100701,7 +100701,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100711,7 +100711,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100809,7 +100809,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100819,7 +100819,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -100917,7 +100917,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -100927,7 +100927,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101025,7 +101025,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101035,7 +101035,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101133,7 +101133,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101143,7 +101143,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101241,7 +101241,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101251,7 +101251,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101350,7 +101350,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101360,7 +101360,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101458,7 +101458,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101468,7 +101468,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101566,7 +101566,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101576,7 +101576,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101674,7 +101674,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101684,7 +101684,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101785,7 +101785,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101795,7 +101795,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -101896,7 +101896,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -101906,7 +101906,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102007,7 +102007,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102017,7 +102017,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102118,7 +102118,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102128,7 +102128,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102229,7 +102229,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102239,7 +102239,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102340,7 +102340,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102350,7 +102350,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102451,7 +102451,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102461,7 +102461,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102562,7 +102562,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102572,7 +102572,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102673,7 +102673,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102683,7 +102683,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102784,7 +102784,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102794,7 +102794,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -102895,7 +102895,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -102905,7 +102905,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103006,7 +103006,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103016,7 +103016,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103117,7 +103117,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103127,7 +103127,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103228,7 +103228,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103238,7 +103238,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103339,7 +103339,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103349,7 +103349,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103450,7 +103450,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103460,7 +103460,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103561,7 +103561,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103571,7 +103571,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103671,7 +103671,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103681,7 +103681,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103780,7 +103780,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103790,7 +103790,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103890,7 +103890,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -103900,7 +103900,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -103998,7 +103998,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104008,7 +104008,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104106,7 +104106,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104116,7 +104116,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104217,7 +104217,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104227,7 +104227,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104417,7 +104417,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104427,7 +104427,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104532,7 +104532,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104542,7 +104542,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104646,7 +104646,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104656,7 +104656,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104761,7 +104761,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104771,7 +104771,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104875,7 +104875,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104885,7 +104885,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -104989,7 +104989,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -104999,7 +104999,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105109,7 +105109,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105119,7 +105119,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105223,7 +105223,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105233,7 +105233,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105336,7 +105336,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105346,7 +105346,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105454,7 +105454,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105464,7 +105464,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105570,7 +105570,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105580,7 +105580,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105685,7 +105685,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105695,7 +105695,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105803,7 +105803,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105813,7 +105813,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -105918,7 +105918,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -105928,7 +105928,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106033,7 +106033,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106043,7 +106043,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106146,7 +106146,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106156,7 +106156,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106259,7 +106259,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106269,7 +106269,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106372,7 +106372,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106382,7 +106382,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106485,7 +106485,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106495,7 +106495,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106597,7 +106597,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106607,7 +106607,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106709,7 +106709,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106719,7 +106719,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -106935,7 +106935,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -106945,7 +106945,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107049,7 +107049,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107059,7 +107059,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107162,7 +107162,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107172,7 +107172,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107275,7 +107275,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107285,7 +107285,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107388,7 +107388,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107398,7 +107398,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107501,7 +107501,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107511,7 +107511,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107614,7 +107614,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107624,7 +107624,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107727,7 +107727,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107737,7 +107737,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107839,7 +107839,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107849,7 +107849,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -107953,7 +107953,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -107963,7 +107963,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108066,7 +108066,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108076,7 +108076,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108179,7 +108179,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108189,7 +108189,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108292,7 +108292,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108302,7 +108302,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108406,7 +108406,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108416,7 +108416,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108519,7 +108519,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108529,7 +108529,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108627,7 +108627,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108637,7 +108637,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108742,7 +108742,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108752,7 +108752,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108856,7 +108856,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108866,7 +108866,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -108971,7 +108971,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -108981,7 +108981,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109086,7 +109086,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109096,7 +109096,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109201,7 +109201,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109211,7 +109211,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109315,7 +109315,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109325,7 +109325,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109427,7 +109427,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109437,7 +109437,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109542,7 +109542,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109552,7 +109552,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109654,7 +109654,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109664,7 +109664,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109767,7 +109767,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109777,7 +109777,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109876,7 +109876,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109886,7 +109886,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -109982,7 +109982,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -109992,7 +109992,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110098,7 +110098,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110108,7 +110108,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110211,7 +110211,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110221,7 +110221,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110335,7 +110335,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110345,7 +110345,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110446,7 +110446,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110456,7 +110456,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110550,7 +110550,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110560,7 +110560,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110657,7 +110657,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110667,7 +110667,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110770,7 +110770,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110780,7 +110780,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110881,7 +110881,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -110891,7 +110891,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -110994,7 +110994,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111004,7 +111004,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111105,7 +111105,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111115,7 +111115,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111220,7 +111220,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111230,7 +111230,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111333,7 +111333,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111343,7 +111343,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111447,7 +111447,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111457,7 +111457,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111561,7 +111561,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111571,7 +111571,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111673,7 +111673,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111683,7 +111683,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111789,7 +111789,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111799,7 +111799,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -111901,7 +111901,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -111911,7 +111911,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112010,7 +112010,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112020,7 +112020,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112124,7 +112124,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112134,7 +112134,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112236,7 +112236,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112246,7 +112246,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112350,7 +112350,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112360,7 +112360,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112466,7 +112466,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112476,7 +112476,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112578,7 +112578,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112588,7 +112588,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112691,7 +112691,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112701,7 +112701,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112805,7 +112805,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112815,7 +112815,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -112918,7 +112918,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -112928,7 +112928,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113030,7 +113030,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113040,7 +113040,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113143,7 +113143,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113153,7 +113153,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113256,7 +113256,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113266,7 +113266,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113369,7 +113369,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113379,7 +113379,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113484,7 +113484,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113494,7 +113494,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113608,7 +113608,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113618,7 +113618,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113721,7 +113721,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113731,7 +113731,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113832,7 +113832,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113842,7 +113842,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -113943,7 +113943,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -113953,7 +113953,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114056,7 +114056,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114066,7 +114066,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114168,7 +114168,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114178,7 +114178,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114284,7 +114284,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114294,7 +114294,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114393,7 +114393,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114403,7 +114403,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114502,7 +114502,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114512,7 +114512,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114657,7 +114657,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114667,7 +114667,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114766,7 +114766,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114776,7 +114776,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114875,7 +114875,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114885,7 +114885,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -114988,7 +114988,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -114998,7 +114998,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115102,7 +115102,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115112,7 +115112,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115215,7 +115215,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115225,7 +115225,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115328,7 +115328,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115338,7 +115338,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115441,7 +115441,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115451,7 +115451,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115554,7 +115554,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115564,7 +115564,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115668,7 +115668,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115678,7 +115678,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115844,7 +115844,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115854,7 +115854,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -115959,7 +115959,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -115969,7 +115969,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116071,7 +116071,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116081,7 +116081,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116185,7 +116185,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116195,7 +116195,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116300,7 +116300,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116310,7 +116310,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116414,7 +116414,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116424,7 +116424,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116527,7 +116527,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116537,7 +116537,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116640,7 +116640,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116650,7 +116650,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116753,7 +116753,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116763,7 +116763,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116866,7 +116866,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116876,7 +116876,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -116979,7 +116979,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -116989,7 +116989,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117092,7 +117092,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117102,7 +117102,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117205,7 +117205,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117215,7 +117215,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117319,7 +117319,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117329,7 +117329,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117443,7 +117443,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117453,7 +117453,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117554,7 +117554,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117564,7 +117564,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117663,7 +117663,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117673,7 +117673,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117776,7 +117776,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117786,7 +117786,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -117889,7 +117889,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -117899,7 +117899,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118000,7 +118000,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118010,7 +118010,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118114,7 +118114,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118124,7 +118124,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118227,7 +118227,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118237,7 +118237,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118345,7 +118345,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118355,7 +118355,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118458,7 +118458,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118468,7 +118468,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118582,7 +118582,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118592,7 +118592,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118693,7 +118693,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118703,7 +118703,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118801,7 +118801,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118811,7 +118811,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -118913,7 +118913,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -118923,7 +118923,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119022,7 +119022,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119032,7 +119032,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119128,7 +119128,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119138,7 +119138,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119355,7 +119355,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119365,7 +119365,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119467,7 +119467,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119477,7 +119477,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119580,7 +119580,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119590,7 +119590,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119688,7 +119688,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119698,7 +119698,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119800,7 +119800,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119810,7 +119810,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -119912,7 +119912,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -119922,7 +119922,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120023,7 +120023,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120033,7 +120033,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120134,7 +120134,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120144,7 +120144,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120244,7 +120244,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120254,7 +120254,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120359,7 +120359,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120369,7 +120369,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120465,7 +120465,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120475,7 +120475,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120576,7 +120576,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120586,7 +120586,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120685,7 +120685,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120695,7 +120695,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120799,7 +120799,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120809,7 +120809,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -120912,7 +120912,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -120922,7 +120922,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121025,7 +121025,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121035,7 +121035,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121135,7 +121135,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121145,7 +121145,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121247,7 +121247,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121257,7 +121257,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121359,7 +121359,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121369,7 +121369,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121471,7 +121471,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121481,7 +121481,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121581,7 +121581,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121591,7 +121591,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121692,7 +121692,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121702,7 +121702,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121816,7 +121816,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121826,7 +121826,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -121927,7 +121927,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -121937,7 +121937,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122037,7 +122037,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122047,7 +122047,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122142,7 +122142,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122152,7 +122152,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122254,7 +122254,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122264,7 +122264,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122361,7 +122361,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122371,7 +122371,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122473,7 +122473,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122483,7 +122483,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122585,7 +122585,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122595,7 +122595,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122698,7 +122698,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122708,7 +122708,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122857,7 +122857,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122867,7 +122867,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -122964,7 +122964,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -122974,7 +122974,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123077,7 +123077,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123087,7 +123087,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123189,7 +123189,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123199,7 +123199,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123300,7 +123300,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123310,7 +123310,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123407,7 +123407,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123417,7 +123417,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123515,7 +123515,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123525,7 +123525,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123626,7 +123626,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123636,7 +123636,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123734,7 +123734,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123744,7 +123744,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123844,7 +123844,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123854,7 +123854,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -123956,7 +123956,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -123966,7 +123966,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124064,7 +124064,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124074,7 +124074,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124176,7 +124176,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124186,7 +124186,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124284,7 +124284,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124294,7 +124294,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124396,7 +124396,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124406,7 +124406,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124508,7 +124508,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124518,7 +124518,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124619,7 +124619,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124629,7 +124629,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124726,7 +124726,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124736,7 +124736,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124834,7 +124834,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124844,7 +124844,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -124946,7 +124946,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -124956,7 +124956,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125054,7 +125054,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125064,7 +125064,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125171,7 +125171,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125181,7 +125181,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125283,7 +125283,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125293,7 +125293,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125395,7 +125395,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125405,7 +125405,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125504,7 +125504,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125514,7 +125514,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125609,7 +125609,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125619,7 +125619,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125711,7 +125711,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125721,7 +125721,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125813,7 +125813,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125823,7 +125823,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -125915,7 +125915,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -125925,7 +125925,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126014,7 +126014,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126024,7 +126024,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126128,7 +126128,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126138,7 +126138,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126239,7 +126239,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126249,7 +126249,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126339,7 +126339,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126349,7 +126349,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126444,7 +126444,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126454,7 +126454,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126549,7 +126549,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126559,7 +126559,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126668,7 +126668,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126678,7 +126678,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126780,7 +126780,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126790,7 +126790,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126897,7 +126897,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -126907,7 +126907,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -126983,8 +126983,8 @@
         seconds: 120
       }
       caches {
-        name: "xcode_ios_17b5025f"
-        path: "xcode_ios_17b5025f.app"
+        name: "xcode_ios_17a324"
+        path: "xcode_ios_17a324.app"
       }
       build_numbers: YES
       service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -127010,7 +127010,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127020,7 +127020,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -127244,7 +127244,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127254,7 +127254,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -127404,7 +127404,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127414,7 +127414,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -127518,7 +127518,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127528,7 +127528,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -127630,7 +127630,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127640,7 +127640,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -127742,7 +127742,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127752,7 +127752,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -127856,7 +127856,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127866,7 +127866,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -127972,7 +127972,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -127982,7 +127982,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128088,7 +128088,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128098,7 +128098,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128202,7 +128202,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128212,7 +128212,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128315,7 +128315,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128325,7 +128325,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128428,7 +128428,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128438,7 +128438,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128541,7 +128541,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128551,7 +128551,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128652,7 +128652,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128662,7 +128662,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128768,7 +128768,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128778,7 +128778,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128883,7 +128883,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -128893,7 +128893,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -128996,7 +128996,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129006,7 +129006,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129112,7 +129112,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129122,7 +129122,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129224,7 +129224,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129234,7 +129234,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129338,7 +129338,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129348,7 +129348,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129450,7 +129450,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129460,7 +129460,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129556,7 +129556,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129566,7 +129566,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129679,7 +129679,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129689,7 +129689,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129792,7 +129792,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129802,7 +129802,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -129903,7 +129903,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -129913,7 +129913,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130010,7 +130010,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130020,7 +130020,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130122,7 +130122,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130132,7 +130132,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130231,7 +130231,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130241,7 +130241,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130387,7 +130387,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130397,7 +130397,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130543,7 +130543,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130553,7 +130553,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130653,7 +130653,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130663,7 +130663,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130763,7 +130763,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130773,7 +130773,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130878,7 +130878,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -130888,7 +130888,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -130993,7 +130993,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131003,7 +131003,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131169,7 +131169,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131179,7 +131179,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131282,7 +131282,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131292,7 +131292,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131394,7 +131394,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131404,7 +131404,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131500,7 +131500,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131510,7 +131510,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131613,7 +131613,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131623,7 +131623,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131725,7 +131725,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131735,7 +131735,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131838,7 +131838,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131848,7 +131848,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -131946,7 +131946,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -131956,7 +131956,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132052,7 +132052,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132062,7 +132062,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132166,7 +132166,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132176,7 +132176,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132276,7 +132276,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132286,7 +132286,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132391,7 +132391,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132401,7 +132401,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132505,7 +132505,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132515,7 +132515,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132618,7 +132618,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132628,7 +132628,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132731,7 +132731,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132741,7 +132741,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132844,7 +132844,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132854,7 +132854,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -132956,7 +132956,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -132966,7 +132966,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -133050,7 +133050,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -133060,7 +133060,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
@@ -133141,7 +133141,7 @@
           table: "gpu_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
+              test_id_regexp: "(ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+)|(://(chrome|content)/test\\\\:telemetry_gpu_integration_test[^/]*!.+)"
             }
           }
         }
@@ -133151,7 +133151,7 @@
           table: "blink_web_tests_try_test_results"
           test_results {
             predicate {
-              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)|(://[^/]*blink_web_tests!.+)|(://[^/]*_wpt_tests!.+)|(://[^/]*headless_shell_wpt!.+)"
             }
           }
         }
diff --git a/infra/config/generated/luci/luci-milo.cfg b/infra/config/generated/luci/luci-milo.cfg
index c247994..c665f3e 100644
--- a/infra/config/generated/luci/luci-milo.cfg
+++ b/infra/config/generated/luci/luci-milo.cfg
@@ -12518,17 +12518,17 @@
     short_name: "win"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/ToTRustLinux (dbg)"
+    name: "buildbucket/luci.chromium.ci/ToTRustLinux(dbg)"
     category: "Rust ToT"
     short_name: "lin"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/ToTMacRust (dbg)"
+    name: "buildbucket/luci.chromium.ci/ToTRustMac(dbg)"
     category: "Rust ToT"
     short_name: "mac"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/ToTWinRust(dbg)"
+    name: "buildbucket/luci.chromium.ci/ToTRustWin(dbg)"
     category: "Rust ToT"
     short_name: "win"
   }
@@ -12950,17 +12950,17 @@
     short_name: "ToT"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/ToTRustLinux (dbg)"
+    name: "buildbucket/luci.chromium.ci/ToTRustLinux(dbg)"
     category: "chromium.clang|Rust ToT"
     short_name: "lin"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/ToTMacRust (dbg)"
+    name: "buildbucket/luci.chromium.ci/ToTRustMac(dbg)"
     category: "chromium.clang|Rust ToT"
     short_name: "mac"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/ToTWinRust(dbg)"
+    name: "buildbucket/luci.chromium.ci/ToTRustWin(dbg)"
     category: "chromium.clang|Rust ToT"
     short_name: "win"
   }
diff --git a/infra/config/generated/luci/luci-scheduler.cfg b/infra/config/generated/luci/luci-scheduler.cfg
index 9138f63..71fe69c 100644
--- a/infra/config/generated/luci/luci-scheduler.cfg
+++ b/infra/config/generated/luci/luci-scheduler.cfg
@@ -2257,21 +2257,30 @@
   }
 }
 job {
-  id: "ToTMacRust (dbg)"
+  id: "ToTRustLinux(dbg)"
   realm: "ci"
   buildbucket {
     server: "cr-buildbucket.appspot.com"
     bucket: "ci"
-    builder: "ToTMacRust (dbg)"
+    builder: "ToTRustLinux(dbg)"
   }
 }
 job {
-  id: "ToTRustLinux (dbg)"
+  id: "ToTRustMac(dbg)"
   realm: "ci"
   buildbucket {
     server: "cr-buildbucket.appspot.com"
     bucket: "ci"
-    builder: "ToTRustLinux (dbg)"
+    builder: "ToTRustMac(dbg)"
+  }
+}
+job {
+  id: "ToTRustWin(dbg)"
+  realm: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "ci"
+    builder: "ToTRustWin(dbg)"
   }
 }
 job {
@@ -2356,15 +2365,6 @@
   }
 }
 job {
-  id: "ToTWinRust(dbg)"
-  realm: "ci"
-  buildbucket {
-    server: "cr-buildbucket.appspot.com"
-    bucket: "ci"
-    builder: "ToTWinRust(dbg)"
-  }
-}
-job {
   id: "ToTWindowsCoverage"
   realm: "ci"
   buildbucket {
@@ -6586,8 +6586,9 @@
   triggers: "ToTMacArm64PGO"
   triggers: "ToTMacCoverage"
   triggers: "ToTMacPGO"
-  triggers: "ToTMacRust (dbg)"
-  triggers: "ToTRustLinux (dbg)"
+  triggers: "ToTRustLinux(dbg)"
+  triggers: "ToTRustMac(dbg)"
+  triggers: "ToTRustWin(dbg)"
   triggers: "ToTWin"
   triggers: "ToTWin(dbg)"
   triggers: "ToTWin(dll)"
@@ -6597,7 +6598,6 @@
   triggers: "ToTWin64PGO"
   triggers: "ToTWinASanLibfuzzer"
   triggers: "ToTWinArm64PGO"
-  triggers: "ToTWinRust(dbg)"
   triggers: "ToTWindowsCoverage"
   triggers: "ToTiOS"
   triggers: "ToTiOSDevice"
diff --git a/infra/config/generated/sheriff-rotations/chromium.clang.txt b/infra/config/generated/sheriff-rotations/chromium.clang.txt
index 218d5a5..c1ba450 100644
--- a/infra/config/generated/sheriff-rotations/chromium.clang.txt
+++ b/infra/config/generated/sheriff-rotations/chromium.clang.txt
@@ -29,8 +29,9 @@
 ci/ToTMacArm64PGO
 ci/ToTMacCoverage
 ci/ToTMacPGO
-ci/ToTMacRust (dbg)
-ci/ToTRustLinux (dbg)
+ci/ToTRustLinux(dbg)
+ci/ToTRustMac(dbg)
+ci/ToTRustWin(dbg)
 ci/ToTWin
 ci/ToTWin(dbg)
 ci/ToTWin(dll)
@@ -39,7 +40,6 @@
 ci/ToTWin64(dll)
 ci/ToTWin64PGO
 ci/ToTWinASanLibfuzzer
-ci/ToTWinRust(dbg)
 ci/ToTWindowsCoverage
 ci/ToTiOS
 ci/ToTiOSDevice
diff --git a/infra/config/main.star b/infra/config/main.star
index d50e6f9..b24c9cc 100755
--- a/infra/config/main.star
+++ b/infra/config/main.star
@@ -166,6 +166,7 @@
     experiments = [
         "targets.module_name_without_slash",
         "targets.module_scheme_junit_tests",
+        "targets.module_scheme_regex",
         "targets.module_scheme_script_tests",
     ],
 )
diff --git a/infra/config/subprojects/chromium/ci/chromium.android.star b/infra/config/subprojects/chromium/ci/chromium.android.star
index f7ac572..f2b748a1 100644
--- a/infra/config/subprojects/chromium/ci/chromium.android.star
+++ b/infra/config/subprojects/chromium/ci/chromium.android.star
@@ -3973,6 +3973,16 @@
             "x86-64",
         ],
         per_test_modifications = {
+            "android_browsertests": targets.mixin(
+                swarming = targets.swarming(
+                    shards = 6,
+                ),
+            ),
+            "android_browsertests_no_fieldtrial": targets.mixin(
+                swarming = targets.swarming(
+                    shards = 6,
+                ),
+            ),
             "base_unittests": targets.mixin(
                 args = [
                     "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_14_15_16.base_unittests.filter",
diff --git a/infra/config/subprojects/chromium/ci/chromium.clang.star b/infra/config/subprojects/chromium/ci/chromium.clang.star
index bacca53b..a81806e 100644
--- a/infra/config/subprojects/chromium/ci/chromium.clang.star
+++ b/infra/config/subprojects/chromium/ci/chromium.clang.star
@@ -2172,7 +2172,7 @@
 ### the same gardening rotation
 
 ci.builder(
-    name = "ToTRustLinux (dbg)",
+    name = "ToTRustLinux(dbg)",
     description_html = "Builder that builds and tests chromium using ToT Rust," +
                        "built against ToT LLVM, on linux in debug mode.",
     builder_spec = builder_config.builder_spec(
@@ -2217,7 +2217,7 @@
 )
 
 ci.builder(
-    name = "ToTWinRust(dbg)",
+    name = "ToTRustWin(dbg)",
     description_html = "Builder that builds and tests chromium using ToT Rust," +
                        "built against ToT LLVM, on windows in debug mode.",
     builder_spec = builder_config.builder_spec(
@@ -2267,7 +2267,7 @@
 )
 
 tot_mac_builder(
-    name = "ToTMacRust (dbg)",
+    name = "ToTRustMac(dbg)",
     builder_spec = builder_config.builder_spec(
         gclient_config = builder_config.gclient_config(
             config = "chromium",
diff --git a/infra/config/subprojects/chromium/ci/chromium.fyi.star b/infra/config/subprojects/chromium/ci/chromium.fyi.star
index caf3fc2..855226c 100644
--- a/infra/config/subprojects/chromium/ci/chromium.fyi.star
+++ b/infra/config/subprojects/chromium/ci/chromium.fyi.star
@@ -1777,7 +1777,7 @@
             "mac_default_arm64",
             "mac_toolchain",
             "out_dir_arg",
-            "xcode_26_beta",
+            "xcode_26_main",
             "xctest",
         ],
     ),
@@ -1789,7 +1789,7 @@
     ),
     contact_team_email = "cobalt-appletv@google.com",
     execution_timeout = 3 * time.hour,
-    xcode = xcode.x26betabots,
+    xcode = xcode.xcode_default,
 )
 
 fyi_ios_builder(
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star b/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star
index d281cd86..495bf8c 100644
--- a/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star
+++ b/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star
@@ -730,7 +730,7 @@
     builderless = True,
     cpu = cpu.ARM64,
     contact_team_email = "cobalt-appletv@google.com",
-    xcode = xcode.x26betabots,
+    xcode = xcode.xcode_default,
 )
 
 ios_builder(
diff --git a/infra/inclusive_language_presubmit_exempt_dirs.txt b/infra/inclusive_language_presubmit_exempt_dirs.txt
index 2635b52..4e7b9fb 100644
--- a/infra/inclusive_language_presubmit_exempt_dirs.txt
+++ b/infra/inclusive_language_presubmit_exempt_dirs.txt
@@ -286,8 +286,6 @@
 third_party/afl/src/llvm_mode
 third_party/afl/src/qemu_mode
 third_party/android_build_tools/json
-third_party/android_deps/autorolled/committed/libs/com_google_errorprone_error_prone_annotations
-third_party/android_deps/autorolled/committed/libs/com_google_protobuf_protobuf_javalite
 third_party/android_deps/buildSrc/src/main/groovy
 third_party/android_deps/libs
 third_party/android_toolchain
@@ -443,7 +441,6 @@
 third_party/blink/web_tests/wpt_internal/webgpu/canvas_webgpu_transfer
 third_party/brotli
 third_party/brotli/enc
-third_party/bspatch
 third_party/byte_buddy
 third_party/chevron
 third_party/closure_compiler/compiler
diff --git a/internal b/internal
index 071ef84..fc0ea0f 160000
--- a/internal
+++ b/internal
@@ -1 +1 @@
-Subproject commit 071ef845c356de3e160bebd58809123322e91fb2
+Subproject commit fc0ea0f86ba750b89ededa08f1fa4b6c5aac3209
diff --git a/ios/chrome/app/background_refresh/BUILD.gn b/ios/chrome/app/background_refresh/BUILD.gn
index f5e8542..822368f2 100644
--- a/ios/chrome/app/background_refresh/BUILD.gn
+++ b/ios/chrome/app/background_refresh/BUILD.gn
@@ -59,6 +59,7 @@
     ":background_refresh",
     ":headers",
     "//base/test:test_support",
+    "//components/test/ios",
     "//ios/chrome/app:constants",
     "//ios/chrome/app/application_delegate:app_init_stage",
     "//ios/chrome/app/application_delegate:app_state",
diff --git a/ios/chrome/app/strings/ios_chromium_strings.grd b/ios/chrome/app/strings/ios_chromium_strings.grd
index 24450f1..081d5ea 100644
--- a/ios/chrome/app/strings/ios_chromium_strings.grd
+++ b/ios/chrome/app/strings/ios_chromium_strings.grd
@@ -808,6 +808,17 @@
       <message name="IDS_IOS_PARCEL_TRACKING_INFOBAR_PACKAGE_ALREADY_TRACKED_SUBTITLE" desc="Text for the subtitle string of the Parcel Tracking 'Package Already Tracked' infobar.">
         This package has already been tracked on Chromium.
       </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE" desc="Message displayed at the bottom of the passkey enrollement welcome screen, but just over the primary action button. Lets the user know to which account the passkey they're creating will be saved in if they do to tap the primary action button and keep going with the enrollment process.">
+        This passkey will be saved to Password Manager for <ph name="USER_EMAIL">$1<ex>peter.parker@gmail.com</ex></ph>
+      </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_TITLE" desc="Title of the screen shown when the user needs to create their Password Manager pin to set up and use passkeys with their Google Account.">
+        Start saving passkeys with Password Manager
+      </message>
+      <message name="IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE" desc="Subtitle of the screen shown when the user needs to create their Password Manager pin to set up passkeys on their device.">
+        To keep your passkeys safe, you’ll first need to create a recovery PIN.
+
+        Passkeys are saved in Password Manager, which lets you use them in Chromium on any device.
+      </message>
       <message name="IDS_IOS_PASSWORD_BOTTOM_SHEET_TITLE" desc="Title of the password bottom sheet. [iOS only]">
           Google Password Manager
       </message>
diff --git a/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE.png.sha1 b/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE.png.sha1
new file mode 100644
index 0000000..7de47be0
--- /dev/null
+++ b/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE.png.sha1
@@ -0,0 +1 @@
+b079967f838633b646ee270641dfa344263342b6
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_TITLE.png.sha1 b/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_TITLE.png.sha1
new file mode 100644
index 0000000..7de47be0
--- /dev/null
+++ b/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_TITLE.png.sha1
@@ -0,0 +1 @@
+b079967f838633b646ee270641dfa344263342b6
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE.png.sha1 b/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE.png.sha1
new file mode 100644
index 0000000..173022ba6
--- /dev/null
+++ b/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE.png.sha1
@@ -0,0 +1 @@
+e06cfe77d6a88c4f8c1499c1a588685d17dbb8e1
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_google_chrome_strings.grd b/ios/chrome/app/strings/ios_google_chrome_strings.grd
index 3181406..385302e 100644
--- a/ios/chrome/app/strings/ios_google_chrome_strings.grd
+++ b/ios/chrome/app/strings/ios_google_chrome_strings.grd
@@ -808,6 +808,17 @@
       <message name="IDS_IOS_PARCEL_TRACKING_INFOBAR_PACKAGE_ALREADY_TRACKED_SUBTITLE" desc="Text for the subtitle string of the Parcel Tracking 'Package Already Tracked' infobar.">
         This package has already been tracked on Chrome.
       </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE" desc="Message displayed at the bottom of the passkey enrollement welcome screen, but just over the primary action button. Lets the user know to which account the passkey they're creating will be saved in if they do to tap the primary action button and keep going with the enrollment process.">
+        This passkey will be saved to Google Password Manager for <ph name="USER_EMAIL">$1<ex>peter.parker@gmail.com</ex></ph>
+      </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_TITLE" desc="Title of the screen shown when the user needs to create their Google Password Manager pin to set up and use passkeys with their Google Account.">
+        Start saving passkeys with Google Password Manager
+      </message>
+      <message name="IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE" desc="Subtitle of the screen shown when the user needs to create their Google Password Manager pin to set up passkeys on their device.">
+        To keep your passkeys safe, you’ll first need to create a recovery PIN.
+
+        Passkeys are saved in Google Password Manager, which lets you use them in Chrome on any device.
+      </message>
       <message name="IDS_IOS_PASSWORD_BOTTOM_SHEET_TITLE" desc="Title of the password bottom sheet. [iOS only]">
           Google Password Manager
       </message>
diff --git a/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE.png.sha1 b/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE.png.sha1
new file mode 100644
index 0000000..16f3fff
--- /dev/null
+++ b/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_FOOTER_MESSAGE.png.sha1
@@ -0,0 +1 @@
+e307c656aa04d5b828f046d0597cf99905343dbf
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_TITLE.png.sha1 b/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_TITLE.png.sha1
new file mode 100644
index 0000000..16f3fff
--- /dev/null
+++ b/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_TITLE.png.sha1
@@ -0,0 +1 @@
+e307c656aa04d5b828f046d0597cf99905343dbf
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE.png.sha1 b/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE.png.sha1
new file mode 100644
index 0000000..1cd098e
--- /dev/null
+++ b/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_SUBTITLE.png.sha1
@@ -0,0 +1 @@
+47bc43de83ca3327ea760d542c77cea9228b03f3
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd
index 30b7788..bfe36e8 100644
--- a/ios/chrome/app/strings/ios_strings.grd
+++ b/ios/chrome/app/strings/ios_strings.grd
@@ -4258,9 +4258,6 @@
       <message name="IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_FIND_IN_PAGE" desc="The title for the context menu item to hide Find in Page. This should match the title of the Find in Page action in the menu." meaning="[iOS only] [Length: Unlimited]">
         Hide Find in Page
       </message>
-      <message name="IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_FOLLOW" desc="The title for the context menu item to hide Follow. This should match the title of the Follow action in the menu." meaning="[iOS only] [Length: Unlimited]">
-        Hide Follow <ph name="DOMAIN_NAME">$1<ex>google.com</ex></ph>
-      </message>
       <message name="IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_LENS_OVERLAY" desc="The title for the context menu item to hide Search screen with Google Lens. This should match the title of the Search screen with Google Lens action in the menu." meaning="[iOS only] [Length: Unlimited]">
         Hide Search screen with Google Lens
       </message>
@@ -4276,9 +4273,6 @@
       <message name="IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_TRANSLATE" desc="The title for the context menu item to hide Translate. This should match the title of the Translate action in the menu." meaning="[iOS only] [Length: Unlimited]">
         Hide Translate
       </message>
-      <message name="IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_UNFOLLOW" desc="The title for the context menu item to hide Unfollow. This should match the title of the Unfollow action in the menu. [iOS only]">
-        Hide Unfollow <ph name="DOMAIN_NAME">$1<ex>google.com</ex></ph>
-      </message>
       <message name="IDS_IOS_OVERFLOW_MENU_HIDE_DESTINATION_BOOKMARKS" desc="The title for the context menu item to hide Bookmarks. This should match the title of the Bookmarks destination in the menu." meaning="[iOS only] [Length: Unlimited]">
         Hide Bookmarks
       </message>
@@ -4400,15 +4394,42 @@
       <message name="IDS_IOS_PARTIAL_TRANSLATE_SWITCH_FULL_PAGE_TRANSLATION" desc="Title of the alert proposing to switch to full page translation if partial translate fails.">
         Switch to full Page translation
       </message>
+      <message name="IDS_IOS_PASSKEY_BOOTSTRAPPING_SUBTITLE" desc="Subtitle of the screen shown when the user needs to enter their Google Password Manager pin to use passkeys on their device.">
+        You’ll only have to do this once.
+      </message>
+      <message name="IDS_IOS_PASSKEY_BOOTSTRAPPING_TITLE" desc="Title of the screen shown when the user needs to enter their Google Password Manager pin to use passkeys on their device.">
+        Verify it’s you to use your passkeys on this device
+      </message>
       <message name="IDS_IOS_PASSKEY_CREATION_DATE" desc="Passkey creation date. [iOS only]">
         Created on <ph name="Date"><ex>2023/12/31</ex>$1</ph>
       </message>
       <message name="IDS_IOS_PASSKEY_DOES_NOT_WORK" desc="Label indicating that the passkey was marked for deletion and does not work anymore. [iOS only]">
         Doesn't work
       </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_1" desc="First step of the instructions on how to get set up to create and use passkeys with Google Password Manager. Lets the user know that they first need to create their recovery PIN.">
+        Create a recovery PIN
+      </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_2" desc="Second step of the instructions on how to get set up to create and use passkeys with Google Password Manager. Lets the user know that they'll be able to save their first passkey after they've created their recovery pin.">
+        Save your first passkey
+      </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_3" desc="Third step of the instructions on how to get set up to create and use passkeys with Google Password Manager. Lets the user know that they'll be able to sign in faster accross their devices if they use passkeys.">
+        Sign in faster across your devices
+      </message>
+      <message name="IDS_IOS_PASSKEY_ENROLLMENT_NOT_NOW_BUTTON" desc="Used as a title for a 'Not now' button." meaning="Abort a certain process. User doesn't want to keep going for now.">
+        Not now
+      </message>
       <message name="IDS_IOS_PASSKEY_HIDDEN_INFO" desc="Label in the popover informing the user that a passkey was deleted by a website and will be deleted from password manager soon. Includes a link to a help center article informing more about passkeys. Refer to Glossary for the meaning of 'passkey', do not translate it as 'password'. [iOS only]">
         This passkey doesn't work anymore. It was deleted from <ph name="WEBSITE">$1<ex>shrine.com</ex></ph> and will get deleted from here soon. <ph name="BEGIN_LINK">BEGIN_LINK</ph>About passkeys<ph name="END_LINK">END_LINK</ph>
       </message>
+      <message name="IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_TITLE" desc="Title of the screen shown when the user needs to create their Google Password Manager pin to set up passkeys on their device.">
+        Set up passkeys for this device
+      </message>
+      <message name="IDS_IOS_PASSKEY_WELCOME_SCREEN_GET_STARTED_BUTTON" desc="Used as a title for a 'Get started' button." meaning="Get set up to use a feature.">
+        Get started
+      </message>
+      <message name="IDS_IOS_PASSKEY_WELCOME_SCREEN_NEXT_BUTTON" desc="Used as a title for a 'Next' button." meaning="Go to the next step.">
+        Next
+      </message>
       <message name="IDS_IOS_PASSWORD_BOTTOM_SHEET_CONTINUE" desc="The action button to use the selected credentials to fill the username on a username only form without password.">
         Continue
       </message>
@@ -7454,9 +7475,6 @@
       <message name="IDS_IOS_TOOLS_MENU_CUSTOMIZATION_IPH" desc="The text on an IPH for the iOS menu telling users they can customize the menu">
         Customize your menu
       </message>
-      <message name="IDS_IOS_TOOLS_MENU_CUSTOMIZE_FOLLOW" desc="The iOS menu item for customizing the follow item. [iOS only]" meaning="[iOS only] Overflow menu item">
-        Follow
-      </message>
       <message name="IDS_IOS_TOOLS_MENU_DOWNLOADS" desc="The iOS menu item for opening the downloads folder [iOS only]" meaning="[Length: 16em] [iOS only] This is a feature name in title case.">
         Downloads
       </message>
@@ -7472,9 +7490,6 @@
       <message name="IDS_IOS_TOOLS_MENU_FIND_IN_PAGE" desc="The iOS menu item for searching in the current page [iOS only]" meaning="Open the Find In Page menu [Length: unlimited]">
         Find in Page…
       </message>
-      <message name="IDS_IOS_TOOLS_MENU_FOLLOW" desc="The iOS menu item for following web content. [iOS only]">
-        Follow <ph name="DOMAIN_NAME">$1<ex>google.com</ex></ph>
-      </message>
       <message name="IDS_IOS_TOOLS_MENU_HELP_MOBILE" desc="The Tools menu item for bringing up online help page." meaning="Open the help menu [Length: unlimited]">
         Help
       </message>
@@ -7574,9 +7589,6 @@
       <message name="IDS_IOS_TOOLS_MENU_TRANSLATE" desc="The iOS menu item for translating the current page [iOS only]" meaning="Open the translate infobar [Length: unlimited]">
         Translate
       </message>
-      <message name="IDS_IOS_TOOLS_MENU_UNFOLLOW" desc="The iOS menu item for unfollowing web content. [iOS only]">
-        Unfollow <ph name="DOMAIN_NAME">$1<ex>google.com</ex></ph>
-      </message>
       <message name="IDS_IOS_TOOLS_MENU_VISIT_COPIED_LINK" desc="If a user has a URL on their clipboard, this string will appear as an option when the user long-presses on Chrome's search icon. The user can select this option to visit the URL. This string is a complete sentence. If necessary for your language, you can translate as 'Visit link that you copied.'" meaning="[Lenth: unlimited]">
         Visit Link You Copied
       </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_FOLLOW.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_FOLLOW.png.sha1
deleted file mode 100644
index 1fb84e0..0000000
--- a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_FOLLOW.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-cd37f4e934f63dc4ffae2a0baa8c10a3a7319791
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_UNFOLLOW.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_UNFOLLOW.png.sha1
deleted file mode 100644
index 7f704b3..0000000
--- a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_UNFOLLOW.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4f306ed1f7f320776d144ea4fdf08bbe2cd5aeea
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_BOOTSTRAPPING_SUBTITLE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_BOOTSTRAPPING_SUBTITLE.png.sha1
new file mode 100644
index 0000000..c6a8985
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_BOOTSTRAPPING_SUBTITLE.png.sha1
@@ -0,0 +1 @@
+508a5875878b61873f28e7131af0f355aebefe05
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_BOOTSTRAPPING_TITLE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_BOOTSTRAPPING_TITLE.png.sha1
new file mode 100644
index 0000000..c6a8985
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_BOOTSTRAPPING_TITLE.png.sha1
@@ -0,0 +1 @@
+508a5875878b61873f28e7131af0f355aebefe05
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_1.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_1.png.sha1
new file mode 100644
index 0000000..16f3fff
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_1.png.sha1
@@ -0,0 +1 @@
+e307c656aa04d5b828f046d0597cf99905343dbf
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_2.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_2.png.sha1
new file mode 100644
index 0000000..16f3fff
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_2.png.sha1
@@ -0,0 +1 @@
+e307c656aa04d5b828f046d0597cf99905343dbf
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_3.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_3.png.sha1
new file mode 100644
index 0000000..16f3fff
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_3.png.sha1
@@ -0,0 +1 @@
+e307c656aa04d5b828f046d0597cf99905343dbf
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_NOT_NOW_BUTTON.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_NOT_NOW_BUTTON.png.sha1
new file mode 100644
index 0000000..c6a8985
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_ENROLLMENT_NOT_NOW_BUTTON.png.sha1
@@ -0,0 +1 @@
+508a5875878b61873f28e7131af0f355aebefe05
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_TITLE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_TITLE.png.sha1
new file mode 100644
index 0000000..1cd098e
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_PARTIAL_BOOTSTRAPPING_TITLE.png.sha1
@@ -0,0 +1 @@
+47bc43de83ca3327ea760d542c77cea9228b03f3
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_WELCOME_SCREEN_GET_STARTED_BUTTON.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_WELCOME_SCREEN_GET_STARTED_BUTTON.png.sha1
new file mode 100644
index 0000000..1cd098e
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_WELCOME_SCREEN_GET_STARTED_BUTTON.png.sha1
@@ -0,0 +1 @@
+47bc43de83ca3327ea760d542c77cea9228b03f3
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_WELCOME_SCREEN_NEXT_BUTTON.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_WELCOME_SCREEN_NEXT_BUTTON.png.sha1
new file mode 100644
index 0000000..c6a8985
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSKEY_WELCOME_SCREEN_NEXT_BUTTON.png.sha1
@@ -0,0 +1 @@
+508a5875878b61873f28e7131af0f355aebefe05
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_CUSTOMIZE_FOLLOW.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_CUSTOMIZE_FOLLOW.png.sha1
deleted file mode 100644
index ac24472..0000000
--- a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_CUSTOMIZE_FOLLOW.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d6640174961dd2ae94257df2f14f2cc5f0ee2a0d
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_FOLLOW.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_FOLLOW.png.sha1
deleted file mode 100644
index cc03201e..0000000
--- a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_FOLLOW.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-273e7e082df194f812c6e5984f1c5a018a263656
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_UNFOLLOW.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_UNFOLLOW.png.sha1
deleted file mode 100644
index f5171b0..0000000
--- a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_TOOLS_MENU_UNFOLLOW.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d730eabf71fbab854335eb0998adc6391313d66f
\ No newline at end of file
diff --git a/ios/chrome/browser/app_store_bundle/model/app_store_bundle_service_factory.mm b/ios/chrome/browser/app_store_bundle/model/app_store_bundle_service_factory.mm
index 7e2ea87..6ccf03a 100644
--- a/ios/chrome/browser/app_store_bundle/model/app_store_bundle_service_factory.mm
+++ b/ios/chrome/browser/app_store_bundle/model/app_store_bundle_service_factory.mm
@@ -31,8 +31,7 @@
 std::unique_ptr<KeyedService>
 AppStoreBundleServiceFactory::BuildServiceInstanceFor(
     ProfileIOS* profile) const {
-  if (base::FeatureList::IsEnabled(
-          segmentation_platform::features::kAppBundlePromoEphemeralCard)) {
+  if (segmentation_platform::features::IsAppBundlePromoEphemeralCardEnabled()) {
     return ios::provider::CreateAppStoreBundleService();
   }
   return nullptr;
diff --git a/ios/chrome/browser/authentication/account_menu/coordinator/BUILD.gn b/ios/chrome/browser/authentication/account_menu/coordinator/BUILD.gn
index 64b0ac1..bcc0e6d 100644
--- a/ios/chrome/browser/authentication/account_menu/coordinator/BUILD.gn
+++ b/ios/chrome/browser/authentication/account_menu/coordinator/BUILD.gn
@@ -80,6 +80,7 @@
     "//base/test:test_support",
     "//components/sync:test_support",
     "//components/sync/service",
+    "//components/test/ios",
     "//components/trusted_vault",
     "//ios/chrome/browser/authentication/account_menu/public",
     "//ios/chrome/browser/authentication/account_menu/ui",
diff --git a/ios/chrome/browser/authentication/ui_bundled/BUILD.gn b/ios/chrome/browser/authentication/ui_bundled/BUILD.gn
index 30eaba9..cfcd2c0b 100644
--- a/ios/chrome/browser/authentication/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/authentication/ui_bundled/BUILD.gn
@@ -142,6 +142,7 @@
     "//components/sync/base:features",
     "//components/sync_preferences",
     "//components/sync_preferences:test_support",
+    "//components/test/ios",
     "//components/variations",
     "//components/variations:test_support",
     "//components/version_info",
diff --git a/ios/chrome/browser/authentication/ui_bundled/authentication_flow/BUILD.gn b/ios/chrome/browser/authentication/ui_bundled/authentication_flow/BUILD.gn
index c1c5253..d7f59a0 100644
--- a/ios/chrome/browser/authentication/ui_bundled/authentication_flow/BUILD.gn
+++ b/ios/chrome/browser/authentication/ui_bundled/authentication_flow/BUILD.gn
@@ -162,6 +162,7 @@
     "//components/sync:test_support",
     "//components/sync_preferences",
     "//components/sync_preferences:test_support",
+    "//components/test/ios",
     "//ios/chrome/app:change_profile_commands",
     "//ios/chrome/app:change_profile_continuation",
     "//ios/chrome/browser/authentication/ui_bundled",
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/buggy_authentication_view_owner.h b/ios/chrome/browser/authentication/ui_bundled/signin/buggy_authentication_view_owner.h
index 669b172..6590113 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/buggy_authentication_view_owner.h
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/buggy_authentication_view_owner.h
@@ -5,6 +5,8 @@
 #ifndef IOS_CHROME_BROWSER_AUTHENTICATION_UI_BUNDLED_SIGNIN_BUGGY_AUTHENTICATION_VIEW_OWNER_H_
 #define IOS_CHROME_BROWSER_AUTHENTICATION_UI_BUNDLED_SIGNIN_BUGGY_AUTHENTICATION_VIEW_OWNER_H_
 
+#include <Foundation/Foundation.h>
+
 // Coordinators implementing this protocol may have the authentication view
 // directly displayed on top of `self.baseViewController`. This view is known to
 // disappear silently; See crbug.com/395959814. Any coordinator that start a
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/BUILD.gn b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/BUILD.gn
index 016e9ee3..534b209 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/BUILD.gn
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/BUILD.gn
@@ -70,6 +70,7 @@
     "//components/signin/public/identity_manager",
     "//components/signin/public/identity_manager/objc",
     "//components/sync_preferences:test_support",
+    "//components/test/ios",
     "//ios/chrome/app/profile",
     "//ios/chrome/browser/authentication/ui_bundled",
     "//ios/chrome/browser/authentication/ui_bundled:continuation_test",
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/reauth/BUILD.gn b/ios/chrome/browser/authentication/ui_bundled/signin/reauth/BUILD.gn
index fa1ea17..a36c85ae 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/reauth/BUILD.gn
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/reauth/BUILD.gn
@@ -31,6 +31,7 @@
     "//base/test:test_support",
     "//components/signin/public/identity_manager",
     "//components/signin/public/identity_manager:test_support",
+    "//components/test/ios",
     "//ios/chrome/browser/shared/model/application_context",
     "//ios/chrome/browser/shared/model/browser/test:test_support",
     "//ios/chrome/browser/shared/model/profile/test",
diff --git a/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn b/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn
index dffee4dc..36aebb0 100644
--- a/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn
+++ b/ios/chrome/browser/autofill/ui_bundled/form_input_accessory/BUILD.gn
@@ -90,6 +90,7 @@
     "//components/autofill/ios/form_util",
     "//components/autofill/ios/form_util:form_util_feature",
     "//components/autofill/ios/form_util:test_support",
+    "//components/test/ios",
     "//ios/chrome/browser/autofill/model:features",
     "//ios/chrome/browser/autofill/model:model_shared",
     "//ios/chrome/browser/autofill/model/bottom_sheet",
diff --git a/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn b/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn
index dd00df28..baea42f0 100644
--- a/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn
@@ -111,7 +111,8 @@
     "//ios/chrome/browser/download/model",
     "//ios/chrome/browser/download/ui:features",
     "//ios/chrome/browser/drive_file_picker/coordinator",
-    "//ios/chrome/browser/enterprise/data_controls",
+    "//ios/chrome/browser/enterprise/data_controls/coordinator",
+    "//ios/chrome/browser/enterprise/data_controls/model",
     "//ios/chrome/browser/favicon/model",
     "//ios/chrome/browser/feature_engagement/model",
     "//ios/chrome/browser/find_in_page/model",
diff --git a/ios/chrome/browser/browser_view/ui_bundled/DEPS b/ios/chrome/browser/browser_view/ui_bundled/DEPS
index a4c3fcd..6de75c3 100644
--- a/ios/chrome/browser/browser_view/ui_bundled/DEPS
+++ b/ios/chrome/browser/browser_view/ui_bundled/DEPS
@@ -29,8 +29,8 @@
   "+ios/chrome/browser/download/model",
   "+ios/chrome/browser/download/ui",
   "+ios/chrome/browser/drive_file_picker/coordinator/root_drive_file_picker_coordinator.h",
-  "+ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.h",
-  "+ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h",
+  "+ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.h",
+  "+ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h",
   "+ios/chrome/browser/feature_engagement/model",
   "+ios/chrome/browser/find_bar/ui_bundled",
   "+ios/chrome/browser/find_in_page/model",
diff --git a/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm b/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm
index 0d4f6cc6..e0fd2b6 100644
--- a/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm
+++ b/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm
@@ -110,7 +110,7 @@
 #import "ios/chrome/browser/download/model/pass_kit_tab_helper.h"
 #import "ios/chrome/browser/download/ui/features.h"
 #import "ios/chrome/browser/drive_file_picker/coordinator/root_drive_file_picker_coordinator.h"
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.h"
+#import "ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.h"
 #import "ios/chrome/browser/feature_engagement/model/tracker_factory.h"
 #import "ios/chrome/browser/feature_engagement/model/tracker_util.h"
 #import "ios/chrome/browser/find_in_page/model/find_tab_helper.h"
diff --git a/ios/chrome/browser/browser_view/ui_bundled/tab_lifecycle_mediator.mm b/ios/chrome/browser/browser_view/ui_bundled/tab_lifecycle_mediator.mm
index fed0d77e..59ecaa8 100644
--- a/ios/chrome/browser/browser_view/ui_bundled/tab_lifecycle_mediator.mm
+++ b/ios/chrome/browser/browser_view/ui_bundled/tab_lifecycle_mediator.mm
@@ -14,11 +14,12 @@
 #import "ios/chrome/browser/download/coordinator/download_manager_coordinator.h"
 #import "ios/chrome/browser/download/model/download_manager_tab_helper.h"
 #import "ios/chrome/browser/download/model/pass_kit_tab_helper.h"
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h"
+#import "ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h"
 #import "ios/chrome/browser/find_in_page/model/find_tab_helper.h"
 #import "ios/chrome/browser/follow/model/follow_tab_helper.h"
 #import "ios/chrome/browser/fullscreen/ui_bundled/fullscreen_controller.h"
 #import "ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h"
+#import "ios/chrome/browser/intelligence/features/features.h"
 #import "ios/chrome/browser/itunes_urls/model/itunes_urls_handler_tab_helper.h"
 #import "ios/chrome/browser/lens/model/lens_tab_helper.h"
 #import "ios/chrome/browser/mini_map/model/mini_map_tab_helper.h"
@@ -282,6 +283,13 @@
     id<BWGCommands> BWGCommandsHandler =
         HandlerForProtocol(_commandDispatcher, BWGCommands);
     BWGTabHelper->SetBwgCommandsHandler(BWGCommandsHandler);
+
+    // TODO(crbug.com/448157489): Remove this or refactor to
+    // `HandlerForProtocol`.
+    if (IsAskGeminiSnackbarEnabled()) {
+      BWGTabHelper->SetSnackbarCommandsHandler(
+          static_cast<id<SnackbarCommands>>(_commandDispatcher));
+    }
   }
 
   FindTabHelper* findTabHelper = FindTabHelper::FromWebState(webState);
@@ -411,6 +419,9 @@
   BwgTabHelper* BWGTabHelper = BwgTabHelper::FromWebState(webState);
   if (BWGTabHelper) {
     BWGTabHelper->SetBwgCommandsHandler(nil);
+    if (IsAskGeminiSnackbarEnabled()) {
+      BWGTabHelper->SetSnackbarCommandsHandler(nil);
+    }
   }
 
   FindTabHelper* findTabHelper = FindTabHelper::FromWebState(webState);
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/BUILD.gn b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/BUILD.gn
index db30c07..6a3f2fd 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/BUILD.gn
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/BUILD.gn
@@ -10,10 +10,14 @@
 
   deps = [
     "//base",
+    "//components/prefs",
+    "//components/prefs/ios",
     "//ios/chrome/browser/app_store_bundle/model",
     "//ios/chrome/browser/content_suggestions/ui_bundled:constants",
     "//ios/chrome/browser/content_suggestions/ui_bundled:public",
     "//ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/ui",
+    "//ios/chrome/browser/content_suggestions/ui_bundled/tips/model",
+    "//ios/chrome/browser/shared/model/prefs:pref_names",
   ]
 
   frameworks = [ "UIKit.framework" ]
@@ -25,7 +29,9 @@
 
   deps = [
     ":coordinator",
+    "//components/prefs:test_support",
     "//ios/chrome/browser/content_suggestions/ui_bundled:public",
+    "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/test/providers/app_store_bundle",
     "//ios/web/public/test",
     "//testing/gtest",
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.h b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.h
index 1192ccaf..89a82c11 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.h
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.h
@@ -13,6 +13,7 @@
 @class AppBundlePromoConfig;
 enum class ContentSuggestionsModuleType;
 class AppStoreBundleService;
+class PrefService;
 
 // Handles App Bundle promo module events.
 @protocol AppBundlePromoMediatorDelegate
@@ -40,7 +41,11 @@
     presentationAudience;
 
 - (instancetype)initWithAppStoreBundleService:
-    (AppStoreBundleService*)appStoreBundleService;
+                    (AppStoreBundleService*)appStoreBundleService
+                           profilePrefService:(PrefService*)profilePrefService
+    NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
 
 // Disconnects this mediator.
 - (void)disconnect;
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.mm b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.mm
index d046926f..0693006 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.mm
@@ -6,33 +6,69 @@
 
 #import "base/check.h"
 #import "base/memory/raw_ptr.h"
+#import "components/prefs/ios/pref_observer_bridge.h"
+#import "components/prefs/pref_change_registrar.h"
+#import "components/prefs/pref_service.h"
 #import "ios/chrome/browser/app_store_bundle/model/app_store_bundle_service.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/ui/app_bundle_promo_audience.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/ui/app_bundle_promo_config.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_constants.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_view_controller_audience.h"
+#import "ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h"
+#import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 
-@interface AppBundlePromoMediator () <AppBundlePromoAudience>
+@interface AppBundlePromoMediator () <AppBundlePromoAudience,
+                                      PrefObserverDelegate>
 
 @end
 
 @implementation AppBundlePromoMediator {
+  // The App Store Bundle service.
   raw_ptr<AppStoreBundleService> _appStoreBundleService;
+
+  // The profile Pref service.
+  raw_ptr<PrefService> _profilePrefService;
+
+  // Registrar for user Pref changes notifications.
+  PrefChangeRegistrar _profilePrefChangeRegistrar;
+
+  // Bridge to listen to Pref changes.
+  std::unique_ptr<PrefObserverBridge> _prefObserverBridge;
 }
 
 - (instancetype)initWithAppStoreBundleService:
-    (AppStoreBundleService*)appStoreBundleService {
-  CHECK(appStoreBundleService);
+                    (AppStoreBundleService*)appStoreBundleService
+                           profilePrefService:(PrefService*)profilePrefService {
   if ((self = [super init])) {
+    CHECK(appStoreBundleService);
+    CHECK(profilePrefService);
     _appStoreBundleService = appStoreBundleService;
+    _profilePrefService = profilePrefService;
     self.config = [[AppBundlePromoConfig alloc] init];
     self.config.audience = self;
+
+    if (!_prefObserverBridge) {
+      _prefObserverBridge = std::make_unique<PrefObserverBridge>(self);
+
+      _profilePrefChangeRegistrar.Init(profilePrefService);
+
+      _prefObserverBridge->ObserveChangesForPreference(
+          (prefs::kHomeCustomizationMagicStackTipsEnabled),
+          &_profilePrefChangeRegistrar);
+    }
   }
   return self;
 }
 
 - (void)disconnect {
   self.config = nil;
+  _appStoreBundleService = nil;
+
+  if (_prefObserverBridge) {
+    _profilePrefChangeRegistrar.RemoveAll();
+    _prefObserverBridge.reset();
+  }
+  _profilePrefService = nil;
 }
 
 - (void)removeModuleWithCompletion:(ProceduralBlock)completion {
@@ -51,4 +87,14 @@
                                                      completion);
 }
 
+#pragma mark - PrefObserverDelegate
+
+- (void)onPreferenceChanged:(const std::string&)preferenceName {
+  CHECK(_profilePrefService);
+  CHECK_EQ(preferenceName, prefs::kHomeCustomizationMagicStackTipsEnabled);
+  if (tips_prefs::IsTipsInMagicStackDisabled(_profilePrefService)) {
+    [self.delegate removeAppBundlePromoModuleWithCompletion:nil];
+  }
+}
+
 @end
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator_unittest.mm b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator_unittest.mm
index b302731f..6934104 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator_unittest.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator_unittest.mm
@@ -4,7 +4,10 @@
 
 #import "ios/chrome/browser/content_suggestions/ui_bundled/app_bundle_promo/coordinator/app_bundle_promo_mediator.h"
 
+#import "components/prefs/pref_registry_simple.h"
+#import "components/prefs/testing_pref_service.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_view_controller_audience.h"
+#import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/test/providers/app_store_bundle/test_app_store_bundle_service.h"
 #import "ios/web/public/test/web_task_environment.h"
 #import "testing/platform_test.h"
@@ -19,10 +22,13 @@
 
   void SetUp() override {
     PlatformTest::SetUp();
+    profile_pref_service_.registry()->RegisterBooleanPref(
+        prefs::kHomeCustomizationMagicStackTipsEnabled, true);
     TestAppStoreBundleService* app_store_bundle_service =
         new TestAppStoreBundleService();
     mediator_to_test_ = [[AppBundlePromoMediator alloc]
-        initWithAppStoreBundleService:app_store_bundle_service];
+        initWithAppStoreBundleService:app_store_bundle_service
+                   profilePrefService:&profile_pref_service_];
     EXPECT_NE(mediator_to_test_.config, nil);
     delegate_mock_ = OCMProtocolMock(@protocol(AppBundlePromoMediatorDelegate));
     presentation_audience_mock_ =
@@ -41,17 +47,26 @@
 
   web::WebTaskEnvironment task_environment_;
   AppBundlePromoMediator* mediator_to_test_;
+  TestingPrefServiceSimple profile_pref_service_;
   id delegate_mock_;
   id presentation_audience_mock_;
 };
 
+// Tests that`-removeModule` is called in response to a pref change disabling
+// Chrome Tips cards.
+TEST_F(AppBundlePromoMediatorTest, TestDisableModule) {
+  OCMExpect(
+      [delegate_mock_ removeAppBundlePromoModuleWithCompletion:[OCMArg any]]);
+  profile_pref_service_.SetBoolean(
+      prefs::kHomeCustomizationMagicStackTipsEnabled, false);
+  EXPECT_OCMOCK_VERIFY(delegate_mock_);
+}
+
 // Tests that the mediator correctly calls the delegate to remove the module.
 TEST_F(AppBundlePromoMediatorTest, TestRemoveModule) {
-  ProceduralBlock completion = ^{
-  };
   OCMExpect(
-      [delegate_mock_ removeAppBundlePromoModuleWithCompletion:completion]);
-  [mediator_to_test_ removeModuleWithCompletion:completion];
+      [delegate_mock_ removeAppBundlePromoModuleWithCompletion:[OCMArg any]]);
+  [mediator_to_test_ removeModuleWithCompletion:[OCMArg any]];
   EXPECT_OCMOCK_VERIFY(delegate_mock_);
 }
 
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm b/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm
index 3cbc1ae..22db507e 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm
@@ -474,17 +474,19 @@
     [moduleMediators addObject:_tipsMediator];
   }
 
-  if (base::FeatureList::IsEnabled(
-          segmentation_platform::features::kAppBundlePromoEphemeralCard)) {
+  if (segmentation_platform::features::IsAppBundlePromoEphemeralCardEnabled() &&
+      !tips_prefs::IsTipsInMagicStackDisabled(prefs)) {
     _appBundlePromoMediator = [[AppBundlePromoMediator alloc]
         initWithAppStoreBundleService:AppStoreBundleServiceFactory::
-                                          GetForProfile(self.profile)];
+                                          GetForProfile(self.profile)
+                   profilePrefService:prefs];
     _appBundlePromoMediator.presentationAudience = self;
     [moduleMediators addObject:_appBundlePromoMediator];
   }
-  if (base::FeatureList::IsEnabled(
-          segmentation_platform::features::kDefaultBrowserMagicStackIos)) {
-    _defaultBrowserMediator = [[DefaultBrowserMediator alloc] init];
+  if (segmentation_platform::features::IsDefaultBrowserMagicStackEnabled() &&
+      !tips_prefs::IsTipsInMagicStackDisabled(prefs)) {
+    _defaultBrowserMediator =
+        [[DefaultBrowserMediator alloc] initWithProfilePrefService:prefs];
     _defaultBrowserMediator.presentationAudience = self;
     [moduleMediators addObject:_defaultBrowserMediator];
   }
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/BUILD.gn b/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/BUILD.gn
index 8e08fd6..eac3cf0 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/BUILD.gn
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/BUILD.gn
@@ -9,9 +9,12 @@
   ]
   deps = [
     "//base",
+    "//components/prefs/ios",
     "//ios/chrome/browser/content_suggestions/ui_bundled:public",
     "//ios/chrome/browser/content_suggestions/ui_bundled/default_browser/public:features",
     "//ios/chrome/browser/content_suggestions/ui_bundled/default_browser/ui",
+    "//ios/chrome/browser/content_suggestions/ui_bundled/tips/model",
+    "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/public/commands",
   ]
   frameworks = [ "UIKit.framework" ]
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.h b/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.h
index 92f766b..013cb81 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.h
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.h
@@ -13,6 +13,7 @@
 @class DefaultBrowserConfig;
 @protocol SettingsCommands;
 enum class ContentSuggestionsModuleType;
+class PrefService;
 
 // Delegate used to communicate events back to the owner of the
 // DefaultBrowserMediator.
@@ -39,6 +40,11 @@
 @property(nonatomic, weak) id<ContentSuggestionsViewControllerAudience>
     presentationAudience;
 
+- (instancetype)initWithProfilePrefService:(PrefService*)profilePrefService
+    NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
+
 // Disconnect the mediator.
 - (void)disconnect;
 
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.mm b/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.mm
index 6fcfe855..06d9a4bd 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.mm
@@ -4,36 +4,80 @@
 
 #import "ios/chrome/browser/content_suggestions/ui_bundled/default_browser/coordinator/default_browser_mediator.h"
 
+#import "components/prefs/ios/pref_observer_bridge.h"
+#import "components/prefs/pref_change_registrar.h"
+#import "components/prefs/pref_service.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_view_controller_audience.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/default_browser/ui/default_browser_commands.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/default_browser/ui/default_browser_config.h"
+#import "ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h"
+#import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/public/commands/settings_commands.h"
 
-@interface DefaultBrowserMediator () <DefaultBrowserCommands>
+@interface DefaultBrowserMediator () <DefaultBrowserCommands,
+                                      PrefObserverDelegate>
 
 @end
 
 @implementation DefaultBrowserMediator {
+  // The profile Pref service.
+  raw_ptr<PrefService> _profilePrefService;
+
+  // Registrar for user Pref changes notifications.
+  PrefChangeRegistrar _profilePrefChangeRegistrar;
+
+  // Bridge to listen to Pref changes.
+  std::unique_ptr<PrefObserverBridge> _prefObserverBridge;
 }
 
-- (instancetype)init {
+- (instancetype)initWithProfilePrefService:(PrefService*)profilePrefService {
   if ((self = [super init])) {
+    CHECK(profilePrefService);
+    _profilePrefService = profilePrefService;
     self.config = [[DefaultBrowserConfig alloc] init];
     self.config.commandHandler = self;
+
+    if (!_prefObserverBridge) {
+      _prefObserverBridge = std::make_unique<PrefObserverBridge>(self);
+
+      _profilePrefChangeRegistrar.Init(profilePrefService);
+
+      _prefObserverBridge->ObserveChangesForPreference(
+          (prefs::kHomeCustomizationMagicStackTipsEnabled),
+          &_profilePrefChangeRegistrar);
+    }
   }
   return self;
 }
 
 - (void)disconnect {
   self.config = nil;
+
+  if (_prefObserverBridge) {
+    _profilePrefChangeRegistrar.RemoveAll();
+    _prefObserverBridge.reset();
+  }
+  _profilePrefService = nil;
 }
 
 - (void)removeModuleWithCompletion:(ProceduralBlock)completion {
   [self.delegate removeDefaultBrowserPromoModuleWithCompletion:completion];
 }
 
+#pragma mark - DefaultBrowserCommands
+
 - (void)didTapDefaultBrowserPromo {
   [self.presentationAudience didTapDefaultBrowserPromo];
 }
 
+#pragma mark - PrefObserverDelegate
+
+- (void)onPreferenceChanged:(const std::string&)preferenceName {
+  CHECK(_profilePrefService);
+  CHECK_EQ(preferenceName, prefs::kHomeCustomizationMagicStackTipsEnabled);
+  if (tips_prefs::IsTipsInMagicStackDisabled(_profilePrefService)) {
+    [self.delegate removeDefaultBrowserPromoModuleWithCompletion:nil];
+  }
+}
+
 @end
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/magic_stack/magic_stack_ranking_model.mm b/ios/chrome/browser/content_suggestions/ui_bundled/magic_stack/magic_stack_ranking_model.mm
index 2c978b9c1..166d7b1 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/magic_stack/magic_stack_ranking_model.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/magic_stack/magic_stack_ranking_model.mm
@@ -566,8 +566,8 @@
         segmentation_platform::processing::ProcessedValue::FromFloat(
             [self isLensEnabled]));
 
-    if (base::FeatureList::IsEnabled(
-            segmentation_platform::features::kAppBundlePromoEphemeralCard)) {
+    if (segmentation_platform::features::
+            IsAppBundlePromoEphemeralCardEnabled()) {
       CHECK(_appStoreBundleService);
       inputContext->metadata_args.emplace(
           segmentation_platform::kAppBundleAppsInstalledCount,
@@ -575,8 +575,7 @@
               static_cast<float>(
                   _appStoreBundleService->GetInstalledAppCount())));
     }
-    if (base::FeatureList::IsEnabled(
-            segmentation_platform::features::kDefaultBrowserMagicStackIos)) {
+    if (segmentation_platform::features::IsDefaultBrowserMagicStackEnabled()) {
       inputContext->metadata_args.emplace(
           segmentation_platform::kIsDefaultBrowserChromeIos,
           segmentation_platform::processing::ProcessedValue::FromFloat(
@@ -653,16 +652,18 @@
         break;
       }
     } else if (label == segmentation_platform::kAppBundlePromoEphemeralModule) {
-      if (base::FeatureList::IsEnabled(
-              segmentation_platform::features::kAppBundlePromoEphemeralCard)) {
+      if (segmentation_platform::features::
+              IsAppBundlePromoEphemeralCardEnabled() &&
+          !tips_prefs::IsTipsInMagicStackDisabled(_prefService)) {
         _ephemeralCardToShow = ContentSuggestionsModuleType::kAppBundlePromo;
         card = _appBundlePromoMediator.config;
         break;
       }
     } else if (label ==
                segmentation_platform::kDefaultBrowserPromoEphemeralModule) {
-      if (base::FeatureList::IsEnabled(
-              segmentation_platform::features::kDefaultBrowserMagicStackIos)) {
+      if (segmentation_platform::features::
+              IsDefaultBrowserMagicStackEnabled() &&
+          !tips_prefs::IsTipsInMagicStackDisabled(_prefService)) {
         _ephemeralCardToShow = ContentSuggestionsModuleType::kDefaultBrowser;
         card = _defaultBrowserMediator.config;
         break;
@@ -938,15 +939,15 @@
         break;
       }
       case ContentSuggestionsModuleType::kAppBundlePromo:
-        if (base::FeatureList::IsEnabled(segmentation_platform::features::
-                                             kAppBundlePromoEphemeralCard) &&
+        if (segmentation_platform::features::
+                IsAppBundlePromoEphemeralCardEnabled() &&
             _appBundlePromoMediator && _appBundlePromoMediator.config) {
           [magicStackOrder addObject:_appBundlePromoMediator.config];
         }
         break;
       case ContentSuggestionsModuleType::kDefaultBrowser:
-        if (base::FeatureList::IsEnabled(segmentation_platform::features::
-                                             kDefaultBrowserMagicStackIos) &&
+        if (segmentation_platform::features::
+                IsDefaultBrowserMagicStackEnabled() &&
             _defaultBrowserMediator) {
           [magicStackOrder addObject:_defaultBrowserMediator.config];
         }
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/BUILD.gn b/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/BUILD.gn
index d4f2cd3..49004dd2 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/BUILD.gn
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/BUILD.gn
@@ -51,6 +51,7 @@
     "//ios/chrome/browser/content_suggestions/ui_bundled/tips/ui",
     "//ios/chrome/browser/shared/model/application_context",
     "//ios/chrome/browser/shared/model/browser/test:test_support",
+    "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/model/profile/test",
     "//ios/chrome/common/ui/confirmation_alert",
     "//ios/chrome/test:test_support",
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/tips_magic_stack_mediator_unittest.mm b/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/tips_magic_stack_mediator_unittest.mm
index 2e4a11c..ad40d89 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/tips_magic_stack_mediator_unittest.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/tips/coordinator/tips_magic_stack_mediator_unittest.mm
@@ -17,6 +17,7 @@
 #import "ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/tips/ui/tips_module_state.h"
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
+#import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
 #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h"
 #import "ios/web/public/test/web_task_environment.h"
@@ -37,7 +38,8 @@
     TestProfileIOS::Builder builder;
     profile_ = std::move(builder).Build();
 
-    tips_prefs::RegisterPrefs(profile_pref_service_.registry());
+    profile_pref_service_.registry()->RegisterBooleanPref(
+        prefs::kHomeCustomizationMagicStackTipsEnabled, true);
 
     // Create a `TipsMagicStackMediator` with an initial unknown
     // `TipIdentifier`.
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h b/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h
index cfb413c..2ecc8fd 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h
@@ -10,12 +10,6 @@
 
 namespace tips_prefs {
 
-// Pref that indicates whether the Tips module is disabled.
-extern const char kTipsInMagicStackDisabledPref[];
-
-// Registers the prefs associated with the Tips module.
-void RegisterPrefs(PrefRegistrySimple* registry);
-
 // Returns `true` if the Tips module is disabled.
 bool IsTipsInMagicStackDisabled(PrefService* prefs);
 
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.mm b/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.mm
index 42de91e..7649d859 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.mm
@@ -11,14 +11,6 @@
 
 namespace tips_prefs {
 
-const char kTipsInMagicStackDisabledPref[] = "tips_magic_stack.disabled";
-
-void RegisterPrefs(PrefRegistrySimple* registry) {
-  registry->RegisterBooleanPref(kTipsInMagicStackDisabledPref, false);
-  registry->RegisterBooleanPref(prefs::kHomeCustomizationMagicStackTipsEnabled,
-                                true);
-}
-
 bool IsTipsInMagicStackDisabled(PrefService* prefs) {
   return !prefs->GetBoolean(prefs::kHomeCustomizationMagicStackTipsEnabled);
 }
diff --git a/ios/chrome/browser/download/coordinator/BUILD.gn b/ios/chrome/browser/download/coordinator/BUILD.gn
index 4fcf47d..e9236db 100644
--- a/ios/chrome/browser/download/coordinator/BUILD.gn
+++ b/ios/chrome/browser/download/coordinator/BUILD.gn
@@ -83,6 +83,7 @@
     ":coordinator",
     "//base",
     "//base/test:test_support",
+    "//components/test/ios",
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/browser_view/ui_bundled",
     "//ios/chrome/browser/download/model",
diff --git a/ios/chrome/browser/enterprise/data_controls/BUILD.gn b/ios/chrome/browser/enterprise/data_controls/BUILD.gn
index 49292bf..97975effd 100644
--- a/ios/chrome/browser/enterprise/data_controls/BUILD.gn
+++ b/ios/chrome/browser/enterprise/data_controls/BUILD.gn
@@ -8,12 +8,6 @@
 
 source_set("data_controls") {
   sources = [
-    "clipboard_utils.h",
-    "clipboard_utils.mm",
-    "data_controls_dialog_coordinator.h",
-    "data_controls_dialog_coordinator.mm",
-    "data_controls_tab_helper.h",
-    "data_controls_tab_helper.mm",
     "ios_rules_service.h",
     "ios_rules_service.mm",
     "ios_rules_service_factory.h",
@@ -23,59 +17,25 @@
   public_deps = [ "//components/enterprise/data_controls/core/browser" ]
 
   deps = [
-    ":data_controls_utils",
     "//base",
     "//components/prefs",
-    "//components/strings",
-    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
     "//ios/chrome/browser/shared/model/profile",
     "//ios/chrome/browser/shared/model/profile:profile_keyed_service_factory",
-    "//ios/chrome/browser/shared/public/commands",
-    "//ios/components/enterprise/data_controls:features",
-    "//ios/web/public",
-    "//ios/web/public:web_state_observer",
-    "//ui/base/clipboard",
-  ]
-}
-
-source_set("data_controls_utils") {
-  sources = [
-    "data_controls_utils.h",
-    "data_controls_utils.mm",
-  ]
-  deps = [
-    "//base",
-    "//components/enterprise/data_controls/core/browser",
-    "//components/strings",
-    "//ui/base",
+    "//url",
   ]
 }
 
 source_set("unit_tests") {
   testonly = true
-  sources = [
-    "data_controls_dialog_coordinator_unittest.mm",
-    "data_controls_tab_helper_unittest.mm",
-    "data_controls_utils_unittest.mm",
-    "ios_rules_service_unittest.mm",
-  ]
+  sources = [ "ios_rules_service_unittest.mm" ]
   deps = [
     ":data_controls",
-    ":data_controls_utils",
-    "//base",
-    "//base/test:test_support",
+    "//components/enterprise/data_controls/core/browser",
     "//components/enterprise/data_controls/core/browser:test_support",
-    "//components/strings",
     "//components/sync_preferences:test_support",
-    "//ios/chrome/browser/shared/model/browser/test:test_support",
     "//ios/chrome/browser/shared/model/profile/test",
-    "//ios/chrome/browser/shared/public/commands",
-    "//ios/chrome/browser/shared/ui/util",
     "//ios/chrome/test:test_support",
-    "//ios/chrome/test/fakes",
-    "//ios/components/enterprise/data_controls:features",
     "//ios/web/public/test",
-    "//ios/web/public/test/fakes",
     "//testing/gtest",
   ]
 }
diff --git a/ios/chrome/browser/enterprise/data_controls/coordinator/BUILD.gn b/ios/chrome/browser/enterprise/data_controls/coordinator/BUILD.gn
new file mode 100644
index 0000000..a4e279e
--- /dev/null
+++ b/ios/chrome/browser/enterprise/data_controls/coordinator/BUILD.gn
@@ -0,0 +1,30 @@
+# 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.
+
+source_set("coordinator") {
+  sources = [
+    "data_controls_dialog_coordinator.h",
+    "data_controls_dialog_coordinator.mm",
+  ]
+  deps = [
+    "//base",
+    "//ios/chrome/browser/enterprise/data_controls/utils",
+    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "data_controls_dialog_coordinator_unittest.mm" ]
+  deps = [
+    ":coordinator",
+    "//base",
+    "//base/test:test_support",
+    "//ios/chrome/browser/shared/model/browser/test:test_support",
+    "//ios/chrome/browser/shared/model/profile/test",
+    "//ios/chrome/browser/shared/ui/util",
+    "//ios/web/public/test",
+    "//testing/gtest",
+  ]
+}
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.h b/ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.h
similarity index 71%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.h
rename to ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.h
index a3b93df..29ef1cf 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.h
+++ b/ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_DIALOG_COORDINATOR_H_
-#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_DIALOG_COORDINATOR_H_
+#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_COORDINATOR_DATA_CONTROLS_DIALOG_COORDINATOR_H_
+#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_COORDINATOR_DATA_CONTROLS_DIALOG_COORDINATOR_H_
 
 #import "base/functional/callback.h"
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h"
 #import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h"
 
 // Coordinator for the Data Controls dialog.
@@ -26,4 +26,4 @@
 
 @end
 
-#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_DIALOG_COORDINATOR_H_
+#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_COORDINATOR_DATA_CONTROLS_DIALOG_COORDINATOR_H_
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.mm b/ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.mm
similarity index 94%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.mm
rename to ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.mm
index 17a4b4d..38c90915 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.mm
+++ b/ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.mm
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.h"
+#import "ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.h"
 
 #import "base/functional/callback.h"
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h"
 
 @implementation DataControlsDialogCoordinator {
   // The underlying alert controller used to show the dialog.
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator_unittest.mm b/ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator_unittest.mm
similarity index 98%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator_unittest.mm
rename to ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator_unittest.mm
index 696d8fe..6d105b6f 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator_unittest.mm
+++ b/ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator_unittest.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_dialog_coordinator.h"
+#import "ios/chrome/browser/enterprise/data_controls/coordinator/data_controls_dialog_coordinator.h"
 
 #import "base/apple/foundation_util.h"
 #import "base/functional/callback.h"
diff --git a/ios/chrome/browser/enterprise/data_controls/ios_rules_service.h b/ios/chrome/browser/enterprise/data_controls/ios_rules_service.h
index e5135a7e..f77ea72 100644
--- a/ios/chrome/browser/enterprise/data_controls/ios_rules_service.h
+++ b/ios/chrome/browser/enterprise/data_controls/ios_rules_service.h
@@ -27,10 +27,10 @@
   // Returns a clipboard verdict to be applied to a paste action. A nullptr
   // `source_profile` represents data coming from the OS clipboard.
   // `destionation_profile` is always expected to have a valid profile.
-  Verdict GetPasteVerdict(const GURL& source_url,
-                          const GURL& destionation_url,
-                          ProfileIOS* source_profile,
-                          ProfileIOS* destionation_profile);
+  virtual Verdict GetPasteVerdict(const GURL& source_url,
+                                  const GURL& destionation_url,
+                                  ProfileIOS* source_profile,
+                                  ProfileIOS* destionation_profile);
 
  private:
   // RulesServiceBase override.
diff --git a/ios/chrome/browser/enterprise/data_controls/model/BUILD.gn b/ios/chrome/browser/enterprise/data_controls/model/BUILD.gn
new file mode 100644
index 0000000..50df5c1a
--- /dev/null
+++ b/ios/chrome/browser/enterprise/data_controls/model/BUILD.gn
@@ -0,0 +1,43 @@
+# 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.
+
+source_set("model") {
+  sources = [
+    "data_controls_tab_helper.h",
+    "data_controls_tab_helper.mm",
+  ]
+  deps = [
+    "//base",
+    "//components/enterprise/data_controls/core/browser",
+    "//ios/chrome/browser/enterprise/data_controls",
+    "//ios/chrome/browser/enterprise/data_controls/utils",
+    "//ios/chrome/browser/shared/model/profile",
+    "//ios/chrome/browser/shared/public/commands",
+    "//ios/components/enterprise/data_controls:features",
+    "//ios/web/public",
+    "//ui/base/clipboard",
+    "//url",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "data_controls_tab_helper_unittest.mm" ]
+  deps = [
+    ":model",
+    "//base",
+    "//base/test:test_support",
+    "//components/enterprise/data_controls/core/browser:test_support",
+    "//components/strings",
+    "//components/sync_preferences:test_support",
+    "//ios/chrome/browser/shared/model/profile/test",
+    "//ios/chrome/browser/shared/public/commands",
+    "//ios/chrome/test/fakes",
+    "//ios/components/enterprise/data_controls:features",
+    "//ios/web/public/test",
+    "//ios/web/public/test/fakes",
+    "//testing/gtest",
+    "//ui/base",
+  ]
+}
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h
similarity index 87%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h
rename to ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h
index 1975a9d..8961c3c 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h
+++ b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_TAB_HELPER_H_
-#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_TAB_HELPER_H_
+#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_MODEL_DATA_CONTROLS_TAB_HELPER_H_
+#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_MODEL_DATA_CONTROLS_TAB_HELPER_H_
 
 #import "base/functional/callback.h"
 #import "base/memory/raw_ptr.h"
 #import "base/memory/weak_ptr.h"
 #import "components/enterprise/data_controls/core/browser/verdict.h"
-#import "ios/chrome/browser/enterprise/data_controls/clipboard_utils.h"
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h"
 #import "ios/chrome/browser/shared/public/commands/data_controls_commands.h"
 #import "ios/web/public/lazy_web_state_user_data.h"
 #import "url/gurl.h"
@@ -83,4 +83,4 @@
 
 }  // namespace data_controls
 
-#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_TAB_HELPER_H_
+#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_MODEL_DATA_CONTROLS_TAB_HELPER_H_
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.mm b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.mm
similarity index 95%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.mm
rename to ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.mm
index 145440d..91cfffd7 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.mm
+++ b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.mm
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h"
+#import "ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h"
 
 #import "base/feature_list.h"
 #import "base/functional/bind.h"
 #import "base/functional/callback.h"
 #import "components/enterprise/data_controls/core/browser/rule.h"
-#import "ios/chrome/browser/enterprise/data_controls/clipboard_utils.h"
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h"
 #import "ios/chrome/browser/shared/model/profile/profile_ios.h"
 #import "ios/components/enterprise/data_controls/features.h"
 #import "ios/web/public/web_state.h"
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper_unittest.mm b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper_unittest.mm
similarity index 99%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper_unittest.mm
rename to ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper_unittest.mm
index 30e9fbd6..1dd985a4 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper_unittest.mm
+++ b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper_unittest.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h"
+#import "ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h"
 
 #import "base/memory/raw_ptr.h"
 #import "base/run_loop.h"
diff --git a/ios/chrome/browser/enterprise/data_controls/utils/BUILD.gn b/ios/chrome/browser/enterprise/data_controls/utils/BUILD.gn
new file mode 100644
index 0000000..e5a6cabf
--- /dev/null
+++ b/ios/chrome/browser/enterprise/data_controls/utils/BUILD.gn
@@ -0,0 +1,46 @@
+# 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.
+
+source_set("utils") {
+  sources = [
+    "clipboard_utils.h",
+    "clipboard_utils.mm",
+    "data_controls_utils.h",
+    "data_controls_utils.mm",
+  ]
+  deps = [
+    "//base",
+    "//components/enterprise/data_controls/core/browser",
+    "//components/strings",
+    "//ios/chrome/browser/enterprise/data_controls",
+    "//ios/chrome/browser/shared/model/profile",
+    "//ios/web/public",
+    "//ui/base",
+    "//ui/base/clipboard",
+    "//url",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [
+    "clipboard_utils_unittest.mm",
+    "data_controls_utils_unittest.mm",
+  ]
+  deps = [
+    ":utils",
+    "//components/enterprise/data_controls/core/browser",
+    "//components/keyed_service/core",
+    "//components/strings",
+    "//ios/chrome/browser/enterprise/data_controls",
+    "//ios/chrome/browser/shared/model/profile",
+    "//ios/chrome/browser/shared/model/profile/test",
+    "//ios/chrome/test:test_support",
+    "//ios/web/public/test",
+    "//testing/gmock",
+    "//testing/gtest",
+    "//ui/base",
+    "//url",
+  ]
+}
diff --git a/ios/chrome/browser/enterprise/data_controls/clipboard_utils.h b/ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h
similarity index 88%
rename from ios/chrome/browser/enterprise/data_controls/clipboard_utils.h
rename to ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h
index 1ac6eb3..b52e700 100644
--- a/ios/chrome/browser/enterprise/data_controls/clipboard_utils.h
+++ b/ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_CLIPBOARD_UTILS_H_
-#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_CLIPBOARD_UTILS_H_
+#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_CLIPBOARD_UTILS_H_
+#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_CLIPBOARD_UTILS_H_
 
 #import "base/functional/callback.h"
 #import "base/functional/callback_forward.h"
@@ -56,4 +56,4 @@
 
 }  // namespace data_controls
 
-#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_CLIPBOARD_UTILS_H_
+#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_CLIPBOARD_UTILS_H_
diff --git a/ios/chrome/browser/enterprise/data_controls/clipboard_utils.mm b/ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.mm
similarity index 71%
rename from ios/chrome/browser/enterprise/data_controls/clipboard_utils.mm
rename to ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.mm
index 1f787710..26edef4b 100644
--- a/ios/chrome/browser/enterprise/data_controls/clipboard_utils.mm
+++ b/ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/enterprise/data_controls/clipboard_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h"
 
 #import <utility>
 
@@ -40,17 +40,27 @@
 CopyPolicyVerdicts IsCopyAllowedByPolicy(const GURL& source_url,
                                          const ui::ClipboardMetadata& metadata,
                                          ProfileIOS* source_profile) {
-  // TODO(crbug.com/438200537): This is the place holder for copy policy
-  // evaluation API.
   CHECK(source_profile);
 
   IOSRulesService* rules_service =
       IOSRulesServiceFactory::GetForProfile(source_profile);
-  CHECK(rules_service);
+  auto verdict = rules_service->GetCopyRestrictedBySourceVerdict(source_url);
 
-  Verdict verdict = rules_service->GetCopyRestrictedBySourceVerdict(source_url);
+  if (verdict.level() == Rule::Level::kBlock) {
+    return {std::move(verdict), false};
+  }
 
-  return CopyPolicyVerdicts{std::move(verdict), true};
+  auto os_clipboard_verdict =
+      rules_service->GetCopyToOSClipboardVerdict(source_url);
+  bool allow_copy_to_os = os_clipboard_verdict.level() != Rule::Level::kBlock;
+
+  if (verdict.level() == Rule::Level::kWarn ||
+      os_clipboard_verdict.level() == Rule::Level::kWarn) {
+    verdict = Verdict::MergeCopyWarningVerdicts(
+        std::move(verdict), std::move(os_clipboard_verdict));
+  }
+
+  return {std::move(verdict), allow_copy_to_os};
 }
 
 }  // namespace data_controls
diff --git a/ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils_unittest.mm b/ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils_unittest.mm
new file mode 100644
index 0000000..7113681b
--- /dev/null
+++ b/ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils_unittest.mm
@@ -0,0 +1,171 @@
+// 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.
+
+#import "ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h"
+
+#import "components/enterprise/data_controls/core/browser/verdict.h"
+#import "components/keyed_service/core/keyed_service.h"
+#import "ios/chrome/browser/enterprise/data_controls/ios_rules_service.h"
+#import "ios/chrome/browser/enterprise/data_controls/ios_rules_service_factory.h"
+#import "ios/chrome/browser/shared/model/profile/profile_ios.h"
+#import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
+#import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h"
+#import "ios/web/public/test/web_task_environment.h"
+#import "testing/gmock/include/gmock/gmock.h"
+#import "testing/gtest/include/gtest/gtest.h"
+#import "testing/platform_test.h"
+#import "url/gurl.h"
+
+using ::testing::_;
+
+namespace data_controls {
+
+namespace {
+
+const char kSourceUrl[] = "https://google.com";
+const char kDestinationUrl[] = "https://test.com";
+
+class MockIOSRulesService : public IOSRulesService {
+ public:
+  explicit MockIOSRulesService(ProfileIOS* profile)
+      : IOSRulesService(profile) {}
+
+  MOCK_METHOD(Verdict,
+              GetPasteVerdict,
+              (const GURL&, const GURL&, ProfileIOS*, ProfileIOS*),
+              (override));
+  MOCK_METHOD(Verdict,
+              GetCopyRestrictedBySourceVerdict,
+              (const GURL&),
+              (const, override));
+  MOCK_METHOD(Verdict,
+              GetCopyToOSClipboardVerdict,
+              (const GURL&),
+              (const, override));
+};
+
+std::unique_ptr<KeyedService> BuildMockIOSRulesService(ProfileIOS* profile) {
+  return std::make_unique<MockIOSRulesService>(profile);
+}
+
+}  // namespace
+
+class ClipboardUtilsTest : public PlatformTest {
+ public:
+  ClipboardUtilsTest() {
+    TestProfileIOS::Builder builder;
+    builder.AddTestingFactory(IOSRulesServiceFactory::GetInstance(),
+                              base::BindOnce(&BuildMockIOSRulesService));
+    profile_ = std::move(builder).Build();
+    rules_service_ = static_cast<MockIOSRulesService*>(
+        IOSRulesServiceFactory::GetForProfile(profile_.get()));
+  }
+
+ protected:
+  web::WebTaskEnvironment task_environment_;
+  IOSChromeScopedTestingLocalState scoped_testing_local_state_;
+  std::unique_ptr<TestProfileIOS> profile_;
+  raw_ptr<MockIOSRulesService> rules_service_;
+};
+
+TEST_F(ClipboardUtilsTest, IsPasteAllowedByPolicy_Allow) {
+  GURL source_url(kSourceUrl);
+  GURL destination_url(kDestinationUrl);
+  EXPECT_CALL(*rules_service_, GetPasteVerdict(source_url, destination_url,
+                                               nullptr, profile_.get()))
+      .WillOnce(::testing::Return(Verdict::Allow()));
+
+  PastePolicyVerdict verdict = IsPasteAllowedByPolicy(
+      source_url, destination_url, {}, nullptr, profile_.get());
+  EXPECT_EQ(verdict.verdict.level(), Rule::Level::kAllow);
+}
+
+TEST_F(ClipboardUtilsTest, IsPasteAllowedByPolicy_Warn) {
+  GURL source_url(kSourceUrl);
+  GURL destination_url(kDestinationUrl);
+  EXPECT_CALL(*rules_service_, GetPasteVerdict(source_url, destination_url,
+                                               profile_.get(), profile_.get()))
+      .WillOnce(::testing::Return(Verdict::Warn({})));
+
+  PastePolicyVerdict verdict = IsPasteAllowedByPolicy(
+      source_url, destination_url, {}, profile_.get(), profile_.get());
+  EXPECT_EQ(verdict.verdict.level(), Rule::Level::kWarn);
+}
+
+TEST_F(ClipboardUtilsTest, IsPasteAllowedByPolicy_Block) {
+  GURL source_url(kSourceUrl);
+  GURL destination_url(kDestinationUrl);
+  EXPECT_CALL(*rules_service_, GetPasteVerdict(source_url, destination_url,
+                                               profile_.get(), profile_.get()))
+      .WillOnce(::testing::Return(Verdict::Block({})));
+
+  PastePolicyVerdict verdict = IsPasteAllowedByPolicy(
+      source_url, destination_url, {}, profile_.get(), profile_.get());
+  EXPECT_EQ(verdict.verdict.level(), Rule::Level::kBlock);
+}
+
+TEST_F(ClipboardUtilsTest, IsCopyAllowedByPolicy_Allow) {
+  GURL source_url(kSourceUrl);
+  EXPECT_CALL(*rules_service_, GetCopyRestrictedBySourceVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Allow()));
+  EXPECT_CALL(*rules_service_, GetCopyToOSClipboardVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Allow()));
+
+  CopyPolicyVerdicts verdicts =
+      IsCopyAllowedByPolicy(source_url, {}, profile_.get());
+  EXPECT_EQ(verdicts.copy_action_verdict.level(), Rule::Level::kAllow);
+  EXPECT_TRUE(verdicts.copy_to_os_clipbord);
+}
+
+TEST_F(ClipboardUtilsTest, IsCopyAllowedByPolicy_SourceBlocked) {
+  GURL source_url(kSourceUrl);
+  EXPECT_CALL(*rules_service_, GetCopyRestrictedBySourceVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Block({})));
+
+  CopyPolicyVerdicts verdicts =
+      IsCopyAllowedByPolicy(source_url, {}, profile_.get());
+  EXPECT_EQ(verdicts.copy_action_verdict.level(), Rule::Level::kBlock);
+  EXPECT_FALSE(verdicts.copy_to_os_clipbord);
+}
+
+TEST_F(ClipboardUtilsTest, IsCopyAllowedByPolicy_OSBlocked) {
+  GURL source_url(kSourceUrl);
+  EXPECT_CALL(*rules_service_, GetCopyRestrictedBySourceVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Allow()));
+  EXPECT_CALL(*rules_service_, GetCopyToOSClipboardVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Block({})));
+
+  CopyPolicyVerdicts verdicts =
+      IsCopyAllowedByPolicy(source_url, {}, profile_.get());
+  EXPECT_EQ(verdicts.copy_action_verdict.level(), Rule::Level::kAllow);
+  EXPECT_FALSE(verdicts.copy_to_os_clipbord);
+}
+
+TEST_F(ClipboardUtilsTest, IsCopyAllowedByPolicy_Warn) {
+  GURL source_url(kSourceUrl);
+  EXPECT_CALL(*rules_service_, GetCopyRestrictedBySourceVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Warn({})));
+  EXPECT_CALL(*rules_service_, GetCopyToOSClipboardVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Allow()));
+
+  CopyPolicyVerdicts verdicts =
+      IsCopyAllowedByPolicy(source_url, {}, profile_.get());
+  EXPECT_EQ(verdicts.copy_action_verdict.level(), Rule::Level::kWarn);
+  EXPECT_TRUE(verdicts.copy_to_os_clipbord);
+}
+
+TEST_F(ClipboardUtilsTest, IsCopyAllowedByPolicy_WarnAndOSWarn) {
+  GURL source_url(kSourceUrl);
+  EXPECT_CALL(*rules_service_, GetCopyRestrictedBySourceVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Warn({})));
+  EXPECT_CALL(*rules_service_, GetCopyToOSClipboardVerdict(source_url))
+      .WillOnce(::testing::Return(Verdict::Warn({})));
+
+  CopyPolicyVerdicts verdicts =
+      IsCopyAllowedByPolicy(source_url, {}, profile_.get());
+  EXPECT_EQ(verdicts.copy_action_verdict.level(), Rule::Level::kWarn);
+  EXPECT_TRUE(verdicts.copy_to_os_clipbord);
+}
+
+}  // namespace data_controls
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_utils.h b/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h
similarity index 72%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_utils.h
rename to ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h
index 073a989..f52d4524 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_utils.h
+++ b/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_UTILS_H_
-#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_UTILS_H_
+#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_DATA_CONTROLS_UTILS_H_
+#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_DATA_CONTROLS_UTILS_H_
 
 #import <UIKit/UIKit.h>
 
@@ -24,4 +24,4 @@
 
 }  // namespace data_controls
 
-#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_DATA_CONTROLS_UTILS_H_
+#endif  // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_DATA_CONTROLS_UTILS_H_
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_utils.mm b/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.mm
similarity index 96%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_utils.mm
rename to ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.mm
index 2f2f73c..76d6e48 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_utils.mm
+++ b/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h"
 
 #import "base/notreached.h"
 #import "components/strings/grit/components_strings.h"
diff --git a/ios/chrome/browser/enterprise/data_controls/data_controls_utils_unittest.mm b/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils_unittest.mm
similarity index 97%
rename from ios/chrome/browser/enterprise/data_controls/data_controls_utils_unittest.mm
rename to ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils_unittest.mm
index aec31c9..cce81ac 100644
--- a/ios/chrome/browser/enterprise/data_controls/data_controls_utils_unittest.mm
+++ b/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils_unittest.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_utils.h"
+#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h"
 
 #import "components/strings/grit/components_strings.h"
 #import "testing/gtest/include/gtest/gtest.h"
diff --git a/ios/chrome/browser/flags/BUILD.gn b/ios/chrome/browser/flags/BUILD.gn
index 990424a..15efac39 100644
--- a/ios/chrome/browser/flags/BUILD.gn
+++ b/ios/chrome/browser/flags/BUILD.gn
@@ -99,7 +99,6 @@
     "//ios/chrome/browser/policy/model:constants",
     "//ios/chrome/browser/policy/model:policy_util",
     "//ios/chrome/browser/popup_menu/ui_bundled/overflow_menu:feature_flags",
-    "//ios/chrome/browser/price_insights/model:feature",
     "//ios/chrome/browser/promos_manager/model:features",
     "//ios/chrome/browser/reader_mode/model:features",
     "//ios/chrome/browser/screen_time/model:buildflags",
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index d6abe7b..9c6417b 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -118,7 +118,6 @@
 #import "ios/chrome/browser/policy/model/policy_util.h"
 #import "ios/chrome/browser/policy/model/reporting/features.h"
 #import "ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/feature_flags.h"
-#import "ios/chrome/browser/price_insights/model/price_insights_feature.h"
 #import "ios/chrome/browser/promos_manager/model/features.h"
 #import "ios/chrome/browser/reader_mode/model/features.h"
 #import "ios/chrome/browser/screen_time/model/screen_time_buildflags.h"
@@ -420,22 +419,6 @@
      std::size(kDownloadListCustomUIParam), nullptr},
 };
 
-constexpr flags_ui::FeatureEntry::FeatureParam kPriceInsightsPriceIsLowParam[] =
-    {{kLowPriceParam, kLowPriceParamPriceIsLow}};
-constexpr flags_ui::FeatureEntry::FeatureParam
-    kPriceInsightsGoodDealNowParam[] = {
-        {kLowPriceParam, kLowPriceParamGoodDealNow}};
-constexpr flags_ui::FeatureEntry::FeatureParam
-    kPriceInsightsSeePriceHistoryParam[] = {
-        {kLowPriceParam, kLowPriceParamSeePriceHistory}};
-constexpr flags_ui::FeatureEntry::FeatureVariation kPriceInsightsVariations[] =
-    {{"Price is low", kPriceInsightsPriceIsLowParam,
-      std::size(kPriceInsightsPriceIsLowParam), nullptr},
-     {"Good deal now", kPriceInsightsGoodDealNowParam,
-      std::size(kPriceInsightsGoodDealNowParam), nullptr},
-     {"See price history", kPriceInsightsSeePriceHistoryParam,
-      std::size(kPriceInsightsSeePriceHistoryParam), nullptr}};
-
 const FeatureEntry::FeatureParam kIOSDockingPromoDisplayedAfterFRE[] = {
     {kIOSDockingPromoExperimentType, "0"}};
 const FeatureEntry::FeatureParam kIOSDockingPromoDisplayedAtAppLaunch[] = {
@@ -1316,6 +1299,14 @@
      std::size(kPageActionMenuBWGSessionValidityDuration), nullptr},
 };
 
+const FeatureEntry::FeatureParam kAskGeminiChipUseSnackbarVariation[] = {
+    {kAskGeminiChipUseSnackbar, "true"},
+};
+const FeatureEntry::FeatureVariation kAskGeminiChipVariations[] = {
+    {"Use Snackbar", kAskGeminiChipUseSnackbarVariation,
+     std::size(kAskGeminiChipUseSnackbarVariation), nullptr},
+};
+
 // LINT.IfChange(FingerprintingProtectionFeatureParams)
 const FeatureEntry::FeatureParam
     kEnableFingerprintingProtectionFilter_WithLogging[] = {
@@ -1605,11 +1596,6 @@
      flag_descriptions::kScreenTimeIntegrationDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kScreenTimeIntegration)},
 #endif
-    {"ios-shared-highlighting-color-change",
-     flag_descriptions::kIOSSharedHighlightingColorChangeName,
-     flag_descriptions::kIOSSharedHighlightingColorChangeDescription,
-     flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(web::features::kIOSSharedHighlightingColorChange)},
     {"ios-reactivation-notifications",
      flag_descriptions::kIOSReactivationNotificationsName,
      flag_descriptions::kIOSReactivationNotificationsDescription,
@@ -1682,10 +1668,6 @@
      flag_descriptions::kEnableDiscoverFeedDiscoFeedEndpointDescription,
      flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kEnableDiscoverFeedDiscoFeedEndpoint)},
-    {"shared-highlighting-amp",
-     flag_descriptions::kIOSSharedHighlightingAmpName,
-     flag_descriptions::kIOSSharedHighlightingAmpDescription, flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(shared_highlighting::kSharedHighlightingAmp)},
     {"ntp-view-hierarchy-repair",
      flag_descriptions::kNTPViewHierarchyRepairName,
      flag_descriptions::kNTPViewHierarchyRepairDescription, flags_ui::kOsIos,
@@ -1693,17 +1675,6 @@
     {"price-insights", commerce::flag_descriptions::kPriceInsightsName,
      commerce::flag_descriptions::kPriceInsightsDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(commerce::kPriceInsights)},
-    {"price-insights-ios", commerce::flag_descriptions::kPriceInsightsIosName,
-     commerce::flag_descriptions::kPriceInsightsIosDescription,
-     flags_ui::kOsIos,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(commerce::kPriceInsightsIos,
-                                    kPriceInsightsVariations,
-                                    "PriceInsightsIos")},
-    {"price-insights-high-price-ios",
-     commerce::flag_descriptions::kPriceInsightsHighPriceIosName,
-     commerce::flag_descriptions::kPriceInsightsHighPriceIosDescription,
-     flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(commerce::kPriceInsightsHighPriceIos)},
     {"enable-tflite-language-detection",
      flag_descriptions::kTFLiteLanguageDetectionName,
      flag_descriptions::kTFLiteLanguageDetectionDescription, flags_ui::kOsIos,
@@ -2497,7 +2468,9 @@
      flags_ui::kOsIos, FEATURE_VALUE_TYPE(kProactiveSuggestionsFramework)},
     {"ask-gemini-chip", flag_descriptions::kAskGeminiChipName,
      flag_descriptions::kAskGeminiChipDescription, flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(kAskGeminiChip)},
+     FEATURE_WITH_PARAMS_VALUE_TYPE(kAskGeminiChip,
+                                    kAskGeminiChipVariations,
+                                    "IOSAskGeminiChip")},
     {"gemini-cross-tab", flag_descriptions::kGeminiCrossTabName,
      flag_descriptions::kGeminiCrossTabDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kGeminiCrossTab)},
@@ -2882,7 +2855,24 @@
     {"ios-custom-file-upload-menu",
      flag_descriptions::kIOSCustomFileUploadMenuName,
      flag_descriptions::kIOSCustomFileUploadMenuDescription, flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(kIOSCustomFileUploadMenu)}};
+     FEATURE_VALUE_TYPE(kIOSCustomFileUploadMenu)},
+    {"ios-tab-group-entry-point-overflow-menu",
+     flag_descriptions::kTabGroupInOverflowMenuName,
+     flag_descriptions::kTabGroupInOverflowMenuDescription, flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(kTabGroupInOverflowMenu)},
+    {"ios-tab-group-entry-point-tab-icon",
+     flag_descriptions::kTabGroupInTabIconContextMenuName,
+     flag_descriptions::kTabGroupInTabIconContextMenuDescription,
+     flags_ui::kOsIos, FEATURE_VALUE_TYPE(kTabGroupInTabIconContextMenu)},
+    {"ios-tab-group-entry-point-tab-recall",
+     flag_descriptions::kTabRecallNewTabGroupButtonName,
+     flag_descriptions::kTabRecallNewTabGroupButtonDescription,
+     flags_ui::kOsIos, FEATURE_VALUE_TYPE(kTabRecallNewTabGroupButton)},
+    {"ios-tab-group-entry-point-tab-switcher",
+     flag_descriptions::kTabSwitcherOverflowMenuName,
+     flag_descriptions::kTabSwitcherOverflowMenuDescription, flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(kTabSwitcherOverflowMenu)},
+};
 
 bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
   return false;
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index 9d4363a..21f7b32 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -839,16 +839,6 @@
 const char kNTPMIAEntrypointDescription[] =
     "Selects which variant of the MIA entrypoint is used in the new tab page";
 
-const char kIOSSharedHighlightingColorChangeName[] =
-    "IOS Shared Highlighting color change";
-const char kIOSSharedHighlightingColorChangeDescription[] =
-    "Changes the Shared Highlighting color of the text fragment"
-    "away from the default yellow in iOS. Works with #scroll-to-text-ios flag.";
-
-const char kIOSSharedHighlightingAmpName[] = "Shared Highlighting on AMP pages";
-const char kIOSSharedHighlightingAmpDescription[] =
-    "Enables the Create Link option on AMP pages.";
-
 const char kIOSSoftLockName[] = "Soft Lock on iOS";
 const char kIOSSoftLockDescription[] = "Enables experimental Soft Lock on iOS.";
 
@@ -1667,6 +1657,23 @@
     "When enabled, the tab grid will show an empty thumbnail for tabs that "
     "don't have one.";
 
+const char kTabGroupInOverflowMenuName[] =
+    "Enable the Tab Group button in the overflow menu";
+const char kTabGroupInOverflowMenuDescription[] =
+    "When enabled, a Tab Group button will appear in the overflow menu.";
+
+const char kTabGroupInTabIconContextMenuName[] =
+    "Enable the Tab Group button in the tab icon context menu";
+const char kTabGroupInTabIconContextMenuDescription[] =
+    "When enabled, a Tab Group button will appear in the tab icon context "
+    "menu.";
+
+const char kTabRecallNewTabGroupButtonName[] =
+    "Enable the New Tab Group Button on the Tab Group recall surface.";
+const char kTabRecallNewTabGroupButtonDescription[] =
+    "When enabled, a New Tab Group Button will appear on the Tab Group recall "
+    "surface.";
+
 const char kTabResumptionName[] = "Enable Tab Resumption";
 const char kTabResumptionDescription[] =
     "When enabled, offer users with a quick shortcut to resume the last synced "
@@ -1676,6 +1683,12 @@
 const char kTabResumptionImagesDescription[] =
     "When enabled, a relevant image is displayed in Tab resumption items.";
 
+const char kTabSwitcherOverflowMenuName[] =
+    "Enable the Tab Switcher overflow menu";
+const char kTabSwitcherOverflowMenuDescription[] =
+    "When enabled, the Tab Switcher edit button and edit menu will be replaced "
+    "by a three dot button and overflow menu.";
+
 const char kUpdatedFRESequenceName[] =
     "Update the sequence of the First Run screens";
 const char kUpdatedFRESequenceDescription[] =
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index 61016da..992fedc3 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -490,12 +490,6 @@
 extern const char kNTPMIAEntrypointName[];
 extern const char kNTPMIAEntrypointDescription[];
 
-extern const char kIOSSharedHighlightingColorChangeName[];
-extern const char kIOSSharedHighlightingColorChangeDescription[];
-
-extern const char kIOSSharedHighlightingAmpName[];
-extern const char kIOSSharedHighlightingAmpDescription[];
-
 extern const char kIOSSoftLockName[];
 extern const char kIOSSoftLockDescription[];
 
@@ -981,12 +975,24 @@
 extern const char kTabGridEmptyThumbnailName[];
 extern const char kTabGridEmptyThumbnailDescription[];
 
+extern const char kTabGroupInOverflowMenuName[];
+extern const char kTabGroupInOverflowMenuDescription[];
+
+extern const char kTabGroupInTabIconContextMenuName[];
+extern const char kTabGroupInTabIconContextMenuDescription[];
+
+extern const char kTabRecallNewTabGroupButtonName[];
+extern const char kTabRecallNewTabGroupButtonDescription[];
+
 extern const char kTabResumptionName[];
 extern const char kTabResumptionDescription[];
 
 extern const char kTabResumptionImagesName[];
 extern const char kTabResumptionImagesDescription[];
 
+extern const char kTabSwitcherOverflowMenuName[];
+extern const char kTabSwitcherOverflowMenuDescription[];
+
 extern const char kUpdatedFRESequenceName[];
 extern const char kUpdatedFRESequenceDescription[];
 
diff --git a/ios/chrome/browser/follow/model/BUILD.gn b/ios/chrome/browser/follow/model/BUILD.gn
index 812ce5c..7d155fe 100644
--- a/ios/chrome/browser/follow/model/BUILD.gn
+++ b/ios/chrome/browser/follow/model/BUILD.gn
@@ -47,7 +47,6 @@
 
 source_set("tab_helper") {
   sources = [
-    "follow_menu_updater.h",
     "follow_tab_helper.h",
     "follow_tab_helper.mm",
   ]
diff --git a/ios/chrome/browser/follow/model/follow_menu_updater.h b/ios/chrome/browser/follow/model/follow_menu_updater.h
deleted file mode 100644
index dd12e4d..0000000
--- a/ios/chrome/browser/follow/model/follow_menu_updater.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_FOLLOW_MODEL_FOLLOW_MENU_UPDATER_H_
-#define IOS_CHROME_BROWSER_FOLLOW_MODEL_FOLLOW_MENU_UPDATER_H_
-
-@class WebPageURLs;
-
-// Protocol defining a updater for follow menu item.
-@protocol FollowMenuUpdater
-
-// Updates the follow menu item with follow `webPage`, `followed`,
-// `domainName` and `enabled`.
-- (void)updateFollowMenuItemWithWebPage:(WebPageURLs*)webPageURLs
-                               followed:(BOOL)followed
-                             domainName:(NSString*)domainName
-                                enabled:(BOOL)enabled;
-
-@end
-
-#endif  // IOS_CHROME_BROWSER_FOLLOW_MODEL_FOLLOW_MENU_UPDATER_H_
diff --git a/ios/chrome/browser/follow/model/follow_tab_helper.h b/ios/chrome/browser/follow/model/follow_tab_helper.h
index b0f16db..45bde75a3c 100644
--- a/ios/chrome/browser/follow/model/follow_tab_helper.h
+++ b/ios/chrome/browser/follow/model/follow_tab_helper.h
@@ -25,7 +25,6 @@
 
 class GURL;
 @class WebPageURLs;
-@protocol FollowMenuUpdater;
 @protocol HelpCommands;
 
 // FollowTabHelper encapsulates tab behavior related to following channels.
@@ -46,13 +45,6 @@
     should_update_follow_item_ = shoud_update_follow_item;
   }
 
-  // Sets the follow menu updater. `follow_menu_updater` is not retained by this
-  // tab helper.
-  void SetFollowMenuUpdater(id<FollowMenuUpdater> follow_menu_updater);
-
-  // Removes the follow menu updater.
-  void RemoveFollowMenuUpdater();
-
   // Updates the follow menu item.
   void UpdateFollowMenuItem();
 
@@ -109,9 +101,6 @@
   // page finishes loading.
   bool should_update_follow_item_ = false;
 
-  // Used to update the follow menu item.
-  __weak id<FollowMenuUpdater> follow_menu_updater_ = nil;
-
   base::CancelableTaskTracker history_task_tracker_;
   base::WeakPtrFactory<FollowTabHelper> weak_ptr_factory_{this};
 };
diff --git a/ios/chrome/browser/follow/model/follow_tab_helper.mm b/ios/chrome/browser/follow/model/follow_tab_helper.mm
index a423709..ac111b4b 100644
--- a/ios/chrome/browser/follow/model/follow_tab_helper.mm
+++ b/ios/chrome/browser/follow/model/follow_tab_helper.mm
@@ -22,7 +22,6 @@
 #import "ios/chrome/browser/follow/model/follow_action_state.h"
 #import "ios/chrome/browser/follow/model/follow_features.h"
 #import "ios/chrome/browser/follow/model/follow_java_script_feature.h"
-#import "ios/chrome/browser/follow/model/follow_menu_updater.h"
 #import "ios/chrome/browser/follow/model/follow_service.h"
 #import "ios/chrome/browser/follow/model/follow_service_factory.h"
 #import "ios/chrome/browser/follow/model/follow_util.h"
@@ -42,14 +41,6 @@
 #import "url/gurl.h"
 #import "url/origin.h"
 
-namespace {
-
-// The prefix of domain name that can be removed. It is used when generating the
-// follow item text.
-const char kRemovablePrefix[] = "www.";
-
-}  // namespace.
-
 FollowTabHelper::~FollowTabHelper() {
   DCHECK(!web_state_);
 }
@@ -69,15 +60,6 @@
   help_handler_ = help_handler;
 }
 
-void FollowTabHelper::SetFollowMenuUpdater(
-    id<FollowMenuUpdater> follow_menu_updater) {
-  if (!IsWebChannelsEnabled()) {
-    return;
-  }
-  DCHECK(web_state_);
-  follow_menu_updater_ = follow_menu_updater;
-}
-
 void FollowTabHelper::UpdateFollowMenuItem() {
   if (!IsWebChannelsEnabled()) {
     return;
@@ -90,14 +72,6 @@
   }
 }
 
-void FollowTabHelper::RemoveFollowMenuUpdater() {
-  if (!IsWebChannelsEnabled()) {
-    return;
-  }
-  follow_menu_updater_ = nil;
-  should_update_follow_item_ = true;
-}
-
 void FollowTabHelper::DidStartNavigation(
     web::WebState* web_state,
     web::NavigationContext* navigation_context) {
@@ -257,33 +231,6 @@
 
 void FollowTabHelper::UpdateFollowMenuItemWithURL(WebPageURLs* web_page_urls) {
   DCHECK(web_state_);
-
-  web::WebFrame* web_frame = FollowJavaScriptFeature::GetInstance()
-                                 ->GetWebFramesManager(web_state_)
-                                 ->GetMainWebFrame();
-  // Only update the follow menu item when web_page_urls is not null and when
-  // webFrame can be retrieved. Otherwise, leave the option disabled.
-  if (web_page_urls && web_frame) {
-    const bool followed =
-        FollowServiceFactory::GetForProfile(
-            ProfileIOS::FromBrowserState(web_state_->GetBrowserState()))
-            ->IsWebSiteFollowed(web_page_urls);
-
-    std::string domain_name = web_frame->GetSecurityOrigin().host();
-    if (base::StartsWith(domain_name, kRemovablePrefix)) {
-      domain_name = domain_name.substr(strlen(kRemovablePrefix));
-    }
-
-    const bool enabled =
-        GetFollowActionState(web_state_) == FollowActionStateEnabled;
-
-    [follow_menu_updater_
-        updateFollowMenuItemWithWebPage:web_page_urls
-                               followed:followed
-                             domainName:base::SysUTF8ToNSString(domain_name)
-                                enabled:enabled];
-  }
-
   should_update_follow_item_ = false;
 }
 
diff --git a/ios/chrome/browser/intelligence/bwg/model/BUILD.gn b/ios/chrome/browser/intelligence/bwg/model/BUILD.gn
index 7ae50e3..3279bd4 100644
--- a/ios/chrome/browser/intelligence/bwg/model/BUILD.gn
+++ b/ios/chrome/browser/intelligence/bwg/model/BUILD.gn
@@ -65,12 +65,15 @@
   deps = [
     ":snapshot_utils",
     "//components/google/core/common",
+    "//components/optimization_guide/core",
     "//ios/chrome/browser/intelligence/bwg/utils:constants",
     "//ios/chrome/browser/intelligence/features",
+    "//ios/chrome/browser/optimization_guide/model",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/model/profile",
     "//ios/chrome/browser/shared/model/utils",
     "//ios/chrome/browser/shared/public/commands",
+    "//ios/chrome/browser/shared/public/snackbar",
     "//ios/chrome/browser/snapshots/model",
     "//ios/web/public",
   ]
@@ -88,6 +91,7 @@
     "//ios/chrome/app:tests_hook",
     "//ios/chrome/browser/intelligence/bwg/metrics",
     "//ios/chrome/browser/intelligence/features",
+    "//ios/chrome/browser/optimization_guide/model",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/model/profile",
     "//ios/chrome/browser/signin/model:authentication_service",
@@ -106,6 +110,7 @@
     ":bwg_service",
     "//components/signin/public/identity_manager",
     "//ios/chrome/browser/intelligence/features",
+    "//ios/chrome/browser/optimization_guide/model",
     "//ios/chrome/browser/shared/model/profile",
     "//ios/chrome/browser/shared/model/profile:profile_keyed_service_factory",
     "//ios/chrome/browser/signin/model",
@@ -164,6 +169,7 @@
     "//ios/chrome/browser/intelligence/bwg/utils:constants",
     "//ios/chrome/browser/intelligence/features",
     "//ios/chrome/browser/intelligence/proto_wrappers",
+    "//ios/chrome/browser/optimization_guide/model",
     "//ios/chrome/browser/shared/model/application_context",
     "//ios/chrome/browser/shared/model/browser/test:test_support",
     "//ios/chrome/browser/shared/model/prefs:browser_prefs",
diff --git a/ios/chrome/browser/intelligence/bwg/model/DEPS b/ios/chrome/browser/intelligence/bwg/model/DEPS
index b997ae78..f74229a 100644
--- a/ios/chrome/browser/intelligence/bwg/model/DEPS
+++ b/ios/chrome/browser/intelligence/bwg/model/DEPS
@@ -1,4 +1,6 @@
 include_rules = [
+  "+ios/chrome/browser/optimization_guide/model/optimization_guide_service.h",
+  "+ios/chrome/browser/optimization_guide/model/optimization_guide_service_factory.h",
   "+ios/chrome/browser/signin/model/authentication_service.h",
   "+ios/chrome/browser/signin/model/authentication_service_factory.h",
   "+ios/chrome/browser/signin/model/identity_manager_factory.h",
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_browser_agent_unittest.mm b/ios/chrome/browser/intelligence/bwg/model/bwg_browser_agent_unittest.mm
index 71d080b..235aa8bb 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_browser_agent_unittest.mm
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_browser_agent_unittest.mm
@@ -12,6 +12,8 @@
 #import "ios/chrome/browser/favicon/model/favicon_service_factory.h"
 #import "ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h"
 #import "ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service_factory.h"
 #import "ios/chrome/browser/shared/model/browser/test/test_browser.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
@@ -28,11 +30,17 @@
  protected:
   BwgBrowserAgentTest() {
     TestProfileIOS::Builder profile_builder;
+    profile_builder.AddTestingFactory(
+        OptimizationGuideServiceFactory::GetInstance(),
+        OptimizationGuideServiceFactory::GetDefaultFactory());
     profile_ = std::move(profile_builder).Build();
     browser_ = std::make_unique<TestBrowser>(profile_.get());
     BwgBrowserAgent::CreateForBrowser(browser_.get());
     bwg_browser_agent_ = BwgBrowserAgent::FromBrowser(browser_.get());
 
+    optimization_guide_service_ =
+        OptimizationGuideServiceFactory::GetForProfile(profile_.get());
+
     mock_settings_handler_ = OCMProtocolMock(@protocol(SettingsCommands));
     [browser_->GetCommandDispatcher()
         startDispatchingToTarget:mock_settings_handler_
@@ -63,6 +71,7 @@
   std::unique_ptr<TestBrowser> browser_;
   raw_ptr<BwgBrowserAgent> bwg_browser_agent_;
   raw_ptr<BwgTabHelper> bwg_tab_helper_;
+  raw_ptr<OptimizationGuideService> optimization_guide_service_;
   id mock_settings_handler_;
   id mock_bwg_handler_;
 };
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_service.h b/ios/chrome/browser/intelligence/bwg/model/bwg_service.h
index 60961a81..c25f4cb 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_service.h
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_service.h
@@ -13,6 +13,7 @@
 namespace signin {
 class IdentityManager;
 }  // namespace signin
+class OptimizationGuideService;
 class PrefService;
 class ProfileIOS;
 namespace web {
@@ -26,7 +27,8 @@
   BwgService(ProfileIOS* profile,
              AuthenticationService* auth_service,
              signin::IdentityManager* identity_manager,
-             PrefService* pref_service);
+             PrefService* pref_service,
+             OptimizationGuideService* optimization_guide);
   ~BwgService() override;
   void Shutdown() override;
 
@@ -55,6 +57,9 @@
   // The PrefService associated with the Profile.
   raw_ptr<PrefService, DanglingUntriaged> pref_service_ = nullptr;
 
+  // The optimization guide service for model execution and page metadata.
+  raw_ptr<OptimizationGuideService> optimization_guide_ = nullptr;
+
   // Whether the user is ineligible by the Gemini Enterprise policy (not Chrome
   // Enterprise).
   bool is_disabled_by_gemini_policy_ = false;
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_service.mm b/ios/chrome/browser/intelligence/bwg/model/bwg_service.mm
index c9124ec..11b170b 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_service.mm
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_service.mm
@@ -12,6 +12,7 @@
 #import "ios/chrome/app/tests_hook.h"
 #import "ios/chrome/browser/intelligence/bwg/metrics/bwg_metrics.h"
 #import "ios/chrome/browser/intelligence/features/features.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/model/profile/profile_ios.h"
 #import "ios/chrome/browser/signin/model/authentication_service.h"
@@ -22,13 +23,20 @@
 BwgService::BwgService(ProfileIOS* profile,
                        AuthenticationService* auth_service,
                        signin::IdentityManager* identity_manager,
-                       PrefService* pref_service) {
+                       PrefService* pref_service,
+                       OptimizationGuideService* optimization_guide) {
   profile_ = profile;
   auth_service_ = auth_service;
   identity_manager_ = identity_manager;
   identity_manager_->AddObserver(this);
   pref_service_ = pref_service;
 
+  if (IsAskGeminiChipEnabled()) {
+    optimization_guide_ = optimization_guide;
+    optimization_guide_->RegisterOptimizationTypes(
+        {optimization_guide::proto::GLIC_CONTEXTUAL_CUEING});
+  }
+
   CheckGeminiEnterpriseEligibility();
 }
 
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_service_factory.mm b/ios/chrome/browser/intelligence/bwg/model/bwg_service_factory.mm
index dceb035c..29fcc1ec 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_service_factory.mm
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_service_factory.mm
@@ -7,6 +7,8 @@
 #import "components/signin/public/identity_manager/identity_manager.h"
 #import "ios/chrome/browser/intelligence/bwg/model/bwg_service.h"
 #import "ios/chrome/browser/intelligence/features/features.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service_factory.h"
 #import "ios/chrome/browser/shared/model/profile/profile_ios.h"
 #import "ios/chrome/browser/signin/model/authentication_service_factory.h"
 #import "ios/chrome/browser/signin/model/identity_manager_factory.h"
@@ -21,7 +23,8 @@
   }
   return std::make_unique<BwgService>(
       profile, AuthenticationServiceFactory::GetForProfile(profile),
-      IdentityManagerFactory::GetForProfile(profile), profile->GetPrefs());
+      IdentityManagerFactory::GetForProfile(profile), profile->GetPrefs(),
+      OptimizationGuideServiceFactory::GetForProfile(profile));
 }
 
 }  // namespace
@@ -42,6 +45,7 @@
     : ProfileKeyedServiceFactoryIOS("BwgService") {
   DependsOn(AuthenticationServiceFactory::GetInstance());
   DependsOn(IdentityManagerFactory::GetInstance());
+  DependsOn(OptimizationGuideServiceFactory::GetInstance());
 }
 
 BwgServiceFactory::~BwgServiceFactory() = default;
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_service_unittest.mm b/ios/chrome/browser/intelligence/bwg/model/bwg_service_unittest.mm
index fd639c9..04aacb0 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_service_unittest.mm
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_service_unittest.mm
@@ -14,6 +14,8 @@
 #import "components/signin/public/identity_manager/identity_test_environment.h"
 #import "ios/chrome/browser/intelligence/bwg/metrics/bwg_metrics.h"
 #import "ios/chrome/browser/intelligence/features/features.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service_factory.h"
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
@@ -38,9 +40,14 @@
         AuthenticationServiceFactory::GetInstance(),
         AuthenticationServiceFactory::GetFactoryWithDelegate(
             std::make_unique<FakeAuthenticationServiceDelegate>()));
+    builder.AddTestingFactory(
+        OptimizationGuideServiceFactory::GetInstance(),
+        OptimizationGuideServiceFactory::GetDefaultFactory());
     profile_ = std::move(builder).Build();
 
     auth_service_ = AuthenticationServiceFactory::GetForProfile(profile_.get());
+    optimization_guide_service_ =
+        OptimizationGuideServiceFactory::GetForProfile(profile_.get());
 
     pref_service_ = std::make_unique<TestingPrefServiceSimple>();
     pref_service_->registry()->RegisterIntegerPref(
@@ -50,7 +57,7 @@
 
     bwg_service_ = std::make_unique<BwgService>(
         profile_.get(), auth_service_, identity_test_env_.identity_manager(),
-        pref_service_.get());
+        pref_service_.get(), optimization_guide_service_);
   }
 
   void TearDown() override {
@@ -85,6 +92,7 @@
   std::unique_ptr<BwgService> bwg_service_;
   std::unique_ptr<TestingPrefServiceSimple> pref_service_;
   raw_ptr<AuthenticationService> auth_service_;
+  raw_ptr<OptimizationGuideService> optimization_guide_service_;
 
   base::HistogramTester histogram_tester_;
 };
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_session_handler_unittest.mm b/ios/chrome/browser/intelligence/bwg/model/bwg_session_handler_unittest.mm
index 83ee2d94..655876df 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_session_handler_unittest.mm
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_session_handler_unittest.mm
@@ -8,6 +8,8 @@
 #import "base/test/scoped_feature_list.h"
 #import "ios/chrome/browser/intelligence/bwg/metrics/bwg_metrics.h"
 #import "ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service_factory.h"
 #import "ios/chrome/browser/shared/model/browser/test/test_browser.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
@@ -33,12 +35,18 @@
   void SetUp() override {
     PlatformTest::SetUp();
     TestProfileIOS::Builder builder;
+    builder.AddTestingFactory(
+        OptimizationGuideServiceFactory::GetInstance(),
+        OptimizationGuideServiceFactory::GetDefaultFactory());
     profile_ = std::move(builder).Build();
     browser_ = std::make_unique<TestBrowser>(profile_.get());
     web_state_list_ = browser_->GetWebStateList();
     session_handler_ =
         [[BWGSessionHandler alloc] initWithWebStateList:web_state_list_];
 
+    optimization_guide_service_ =
+        OptimizationGuideServiceFactory::GetForProfile(profile_.get());
+
     // Set up mock handlers.
     mock_bwg_handler_ = OCMProtocolMock(@protocol(BWGCommands));
     mock_settings_handler_ = OCMProtocolMock(@protocol(SettingsCommands));
@@ -75,6 +83,7 @@
   raw_ptr<WebStateList> web_state_list_;
   base::HistogramTester histogram_tester_;
   BWGSessionHandler* session_handler_;
+  raw_ptr<OptimizationGuideService> optimization_guide_service_;
   id mock_bwg_handler_;
   id mock_settings_handler_;
 };
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h b/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h
index 881ca97..fbc0669 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.h
@@ -8,10 +8,15 @@
 #import <UIKit/UIKit.h>
 
 #import "base/scoped_observation.h"
+#import "components/optimization_guide/core/hints/optimization_guide_decider.h"
+#import "components/optimization_guide/core/hints/optimization_guide_decision.h"
+#import "components/optimization_guide/core/hints/optimization_metadata.h"
+#import "components/optimization_guide/proto/contextual_cueing_metadata.pb.h"
 #import "ios/web/public/web_state_observer.h"
 #import "ios/web/public/web_state_user_data.h"
 
 @protocol BWGCommands;
+@protocol SnackbarCommands;
 
 // Tab helper controlling the BWG feature and its current state for a given tab.
 class BwgTabHelper : public web::WebStateObserver,
@@ -61,6 +66,9 @@
   // Set the BWG commands handler, used to show/hide the BWG UI.
   void SetBwgCommandsHandler(id<BWGCommands> handler);
 
+  // Set the snackbar commands handler for presenting snackbars.
+  void SetSnackbarCommandsHandler(id<SnackbarCommands> handler);
+
   // Sets the state of `is_first_run`.
   void SetIsFirstRun(bool is_first_run);
 
@@ -70,6 +78,8 @@
   // WebStateObserver:
   void WasShown(web::WebState* web_state) override;
   void WasHidden(web::WebState* web_state) override;
+  void DidFinishNavigation(web::WebState* web_state,
+                           web::NavigationContext* navigation_context) override;
   void PageLoaded(
       web::WebState* web_state,
       web::PageLoadCompletionStatus load_completion_status) override;
@@ -80,6 +90,12 @@
 
   friend class web::WebStateUserData<BwgTabHelper>;
 
+  // Callback from OptimizationGuide metadata request.
+  void OnOptimizationGuideDecision(
+      const GURL& main_frame_url,
+      optimization_guide::OptimizationGuideDecision decision,
+      const optimization_guide::OptimizationMetadata& metadata);
+
   // Adding BwgTabHelperTest as a friend to facilitate validation of behavior in
   // tests.
   friend class BwgTabHelperTest;
@@ -119,12 +135,29 @@
   // Commands handler for BWG commands.
   __weak id<BWGCommands> bwg_commands_handler_ = nil;
 
+  // Commands handler for snackbars.
+  __weak id<SnackbarCommands> snackbar_commands_handler_ = nil;
+
   // The observation of the Web State.
   base::ScopedObservation<web::WebState, web::WebStateObserver>
       web_state_observation_{this};
 
   // Whether this is a first run experience.
   bool is_first_run_ = false;
+
+  // The URL from the previous successful main frame navigation. This will be
+  // empty if this is the first navigation for this tab or post-restart.
+  GURL previous_main_frame_url_;
+
+  // The contextual cueing metadata for the latest page loaded.
+  std::optional<optimization_guide::proto::GlicContextualCueingMetadata>
+      latest_load_contextual_cueing_metadata_;
+
+  // The optimization guide decider for page metadata.
+  raw_ptr<optimization_guide::OptimizationGuideDecider>
+      optimization_guide_decider_ = nullptr;
+
+  base::WeakPtrFactory<BwgTabHelper> weak_ptr_factory_{this};
 };
 
 #endif  // IOS_CHROME_BROWSER_INTELLIGENCE_BWG_MODEL_BWG_TAB_HELPER_H_
diff --git a/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.mm b/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.mm
index 9bf5248..d5c62641 100644
--- a/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.mm
+++ b/ios/chrome/browser/intelligence/bwg/model/bwg_tab_helper.mm
@@ -9,15 +9,24 @@
 #import "base/time/time.h"
 #import "base/values.h"
 #import "components/google/core/common/google_util.h"
+#import "components/optimization_guide/core/hints/optimization_guide_decider.h"
+#import "components/optimization_guide/core/hints/optimization_guide_decision.h"
+#import "components/optimization_guide/core/hints/optimization_metadata.h"
+#import "components/optimization_guide/proto/contextual_cueing_metadata.pb.h"
 #import "components/prefs/pref_service.h"
 #import "components/prefs/scoped_user_pref_update.h"
 #import "ios/chrome/browser/intelligence/bwg/model/bwg_snapshot_utils.h"
 #import "ios/chrome/browser/intelligence/bwg/utils/bwg_constants.h"
 #import "ios/chrome/browser/intelligence/features/features.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service.h"
+#import "ios/chrome/browser/optimization_guide/model/optimization_guide_service_factory.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/model/profile/profile_ios.h"
 #import "ios/chrome/browser/shared/model/utils/first_run_util.h"
 #import "ios/chrome/browser/shared/public/commands/bwg_commands.h"
+#import "ios/chrome/browser/shared/public/commands/snackbar_commands.h"
+#import "ios/chrome/browser/shared/public/snackbar/snackbar_message.h"
+#import "ios/chrome/browser/shared/public/snackbar/snackbar_message_action.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_tab_helper.h"
 #import "ios/web/public/navigation/navigation_context.h"
 #import "ios/web/public/web_state.h"
@@ -62,10 +71,20 @@
 }  // namespace
 
 BwgTabHelper::BwgTabHelper(web::WebState* web_state) : web_state_(web_state) {
+  ProfileIOS* profile =
+      ProfileIOS::FromBrowserState(web_state->GetBrowserState());
+  optimization_guide_decider_ =
+      OptimizationGuideServiceFactory::GetForProfile(profile);
   web_state_observation_.Observe(web_state);
 }
 
-BwgTabHelper::~BwgTabHelper() {}
+BwgTabHelper::~BwgTabHelper() {
+  if (web_state_) {
+    web_state_->RemoveObserver(this);
+    web_state_ = nullptr;
+  }
+  optimization_guide_decider_ = nullptr;
+}
 
 void BwgTabHelper::SetBwgUiShowing(bool showing) {
   is_bwg_ui_showing_ = showing;
@@ -181,6 +200,11 @@
   bwg_commands_handler_ = handler;
 }
 
+void BwgTabHelper::SetSnackbarCommandsHandler(id<SnackbarCommands> handler) {
+  CHECK(IsAskGeminiSnackbarEnabled());
+  snackbar_commands_handler_ = handler;
+}
+
 #pragma mark - WebStateObserver
 
 void BwgTabHelper::WasShown(web::WebState* web_state) {
@@ -202,6 +226,32 @@
   UpdateWebStateSnapshotInStorage();
 }
 
+void BwgTabHelper::DidFinishNavigation(
+    web::WebState* web_state,
+    web::NavigationContext* navigation_context) {
+  if (!IsAskGeminiChipEnabled()) {
+    return;
+  }
+
+  const GURL& current_url = navigation_context->GetUrl().GetWithoutRef();
+  if (previous_main_frame_url_ == current_url ||
+      navigation_context->IsSameDocument()) {
+    return;
+  }
+
+  previous_main_frame_url_ = current_url;
+  latest_load_contextual_cueing_metadata_.reset();
+
+  if (!optimization_guide_decider_ || !current_url.SchemeIsHTTPOrHTTPS()) {
+    return;
+  }
+
+  optimization_guide_decider_->CanApplyOptimization(
+      current_url, optimization_guide::proto::GLIC_CONTEXTUAL_CUEING,
+      base::BindOnce(&BwgTabHelper::OnOptimizationGuideDecision,
+                     weak_ptr_factory_.GetWeakPtr(), current_url));
+}
+
 void BwgTabHelper::PageLoaded(
     web::WebState* web_state,
     web::PageLoadCompletionStatus load_completion_status) {
@@ -224,6 +274,10 @@
     CleanupSessionFromPrefs(GetClientId());
   }
   web_state_ = nullptr;
+  if (IsAskGeminiChipEnabled()) {
+    optimization_guide_decider_ = nullptr;
+    latest_load_contextual_cueing_metadata_.reset();
+  }
 }
 
 #pragma mark - Private
@@ -308,3 +362,33 @@
     snapshot_tab_helper->UpdateSnapshotStorageWithImage(cached_snapshot_);
   }
 }
+
+void BwgTabHelper::OnOptimizationGuideDecision(
+    const GURL& main_frame_url,
+    optimization_guide::OptimizationGuideDecision decision,
+    const optimization_guide::OptimizationMetadata& metadata) {
+  CHECK(IsAskGeminiChipEnabled());
+  // The URL has changed so the metadata is obsolete.
+  if (previous_main_frame_url_ != main_frame_url) {
+    return;
+  }
+
+  if (decision != optimization_guide::OptimizationGuideDecision::kTrue) {
+    return;
+  }
+
+  latest_load_contextual_cueing_metadata_ = metadata.ParsedMetadata<
+      optimization_guide::proto::GlicContextualCueingMetadata>();
+  if (latest_load_contextual_cueing_metadata_) {
+    SnackbarMessageAction* action = [[SnackbarMessageAction alloc] init];
+    action.handler = ^{
+      [bwg_commands_handler_ startBWGFlowWithEntryPoint:bwg::EntryPoint::Promo];
+    };
+    action.title = [NSString stringWithFormat:@"✦ %@", @"Ask Gemini"];
+    SnackbarMessage* message =
+        [[SnackbarMessage alloc] initWithTitle:@"Ask about page?"];
+    message.action = action;
+
+    [snackbar_commands_handler_ showSnackbarMessage:message];
+  }
+}
diff --git a/ios/chrome/browser/intelligence/features/features.h b/ios/chrome/browser/intelligence/features/features.h
index f336481..02fccb9 100644
--- a/ios/chrome/browser/intelligence/features/features.h
+++ b/ios/chrome/browser/intelligence/features/features.h
@@ -35,6 +35,11 @@
 // Returns true if the Ask Gemini chip is enabled.
 bool IsAskGeminiChipEnabled();
 
+// Returns true if a snackbar should be shown when a site is eligible for Ask
+// Gemini.
+bool IsAskGeminiSnackbarEnabled();
+extern const char kAskGeminiChipUseSnackbar[];
+
 // Feature flag controlling the cross-tab floaty chat persistence.
 BASE_DECLARE_FEATURE(kGeminiCrossTab);
 
diff --git a/ios/chrome/browser/intelligence/features/features.mm b/ios/chrome/browser/intelligence/features/features.mm
index 97a26d0..7aa889c 100644
--- a/ios/chrome/browser/intelligence/features/features.mm
+++ b/ios/chrome/browser/intelligence/features/features.mm
@@ -35,10 +35,17 @@
 
 BASE_FEATURE(kAskGeminiChip, base::FEATURE_DISABLED_BY_DEFAULT);
 
+const char kAskGeminiChipUseSnackbar[] = "AskGeminiChipUseSnackbar";
+
 bool IsAskGeminiChipEnabled() {
   return base::FeatureList::IsEnabled(kAskGeminiChip);
 }
 
+bool IsAskGeminiSnackbarEnabled() {
+  return base::GetFieldTrialParamByFeatureAsBool(
+      kAskGeminiChip, kAskGeminiChipUseSnackbar, false);
+}
+
 BASE_FEATURE(kGeminiCrossTab, base::FEATURE_DISABLED_BY_DEFAULT);
 
 bool IsGeminiCrossTabEnabled() {
diff --git a/ios/chrome/browser/lens_overlay/model/BUILD.gn b/ios/chrome/browser/lens_overlay/model/BUILD.gn
index 5d0b655..b71d169 100644
--- a/ios/chrome/browser/lens_overlay/model/BUILD.gn
+++ b/ios/chrome/browser/lens_overlay/model/BUILD.gn
@@ -195,6 +195,7 @@
     "//base/test:test_support",
     "//components/lens:enterprise_policy",
     "//components/prefs",
+    "//components/test/ios",
     "//components/variations",
     "//components/variations:test_support",
     "//ios/chrome/browser/lens/ui_bundled:lens_entrypoint",
diff --git a/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm b/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm
index 0e8cc295..bd8d282 100644
--- a/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm
+++ b/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm
@@ -81,16 +81,7 @@
 bool LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
     std::optional<shared_highlighting::LinkGenerationError> error,
     const GURL& main_frame_url) {
-  if (!base::FeatureList::IsEnabled(
-          shared_highlighting::kSharedHighlightingAmp)) {
-    return false;
-  }
-  if (!error ||
-      error.value() !=
-          shared_highlighting::LinkGenerationError::kIncorrectSelector) {
-    return false;
-  }
-  return shared_highlighting::SupportsLinkGenerationInIframe(main_frame_url);
+  return false;
 }
 
 void LinkToTextJavaScriptFeature::HandleResponse(
diff --git a/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature_unittest.mm b/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature_unittest.mm
index 01a8c66..e1b6dc4 100644
--- a/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature_unittest.mm
+++ b/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature_unittest.mm
@@ -77,8 +77,7 @@
 
 class LinkToTextJavaScriptFeatureTest : public PlatformTest {
  public:
-  LinkToTextJavaScriptFeatureTest()
-      : feature_list_(shared_highlighting::kSharedHighlightingAmp) {}
+  LinkToTextJavaScriptFeatureTest() {}
 
   void SetUp() override {
     web_state_.SetTitle(u"Main Frame Title");
@@ -142,45 +141,7 @@
 
 TEST_F(LinkToTextJavaScriptFeatureTest, ShouldAttemptIframeGeneration) {
   {
-    base::test::ScopedFeatureList feature_on(
-        shared_highlighting::kSharedHighlightingAmp);
-
-    EXPECT_TRUE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        shared_highlighting::LinkGenerationError::kIncorrectSelector,
-        GURL("https://www.google.com/amp/")));
-
-    // Only kIncorrectSelector should trigger iframe generation. If we found a
-    // selection in the main frame, then there won't be one in iframes, so it's
-    // pointless to retry in other error cases.
-    EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        {}, GURL("https://www.google.com/amp/")));
-    EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        shared_highlighting::LinkGenerationError::kContextExhausted,
-        GURL("https://www.google.com/amp/")));
-    EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        shared_highlighting::LinkGenerationError::kEmptySelection,
-        GURL("https://www.google.com/amp/")));
-    EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        shared_highlighting::LinkGenerationError::kUnknown,
-        GURL("https://www.google.com/amp/")));
-    EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        shared_highlighting::LinkGenerationError::kTimeout,
-        GURL("https://www.google.com/amp/")));
-
-    // Iframe generation is limited to certain domains and paths.
-    EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        shared_highlighting::LinkGenerationError::kIncorrectSelector,
-        GURL("https://www.google.com")));
-    EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
-        shared_highlighting::LinkGenerationError::kIncorrectSelector,
-        GURL("https://www.example.com/amp/")));
-  }
-  {
-    base::test::ScopedFeatureList feature_off;
-    feature_off.InitAndDisableFeature(
-        shared_highlighting::kSharedHighlightingAmp);
-
-    // Retest that the true condition above is false when the feature is off.
+    // Test that ifram generation is false.
     EXPECT_FALSE(LinkToTextJavaScriptFeature::ShouldAttemptIframeGeneration(
         shared_highlighting::LinkGenerationError::kIncorrectSelector,
         GURL("https://www.google.com/amp/")));
@@ -232,19 +193,6 @@
   EXPECT_FALSE(feature_.WasJsInvokedInFrame(child_frame_raw));
 }
 
-TEST_F(LinkToTextJavaScriptFeatureTest, GenerateInIframe) {
-  base::Value noselect = GetNoSelectionValue();
-  AddMainFrame(GURL("https://www.google.com/amp/"), &noselect);
-
-  auto child_frame = web::FakeWebFrame::CreateChildWebFrame(
-      GURL("https://www.ampproject.org"));
-  base::Value success = GetSuccessValue();
-  feature_.SetResponse(child_frame.get(), &success);
-  manager()->AddWebFrame(std::move(child_frame));
-
-  InvokeGenerationAndExpectSuccess();
-}
-
 TEST_F(LinkToTextJavaScriptFeatureTest, NoIframeGenerationOnUnknownDomain) {
   base::Value noselect = GetNoSelectionValue();
   AddMainFrame(GURL("https://www.example.com"), &noselect);
@@ -261,130 +209,3 @@
 
   EXPECT_FALSE(feature_.WasJsInvokedInFrame(child_frame_raw));
 }
-
-TEST_F(LinkToTextJavaScriptFeatureTest, OnlyGenerateOnIframesFromKnownCache) {
-  base::Value noselect = GetNoSelectionValue();
-  AddMainFrame(GURL("https://www.google.com/amp/"), &noselect);
-
-  auto child_frame_good = web::FakeWebFrame::CreateChildWebFrame(
-      GURL("https://www.ampproject.org"));
-  base::Value success = GetSuccessValue();
-  feature_.SetResponse(child_frame_good.get(), &success);
-  manager()->AddWebFrame(std::move(child_frame_good));
-
-  auto child_frame_bad = web::FakeWebFrame::Create(
-      web::kChildFakeFrameId2, /* is_main_frame */ false,
-      GURL("https://www.example.com"));
-  auto* child_frame_bad_raw = child_frame_bad.get();
-  base::Value failure = GetFailureValue();
-  feature_.SetResponse(child_frame_bad.get(), &failure);
-  manager()->AddWebFrame(std::move(child_frame_bad));
-
-  InvokeGenerationAndExpectSuccess();
-
-  EXPECT_FALSE(feature_.WasJsInvokedInFrame(child_frame_bad_raw));
-}
-
-// If we execute on two iframes, a frame with a success should take precedence
-// over one with an error.
-TEST_F(LinkToTextJavaScriptFeatureTest, SuccessOnIframePreemptsError) {
-  base::Value noselect = GetNoSelectionValue();
-  AddMainFrame(GURL("https://www.google.com/amp/"), &noselect);
-
-  auto child_frame_error = web::FakeWebFrame::Create(
-      web::kChildFakeFrameId2, /* is_main_frame */ false,
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_error_raw = child_frame_error.get();
-  base::Value failure = GetFailureValue();
-  feature_.SetResponse(child_frame_error.get(), &failure);
-  manager()->AddWebFrame(std::move(child_frame_error));
-
-  auto child_frame_success = web::FakeWebFrame::CreateChildWebFrame(
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_success_raw = child_frame_success.get();
-  base::Value success = GetSuccessValue();
-  feature_.SetResponse(child_frame_success.get(), &success);
-  manager()->AddWebFrame(std::move(child_frame_success));
-
-  InvokeGenerationAndExpectSuccess();
-
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_error_raw));
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_success_raw));
-}
-
-// If we execute on two iframes, a frame with a success should take precedence
-// over one with no selection.
-TEST_F(LinkToTextJavaScriptFeatureTest, SuccessOnIframePreemptsNoSelect) {
-  base::Value noselect = GetNoSelectionValue();
-  AddMainFrame(GURL("https://www.google.com/amp/"), &noselect);
-
-  auto child_frame_noselect = web::FakeWebFrame::Create(
-      web::kChildFakeFrameId2, /* is_main_frame */ false,
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_noselect_raw = child_frame_noselect.get();
-  feature_.SetResponse(child_frame_noselect.get(), &noselect);
-  manager()->AddWebFrame(std::move(child_frame_noselect));
-
-  auto child_frame_success = web::FakeWebFrame::CreateChildWebFrame(
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_success_raw = child_frame_success.get();
-  base::Value success = GetSuccessValue();
-  feature_.SetResponse(child_frame_success.get(), &success);
-  manager()->AddWebFrame(std::move(child_frame_success));
-
-  InvokeGenerationAndExpectSuccess();
-
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_noselect_raw));
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_success_raw));
-}
-
-// If we execute on two iframes, a frame with an error (other than no selection)
-// should take precedence over one with no selection.
-TEST_F(LinkToTextJavaScriptFeatureTest, ErrorOnIframePreemptsNoSelect) {
-  base::Value noselect = GetNoSelectionValue();
-  AddMainFrame(GURL("https://www.google.com/amp/"), &noselect);
-
-  auto child_frame_noselect = web::FakeWebFrame::Create(
-      web::kChildFakeFrameId2, /* is_main_frame */ false,
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_noselect_raw = child_frame_noselect.get();
-  feature_.SetResponse(child_frame_noselect.get(), &noselect);
-  manager()->AddWebFrame(std::move(child_frame_noselect));
-
-  auto child_frame_error = web::FakeWebFrame::CreateChildWebFrame(
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_error_raw = child_frame_error.get();
-  base::Value error = GetFailureValue();
-  feature_.SetResponse(child_frame_error.get(), &error);
-  manager()->AddWebFrame(std::move(child_frame_error));
-
-  InvokeGenerationAndExpectError(
-      shared_highlighting::LinkGenerationError::kUnknown);
-
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_noselect_raw));
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_error_raw));
-}
-
-TEST_F(LinkToTextJavaScriptFeatureTest, TwoFramesWithNoSelection) {
-  base::Value noselect = GetNoSelectionValue();
-  AddMainFrame(GURL("https://www.google.com/amp/"), &noselect);
-
-  auto child_frame_noselect = web::FakeWebFrame::CreateChildWebFrame(
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_noselect_raw = child_frame_noselect.get();
-  feature_.SetResponse(child_frame_noselect.get(), &noselect);
-  manager()->AddWebFrame(std::move(child_frame_noselect));
-
-  auto child_frame_noselect2 = web::FakeWebFrame::Create(
-      web::kChildFakeFrameId2, /* is_main_frame */ false,
-      GURL("https://www.ampproject.org"));
-  auto* child_frame_noselect2_raw = child_frame_noselect2.get();
-  feature_.SetResponse(child_frame_noselect2.get(), &noselect);
-  manager()->AddWebFrame(std::move(child_frame_noselect2));
-
-  InvokeGenerationAndExpectError(
-      shared_highlighting::LinkGenerationError::kIncorrectSelector);
-
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_noselect_raw));
-  EXPECT_TRUE(feature_.WasJsInvokedInFrame(child_frame_noselect2_raw));
-}
diff --git a/ios/chrome/browser/mini_map/coordinator/BUILD.gn b/ios/chrome/browser/mini_map/coordinator/BUILD.gn
index 6e98fca..3d46e4e1 100644
--- a/ios/chrome/browser/mini_map/coordinator/BUILD.gn
+++ b/ios/chrome/browser/mini_map/coordinator/BUILD.gn
@@ -43,6 +43,7 @@
     ":coordinator",
     "//base/test:test_support",
     "//components/sync_preferences:test_support",
+    "//components/test/ios",
     "//ios/chrome/browser/search_engines/model:template_url_service_factory",
     "//ios/chrome/browser/shared/model/browser/test:test_support",
     "//ios/chrome/browser/shared/model/prefs:browser_prefs",
diff --git a/ios/chrome/browser/overscroll_actions/ui_bundled/overscroll_actions_egtest.mm b/ios/chrome/browser/overscroll_actions/ui_bundled/overscroll_actions_egtest.mm
index a44820d7..4d00e49 100644
--- a/ios/chrome/browser/overscroll_actions/ui_bundled/overscroll_actions_egtest.mm
+++ b/ios/chrome/browser/overscroll_actions/ui_bundled/overscroll_actions_egtest.mm
@@ -86,13 +86,8 @@
 }
 
 // Tests that a WebView can be closed via Overscroll Actions.
-// TODO(crbug.com/443702124): Test disabled on simulator.
-#if TARGET_OS_SIMULATOR
-#define MAYBE_testWebViewClose DISABLED_testWebViewClose
-#else
-#define MAYBE_testWebViewClose testWebViewClose
-#endif
-- (void)MAYBE_testWebViewClose {
+// TODO(crbug.com/443702124): Re-enable when fixed.
+- (void)DISABLED_testWebViewClose {
   if ([ChromeEarlGrey isIPadIdiom]) {
     EARL_GREY_TEST_SKIPPED(@"Overscroll Actions are only on iPhone.");
   }
@@ -103,7 +98,8 @@
 }
 
 // Tests that a new tab can be opened via Overscroll Actions on a WebView.
-- (void)testWebViewAddTab {
+// TODO(crbug.com/443702124): Re-enable when fixed.
+- (void)DISABLED_testWebViewAddTab {
   if ([ChromeEarlGrey isIPadIdiom]) {
     EARL_GREY_TEST_SKIPPED(@"Overscroll Actions are only on iPhone.");
   }
@@ -114,7 +110,8 @@
 }
 
 // Tests that a WebView can be reloaded via the Overscroll Actions.
-- (void)testWebViewReload {
+// TODO(crbug.com/443702124): Re-enable when fixed.
+- (void)DISABLED_testWebViewReload {
   if ([ChromeEarlGrey isIPadIdiom]) {
     EARL_GREY_TEST_SKIPPED(@"Overscroll Actions are only on iPhone.");
   }
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/BUILD.gn b/ios/chrome/browser/popup_menu/ui_bundled/BUILD.gn
index eff94c1..16a9b7d 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/popup_menu/ui_bundled/BUILD.gn
@@ -43,10 +43,6 @@
     "//ios/chrome/browser/default_browser/model:utils",
     "//ios/chrome/browser/feature_engagement/model",
     "//ios/chrome/browser/find_in_page/model",
-    "//ios/chrome/browser/follow/model:browser_agent",
-    "//ios/chrome/browser/follow/model:enums",
-    "//ios/chrome/browser/follow/model:tab_helper",
-    "//ios/chrome/browser/follow/model:utils",
     "//ios/chrome/browser/intelligence/features",
     "//ios/chrome/browser/lens/ui_bundled:lens_entrypoint",
     "//ios/chrome/browser/lens_overlay/coordinator:lens_overlay_availability",
@@ -209,7 +205,6 @@
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/bubble/ui_bundled:constants",
     "//ios/chrome/browser/settings/ui_bundled:constants",
-    "//ios/chrome/browser/shared/public/features",
     "//ios/chrome/test:eg_test_support+eg2",
     "//ios/chrome/test/earl_grey:eg_test_support+eg2",
     "//ios/chrome/test/earl_grey:switches",
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/DEPS b/ios/chrome/browser/popup_menu/ui_bundled/DEPS
index d341597..dc79c44 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/DEPS
+++ b/ios/chrome/browser/popup_menu/ui_bundled/DEPS
@@ -13,15 +13,10 @@
   "+ios/chrome/browser/tab_switcher/ui_bundled/tab_utils.h",
   "+ios/chrome/browser/policy/ui_bundled/user_policy_util.h",
   "+ios/chrome/browser/settings/ui_bundled/clear_browsing_data/features.h",
-  "+ios/chrome/browser/follow/model/follow_action_state.h",
   "+ios/chrome/browser/bookmarks/model/bookmark_model_bridge_observer.h",
   "+ios/chrome/browser/commerce/model/push_notification/push_notification_feature.h",
   "+ios/chrome/browser/default_browser/model/default_browser_interest_signals.h",
   "+ios/chrome/browser/find_in_page/model/find_tab_helper.h",
-  "+ios/chrome/browser/follow/model/follow_browser_agent.h",
-  "+ios/chrome/browser/follow/model/follow_menu_updater.h",
-  "+ios/chrome/browser/follow/model/follow_tab_helper.h",
-  "+ios/chrome/browser/follow/model/follow_util.h",
   "+ios/chrome/browser/intents/model/intents_donation_helper.h",
   "+ios/chrome/browser/reader_mode/model/constants.h",
   "+ios/chrome/browser/reader_mode/model/reader_mode_tab_helper.h",
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/cells/popup_menu_tools_item.mm b/ios/chrome/browser/popup_menu/ui_bundled/cells/popup_menu_tools_item.mm
index ed27d4b..36a3818 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/cells/popup_menu_tools_item.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/cells/popup_menu_tools_item.mm
@@ -9,7 +9,6 @@
 #import "ios/chrome/browser/popup_menu/ui_bundled/public/popup_menu_ui_constants.h"
 #import "ios/chrome/browser/reading_list/ui_bundled/number_badge_view.h"
 #import "ios/chrome/browser/reading_list/ui_bundled/text_badge_view.h"
-#import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/chrome/browser/shared/ui/table_view/legacy_chrome_table_view_styler.h"
 #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h"
 #import "ios/chrome/common/material_timing.h"
@@ -106,11 +105,7 @@
     self.selectedBackgroundView = selectedBackgroundView;
 
     _titleLabel = [[UILabel alloc] init];
-    if (IsWebChannelsEnabled()) {
-      _titleLabel.numberOfLines = 2;
-    } else {
-      _titleLabel.numberOfLines = 0;
-    }
+    _titleLabel.numberOfLines = 0;
     _titleLabel.font = [self titleFont];
     [_titleLabel
         setContentCompressionResistancePriority:UILayoutPriorityDefaultLow
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/BUILD.gn b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/BUILD.gn
index 2e817d3..3b4be75c 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/BUILD.gn
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/BUILD.gn
@@ -51,11 +51,6 @@
     "//ios/chrome/browser/default_browser/model:default_browser_interest_signals",
     "//ios/chrome/browser/default_browser/model:utils",
     "//ios/chrome/browser/find_in_page/model",
-    "//ios/chrome/browser/follow/model:browser_agent",
-    "//ios/chrome/browser/follow/model:enums",
-    "//ios/chrome/browser/follow/model:tab_helper",
-    "//ios/chrome/browser/follow/model:utils",
-    "//ios/chrome/browser/follow/ui_bundled",
     "//ios/chrome/browser/intelligence/bwg/model:bwg_service",
     "//ios/chrome/browser/intelligence/bwg/model:bwg_service_factory",
     "//ios/chrome/browser/intelligence/bwg/utils:constants",
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/action_customization_model_unittest.mm b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/action_customization_model_unittest.mm
index 7121a62..75770c0 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/action_customization_model_unittest.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/action_customization_model_unittest.mm
@@ -88,23 +88,23 @@
       CreateOverflowMenuAction(overflow_menu::ActionType::Bookmark);
   OverflowMenuAction* textZoom =
       CreateOverflowMenuAction(overflow_menu::ActionType::TextZoom);
-  OverflowMenuAction* follow =
-      CreateOverflowMenuAction(overflow_menu::ActionType::Follow);
+  OverflowMenuAction* translate =
+      CreateOverflowMenuAction(overflow_menu::ActionType::Translate);
   model_ = [[ActionCustomizationModel alloc]
-      initWithActions:@[ bookmark, textZoom, follow ]];
+      initWithActions:@[ bookmark, textZoom, translate ]];
 
-  follow.shown = NO;
+  translate.shown = NO;
   textZoom.shown = NO;
 
   ASSERT_EQ(model_.shownActions.count, 1u);
   EXPECT_EQ(model_.shownActions[0], bookmark);
   ASSERT_EQ(model_.hiddenActions.count, 2u);
   EXPECT_EQ(model_.hiddenActions[0], textZoom);
-  EXPECT_EQ(model_.hiddenActions[1], follow);
+  EXPECT_EQ(model_.hiddenActions[1], translate);
   ASSERT_EQ(model_.actionsGroup.actions.count, 3u);
   ASSERT_EQ(model_.actionsGroup.actions[0], bookmark);
   ASSERT_EQ(model_.actionsGroup.actions[1], textZoom);
-  ASSERT_EQ(model_.actionsGroup.actions[2], follow);
+  ASSERT_EQ(model_.actionsGroup.actions[2], translate);
 }
 
 // Tests that the model partitions actions into shown and hidden halves
@@ -114,26 +114,26 @@
       CreateOverflowMenuAction(overflow_menu::ActionType::Bookmark);
   OverflowMenuAction* textZoom =
       CreateOverflowMenuAction(overflow_menu::ActionType::TextZoom);
-  OverflowMenuAction* follow =
-      CreateOverflowMenuAction(overflow_menu::ActionType::Follow);
+  OverflowMenuAction* readerMode =
+      CreateOverflowMenuAction(overflow_menu::ActionType::ReaderMode);
   OverflowMenuAction* translate =
       CreateOverflowMenuAction(overflow_menu::ActionType::Translate);
 
-  follow.shown = NO;
+  readerMode.shown = NO;
   translate.shown = NO;
 
   model_ = [[ActionCustomizationModel alloc]
-      initWithActions:@[ bookmark, follow, textZoom, translate ]];
+      initWithActions:@[ bookmark, readerMode, textZoom, translate ]];
 
   ASSERT_EQ(model_.shownActions.count, 2u);
   EXPECT_EQ(model_.shownActions[0], bookmark);
   EXPECT_EQ(model_.shownActions[1], textZoom);
   ASSERT_EQ(model_.hiddenActions.count, 2u);
-  EXPECT_EQ(model_.hiddenActions[0], follow);
+  EXPECT_EQ(model_.hiddenActions[0], readerMode);
   EXPECT_EQ(model_.hiddenActions[1], translate);
   ASSERT_EQ(model_.actionsGroup.actions.count, 4u);
   ASSERT_EQ(model_.actionsGroup.actions[0], bookmark);
-  ASSERT_EQ(model_.actionsGroup.actions[1], follow);
+  ASSERT_EQ(model_.actionsGroup.actions[1], readerMode);
   ASSERT_EQ(model_.actionsGroup.actions[2], textZoom);
   ASSERT_EQ(model_.actionsGroup.actions[3], translate);
 }
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.cc b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.cc
index 019e00a..5ae79c9 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.cc
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.cc
@@ -84,8 +84,6 @@
     return overflow_menu::ActionType::NewIncognitoTab;
   } else if (action == "NewWindow") {
     return overflow_menu::ActionType::NewWindow;
-  } else if (action == "Follow") {
-    return overflow_menu::ActionType::Follow;
   } else if (action == "Bookmark") {
     return overflow_menu::ActionType::Bookmark;
   } else if (action == "ReadingList") {
@@ -137,8 +135,6 @@
       return "NewIncognitoTab";
     case overflow_menu::ActionType::NewWindow:
       return "NewWindow";
-    case overflow_menu::ActionType::Follow:
-      return "Follow";
     case overflow_menu::ActionType::Bookmark:
       return "Bookmark";
     case overflow_menu::ActionType::ReadingList:
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.h b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.h
index 1605820..1408a2e 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.h
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants.h
@@ -35,7 +35,6 @@
   NewTab,
   NewIncognitoTab,
   NewWindow,
-  Follow,
   Bookmark,
   ReadingList,
   ClearBrowsingData,
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants_unittest.mm b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants_unittest.mm
index 1fda6da8..babdffe 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants_unittest.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_constants_unittest.mm
@@ -90,9 +90,6 @@
       case overflow_menu::ActionType::NewWindow:
         finalExpectedActionType = overflow_menu::ActionType::NewWindow;
         break;
-      case overflow_menu::ActionType::Follow:
-        finalExpectedActionType = overflow_menu::ActionType::Follow;
-        break;
       case overflow_menu::ActionType::Bookmark:
         finalExpectedActionType = overflow_menu::ActionType::Bookmark;
         break;
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.h b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.h
index 36857af6..10eb448 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.h
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.h
@@ -8,7 +8,6 @@
 #import <UIKit/UIKit.h>
 
 #import "ios/chrome/browser/browser_container/ui_bundled/browser_container_consumer.h"
-#import "ios/chrome/browser/follow/model/follow_action_state.h"
 #import "ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_action_provider.h"
 #import "ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_swift.h"
 
@@ -32,7 +31,6 @@
 @protocol BrowserCoordinatorCommands;
 class BrowserPolicyConnectorIOS;
 @protocol FindInPageCommands;
-class FollowBrowserAgent;
 @protocol HelpCommands;
 @protocol ReaderModeCommands;
 @protocol LensOverlayCommands;
@@ -130,9 +128,6 @@
 // The current browser policy connector.
 @property(nonatomic, assign) BrowserPolicyConnectorIOS* browserPolicyConnector;
 
-// The FollowBrowserAgent used to manage web channels subscriptions.
-@property(nonatomic, assign) FollowBrowserAgent* followBrowserAgent;
-
 // The Sync Service that provides the status of Sync.
 @property(nonatomic, assign) syncer::SyncService* syncService;
 
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.mm b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.mm
index 768ed20e..9be841e 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_mediator.mm
@@ -38,10 +38,6 @@
 #import "ios/chrome/browser/commerce/model/push_notification/push_notification_feature.h"
 #import "ios/chrome/browser/default_browser/model/default_browser_interest_signals.h"
 #import "ios/chrome/browser/find_in_page/model/find_tab_helper.h"
-#import "ios/chrome/browser/follow/model/follow_browser_agent.h"
-#import "ios/chrome/browser/follow/model/follow_menu_updater.h"
-#import "ios/chrome/browser/follow/model/follow_tab_helper.h"
-#import "ios/chrome/browser/follow/model/follow_util.h"
 #import "ios/chrome/browser/intelligence/bwg/model/bwg_service.h"
 #import "ios/chrome/browser/intelligence/bwg/model/bwg_service_factory.h"
 #import "ios/chrome/browser/intelligence/bwg/utils/bwg_constants.h"
@@ -166,7 +162,6 @@
 
 @interface OverflowMenuMediator () <BookmarkModelBridgeObserver,
                                     CRWWebStateObserver,
-                                    FollowMenuUpdater,
                                     IOSLanguageDetectionTabHelperObserving,
                                     OverflowMenuDestinationProvider,
                                     OverlayPresenterObserving,
@@ -239,7 +234,6 @@
 
 @property(nonatomic, strong) OverflowMenuAction* clearBrowsingDataAction;
 @property(nonatomic, strong) OverflowMenuAction* readerModeAction;
-@property(nonatomic, strong) OverflowMenuAction* followAction;
 @property(nonatomic, strong) OverflowMenuAction* addBookmarkAction;
 @property(nonatomic, strong) OverflowMenuAction* editBookmarkAction;
 @property(nonatomic, strong) OverflowMenuAction* readLaterAction;
@@ -314,8 +308,6 @@
     self.engagementTracker = nullptr;
   }
 
-  self.followBrowserAgent = nullptr;
-
   self.webState = nullptr;
   self.webStateList = nullptr;
 
@@ -365,14 +357,6 @@
 - (void)setWebState:(web::WebState*)webState {
   if (_webState) {
     _webState->RemoveObserver(_webStateObserver.get());
-
-    if (self.followAction) {
-      FollowTabHelper* followTabHelper =
-          FollowTabHelper::FromWebState(_webState);
-      if (followTabHelper) {
-        followTabHelper->RemoveFollowMenuUpdater();
-      }
-    }
   }
 
   _webState = webState;
@@ -386,11 +370,6 @@
         std::make_unique<language::IOSLanguageDetectionTabHelperObserverBridge>(
             language::IOSLanguageDetectionTabHelper::FromWebState(_webState),
             self);
-
-    FollowTabHelper* followTabHelper = FollowTabHelper::FromWebState(_webState);
-    if (followTabHelper) {
-      followTabHelper->SetFollowMenuUpdater(self);
-    }
   }
 }
 
@@ -609,14 +588,6 @@
                                  }];
 
   self.clearBrowsingDataAction = [self newClearBrowsingDataAction];
-
-  if (GetFollowActionState(self.webState) != FollowActionStateHidden) {
-    OverflowMenuAction* action = [self newFollowAction];
-
-    action.enabled = NO;
-    self.followAction = action;
-  }
-
   self.addBookmarkAction = [self newAddBookmarkAction];
 
   NSString* editBookmarkHideItemText =
@@ -800,22 +771,6 @@
   return action;
 }
 
-- (OverflowMenuAction*)newFollowAction {
-  return [self
-      createOverflowMenuActionWithName:l10n_util::GetNSString(
-                                           IDS_IOS_TOOLS_MENU_CUSTOMIZE_FOLLOW)
-                            actionType:overflow_menu::ActionType::Follow
-                            symbolName:kPlusSymbol
-                          systemSymbol:YES
-                      monochromeSymbol:NO
-                       accessibilityID:kToolsMenuFollow
-                          hideItemText:
-                              l10n_util::GetNSStringF(
-                                  IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_FOLLOW, u"")
-                               handler:^{
-                               }];
-}
-
 - (OverflowMenuAction*)newAddBookmarkAction {
   __weak __typeof(self) weakSelf = self;
   NSString* hideItemText = l10n_util::GetNSString(
@@ -1770,19 +1725,6 @@
   return visibleItem->GetUserAgentType();
 }
 
-// Creates a follow action if needed, when the follow action state is not
-// hidden.
-- (OverflowMenuAction*)createFollowActionIfNeeded {
-  // Returns nil if the follow action state is hidden.
-  if (GetFollowActionState(self.webState) == FollowActionStateHidden) {
-    return nil;
-  }
-
-  OverflowMenuAction* action = [self newFollowAction];
-  action.enabled = NO;
-  return action;
-}
-
 - (void)dismissMenu {
   self.menuHasBeenDismissed = YES;
   [self.popupMenuHandler dismissPopupMenuAnimated:YES];
@@ -1888,15 +1830,7 @@
   if (!status.active_web_state_change()) {
     return;
   }
-
   self.webState = status.new_active_web_state;
-  if (self.webState && self.followAction) {
-    FollowTabHelper* followTabHelper =
-        FollowTabHelper::FromWebState(self.webState);
-    if (followTabHelper) {
-      followTabHelper->SetFollowMenuUpdater(self);
-    }
-  }
 }
 
 #pragma mark - BookmarkModelBridgeObserver
@@ -1961,53 +1895,6 @@
   _templateURLService = nullptr;
 }
 
-#pragma mark - FollowMenuUpdater
-
-- (void)updateFollowMenuItemWithWebPage:(WebPageURLs*)webPageURLs
-                               followed:(BOOL)followed
-                             domainName:(NSString*)domainName
-                                enabled:(BOOL)enable {
-  DCHECK(IsWebChannelsEnabled());
-  self.followAction.enabled = enable;
-  if (followed) {
-    __weak __typeof(self) weakSelf = self;
-    self.followAction.name = l10n_util::GetNSStringF(
-        IDS_IOS_TOOLS_MENU_UNFOLLOW, base::SysNSStringToUTF16(domainName));
-    self.followAction.symbolName = kXMarkSymbol;
-    self.followAction.handler = [self
-        fullOverflowMenuActionHandlerForActionType:overflow_menu::ActionType::
-                                                       Follow
-                                           handler:^{
-                                             [weakSelf
-                                                 unfollowWebPage:webPageURLs];
-                                           }];
-    NSString* hideItemText =
-        l10n_util::GetNSStringF(IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_UNFOLLOW,
-                                base::SysNSStringToUTF16(domainName));
-    self.followAction.longPressItems = [self
-        actionLongPressItemsForActionType:overflow_menu::ActionType::Follow
-                             hideItemText:hideItemText];
-  } else {
-    __weak __typeof(self) weakSelf = self;
-    self.followAction.name = l10n_util::GetNSStringF(
-        IDS_IOS_TOOLS_MENU_FOLLOW, base::SysNSStringToUTF16(domainName));
-    self.followAction.symbolName = kPlusSymbol;
-    self.followAction.handler = [self
-        fullOverflowMenuActionHandlerForActionType:overflow_menu::ActionType::
-                                                       Follow
-                                           handler:^{
-                                             [weakSelf
-                                                 followWebPage:webPageURLs];
-                                           }];
-    NSString* hideItemText =
-        l10n_util::GetNSStringF(IDS_IOS_OVERFLOW_MENU_HIDE_ACTION_FOLLOW,
-                                base::SysNSStringToUTF16(domainName));
-    self.followAction.longPressItems = [self
-        actionLongPressItemsForActionType:overflow_menu::ActionType::Follow
-                             hideItemText:hideItemText];
-  }
-}
-
 #pragma mark - BrowserContainerConsumer
 
 - (void)setContentBlocked:(BOOL)contentBlocked {
@@ -2213,25 +2100,6 @@
       return self.openIncognitoTabAction;
     case overflow_menu::ActionType::NewWindow:
       return self.openNewWindowAction;
-    case overflow_menu::ActionType::Follow: {
-      // Try to create the followAction if there isn't one. It's possible that
-      // sometimes when creating the model the followActionState is hidden so
-      // the followAction hasn't been created but at the time when updating the
-      // model, the followAction should be valid.
-      if (!self.followAction) {
-        self.followAction = [self createFollowActionIfNeeded];
-        DCHECK(!self.followAction || self.webState != nullptr);
-      }
-
-      if (self.followAction) {
-        FollowTabHelper* followTabHelper =
-            FollowTabHelper::FromWebState(self.webState);
-        if (followTabHelper) {
-          followTabHelper->UpdateFollowMenuItem();
-        }
-      }
-      return self.followAction;
-    }
     case overflow_menu::ActionType::Bookmark: {
       BOOL pageIsBookmarked =
           self.webState && self.bookmarkModel &&
@@ -2297,8 +2165,6 @@
     case overflow_menu::ActionType::ShareChrome:
     case overflow_menu::ActionType::EditActions:
       NOTREACHED();
-    case overflow_menu::ActionType::Follow:
-      return [self newFollowAction];
     case overflow_menu::ActionType::Bookmark:
       return [self newAddBookmarkAction];
     case overflow_menu::ActionType::ReadingList:
@@ -2389,26 +2255,6 @@
   }
 }
 
-// Follows the website corresponding to `webPage` and dismisses the menu.
-- (void)followWebPage:(WebPageURLs*)webPage {
-  // FollowBrowserAgent may be null after -disconnect has been called.
-  FollowBrowserAgent* followBrowserAgent = self.followBrowserAgent;
-  if (followBrowserAgent) {
-    followBrowserAgent->FollowWebSite(webPage, FollowSource::OverflowMenu);
-  }
-  [self dismissMenu];
-}
-
-// Unfollows the website corresponding to `webPage` and dismisses the menu.
-- (void)unfollowWebPage:(WebPageURLs*)webPage {
-  // FollowBrowserAgent may be null after -disconnect has been called.
-  FollowBrowserAgent* followBrowserAgent = self.followBrowserAgent;
-  if (followBrowserAgent) {
-    followBrowserAgent->UnfollowWebSite(webPage, FollowSource::OverflowMenu);
-  }
-  [self dismissMenu];
-}
-
 // Dismisses the menu and adds the current page as a bookmark or opens the
 // bookmark edit screen if the current page is bookmarked.
 - (void)addOrEditBookmark {
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.h b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.h
index efc13745..a7ebc08 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.h
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.h
@@ -77,7 +77,7 @@
   kNewTab = 1,
   kNewIncognitoTab = 2,
   kNewWindow = 3,
-  kFollow = 4,
+  // kFollow = 4, // Deprecated M143.
   kBookmark = 5,
   kReadingList = 6,
   kClearBrowsingData = 7,
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.mm b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.mm
index a93aa78..5b949d0b 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics.mm
@@ -47,8 +47,6 @@
       return IOSOverflowMenuAction::kNewIncognitoTab;
     case overflow_menu::ActionType::NewWindow:
       return IOSOverflowMenuAction::kNewWindow;
-    case overflow_menu::ActionType::Follow:
-      return IOSOverflowMenuAction::kFollow;
     case overflow_menu::ActionType::Bookmark:
       return IOSOverflowMenuAction::kBookmark;
     case overflow_menu::ActionType::ReadingList:
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics_unittest.mm b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics_unittest.mm
index 750afb4..50884e81 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics_unittest.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_metrics_unittest.mm
@@ -89,13 +89,13 @@
 // Test that ActionWasInitiallyVisible works correctly.
 TEST_F(OverflowMenuMetricsTest, ActionWasInitiallyVisible) {
   NSArray<OverflowMenuAction*>* actions = @[
-    CreateOverflowMenuAction(overflow_menu::ActionType::Follow),
+    CreateOverflowMenuAction(overflow_menu::ActionType::Translate),
     CreateOverflowMenuAction(overflow_menu::ActionType::Bookmark),
     CreateOverflowMenuAction(overflow_menu::ActionType::ReadingList),
   ];
 
-  EXPECT_TRUE(
-      ActionWasInitiallyVisible(overflow_menu::ActionType::Follow, actions, 2));
+  EXPECT_TRUE(ActionWasInitiallyVisible(overflow_menu::ActionType::Translate,
+                                        actions, 2));
   EXPECT_TRUE(ActionWasInitiallyVisible(overflow_menu::ActionType::Bookmark,
                                         actions, 2));
   EXPECT_FALSE(ActionWasInitiallyVisible(overflow_menu::ActionType::ReadingList,
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_orderer.mm b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_orderer.mm
index bee8d1a..429044f 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_orderer.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/overflow_menu_orderer.mm
@@ -608,12 +608,6 @@
         // not add it to `actionsSet`.
         continue;
       }
-      if (*actionType == overflow_menu::ActionType::Follow) {
-        // Follow has been deprecated. Do not add it to `actionSet`.
-        // TODO(crbug.com/435685705): Clean up the enum.
-        continue;
-      }
-
       actionsSet.insert(*actionType);
       actionOrderData.shownActions.push_back(*actionType);
     }
@@ -640,12 +634,6 @@
         // not add it to `actionsSet`.
         continue;
       }
-      if (*actionType == overflow_menu::ActionType::Follow) {
-        // Follow has been deprecated. Do not add it to `actionSet`.
-        // TODO(crbug.com/435685705): Clean up the enum.
-        continue;
-      }
-
       actionsSet.insert(*actionType);
       actionOrderData.hiddenActions.push_back(*actionType);
     }
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler.mm b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler.mm
index a1c4056..7d24d08 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler.mm
@@ -140,9 +140,6 @@
                                                      WindowActivityToolsOrigin,
                                                      GURL(kChromeUINewTabURL))];
       break;
-    case PopupMenuActionFollow:
-      [self.delegate toggleFollowed];
-      break;
     case PopupMenuActionBookmarks:
       RecordAction(UserMetricsAction("MobileMenuAllBookmarks"));
       [self.browserCoordinatorCommandsHandler showBookmarksManager];
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler_delegate.h b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler_delegate.h
index 0fd435ea..a5514a0 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler_delegate.h
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_action_handler_delegate.h
@@ -21,10 +21,6 @@
 - (void)recordSettingsMetricsPerProfile;
 // Records open downloads metric per profile type.
 - (void)recordDownloadsMetricsPerProfile;
-// Toggles the follow status of the on browsing website. Called when the follow
-// menu option has been tapped. Follows or unfollows the website according to
-// the current follow status of the website.
-- (void)toggleFollowed;
 // The current web state.
 - (web::WebState*)currentWebState;
 @end
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.h b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.h
index 18d7770..9b27f1ee 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.h
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.h
@@ -24,8 +24,6 @@
 extern NSString* const kToolsMenuNewWindowId;
 // New incognito Tab item accessibility Identifier.
 extern NSString* const kToolsMenuNewIncognitoTabId;
-// Follow item accessibility Identifier.
-extern NSString* const kToolsMenuFollowId;
 // Bookmarks item accessibility Identifier.
 extern NSString* const kToolsMenuBookmarksId;
 // Reading List item accessibility Identifier.
@@ -78,10 +76,6 @@
 extern NSString* const kTextMenuEnterpriseInfo;
 // Text Family Link info item accessibility identifier.
 extern NSString* const kTextMenuFamilyLinkInfo;
-// Follow item accessibility Identifier.
-extern NSString* const kToolsMenuFollow;
-// Unfollow item accessibility Identifier.
-extern NSString* const kToolsMenuUnfollow;
 // Clear Browsing Data item accessibility identifier.
 extern NSString* const kToolsMenuClearBrowsingData;
 // Set Tab Reminder item accessibility Identifier.
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.mm b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.mm
index 4bd1f6a..3d91948 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.mm
@@ -15,7 +15,6 @@
 NSString* const kToolsMenuNewTabId = @"kToolsMenuNewTabId";
 NSString* const kToolsMenuNewWindowId = @"kToolsMenuNewWindowId";
 NSString* const kToolsMenuNewIncognitoTabId = @"kToolsMenuNewIncognitoTabId";
-NSString* const kToolsMenuFollowId = @"kToolsMenuFollowId";
 NSString* const kToolsMenuBookmarksId = @"kToolsMenuBookmarksId";
 NSString* const kToolsMenuReadingListId = @"kToolsMenuReadingListId";
 NSString* const kToolsMenuOtherDevicesId = @"kToolsMenuOtherDevicesId";
@@ -40,8 +39,6 @@
 NSString* const kToolsMenuTextZoom = @"kToolsMenuTextZoom";
 NSString* const kTextMenuEnterpriseInfo = @"kTextMenuEnterpriseInfo";
 NSString* const kTextMenuFamilyLinkInfo = @"kTextMenuFamilyLinkInfo";
-NSString* const kToolsMenuFollow = @"kToolsMenuFollow";
-NSString* const kToolsMenuUnfollow = @"kToolsMenuUnfollow";
 NSString* const kToolsMenuClearBrowsingData = @"kToolsMenuClearBrowsingData";
 NSString* const kToolsMenuSetTabReminder = @"kToolsMenuSetTabReminder";
 NSString* const kToolsMenuShareChromeId = @"kToolsMenuShareChromeId";
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_coordinator.mm b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_coordinator.mm
index b8f971c1..e893864a 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_coordinator.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_coordinator.mm
@@ -17,8 +17,6 @@
 #import "ios/chrome/browser/bubble/model/tab_based_iph_browser_agent.h"
 #import "ios/chrome/browser/bubble/ui_bundled/bubble_view_controller_presenter.h"
 #import "ios/chrome/browser/feature_engagement/model/tracker_factory.h"
-#import "ios/chrome/browser/follow/model/follow_action_state.h"
-#import "ios/chrome/browser/follow/model/follow_browser_agent.h"
 #import "ios/chrome/browser/intelligence/features/features.h"
 #import "ios/chrome/browser/lens_overlay/coordinator/lens_overlay_availability.h"
 #import "ios/chrome/browser/overlays/model/public/overlay_presenter.h"
@@ -335,9 +333,6 @@
     mediator.promosManager = PromosManagerFactory::GetForProfile(profile);
     mediator.readingListBrowserAgent =
         ReadingListBrowserAgent::FromBrowser(browser);
-    if (IsWebChannelsEnabled()) {
-      mediator.followBrowserAgent = FollowBrowserAgent::FromBrowser(browser);
-    }
     // Set the AuthenticationService with the one from the original
     // ProfileIOS as the incognito one doesn't have that service.
     mediator.authenticationService =
@@ -445,10 +440,6 @@
   self.mediator.webContentAreaOverlayPresenter = overlayPresenter;
   self.mediator.URLLoadingBrowserAgent =
       UrlLoadingBrowserAgent::FromBrowser(self.browser);
-  if (IsWebChannelsEnabled()) {
-    self.mediator.followBrowserAgent =
-        FollowBrowserAgent::FromBrowser(self.browser);
-  }
 
   self.contentBlockerMediator.consumer = self.mediator;
 
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.h b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.h
index 8144b09..63a2e864 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.h
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.h
@@ -20,7 +20,6 @@
 }  // namespace feature_engagement
 
 class BrowserPolicyConnectorIOS;
-class FollowBrowserAgent;
 @protocol LensCommands;
 class OverlayPresenter;
 @protocol PopupMenuConsumer;
@@ -70,8 +69,6 @@
 @property(nonatomic, assign) TemplateURLService* templateURLService;
 // The URL loading service, used to load the reverse image search.
 @property(nonatomic, assign) UrlLoadingBrowserAgent* URLLoadingBrowserAgent;
-// The FollowBrowserAgent used to manage web channels subscriptions.
-@property(nonatomic, assign) FollowBrowserAgent* followBrowserAgent;
 // The ReadingListBrowserAgent used to add urls to reading list.
 @property(nonatomic, assign) ReadingListBrowserAgent* readingListBrowserAgent;
 
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.mm b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.mm
index 0062ec5e..fa78e07 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator.mm
@@ -31,10 +31,6 @@
 #import "ios/chrome/browser/commerce/model/push_notification/push_notification_feature.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/cells/content_suggestions_tile_constants.h"
 #import "ios/chrome/browser/find_in_page/model/find_tab_helper.h"
-#import "ios/chrome/browser/follow/model/follow_browser_agent.h"
-#import "ios/chrome/browser/follow/model/follow_menu_updater.h"
-#import "ios/chrome/browser/follow/model/follow_tab_helper.h"
-#import "ios/chrome/browser/follow/model/follow_util.h"
 #import "ios/chrome/browser/lens/ui_bundled/lens_entrypoint.h"
 #import "ios/chrome/browser/overlays/model/public/overlay_presenter.h"
 #import "ios/chrome/browser/overlays/model/public/overlay_presenter_observer_bridge.h"
@@ -60,7 +56,6 @@
 #import "ios/chrome/browser/shared/public/commands/lens_commands.h"
 #import "ios/chrome/browser/shared/public/commands/reading_list_add_command.h"
 #import "ios/chrome/browser/shared/public/commands/search_image_with_lens_command.h"
-#import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/chrome/browser/shared/ui/list_model/list_model.h"
 #import "ios/chrome/browser/shared/ui/symbols/symbols.h"
 #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h"
@@ -106,24 +101,6 @@
   return item;
 }
 
-PopupMenuToolsItem* CreateFollowItem(int titleID,
-                                     PopupMenuAction action,
-                                     NSString* imageName,
-                                     NSString* accessibilityID) {
-  DCHECK(IsWebChannelsEnabled());
-  PopupMenuToolsItem* item =
-      [[PopupMenuToolsItem alloc] initWithType:kItemTypeEnumZero];
-  item.title = l10n_util::GetNSStringF(titleID, base::SysNSStringToUTF16(@""));
-  item.enabled = NO;
-  item.actionIdentifier = action;
-  item.accessibilityIdentifier = accessibilityID;
-  if (imageName) {
-    item.image = [[UIImage imageNamed:imageName]
-        imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
-  }
-  return item;
-}
-
 PopupMenuTextItem* CreateEnterpriseInfoItem(NSString* imageName,
                                             NSString* message,
                                             PopupMenuAction action,
@@ -142,7 +119,6 @@
 
 @interface PopupMenuMediator () <BookmarkModelBridgeObserver,
                                  CRWWebStateObserver,
-                                 FollowMenuUpdater,
                                  IOSLanguageDetectionTabHelperObserving,
                                  OverlayPresenterObserving,
                                  PrefObserverDelegate,
@@ -184,12 +160,6 @@
 // Whether the web content is currently being blocked.
 @property(nonatomic, assign) BOOL contentBlocked;
 
-// URLs for the current webpage, which are used to update the follow status.
-@property(nonatomic, strong) WebPageURLs* webPage;
-
-// YES if the current website has been followed.
-@property(nonatomic, assign) BOOL followed;
-
 // State of reading list model loading.
 @property(nonatomic, assign) BOOL readingListModelLoaded;
 
@@ -197,7 +167,6 @@
 
 @property(nonatomic, strong) PopupMenuToolsItem* openNewIncognitoTabItem;
 @property(nonatomic, strong) PopupMenuToolsItem* reloadStopItem;
-@property(nonatomic, strong) PopupMenuToolsItem* followItem;
 @property(nonatomic, strong) PopupMenuToolsItem* readLaterItem;
 @property(nonatomic, strong) PopupMenuToolsItem* bookmarkItem;
 @property(nonatomic, strong) PopupMenuToolsItem* translateItem;
@@ -247,14 +216,6 @@
   if (_webState) {
     _webState->RemoveObserver(_webStateObserver.get());
     _webStateObserver.reset();
-    if (self.followItem) {
-      FollowTabHelper* followTabHelper =
-          FollowTabHelper::FromWebState(_webState);
-      if (followTabHelper) {
-        followTabHelper->RemoveFollowMenuUpdater();
-      }
-      self.webPage = nil;
-    }
     _webState = nullptr;
   }
 
@@ -512,13 +473,6 @@
 - (NSArray<NSArray<TableViewItem<PopupMenuItem>*>*>*)items {
   if (!_items) {
     [self createToolsMenuItems];
-    if (self.webState && self.followItem) {
-      FollowTabHelper* followTabHelper =
-          FollowTabHelper::FromWebState(self.webState);
-      if (followTabHelper) {
-        followTabHelper->SetFollowMenuUpdater(self);
-      }
-    }
     NSMutableArray* specificItems = [NSMutableArray array];
     if (self.reloadStopItem) {
       [specificItems addObject:self.reloadStopItem];
@@ -623,19 +577,6 @@
       }));
 }
 
-- (void)toggleFollowed {
-  DCHECK(IsWebChannelsEnabled());
-  DCHECK(self.followBrowserAgent);
-
-  if (self.followed) {
-    self.followBrowserAgent->UnfollowWebSite(self.webPage,
-                                             FollowSource::PopupMenu);
-  } else {
-    self.followBrowserAgent->FollowWebSite(self.webPage,
-                                           FollowSource::PopupMenu);
-  }
-}
-
 - (web::WebState*)currentWebState {
   return self.webState;
 }
@@ -665,26 +606,6 @@
   [self.popupMenu itemsHaveChanged:@[ self.readingListItem ]];
 }
 
-#pragma mark - FollowMenuUpdater
-
-- (void)updateFollowMenuItemWithWebPage:(WebPageURLs*)webPage
-                               followed:(BOOL)followed
-                             domainName:(NSString*)domainName
-                                enabled:(BOOL)enabled {
-  DCHECK(IsWebChannelsEnabled());
-  self.webPage = webPage;
-  self.followed = followed;
-  self.followItem.enabled = enabled;
-  self.followItem.title =
-      followed ? l10n_util::GetNSStringF(IDS_IOS_TOOLS_MENU_UNFOLLOW, u"")
-               : l10n_util::GetNSStringF(IDS_IOS_TOOLS_MENU_FOLLOW, u"");
-  self.followItem.image = [[UIImage
-      imageNamed:followed ? @"popup_menu_unfollow" : @"popup_menu_follow"]
-      imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
-
-  [self.popupMenu itemsHaveChanged:@[ self.followItem ]];
-}
-
 #pragma mark - BrowserContainerConsumer
 
 - (void)setContentBlocked:(BOOL)contentBlocked {
@@ -715,17 +636,6 @@
   self.requestMobileSiteItem.enabled =
       [self userAgentType] == web::UserAgentType::DESKTOP;
 
-  // Update follow menu item.
-  if (self.followItem &&
-      GetFollowActionState(self.webState) != FollowActionStateHidden) {
-    DCHECK(IsWebChannelsEnabled());
-    FollowTabHelper* followTabHelper =
-        FollowTabHelper::FromWebState(self.webState);
-    if (followTabHelper) {
-      followTabHelper->UpdateFollowMenuItem();
-    }
-  }
-
   // Reload the items.
   [self.popupMenu itemsHaveChanged:self.specificItems];
 }
@@ -955,13 +865,6 @@
 - (NSArray<TableViewItem*>*)actionItems {
   NSMutableArray* actionsArray = [NSMutableArray array];
 
-  if (GetFollowActionState(self.webState) != FollowActionStateHidden) {
-    // Follow.
-    self.followItem =
-        CreateFollowItem(IDS_IOS_TOOLS_MENU_FOLLOW, PopupMenuActionFollow,
-                         @"popup_menu_follow", kToolsMenuFollowId);
-    [actionsArray addObject:self.followItem];
-  }
   // Read Later.
   self.readLaterItem = CreateTableViewItem(
       IDS_IOS_CONTENT_CONTEXT_ADDTOREADINGLIST, PopupMenuActionReadLater,
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator_unittest.mm b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator_unittest.mm
index c6e6eaf..d140ab1 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator_unittest.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/popup_menu_mediator_unittest.mm
@@ -48,7 +48,6 @@
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_list_observer_bridge.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_opener.h"
-#import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/chrome/browser/shared/ui/symbols/symbols.h"
 #import "ios/chrome/browser/toolbar/ui_bundled/test/toolbar_test_navigation_manager.h"
 #import "ios/chrome/browser/web/model/font_size/font_size_java_script_feature.h"
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/public/cells/popup_menu_item.h b/ios/chrome/browser/popup_menu/ui_bundled/public/cells/popup_menu_item.h
index c81d5fd..c440845 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/public/cells/popup_menu_item.h
+++ b/ios/chrome/browser/popup_menu/ui_bundled/public/cells/popup_menu_item.h
@@ -29,7 +29,6 @@
   PopupMenuActionViewSource,
 #endif  // !defined(NDEBUG)
   PopupMenuActionOpenNewWindow,
-  PopupMenuActionFollow,
   PopupMenuActionBookmarks,
   PopupMenuActionReadingList,
   PopupMenuActionRecentTabs,
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/request_desktop_mobile_site_egtest.mm b/ios/chrome/browser/popup_menu/ui_bundled/request_desktop_mobile_site_egtest.mm
index 237d3a099..d261ede 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/request_desktop_mobile_site_egtest.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/request_desktop_mobile_site_egtest.mm
@@ -10,7 +10,6 @@
 #import "components/version_info/version_info.h"
 #import "ios/chrome/browser/popup_menu/ui_bundled/popup_menu_constants.h"
 #import "ios/chrome/browser/settings/ui_bundled/settings_table_view_controller_constants.h"
-#import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/chrome/grit/ios_strings.h"
 #import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
 #import "ios/chrome/test/earl_grey/chrome_earl_grey_ui.h"
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/Contents.json b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/Contents.json
deleted file mode 100644
index 73c9696..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "images": [
-        {
-            "idiom": "universal",
-            "scale": "1x",
-            "filename": "popup_menu_follow.png"
-        },
-        {
-            "idiom": "universal",
-            "scale": "2x",
-            "filename": "popup_menu_follow@2x.png"
-        },
-        {
-            "idiom": "universal",
-            "scale": "3x",
-            "filename": "popup_menu_follow@3x.png"
-        }
-    ],
-    "info": {
-        "version": 1,
-        "author": "xcode"
-    }
-}
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow.png b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow.png
deleted file mode 100644
index 5de150e..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow.png
+++ /dev/null
Binary files differ
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@2x.png b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@2x.png
deleted file mode 100644
index 77ad1c20..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@2x.png
+++ /dev/null
Binary files differ
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@3x.png b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@3x.png
deleted file mode 100644
index 407dbe54..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@3x.png
+++ /dev/null
Binary files differ
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/Contents.json b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/Contents.json
deleted file mode 100644
index 16853f93..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "images": [
-        {
-            "idiom": "universal",
-            "scale": "1x",
-            "filename": "popup_menu_unfollow.png"
-        },
-        {
-            "idiom": "universal",
-            "scale": "2x",
-            "filename": "popup_menu_unfollow@2x.png"
-        },
-        {
-            "idiom": "universal",
-            "scale": "3x",
-            "filename": "popup_menu_unfollow@3x.png"
-        }
-    ],
-    "info": {
-        "version": 1,
-        "author": "xcode"
-    }
-}
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow.png b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow.png
deleted file mode 100644
index d851e345..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow.png
+++ /dev/null
Binary files differ
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@2x.png b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@2x.png
deleted file mode 100644
index f7f8d8bd..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@2x.png
+++ /dev/null
Binary files differ
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@3x.png b/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@3x.png
deleted file mode 100644
index 6eb8c4d..0000000
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@3x.png
+++ /dev/null
Binary files differ
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/resources/BUILD.gn b/ios/chrome/browser/popup_menu/ui_bundled/resources/BUILD.gn
index c46f4d2..fdc6f62 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/resources/BUILD.gn
+++ b/ios/chrome/browser/popup_menu/ui_bundled/resources/BUILD.gn
@@ -30,10 +30,6 @@
     "Assets.xcassets/popup_menu_find_in_page.imageset/popup_menu_find_in_page.png",
     "Assets.xcassets/popup_menu_find_in_page.imageset/popup_menu_find_in_page@2x.png",
     "Assets.xcassets/popup_menu_find_in_page.imageset/popup_menu_find_in_page@3x.png",
-    "Assets.xcassets/popup_menu_follow.imageset/Contents.json",
-    "Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow.png",
-    "Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@2x.png",
-    "Assets.xcassets/popup_menu_follow.imageset/popup_menu_follow@3x.png",
     "Assets.xcassets/popup_menu_help.imageset/Contents.json",
     "Assets.xcassets/popup_menu_help.imageset/popup_menu_help.png",
     "Assets.xcassets/popup_menu_help.imageset/popup_menu_help@2x.png",
@@ -102,9 +98,5 @@
     "Assets.xcassets/popup_menu_translate.imageset/Contents.json",
     "Assets.xcassets/popup_menu_translate.imageset/popup_menu_translate@2x.png",
     "Assets.xcassets/popup_menu_translate.imageset/popup_menu_translate@3x.png",
-    "Assets.xcassets/popup_menu_unfollow.imageset/Contents.json",
-    "Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow.png",
-    "Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@2x.png",
-    "Assets.xcassets/popup_menu_unfollow.imageset/popup_menu_unfollow@3x.png",
   ]
 }
diff --git a/ios/chrome/browser/price_insights/model/price_insights_feature.h b/ios/chrome/browser/price_insights/model/price_insights_feature.h
index bb1d515..743f9ae2 100644
--- a/ios/chrome/browser/price_insights/model/price_insights_feature.h
+++ b/ios/chrome/browser/price_insights/model/price_insights_feature.h
@@ -9,30 +9,10 @@
 
 class ProfileIOS;
 
-// Feature flag parameter in Price Insights to determine the text displayed for
-// a low price.
-extern const char kLowPriceParam[];
-
-// Parameter value for kLowPriceParam indicating that the price is low.
-extern const char kLowPriceParamPriceIsLow[];
-
-// Parameter value for kLowPriceParam indicating that there is a good deal.
-extern const char kLowPriceParamGoodDealNow[];
-
-// Parameter value for kLowPriceParam indicating to see price history.
-extern const char kLowPriceParamSeePriceHistory[];
-
 // Determine if the price insights and price tracking are enabled.
 bool IsPriceInsightsEnabled(ProfileIOS* profile);
 
 // Determine if Price Insights on iOS is enabled for the current region.
 bool IsPriceInsightsRegionEnabled();
 
-// Determine if the price insights high price feature is enabled.
-bool IsPriceInsightsHighPriceEnabled();
-
-// Retrieves the flag parameter value that determines the message displayed for
-// a low price.
-std::string GetLowPriceParamValue();
-
 #endif  // IOS_CHROME_BROWSER_PRICE_INSIGHTS_MODEL_PRICE_INSIGHTS_FEATURE_H_
diff --git a/ios/chrome/browser/price_insights/model/price_insights_feature.mm b/ios/chrome/browser/price_insights/model/price_insights_feature.mm
index ec5659f..7f918aa 100644
--- a/ios/chrome/browser/price_insights/model/price_insights_feature.mm
+++ b/ios/chrome/browser/price_insights/model/price_insights_feature.mm
@@ -15,14 +15,6 @@
 #import "ios/chrome/browser/shared/model/profile/profile_ios.h"
 #import "ios/chrome/browser/shared/public/features/features.h"
 
-const char kLowPriceParam[] = "LowPriceStringParam";
-
-const char kLowPriceParamPriceIsLow[] = "PriceIsLow";
-
-const char kLowPriceParamGoodDealNow[] = "GoodDealNow";
-
-const char kLowPriceParamSeePriceHistory[] = "SeePriceHistory";
-
 bool IsPriceInsightsRegionEnabled() {
   return commerce::IsRegionLockedFeatureEnabled(
       commerce::kPriceInsights,
@@ -31,10 +23,6 @@
 }
 
 bool IsPriceInsightsEnabled(ProfileIOS* profile) {
-  if (!base::FeatureList::IsEnabled(commerce::kPriceInsightsIos)) {
-    return false;
-  }
-
   // Allow Lens overlay to disable price insights because the price insights
   // entrypoint trumps lens overlay in the location bar. This is only used for
   // experimentation in coordination with the price insight owner.
@@ -53,14 +41,3 @@
 
   return commerce::IsPriceInsightsEligible(service->GetAccountChecker());
 }
-
-std::string GetLowPriceParamValue() {
-  std::string low_price_value = base::GetFieldTrialParamValueByFeature(
-      commerce::kPriceInsightsIos, kLowPriceParam);
-  return low_price_value.empty() ? std::string(kLowPriceParamGoodDealNow)
-                                 : low_price_value;
-}
-
-bool IsPriceInsightsHighPriceEnabled() {
-  return base::FeatureList::IsEnabled(commerce::kPriceInsightsHighPriceIos);
-}
diff --git a/ios/chrome/browser/price_insights/model/price_insights_model.mm b/ios/chrome/browser/price_insights/model/price_insights_model.mm
index 75bf1fcc..94d552e 100644
--- a/ios/chrome/browser/price_insights/model/price_insights_model.mm
+++ b/ios/chrome/browser/price_insights/model/price_insights_model.mm
@@ -39,17 +39,7 @@
     "IOS.PriceInsights.Model.IsSubscribed";
 
 std::string getHighConfidenceMomentsText() {
-  std::string low_price_value = GetLowPriceParamValue();
-  if (low_price_value == std::string(kLowPriceParamGoodDealNow)) {
-    return l10n_util::GetStringUTF8(IDS_INSIGHTS_ICON_EXPANDED_TEXT_GOOD_DEAL);
-  }
-  if (low_price_value == std::string(kLowPriceParamSeePriceHistory)) {
-    return l10n_util::GetStringUTF8(
-        IDS_INSIGHTS_ICON_EXPANDED_TEXT_PRICE_HISTORY);
-  }
-
-  return l10n_util::GetStringUTF8(
-      IDS_SHOPPING_INSIGHTS_ICON_EXPANDED_TEXT_LOW_PRICE);
+  return l10n_util::GetStringUTF8(IDS_INSIGHTS_ICON_EXPANDED_TEXT_GOOD_DEAL);
 }
 
 }  // namespace
@@ -223,44 +213,13 @@
 
   commerce::PriceInsightsInfo info =
       execution_it->second->config->price_insights_info.value();
-  std::string message;
-  switch (info.price_bucket) {
-    case commerce::PriceBucket::kLowPrice: {
-      message = getHighConfidenceMomentsText();
-      break;
-    }
-    case commerce::PriceBucket::kHighPrice: {
-      if (!IsPriceInsightsHighPriceEnabled()) {
-        execution_it->second->config->relevance =
-            ContextualPanelItemConfiguration::low_relevance;
-        return;
-      }
-
-      execution_it->second->config->entrypoint_image_name =
-          base::SysNSStringToUTF8(kUpTrendSymbol);
-
-      if (!execution_it->second->config->can_price_track ||
-          execution_it->second->config->is_subscribed) {
-        execution_it->second->config->relevance =
-            ContextualPanelItemConfiguration::low_relevance;
-        return;
-      }
-      message =
-          l10n_util::GetStringUTF8(IDS_INSIGHTS_ICON_PRICE_HIGH_EXPANDED_TEXT);
-      break;
-    }
-    case commerce::PriceBucket::kTypicalPrice: {
-      execution_it->second->config->relevance =
-          ContextualPanelItemConfiguration::low_relevance;
-      return;
-    }
-    case commerce::PriceBucket::kUnknown: {
-      execution_it->second->config->relevance =
-          ContextualPanelItemConfiguration::low_relevance;
-      return;
-    }
+  if (info.price_bucket != commerce::PriceBucket::kLowPrice) {
+    execution_it->second->config->relevance =
+        ContextualPanelItemConfiguration::low_relevance;
+    return;
   }
 
+  std::string message = getHighConfidenceMomentsText();
   execution_it->second->config->relevance =
       ContextualPanelItemConfiguration::high_relevance;
   execution_it->second->config->accessibility_label = message;
diff --git a/ios/chrome/browser/price_insights/model/price_insights_model_unittest.mm b/ios/chrome/browser/price_insights/model/price_insights_model_unittest.mm
index aa7b906d..20965b2 100644
--- a/ios/chrome/browser/price_insights/model/price_insights_model_unittest.mm
+++ b/ios/chrome/browser/price_insights/model/price_insights_model_unittest.mm
@@ -564,10 +564,6 @@
 TEST_F(PriceInsightsModelTest, TestPriceBucketUnknownEmptyMessageLowRelevance) {
   base::RunLoop run_loop;
 
-  features_.InitAndEnableFeatureWithParameters(
-      commerce::kPriceInsightsIos,
-      {{kLowPriceParam, kLowPriceParamPriceIsLow}});
-
   shopping_service_->SetIsSubscribedCallbackValue(true);
 
   std::optional<commerce::ProductInfo> info;
@@ -621,77 +617,9 @@
 
 // Test that when the price bucket is low, the entrypoint message is set to a
 // specific string, and the relevance is set to high.
-TEST_F(PriceInsightsModelTest, TestPriceBucketLowLowPriceMessageHighRelevance) {
-  base::RunLoop run_loop;
-
-  features_.InitAndEnableFeatureWithParameters(
-      commerce::kPriceInsightsIos,
-      {{kLowPriceParam, kLowPriceParamPriceIsLow}});
-
-  shopping_service_->SetIsSubscribedCallbackValue(true);
-
-  std::optional<commerce::ProductInfo> info;
-  info.emplace();
-  info->title = kTestTitle;
-  info->product_cluster_id = 12345L;
-  shopping_service_->SetResponseForGetProductInfoForUrl(std::move(info));
-
-  std::optional<commerce::PriceInsightsInfo> price_info;
-  price_info.emplace();
-  price_info->product_cluster_id = 123u;
-  price_info->catalog_history_prices.emplace_back("2021-01-01", 3330000);
-  price_info->catalog_history_prices.emplace_back("2021-01-02", 4440000);
-  price_info->price_bucket = commerce::PriceBucket::kLowPrice;
-  shopping_service_->SetResponseForGetPriceInsightsInfoForUrl(
-      std::move(price_info));
-
-  EXPECT_CALL(*shopping_service_, GetProductInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, GetPriceInsightsInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, IsSubscribed(_, _)).Times(1);
-
-  price_insights_model_->FetchConfigurationForWebState(
-      web_state_.get(),
-      base::BindOnce(&PriceInsightsModelTest::FetchConfigurationCallback,
-                     base::Unretained(this))
-          .Then(run_loop.QuitClosure()));
-
-  run_loop.Run();
-
-  PriceInsightsItemConfiguration* config =
-      static_cast<PriceInsightsItemConfiguration*>(
-          returned_configuration_.get());
-
-  EXPECT_EQ(l10n_util::GetStringUTF8(
-                IDS_SHOPPING_INSIGHTS_ICON_EXPANDED_TEXT_LOW_PRICE),
-            config->accessibility_label);
-  EXPECT_EQ(l10n_util::GetStringUTF8(
-                IDS_SHOPPING_INSIGHTS_ICON_EXPANDED_TEXT_LOW_PRICE),
-            config->entrypoint_message);
-  EXPECT_EQ(base::SysNSStringToUTF8(kDownTrendSymbol),
-            config->entrypoint_image_name);
-  EXPECT_EQ(ContextualPanelItemConfiguration::EntrypointImageType::Image,
-            config->image_type);
-  EXPECT_EQ(ContextualPanelItemConfiguration::high_relevance,
-            config->relevance);
-  EXPECT_EQ(&feature_engagement::kIPHiOSContextualPanelPriceInsightsFeature,
-            config->iph_feature);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointUsed,
-            config->iph_entrypoint_used_event_name);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointExplicitlyDismissed,
-            config->iph_entrypoint_explicitly_dismissed);
-}
-
-// Test that when the price bucket is low, the entrypoint message is set to a
-// specific string, and the relevance is set to high.
 TEST_F(PriceInsightsModelTest, TestPriceBucketLowGoodDealMessageHighRelevance) {
   base::RunLoop run_loop;
 
-  features_.InitAndEnableFeatureWithParameters(
-      commerce::kPriceInsightsIos,
-      {{kLowPriceParam, kLowPriceParamGoodDealNow}});
-
   shopping_service_->SetIsSubscribedCallbackValue(true);
 
   std::optional<commerce::ProductInfo> info;
@@ -745,68 +673,12 @@
             config->iph_entrypoint_explicitly_dismissed);
 }
 
-// Test that when the price bucket is low, the entrypoint message is set to a
-// specific string, and the relevance is set to high.
-TEST_F(PriceInsightsModelTest,
-       TestPriceBucketLowSeePriceHistoryMessageHighRelevance) {
-  base::RunLoop run_loop;
-
-  features_.InitAndEnableFeatureWithParameters(
-      commerce::kPriceInsightsIos,
-      {{kLowPriceParam, kLowPriceParamSeePriceHistory}});
-
-  shopping_service_->SetIsSubscribedCallbackValue(true);
-
-  std::optional<commerce::ProductInfo> info;
-  info.emplace();
-  info->title = kTestTitle;
-  info->product_cluster_id = 12345L;
-  shopping_service_->SetResponseForGetProductInfoForUrl(std::move(info));
-
-  std::optional<commerce::PriceInsightsInfo> price_info;
-  price_info.emplace();
-  price_info->product_cluster_id = 123u;
-  price_info->catalog_history_prices.emplace_back("2021-01-01", 3330000);
-  price_info->catalog_history_prices.emplace_back("2021-01-02", 4440000);
-  price_info->price_bucket = commerce::PriceBucket::kLowPrice;
-  shopping_service_->SetResponseForGetPriceInsightsInfoForUrl(
-      std::move(price_info));
-
-  EXPECT_CALL(*shopping_service_, GetProductInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, GetPriceInsightsInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, IsSubscribed(_, _)).Times(1);
-
-  price_insights_model_->FetchConfigurationForWebState(
-      web_state_.get(),
-      base::BindOnce(&PriceInsightsModelTest::FetchConfigurationCallback,
-                     base::Unretained(this))
-          .Then(run_loop.QuitClosure()));
-
-  run_loop.Run();
-
-  PriceInsightsItemConfiguration* config =
-      static_cast<PriceInsightsItemConfiguration*>(
-          returned_configuration_.get());
-
-  EXPECT_EQ(
-      l10n_util::GetStringUTF8(IDS_INSIGHTS_ICON_EXPANDED_TEXT_PRICE_HISTORY),
-      config->accessibility_label);
-  EXPECT_EQ(
-      l10n_util::GetStringUTF8(IDS_INSIGHTS_ICON_EXPANDED_TEXT_PRICE_HISTORY),
-      config->entrypoint_message);
-  EXPECT_EQ(ContextualPanelItemConfiguration::high_relevance,
-            config->relevance);
-}
-
-// Test that when the price bucket is high and PriceInisghtsHighPrice is
-// disabled, the relevance is set to low and the accessibility text are not
-// empty.
+// Test that when the price bucket is high, the relevance is set to low and the
+// accessibility text are not empty.
 TEST_F(PriceInsightsModelTest,
        TestHighPriceDisabledPriceBucketHighEmptyMessageLowRelevance) {
   base::RunLoop run_loop;
 
-  features_.InitAndDisableFeature(commerce::kPriceInsightsHighPriceIos);
-
   shopping_service_->SetIsSubscribedCallbackValue(true);
 
   std::optional<commerce::ProductInfo> info;
@@ -857,192 +729,11 @@
             config->iph_entrypoint_explicitly_dismissed);
 }
 
-// Test that when the price bucket is high and the page is subscribed, the
-// relevance is set to low and the accessibility text are not empty.
-TEST_F(PriceInsightsModelTest, TestPriceBucketHighSubscribedLowRelevance) {
-  base::RunLoop run_loop;
-
-  features_.InitAndEnableFeature(commerce::kPriceInsightsHighPriceIos);
-
-  shopping_service_->SetIsSubscribedCallbackValue(true);
-
-  std::optional<commerce::ProductInfo> info;
-  info.emplace();
-  info->title = kTestTitle;
-  info->product_cluster_id = 12345L;
-  shopping_service_->SetResponseForGetProductInfoForUrl(std::move(info));
-
-  std::optional<commerce::PriceInsightsInfo> price_info;
-  price_info.emplace();
-  price_info->catalog_history_prices.emplace_back("2021-01-01", 3330000);
-  price_info->catalog_history_prices.emplace_back("2021-01-02", 4440000);
-  price_info->price_bucket = commerce::PriceBucket::kHighPrice;
-  shopping_service_->SetResponseForGetPriceInsightsInfoForUrl(
-      std::move(price_info));
-
-  EXPECT_CALL(*shopping_service_, GetProductInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, GetPriceInsightsInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, IsSubscribed(_, _)).Times(1);
-
-  price_insights_model_->FetchConfigurationForWebState(
-      web_state_.get(),
-      base::BindOnce(&PriceInsightsModelTest::FetchConfigurationCallback,
-                     base::Unretained(this))
-          .Then(run_loop.QuitClosure()));
-
-  run_loop.Run();
-
-  PriceInsightsItemConfiguration* config =
-      static_cast<PriceInsightsItemConfiguration*>(
-          returned_configuration_.get());
-
-  EXPECT_EQ(l10n_util::GetStringUTF8(IDS_PRICE_INSIGHTS_ACCESSIBILITY),
-            config->accessibility_label);
-  EXPECT_EQ("", config->entrypoint_message);
-  EXPECT_EQ(base::SysNSStringToUTF8(kUpTrendSymbol),
-            config->entrypoint_image_name);
-  EXPECT_EQ(ContextualPanelItemConfiguration::EntrypointImageType::Image,
-            config->image_type);
-  EXPECT_EQ(ContextualPanelItemConfiguration::low_relevance, config->relevance);
-  EXPECT_EQ(&feature_engagement::kIPHiOSContextualPanelPriceInsightsFeature,
-            config->iph_feature);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointUsed,
-            config->iph_entrypoint_used_event_name);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointExplicitlyDismissed,
-            config->iph_entrypoint_explicitly_dismissed);
-}
-
-// Test that when the price bucket is high and the page can not be tracked, the
-// relevance is set to low and the accessibility text is not empty.
-TEST_F(PriceInsightsModelTest,
-       TestPriceBucketHighTrackNotAvailableLowRelevance) {
-  base::RunLoop run_loop;
-
-  features_.InitAndEnableFeature(commerce::kPriceInsightsHighPriceIos);
-
-  shopping_service_->SetIsSubscribedCallbackValue(true);
-
-  std::optional<commerce::ProductInfo> info;
-  info.emplace();
-  info->title = kTestTitle;
-  shopping_service_->SetResponseForGetProductInfoForUrl(std::move(info));
-
-  std::optional<commerce::PriceInsightsInfo> price_info;
-  price_info.emplace();
-  price_info->catalog_history_prices.emplace_back("2021-01-01", 3330000);
-  price_info->catalog_history_prices.emplace_back("2021-01-02", 4440000);
-  price_info->price_bucket = commerce::PriceBucket::kHighPrice;
-  shopping_service_->SetResponseForGetPriceInsightsInfoForUrl(
-      std::move(price_info));
-
-  EXPECT_CALL(*shopping_service_, GetProductInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, GetPriceInsightsInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, IsSubscribed(_, _)).Times(0);
-
-  price_insights_model_->FetchConfigurationForWebState(
-      web_state_.get(),
-      base::BindOnce(&PriceInsightsModelTest::FetchConfigurationCallback,
-                     base::Unretained(this))
-          .Then(run_loop.QuitClosure()));
-
-  run_loop.Run();
-
-  PriceInsightsItemConfiguration* config =
-      static_cast<PriceInsightsItemConfiguration*>(
-          returned_configuration_.get());
-
-  EXPECT_EQ(l10n_util::GetStringUTF8(IDS_PRICE_INSIGHTS_ACCESSIBILITY),
-            config->accessibility_label);
-  EXPECT_EQ("", config->entrypoint_message);
-  EXPECT_EQ(base::SysNSStringToUTF8(kUpTrendSymbol),
-            config->entrypoint_image_name);
-  EXPECT_EQ(ContextualPanelItemConfiguration::EntrypointImageType::Image,
-            config->image_type);
-  EXPECT_EQ(ContextualPanelItemConfiguration::low_relevance, config->relevance);
-  EXPECT_EQ(&feature_engagement::kIPHiOSContextualPanelPriceInsightsFeature,
-            config->iph_feature);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointUsed,
-            config->iph_entrypoint_used_event_name);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointExplicitlyDismissed,
-            config->iph_entrypoint_explicitly_dismissed);
-}
-
-// Test that when the price bucket is high and the page is currently not
-// subscribed, the relevance is set to high and both the entrypoint text and
-// accessibility text are not empty.
-TEST_F(PriceInsightsModelTest, TestPriceBucketHighHighRelevance) {
-  base::RunLoop run_loop;
-
-  features_.InitAndEnableFeature(commerce::kPriceInsightsHighPriceIos);
-
-  shopping_service_->SetIsSubscribedCallbackValue(false);
-
-  std::optional<commerce::ProductInfo> info;
-  info.emplace();
-  info->title = kTestTitle;
-  info->product_cluster_id = 12345L;
-  shopping_service_->SetResponseForGetProductInfoForUrl(std::move(info));
-
-  std::optional<commerce::PriceInsightsInfo> price_info;
-  price_info.emplace();
-  price_info->product_cluster_id = 123u;
-  price_info->catalog_history_prices.emplace_back("2021-01-01", 3330000);
-  price_info->catalog_history_prices.emplace_back("2021-01-02", 4440000);
-  price_info->price_bucket = commerce::PriceBucket::kHighPrice;
-  shopping_service_->SetResponseForGetPriceInsightsInfoForUrl(
-      std::move(price_info));
-
-  EXPECT_CALL(*shopping_service_, GetProductInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, GetPriceInsightsInfoForUrl(_, _)).Times(1);
-  EXPECT_CALL(*shopping_service_, IsSubscribed(_, _)).Times(1);
-
-  price_insights_model_->FetchConfigurationForWebState(
-      web_state_.get(),
-      base::BindOnce(&PriceInsightsModelTest::FetchConfigurationCallback,
-                     base::Unretained(this))
-          .Then(run_loop.QuitClosure()));
-
-  run_loop.Run();
-
-  PriceInsightsItemConfiguration* config =
-      static_cast<PriceInsightsItemConfiguration*>(
-          returned_configuration_.get());
-
-  EXPECT_EQ(
-      l10n_util::GetStringUTF8(IDS_INSIGHTS_ICON_PRICE_HIGH_EXPANDED_TEXT),
-      config->accessibility_label);
-  EXPECT_EQ(
-      l10n_util::GetStringUTF8(IDS_INSIGHTS_ICON_PRICE_HIGH_EXPANDED_TEXT),
-      config->entrypoint_message);
-  EXPECT_EQ(base::SysNSStringToUTF8(kUpTrendSymbol),
-            config->entrypoint_image_name);
-  EXPECT_EQ(ContextualPanelItemConfiguration::EntrypointImageType::Image,
-            config->image_type);
-  EXPECT_EQ(ContextualPanelItemConfiguration::high_relevance,
-            config->relevance);
-  EXPECT_EQ(&feature_engagement::kIPHiOSContextualPanelPriceInsightsFeature,
-            config->iph_feature);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointUsed,
-            config->iph_entrypoint_used_event_name);
-  EXPECT_EQ(feature_engagement::events::
-                kIOSContextualPanelPriceInsightsEntrypointExplicitlyDismissed,
-            config->iph_entrypoint_explicitly_dismissed);
-}
-
 // Test that when the price bucket is low, but history is missing, the relevance
 // is set to low and the entry point does not have a message.
 TEST_F(PriceInsightsModelTest, TestPriceBucketLowNoHistoryLowRelevance) {
   base::RunLoop run_loop;
 
-  features_.InitAndEnableFeatureWithParameters(
-      commerce::kPriceInsightsIos,
-      {{kLowPriceParam, kLowPriceParamPriceIsLow}});
-
   shopping_service_->SetIsSubscribedCallbackValue(true);
 
   std::optional<commerce::ProductInfo> info;
diff --git a/ios/chrome/browser/push_notification/model/notification_metrics_recorder_unittest.mm b/ios/chrome/browser/push_notification/model/notification_metrics_recorder_unittest.mm
index 18753b7..b141b0c0 100644
--- a/ios/chrome/browser/push_notification/model/notification_metrics_recorder_unittest.mm
+++ b/ios/chrome/browser/push_notification/model/notification_metrics_recorder_unittest.mm
@@ -7,6 +7,7 @@
 #import <UserNotifications/UserNotifications.h>
 
 #import "base/test/metrics/histogram_tester.h"
+#import "base/test/scoped_run_loop_timeout.h"
 #import "base/test/task_environment.h"
 #import "ios/chrome/browser/push_notification/model/constants.h"
 #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h"
@@ -14,6 +15,8 @@
 #import "testing/platform_test.h"
 #import "third_party/ocmock/OCMock/OCMock.h"
 
+using base::test::ScopedRunLoopTimeout;
+
 // A fake implementation of the NotificationClassifier protocol for use in
 // tests.
 @interface FakeNotificationClassifier : NSObject <NotificationClassifier>
@@ -33,21 +36,12 @@
  protected:
   void SetUp() override {
     PlatformTest::SetUp();
-    notification_center_ =
-        [OCMockObject mockForClass:[UNUserNotificationCenter class]];
+    CreateNotificationCenter();
     classifier_ = [[FakeNotificationClassifier alloc] init];
     classifier_.notificationType = NotificationType::kTipsEnhancedSafeBrowsing;
     metrics_recorder_ = [[NotificationMetricsRecorder alloc]
         initWithNotificationCenter:notification_center_];
     metrics_recorder_.classifier = classifier_;
-
-    delivered_notifications_ = [NSMutableArray array];
-    id block = ^(void (^completionHandler)(NSArray<UNNotification*>*)) {
-      completionHandler([this->delivered_notifications_ copy]);
-    };
-    OCMStub(
-        [notification_center_ getDeliveredNotificationsWithCompletionHandler:
-                                  [OCMArg checkWithBlock:block]]);
   }
 
   // Creates a stub UNNotification with the given `identifier`.
@@ -62,9 +56,25 @@
     return notification;
   }
 
+  // Creates a mock UNUserNotificationCenter with a stubbed
+  // `getDeliveredNotificationsWithCompletionHandler` that returns a copy of
+  // `delivered_notifications_`.
+  void CreateNotificationCenter() {
+    notification_center_ = OCMClassMock([UNUserNotificationCenter class]);
+    delivered_notifications_ = [NSMutableArray array];
+    id block = ^(void (^completionHandler)(NSArray<UNNotification*>*)) {
+      completionHandler([this->delivered_notifications_ copy]);
+      return YES;
+    };
+    OCMStub(
+        [notification_center_ getDeliveredNotificationsWithCompletionHandler:
+                                  [OCMArg checkWithBlock:block]]);
+  }
+
   // Calls the metric recorder's `handleDeliveredNotificationsWithClosure:` and
   // waits for the closure to be called.
   void HandleDeliveredNotifications() {
+    ScopedRunLoopTimeout scoped_timeout(FROM_HERE, base::Seconds(5));
     base::RunLoop run_loop;
     [metrics_recorder_
         handleDeliveredNotificationsWithClosure:run_loop.QuitClosure()];
@@ -83,7 +93,7 @@
 // Tests that when handleDeliveredNotifications is called, new notifications are
 // recorded as delivered, and notifications that are no longer present are
 // recorded as dismissed.
-TEST_F(NotificationMetricsRecorderTest, TesthandleDeliveredNotifications) {
+TEST_F(NotificationMetricsRecorderTest, TestHandleDeliveredNotifications) {
   // Setup the notification center mock to return a notification.
   UNNotification* notification = StubNotification(@"id1");
   [delivered_notifications_ addObject:notification];
diff --git a/ios/chrome/browser/save_to_drive/ui_bundled/BUILD.gn b/ios/chrome/browser/save_to_drive/ui_bundled/BUILD.gn
index b45bc2fd..a2620aa9 100644
--- a/ios/chrome/browser/save_to_drive/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/save_to_drive/ui_bundled/BUILD.gn
@@ -96,6 +96,7 @@
     ":util",
     "//base/test:test_support",
     "//components/signin/public/identity_manager:test_support",
+    "//components/test/ios",
     "//ios/chrome/app/strings:ios_strings_grit",
     "//ios/chrome/browser/account_picker/ui_bundled",
     "//ios/chrome/browser/account_picker/ui_bundled:account_picker_configuration",
diff --git a/ios/chrome/browser/saved_tab_groups/model/BUILD.gn b/ios/chrome/browser/saved_tab_groups/model/BUILD.gn
index 04dd0b2..e83b3be 100644
--- a/ios/chrome/browser/saved_tab_groups/model/BUILD.gn
+++ b/ios/chrome/browser/saved_tab_groups/model/BUILD.gn
@@ -94,6 +94,7 @@
     "//components/saved_tab_groups/public",
     "//components/saved_tab_groups/test_support",
     "//components/tab_groups",
+    "//components/test/ios",
     "//ios/chrome/app/application_delegate:app_state",
     "//ios/chrome/browser/data_sharing/model",
     "//ios/chrome/browser/saved_tab_groups/ui:utils",
diff --git a/ios/chrome/browser/search_engine_choice/coordinator/BUILD.gn b/ios/chrome/browser/search_engine_choice/coordinator/BUILD.gn
index d15f0f78b..9cd22ad 100644
--- a/ios/chrome/browser/search_engine_choice/coordinator/BUILD.gn
+++ b/ios/chrome/browser/search_engine_choice/coordinator/BUILD.gn
@@ -62,6 +62,7 @@
     "//components/regional_capabilities",
     "//components/search_engines",
     "//components/search_engines:search_engines_switches",
+    "//components/test/ios",
     "//ios/chrome/browser/first_run/ui_bundled:screen_delegate",
     "//ios/chrome/browser/policy/model:test_support",
     "//ios/chrome/browser/regional_capabilities/model",
diff --git a/ios/chrome/browser/settings/ui_bundled/downloads/BUILD.gn b/ios/chrome/browser/settings/ui_bundled/downloads/BUILD.gn
index d5f1b7b..6e7f9fc07 100644
--- a/ios/chrome/browser/settings/ui_bundled/downloads/BUILD.gn
+++ b/ios/chrome/browser/settings/ui_bundled/downloads/BUILD.gn
@@ -68,6 +68,7 @@
     ":downloads",
     "//base/test:test_support",
     "//components/signin/public/identity_manager:test_support",
+    "//components/test/ios",
     "//ios/chrome/app/strings:ios_strings_grit",
     "//ios/chrome/browser/authentication/ui_bundled/cells",
     "//ios/chrome/browser/authentication/ui_bundled/signin:constants",
diff --git a/ios/chrome/browser/shared/model/prefs/BUILD.gn b/ios/chrome/browser/shared/model/prefs/BUILD.gn
index 0e64928f..c2a67832 100644
--- a/ios/chrome/browser/shared/model/prefs/BUILD.gn
+++ b/ios/chrome/browser/shared/model/prefs/BUILD.gn
@@ -115,7 +115,6 @@
     "//ios/chrome/browser/content_suggestions/ui_bundled/safety_check:prefs",
     "//ios/chrome/browser/content_suggestions/ui_bundled/shop_card",
     "//ios/chrome/browser/content_suggestions/ui_bundled/shop_card:prefs",
-    "//ios/chrome/browser/content_suggestions/ui_bundled/tips/model",
     "//ios/chrome/browser/cross_platform_promos/model",
     "//ios/chrome/browser/download/model/auto_deletion",
     "//ios/chrome/browser/drive/model:policy",
diff --git a/ios/chrome/browser/shared/model/prefs/DEPS b/ios/chrome/browser/shared/model/prefs/DEPS
index bae793e6..16d4b1a 100644
--- a/ios/chrome/browser/shared/model/prefs/DEPS
+++ b/ios/chrome/browser/shared/model/prefs/DEPS
@@ -33,7 +33,6 @@
   "+ios/chrome/browser/content_suggestions/ui_bundled/price_tracking_promo/price_tracking_promo_prefs.h",
   "+ios/chrome/browser/content_suggestions/ui_bundled/safety_check/safety_check_prefs.h",
   "+ios/chrome/browser/content_suggestions/ui_bundled/shop_card/shop_card_prefs.h",
-  "+ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h",
   "+ios/chrome/browser/first_run/ui_bundled/welcome_back/model/welcome_back_prefs.h",
   "+ios/chrome/browser/cross_platform_promos/model/cross_platform_promos_service.h",
 ]
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
index 10c7b0f5..f8b0da03 100644
--- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
@@ -103,7 +103,6 @@
 #import "ios/chrome/browser/content_suggestions/ui_bundled/price_tracking_promo/price_tracking_promo_prefs.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/safety_check/safety_check_prefs.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/shop_card/shop_card_prefs.h"
-#import "ios/chrome/browser/content_suggestions/ui_bundled/tips/model/tips_prefs.h"
 #import "ios/chrome/browser/cross_platform_promos/model/cross_platform_promos_service.h"
 #import "ios/chrome/browser/download/model/auto_deletion/auto_deletion_service.h"
 #import "ios/chrome/browser/drive/model/drive_policy.h"
@@ -218,6 +217,10 @@
     "gaia_cookie.last_list_accounts_data";
 inline constexpr char kFRESourceTrial[] = "FileMetricsProviderFRESourceTrial";
 
+// Deprecated 10/2025
+inline constexpr char kTipsInMagicStackDisabledPref[] =
+    "tips_magic_stack.disabled";
+
 // Migrates a boolean pref from source to target PrefService.
 void MigrateBooleanPref(std::string_view pref_name,
                         PrefService* target_pref_service,
@@ -698,7 +701,6 @@
   RegisterPriceTrackingPromoPrefs(registry);
   regional_capabilities::prefs::RegisterProfilePrefs(registry);
   shop_card_prefs::RegisterPrefs(registry);
-  tips_prefs::RegisterPrefs(registry);
   RegisterVoiceSearchBrowserStatePrefs(registry);
   safe_browsing::RegisterProfilePrefs(registry);
   segmentation_platform::SegmentationPlatformService::RegisterProfilePrefs(
@@ -951,6 +953,8 @@
                                 true);
 
   // Registers the Magic Stack module visibility prefs.
+  registry->RegisterBooleanPref(prefs::kHomeCustomizationMagicStackTipsEnabled,
+                                true);
   registry->RegisterBooleanPref(
       prefs::kHomeCustomizationMagicStackSetUpListEnabled, true);
   registry->RegisterBooleanPref(
@@ -1097,6 +1101,9 @@
   registry->RegisterInt64Pref(kNtpShownBookmarksFolder, 0);
   registry->RegisterStringPref(kGaiaCookieLastListAccountsData, std::string());
   registry->RegisterStringPref(kFRESourceTrial, std::string());
+
+  // Deprecated 10/2025
+  registry->RegisterBooleanPref(kTipsInMagicStackDisabledPref, false);
 }
 
 // This method should be periodically pruned of year+ old migrations.
@@ -1270,6 +1277,9 @@
   prefs->ClearPref(kNtpShownBookmarksFolder);
   prefs->ClearPref(kGaiaCookieLastListAccountsData);
   prefs->ClearPref(kFRESourceTrial);
+
+  // Added 10/2025
+  prefs->ClearPref(kTipsInMagicStackDisabledPref);
 }
 
 void MigrateObsoleteUserDefault() {
diff --git a/ios/chrome/browser/shared/public/features/features.h b/ios/chrome/browser/shared/public/features/features.h
index 5ed65e4..259d8ab 100644
--- a/ios/chrome/browser/shared/public/features/features.h
+++ b/ios/chrome/browser/shared/public/features/features.h
@@ -354,6 +354,19 @@
 // Whether the new tab grid tabs transitions should be enabled.
 bool IsNewTabGridTransitionsEnabled();
 
+// When enabled, a Tab Group button will appear in the overflow menu.
+BASE_DECLARE_FEATURE(kTabGroupInOverflowMenu);
+
+// When enabled, a Tab Group button will appear in the Tab Icon context menu.
+BASE_DECLARE_FEATURE(kTabGroupInTabIconContextMenu);
+
+// When enabled, a "New Tab Button" will be added to the Tab Group recall
+// surface.
+BASE_DECLARE_FEATURE(kTabRecallNewTabGroupButton);
+
+// When enabled, an overflow menu will replace the edit menu on the GTS.
+BASE_DECLARE_FEATURE(kTabSwitcherOverflowMenu);
+
 // Feature to enable force showing the Contextual Panel entrypoint.
 BASE_DECLARE_FEATURE(kContextualPanelForceShowEntrypoint);
 
diff --git a/ios/chrome/browser/shared/public/features/features.mm b/ios/chrome/browser/shared/public/features/features.mm
index 0847658..f5f1a88 100644
--- a/ios/chrome/browser/shared/public/features/features.mm
+++ b/ios/chrome/browser/shared/public/features/features.mm
@@ -261,6 +261,14 @@
   return base::FeatureList::IsEnabled(kTabGridNewTransitions);
 }
 
+BASE_FEATURE(kTabGroupInOverflowMenu, base::FEATURE_DISABLED_BY_DEFAULT);
+
+BASE_FEATURE(kTabGroupInTabIconContextMenu, base::FEATURE_DISABLED_BY_DEFAULT);
+
+BASE_FEATURE(kTabRecallNewTabGroupButton, base::FEATURE_DISABLED_BY_DEFAULT);
+
+BASE_FEATURE(kTabSwitcherOverflowMenu, base::FEATURE_DISABLED_BY_DEFAULT);
+
 BASE_FEATURE(kContextualPanelForceShowEntrypoint,
              base::FEATURE_DISABLED_BY_DEFAULT);
 
diff --git a/ios/chrome/browser/signin/model/BUILD.gn b/ios/chrome/browser/signin/model/BUILD.gn
index ee805b97..0e04c20 100644
--- a/ios/chrome/browser/signin/model/BUILD.gn
+++ b/ios/chrome/browser/signin/model/BUILD.gn
@@ -489,6 +489,7 @@
     "//components/sync:test_support",
     "//components/sync_preferences",
     "//components/sync_preferences:test_support",
+    "//components/test/ios",
     "//google_apis",
     "//ios/chrome/app:change_profile_commands",
     "//ios/chrome/browser/content_settings/model",
diff --git a/ios/chrome/browser/start_surface/ui_bundled/start_surface_egtest.mm b/ios/chrome/browser/start_surface/ui_bundled/start_surface_egtest.mm
index c34b564e..238b6ca 100644
--- a/ios/chrome/browser/start_surface/ui_bundled/start_surface_egtest.mm
+++ b/ios/chrome/browser/start_surface/ui_bundled/start_surface_egtest.mm
@@ -142,20 +142,8 @@
 // Tests that navigating to a page and restarting upon cold start, an NTP page
 // is opened with the Return to Recent Tab tile. Then, removing that last tab
 // also removes the tile while that NTP is still being shown.
-// TODO(crbug.com/443695878): Test disabled on simulator.
-#if TARGET_OS_SIMULATOR
-#define MAYBE_testRemoveRecentTabRemovesReturnToRecentTabTile \
-  DISABLED_testRemoveRecentTabRemovesReturnToRecentTabTile
-#else
-#define MAYBE_testRemoveRecentTabRemovesReturnToRecentTabTile \
-  testRemoveRecentTabRemovesReturnToRecentTabTile
-#endif
-- (void)MAYBE_testRemoveRecentTabRemovesReturnToRecentTabTile {
-  // TODO(crbug.com/441260657): Re-enable the test on iOS26.
-  if (base::ios::IsRunningOnIOS26OrLater()) {
-    EARL_GREY_TEST_DISABLED(@"Test disabled on iOS 26.");
-  }
-
+// TODO(crbug.com/441260657): Re-enable when fixed.
+- (void)DISABLED_testRemoveRecentTabRemovesReturnToRecentTabTile {
   GREYAssertTrue(self.testServer->Start(), @"Test server failed to start.");
   const GURL destinationUrl = self.testServer->GetURL("/pony.html");
   [ChromeEarlGrey loadURL:destinationUrl];
diff --git a/ios/chrome/browser/web/model/BUILD.gn b/ios/chrome/browser/web/model/BUILD.gn
index 331e3ac..c837124 100644
--- a/ios/chrome/browser/web/model/BUILD.gn
+++ b/ios/chrome/browser/web/model/BUILD.gn
@@ -94,7 +94,7 @@
     "//ios/chrome/browser/content_settings/model",
     "//ios/chrome/browser/context_menu/ui_bundled:coordinator",
     "//ios/chrome/browser/dialogs/ui_bundled:dialogs_internal",
-    "//ios/chrome/browser/enterprise/data_controls",
+    "//ios/chrome/browser/enterprise/data_controls/model",
     "//ios/chrome/browser/overlays/model",
     "//ios/chrome/browser/overlays/model/public/web_content_area",
     "//ios/chrome/browser/permissions/model:tab_helper",
diff --git a/ios/chrome/browser/web/model/DEPS b/ios/chrome/browser/web/model/DEPS
index 26b0873..13b06d0 100644
--- a/ios/chrome/browser/web/model/DEPS
+++ b/ios/chrome/browser/web/model/DEPS
@@ -7,7 +7,7 @@
   "+ios/chrome/browser/crash_report/model",
   "+ios/chrome/browser/enterprise/connectors/ios_enterprise_interstitial.h",
   "+ios/chrome/browser/enterprise/connectors/reporting",
-  "+ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h",
+  "+ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h",
   "+ios/chrome/browser/feature_engagement/model/tracker_factory.h",
   "+ios/chrome/browser/first_run/model",
   "+ios/chrome/browser/flags/about_flags.h",
diff --git a/ios/chrome/browser/web/model/web_state_delegate_browser_agent.mm b/ios/chrome/browser/web/model/web_state_delegate_browser_agent.mm
index 77f5251..ecf993d 100644
--- a/ios/chrome/browser/web/model/web_state_delegate_browser_agent.mm
+++ b/ios/chrome/browser/web/model/web_state_delegate_browser_agent.mm
@@ -11,7 +11,7 @@
 #import "ios/chrome/browser/content_settings/model/host_content_settings_map_factory.h"
 #import "ios/chrome/browser/context_menu/ui_bundled/context_menu_configuration_provider.h"
 #import "ios/chrome/browser/dialogs/ui_bundled/nsurl_protection_space_util.h"
-#import "ios/chrome/browser/enterprise/data_controls/data_controls_tab_helper.h"
+#import "ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h"
 #import "ios/chrome/browser/overlays/model/public/overlay_callback_manager.h"
 #import "ios/chrome/browser/overlays/model/public/overlay_modality.h"
 #import "ios/chrome/browser/overlays/model/public/overlay_request.h"
diff --git a/ios/chrome/browser/whats_new/coordinator/promo/whats_new_scene_agent_unittest.mm b/ios/chrome/browser/whats_new/coordinator/promo/whats_new_scene_agent_unittest.mm
index d0ad6fb3..030b864 100644
--- a/ios/chrome/browser/whats_new/coordinator/promo/whats_new_scene_agent_unittest.mm
+++ b/ios/chrome/browser/whats_new/coordinator/promo/whats_new_scene_agent_unittest.mm
@@ -56,7 +56,6 @@
 
 // Tests that the What's New promo continuous registers in the promo manager.
 TEST_F(WhatsNewSceneAgentTest, TestWhatsNewPromoRegistration) {
-  feature_list_.InitAndEnableFeature(commerce::kPriceInsightsIos);
   EXPECT_CALL(*promos_manager_.get(), RegisterPromoForContinuousDisplay(
                                           promos_manager::Promo::WhatsNew))
       .Times(1);
diff --git a/ios/chrome/common/credential_provider/ui/BUILD.gn b/ios/chrome/common/credential_provider/ui/BUILD.gn
new file mode 100644
index 0000000..f0e5b39
--- /dev/null
+++ b/ios/chrome/common/credential_provider/ui/BUILD.gn
@@ -0,0 +1,35 @@
+# 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.
+
+import("//build/buildflag_header.gni")
+import("//build/config/ios/ios_sdk.gni")
+
+source_set("ui") {
+  sources = [
+    "passkey_welcome_screen_strings.h",
+    "passkey_welcome_screen_strings.mm",
+    "passkey_welcome_screen_view_controller.h",
+    "passkey_welcome_screen_view_controller.mm",
+  ]
+  deps = [
+    "//base",
+    "//ios/chrome/common/credential_provider/ui/resources",
+    "//ios/chrome/common/ui/colors",
+    "//ios/chrome/common/ui/instruction_view",
+    "//ios/chrome/common/ui/promo_style",
+    "//ios/chrome/common/ui/util",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "passkey_welcome_screen_view_controller_unittest.mm" ]
+  deps = [
+    ":ui",
+    "//base",
+    "//base/test:test_support",
+    "//ios/chrome/common/ui/colors",
+    "//testing/gtest",
+  ]
+}
diff --git a/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h
new file mode 100644
index 0000000..9c13c84
--- /dev/null
+++ b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h
@@ -0,0 +1,43 @@
+// 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.
+
+#ifndef IOS_CHROME_COMMON_CREDENTIAL_PROVIDER_UI_PASSKEY_WELCOME_SCREEN_STRINGS_H_
+#define IOS_CHROME_COMMON_CREDENTIAL_PROVIDER_UI_PASSKEY_WELCOME_SCREEN_STRINGS_H_
+
+#import <Foundation/Foundation.h>
+
+// Possible purposes for showing the passkey welcome screen.
+enum class PasskeyWelcomeScreenPurpose {
+  kEnroll,
+  kFixDegradedRecoverability,
+  kReauthenticate,
+};
+
+// Contains all the strings that need to be displayed in passkey welcome screen
+// for a specific `PasskeyWelcomeScreenPurpose`. Those strings cannot be
+// directly initialized in the view controller, because it needs to be displayed
+// in both Chromium and Credential Provider Extension, which have different
+// logic for string localization.
+@interface PasskeyWelcomeScreenStrings : NSObject
+
+@property(nonatomic, readonly) NSString* title;
+@property(nonatomic, readonly) NSString* subtitle;
+@property(nonatomic, readonly) NSString* footer;
+@property(nonatomic, readonly) NSString* primaryButton;
+@property(nonatomic, readonly) NSString* secondaryButton;
+@property(nonatomic, readonly) NSArray<NSString*>* instructions;
+
+- (instancetype)initWithTitle:(NSString*)title
+                     subtitle:(NSString*)subtitle
+                       footer:(NSString*)footer
+                primaryButton:(NSString*)primaryButton
+              secondaryButton:(NSString*)secondaryButton
+                 instructions:(NSArray<NSString*>*)instructions
+    NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+#endif  // IOS_CHROME_COMMON_CREDENTIAL_PROVIDER_UI_PASSKEY_WELCOME_SCREEN_STRINGS_H_
diff --git a/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.mm b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.mm
new file mode 100644
index 0000000..b9a4fd5
--- /dev/null
+++ b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.mm
@@ -0,0 +1,27 @@
+// 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.
+
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h"
+
+@implementation PasskeyWelcomeScreenStrings
+
+- (instancetype)initWithTitle:(NSString*)title
+                     subtitle:(NSString*)subtitle
+                       footer:(NSString*)footer
+                primaryButton:(NSString*)primaryButton
+              secondaryButton:(NSString*)secondaryButton
+                 instructions:(NSArray<NSString*>*)instructions {
+  self = [super init];
+  if (self) {
+    _title = title;
+    _subtitle = subtitle;
+    _footer = footer;
+    _primaryButton = primaryButton;
+    _secondaryButton = secondaryButton;
+    _instructions = instructions;
+  }
+  return self;
+}
+
+@end
diff --git a/ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.h b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.h
similarity index 65%
rename from ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.h
rename to ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.h
index 83ef3cd..ed03bb9b 100644
--- a/ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.h
+++ b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.h
@@ -2,23 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_UI_PASSKEY_WELCOME_SCREEN_VIEW_CONTROLLER_H_
-#define IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_UI_PASSKEY_WELCOME_SCREEN_VIEW_CONTROLLER_H_
+#ifndef IOS_CHROME_COMMON_CREDENTIAL_PROVIDER_UI_PASSKEY_WELCOME_SCREEN_VIEW_CONTROLLER_H_
+#define IOS_CHROME_COMMON_CREDENTIAL_PROVIDER_UI_PASSKEY_WELCOME_SCREEN_VIEW_CONTROLLER_H_
 
 #import <UIKit/UIKit.h>
 
 #import "base/ios/block_types.h"
 #import "ios/chrome/common/ui/promo_style/promo_style_view_controller.h"
 
+enum class PasskeyWelcomeScreenPurpose;
+@class PasskeyWelcomeScreenStrings;
 @class PasskeyWelcomeScreenViewController;
 
-// Possible purposes for showing the passkey welcome screen.
-enum class PasskeyWelcomeScreenPurpose {
-  kEnroll,
-  kFixDegradedRecoverability,
-  kReauthenticate,
-};
-
 // Delegate for the PasskeyWelcomeScreenViewController.
 @protocol PasskeyWelcomeScreenViewControllerDelegate
 
@@ -35,20 +30,19 @@
 // Designated initializer. `purpose` indicates the purpose for which the passkey
 // welcome screen needs to be shown, which impacts the screen's content.
 // `navigationItemTitleView` is the view that should be used as the navigation
-// bar title view. `userEmail` is the email address associated with the signed
-// in Google Account. Must not be `nil` if displayed in the UI associated with
-// `purpose`. `primaryButtonAction` is the block to execute when the primary
-// button displayed in the view is tapped.
+// bar title view. `primaryButtonAction` is the block to execute when the
+// primary button displayed in the view is tapped. `strings` contains all the
+// labels that need to be displayed on the screen.
 - (instancetype)initForPurpose:(PasskeyWelcomeScreenPurpose)purpose
        navigationItemTitleView:(UIView*)navigationItemTitleView
-                     userEmail:(NSString*)userEmail
                       delegate:(id<PasskeyWelcomeScreenViewControllerDelegate>)
                                    delegate
            primaryButtonAction:(ProceduralBlock)primaryButtonAction
+                       strings:(PasskeyWelcomeScreenStrings*)strings
     NS_DESIGNATED_INITIALIZER;
 
 - (instancetype)init NS_UNAVAILABLE;
 
 @end
 
-#endif  // IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_UI_PASSKEY_WELCOME_SCREEN_VIEW_CONTROLLER_H_
+#endif  // IOS_CHROME_COMMON_CREDENTIAL_PROVIDER_UI_PASSKEY_WELCOME_SCREEN_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.mm b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.mm
new file mode 100644
index 0000000..ba742ca
--- /dev/null
+++ b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.mm
@@ -0,0 +1,173 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.h"
+
+#import "base/notreached.h"
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h"
+#import "ios/chrome/common/ui/colors/semantic_color_names.h"
+#import "ios/chrome/common/ui/instruction_view/instruction_view.h"
+#import "ios/chrome/common/ui/util/constraints_ui_util.h"
+
+namespace {
+
+// Vertical spacing between the UI elements contained in the
+// `specificContentView`.
+constexpr CGFloat kSpecificContentVerticalSpacing = 24;
+
+// Leading, trailing and top margin to use for the screen's title.
+constexpr CGFloat kTitleHorizontalAndTopMargin = 24;
+
+// Returns the background color for this view.
+UIColor* GetBackgroundColor() {
+  return [UIColor colorNamed:kPrimaryBackgroundColor];
+}
+
+// Returns the banner name to use depending on the provided `purpose`.
+NSString* GetBannerName(PasskeyWelcomeScreenPurpose purpose) {
+  switch (purpose) {
+    case PasskeyWelcomeScreenPurpose::kEnroll:
+    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
+      return @"passkey_generic_banner";
+    case PasskeyWelcomeScreenPurpose::kReauthenticate:
+      return @"passkey_bootstrapping_banner";
+  }
+}
+
+}  // namespace
+
+@interface PasskeyWelcomeScreenViewController () <
+    PromoStyleViewControllerDelegate>
+
+@end
+
+@implementation PasskeyWelcomeScreenViewController {
+  // The purpose for which this view is shown. Used to appropriately set up the
+  // UI elements.
+  PasskeyWelcomeScreenPurpose _purpose;
+
+  // The view to be used as the navigation bar title view.
+  UIView* _navigationItemTitleView;
+
+  // Delegate for this view controller.
+  __weak id<PasskeyWelcomeScreenViewControllerDelegate>
+      _passkeyWelcomeScreenViewControllerDelegate;
+
+  // The block that should be executed when the primary button is tapped.
+  ProceduralBlock _primaryButtonAction;
+
+  // Contains all the strings that need to be displayed in the view.
+  PasskeyWelcomeScreenStrings* _strings;
+}
+
+- (instancetype)initForPurpose:(PasskeyWelcomeScreenPurpose)purpose
+       navigationItemTitleView:(UIView*)navigationItemTitleView
+                      delegate:(id<PasskeyWelcomeScreenViewControllerDelegate>)
+                                   delegate
+           primaryButtonAction:(ProceduralBlock)primaryButtonAction
+                       strings:(PasskeyWelcomeScreenStrings*)strings {
+  self = [super initWithTaskRunner:nullptr];
+  if (self) {
+    _purpose = purpose;
+    _navigationItemTitleView = navigationItemTitleView;
+    _passkeyWelcomeScreenViewControllerDelegate = delegate;
+    _primaryButtonAction = primaryButtonAction;
+    _strings = strings;
+  }
+  return self;
+}
+
+#pragma mark - UIViewController
+
+- (void)viewDidLoad {
+  self.bannerName = GetBannerName(_purpose);
+  self.bannerSize = BannerImageSizeType::kExtraShort;
+
+  self.titleText = _strings.title;
+  self.titleTopMarginWhenNoHeaderImage = kTitleHorizontalAndTopMargin;
+  self.titleHorizontalMargin = kTitleHorizontalAndTopMargin;
+
+  if (_purpose == PasskeyWelcomeScreenPurpose::kEnroll) {
+    self.specificContentView = [self createSpecificContentView];
+  } else {
+    self.subtitleText = _strings.subtitle;
+  }
+
+  self.primaryActionString = _strings.primaryButton;
+  self.secondaryActionString = _strings.secondaryButton;
+
+  [super viewDidLoad];
+
+  self.view.backgroundColor = GetBackgroundColor();
+  self.navigationItem.titleView = _navigationItemTitleView;
+}
+
+#pragma mark - PromoStyleViewController
+
+- (UIFontTextStyle)titleLabelFontTextStyle {
+  return UIFontTextStyleTitle1;
+}
+
+#pragma mark - PromoStyleViewControllerDelegate
+
+// Creates and configures the screen-specific view that's placed between the
+// titles and buttons.
+- (UIView*)createSpecificContentView {
+  UIView* specificContentView = [[UIView alloc] init];
+  specificContentView.translatesAutoresizingMaskIntoConstraints = NO;
+
+  InstructionView* instructionView =
+      [[InstructionView alloc] initWithList:_strings.instructions];
+  instructionView.translatesAutoresizingMaskIntoConstraints = NO;
+  [specificContentView addSubview:instructionView];
+  AddSameConstraintsToSides(
+      instructionView, specificContentView,
+      LayoutSides::kTop | LayoutSides::kLeading | LayoutSides::kTrailing);
+
+  UILabel* footerMessage = [self createFooterMessage];
+  [specificContentView addSubview:footerMessage];
+  AddSameConstraintsToSides(
+      footerMessage, specificContentView,
+      LayoutSides::kLeading | LayoutSides::kTrailing | LayoutSides::kBottom);
+
+  [NSLayoutConstraint activateConstraints:@[
+    [footerMessage.topAnchor
+        constraintGreaterThanOrEqualToAnchor:instructionView.bottomAnchor
+                                    constant:kSpecificContentVerticalSpacing],
+  ]];
+
+  return specificContentView;
+}
+
+// Creates and configures the footer message for the enrollment welcome screen.
+- (UILabel*)createFooterMessage {
+  UILabel* footerMessage = [[UILabel alloc] init];
+  footerMessage.translatesAutoresizingMaskIntoConstraints = NO;
+  footerMessage.textAlignment = NSTextAlignmentCenter;
+  footerMessage.adjustsFontForContentSizeCategory = YES;
+  footerMessage.textColor = [UIColor colorNamed:kGrey600Color];
+  footerMessage.numberOfLines = 0;
+
+  UIFont* font = [UIFont systemFontOfSize:13 weight:UIFontWeightRegular];
+  footerMessage.font = [[UIFontMetrics defaultMetrics] scaledFontForFont:font];
+  footerMessage.text = _strings.footer;
+
+  return footerMessage;
+}
+
+- (void)didTapPrimaryActionButton {
+  if (self.navigationController.topViewController != self) {
+    return;
+  }
+
+  CHECK(_primaryButtonAction);
+  _primaryButtonAction();
+}
+
+- (void)didTapSecondaryActionButton {
+  [_passkeyWelcomeScreenViewControllerDelegate
+      passkeyWelcomeScreenViewControllerShouldBeDismissed:self];
+}
+
+@end
diff --git a/ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller_unittest.mm b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller_unittest.mm
similarity index 67%
rename from ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller_unittest.mm
rename to ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller_unittest.mm
index 63a491a6..edcc58e 100644
--- a/ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller_unittest.mm
+++ b/ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller_unittest.mm
@@ -2,24 +2,33 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.h"
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.h"
 
 #import "base/test/task_environment.h"
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h"
 #import "ios/chrome/common/ui/colors/semantic_color_names.h"
 #import "testing/gtest_mac.h"
 #import "testing/platform_test.h"
 
 class PasskeyWelcomeScreenViewControllerTest : public PlatformTest {
  public:
+  PasskeyWelcomeScreenStrings* strings = [[PasskeyWelcomeScreenStrings alloc]
+        initWithTitle:@"title"
+             subtitle:@"subtitle"
+               footer:@"footer"
+        primaryButton:@"primaryButton"
+      secondaryButton:@"secondaryButton"
+         instructions:@[ @"step1", @"step2" ]];
+
   // Creates a PasskeyWelcomeScreenViewController for the provided purpose.
   PasskeyWelcomeScreenViewController* CreateController(
       PasskeyWelcomeScreenPurpose purpose) {
     return [[PasskeyWelcomeScreenViewController alloc]
                  initForPurpose:purpose
         navigationItemTitleView:[[UIView alloc] init]
-                      userEmail:@"peter.parker@gmail.com"
                        delegate:nil
-            primaryButtonAction:nil];
+            primaryButtonAction:nil
+                        strings:strings];
   }
 
  private:
@@ -36,14 +45,11 @@
   EXPECT_TRUE(controller.navigationItem.titleView);
   EXPECT_NSEQ(controller.bannerName, @"passkey_generic_banner");
   EXPECT_EQ(controller.bannerSize, BannerImageSizeType::kExtraShort);
-  EXPECT_NSEQ(controller.titleText,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_TITLE");
+  EXPECT_NSEQ(controller.titleText, @"title");
   EXPECT_FALSE(controller.subtitleText);
   EXPECT_EQ(controller.specificContentView.subviews.count, 2u);
-  EXPECT_NSEQ(controller.primaryActionString,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_GET_STARTED_BUTTON");
-  EXPECT_NSEQ(controller.secondaryActionString,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON");
+  EXPECT_NSEQ(controller.primaryActionString, @"primaryButton");
+  EXPECT_NSEQ(controller.secondaryActionString, @"secondaryButton");
   EXPECT_NSEQ(controller.view.backgroundColor,
               [UIColor colorNamed:kPrimaryBackgroundColor]);
 }
@@ -59,17 +65,11 @@
   EXPECT_TRUE(controller.navigationItem.titleView);
   EXPECT_NSEQ(controller.bannerName, @"passkey_generic_banner");
   EXPECT_EQ(controller.bannerSize, BannerImageSizeType::kExtraShort);
-  EXPECT_NSEQ(
-      controller.titleText,
-      @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_TITLE");
-  EXPECT_NSEQ(
-      controller.subtitleText,
-      @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_SUBTITLE");
+  EXPECT_NSEQ(controller.titleText, @"title");
+  EXPECT_NSEQ(controller.subtitleText, @"subtitle");
   EXPECT_EQ(controller.specificContentView.subviews.count, 0u);
-  EXPECT_NSEQ(controller.primaryActionString,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_GET_STARTED_BUTTON");
-  EXPECT_NSEQ(controller.secondaryActionString,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON");
+  EXPECT_NSEQ(controller.primaryActionString, @"primaryButton");
+  EXPECT_NSEQ(controller.secondaryActionString, @"secondaryButton");
   EXPECT_NSEQ(controller.view.backgroundColor,
               [UIColor colorNamed:kPrimaryBackgroundColor]);
 }
@@ -85,15 +85,11 @@
   EXPECT_TRUE(controller.navigationItem.titleView);
   EXPECT_NSEQ(controller.bannerName, @"passkey_bootstrapping_banner");
   EXPECT_EQ(controller.bannerSize, BannerImageSizeType::kExtraShort);
-  EXPECT_NSEQ(controller.titleText,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_TITLE");
-  EXPECT_NSEQ(controller.subtitleText,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_SUBTITLE");
+  EXPECT_NSEQ(controller.titleText, @"title");
+  EXPECT_NSEQ(controller.subtitleText, @"subtitle");
   EXPECT_EQ(controller.specificContentView.subviews.count, 0u);
-  EXPECT_NSEQ(controller.primaryActionString,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_NEXT_BUTTON");
-  EXPECT_NSEQ(controller.secondaryActionString,
-              @"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON");
+  EXPECT_NSEQ(controller.primaryActionString, @"primaryButton");
+  EXPECT_NSEQ(controller.secondaryActionString, @"secondaryButton");
   EXPECT_NSEQ(controller.view.backgroundColor,
               [UIColor colorNamed:kPrimaryBackgroundColor]);
 }
diff --git a/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/Contents.json b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/Contents.json b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/Contents.json
similarity index 100%
rename from ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/Contents.json
rename to ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/Contents.json
diff --git a/ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_dark.pdf b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_dark.pdf
similarity index 100%
rename from ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_dark.pdf
rename to ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_dark.pdf
Binary files differ
diff --git a/ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_light.pdf b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_light.pdf
similarity index 100%
rename from ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_light.pdf
rename to ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_light.pdf
Binary files differ
diff --git a/ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/Contents.json b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/Contents.json
similarity index 100%
rename from ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/Contents.json
rename to ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/Contents.json
diff --git a/ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_dark.pdf b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_dark.pdf
similarity index 100%
rename from ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_dark.pdf
rename to ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_dark.pdf
Binary files differ
diff --git a/ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_light.pdf b/ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_light.pdf
similarity index 100%
rename from ios/chrome/credential_provider_extension/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_light.pdf
rename to ios/chrome/common/credential_provider/ui/resources/Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_light.pdf
Binary files differ
diff --git a/ios/chrome/common/credential_provider/ui/resources/BUILD.gn b/ios/chrome/common/credential_provider/ui/resources/BUILD.gn
new file mode 100644
index 0000000..f44f668
--- /dev/null
+++ b/ios/chrome/common/credential_provider/ui/resources/BUILD.gn
@@ -0,0 +1,18 @@
+# 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.
+
+import("//build/config/ios/rules.gni")
+
+bundle_data_xcassets("resources") {
+  catalog = "Assets.xcassets"
+  sources = [
+    "Assets.xcassets/Contents.json",
+    "Assets.xcassets/passkey_bootstrapping_banner.imageset/Contents.json",
+    "Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_dark.pdf",
+    "Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_light.pdf",
+    "Assets.xcassets/passkey_generic_banner.imageset/Contents.json",
+    "Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_dark.pdf",
+    "Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_light.pdf",
+  ]
+}
diff --git a/ios/chrome/credential_provider_extension/BUILD.gn b/ios/chrome/credential_provider_extension/BUILD.gn
index 45bc713..155358a 100644
--- a/ios/chrome/credential_provider_extension/BUILD.gn
+++ b/ios/chrome/credential_provider_extension/BUILD.gn
@@ -34,6 +34,7 @@
     ":font_provider",
     ":metrics_util",
     ":passkey_request_details",
+    ":passkey_welcome_screen_util",
     ":reauthentication_handler",
     ":system_strings",
     "//base",
@@ -43,6 +44,7 @@
     "//ios/chrome/common/credential_provider",
     "//ios/chrome/common/credential_provider:passkey_keychain_provider_bridge",
     "//ios/chrome/common/credential_provider:ui",
+    "//ios/chrome/common/credential_provider/ui",
     "//ios/chrome/common/ui/colors",
     "//ios/chrome/common/ui/confirmation_alert",
     "//ios/chrome/common/ui/reauthentication",
@@ -77,6 +79,7 @@
     "metrics_util_unittest.mm",
     "passkey_request_details_unittest.mm",
     "passkey_util_unittest.mm",
+    "passkey_welcome_screen_util_unittest.mm",
   ]
   deps = [
     ":metrics_util",
@@ -84,6 +87,7 @@
     ":passkey_request_details_testing",
     ":passkey_util",
     ":passkey_util_swift",
+    ":passkey_welcome_screen_util",
     "//base",
     "//base/test:test_support",
     "//components/cbor",
@@ -92,6 +96,7 @@
     "//device/fido",
     "//ios/chrome/common/app_group",
     "//ios/chrome/common/credential_provider",
+    "//ios/chrome/common/credential_provider/ui",
     "//testing/gtest",
     "//third_party/ocmock",
   ]
@@ -190,6 +195,18 @@
   ]
 }
 
+source_set("passkey_welcome_screen_util") {
+  sources = [
+    "passkey_welcome_screen_util.h",
+    "passkey_welcome_screen_util.mm",
+  ]
+  deps = [
+    "//base",
+    "//ios/chrome/common/credential_provider/ui",
+  ]
+  frameworks = [ "Foundation.framework" ]
+}
+
 source_set("passkey_request_details_testing") {
   testonly = true
   sources = [ "passkey_request_details+Testing.h" ]
diff --git a/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm b/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm
index 89d720f..5732c06 100644
--- a/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm
+++ b/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm
@@ -21,6 +21,8 @@
 #import "ios/chrome/common/credential_provider/credential.h"
 #import "ios/chrome/common/credential_provider/multi_store_credential_store.h"
 #import "ios/chrome/common/credential_provider/passkey_keychain_provider_bridge.h"
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h"
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_view_controller.h"
 #import "ios/chrome/common/credential_provider/user_defaults_credential_store.h"
 #import "ios/chrome/common/ui/colors/semantic_color_names.h"
 #import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h"
@@ -30,6 +32,7 @@
 #import "ios/chrome/credential_provider_extension/font_provider.h"
 #import "ios/chrome/credential_provider_extension/metrics_util.h"
 #import "ios/chrome/credential_provider_extension/passkey_request_details.h"
+#import "ios/chrome/credential_provider_extension/passkey_welcome_screen_util.h"
 #import "ios/chrome/credential_provider_extension/reauthentication_handler.h"
 #import "ios/chrome/credential_provider_extension/ui/consent_coordinator.h"
 #import "ios/chrome/credential_provider_extension/ui/create_navigation_item_title_view.h"
@@ -39,7 +42,6 @@
 #import "ios/chrome/credential_provider_extension/ui/generic_error_view_controller.h"
 #import "ios/chrome/credential_provider_extension/ui/multi_profile_passkey_creation_view_controller.h"
 #import "ios/chrome/credential_provider_extension/ui/passkey_error_alert_view_controller.h"
-#import "ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.h"
 #import "ios/chrome/credential_provider_extension/ui/stale_credentials_view_controller.h"
 #import "ios/components/credential_provider_extension/password_util.h"
 
@@ -1283,9 +1285,10 @@
       [[PasskeyWelcomeScreenViewController alloc]
                    initForPurpose:purpose
           navigationItemTitleView:self.passkeyNavigationItemTitleView
-                        userEmail:userEmail
                          delegate:self
-              primaryButtonAction:action];
+              primaryButtonAction:action
+                          strings:GetPasskeyWelcomeScreenStrings(purpose,
+                                                                 userEmail)];
   [self.passkeyNavigationController pushViewController:welcomeScreen
                                               animated:NO];
   [self.presentingView presentViewController:self.passkeyNavigationController
diff --git a/ios/chrome/credential_provider_extension/passkey_welcome_screen_util.h b/ios/chrome/credential_provider_extension/passkey_welcome_screen_util.h
new file mode 100644
index 0000000..f6116bdb
--- /dev/null
+++ b/ios/chrome/credential_provider_extension/passkey_welcome_screen_util.h
@@ -0,0 +1,19 @@
+// 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.
+
+#ifndef IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_PASSKEY_WELCOME_SCREEN_UTIL_H_
+#define IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_PASSKEY_WELCOME_SCREEN_UTIL_H_
+
+#import <Foundation/Foundation.h>
+
+@class PasskeyWelcomeScreenStrings;
+enum class PasskeyWelcomeScreenPurpose;
+
+// Returns strings needed in the welcome string for `purpose`. `userEmail` is
+// needed for `PasskeyWelcomeScreenPurpose::kEnroll`, otherwise can be nil.
+PasskeyWelcomeScreenStrings* GetPasskeyWelcomeScreenStrings(
+    PasskeyWelcomeScreenPurpose purpose,
+    NSString* userEmail);
+
+#endif  // IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_PASSKEY_WELCOME_SCREEN_UTIL_H_
diff --git a/ios/chrome/credential_provider_extension/passkey_welcome_screen_util.mm b/ios/chrome/credential_provider_extension/passkey_welcome_screen_util.mm
new file mode 100644
index 0000000..407316f
--- /dev/null
+++ b/ios/chrome/credential_provider_extension/passkey_welcome_screen_util.mm
@@ -0,0 +1,109 @@
+// 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.
+
+#import "ios/chrome/credential_provider_extension/passkey_welcome_screen_util.h"
+
+#import "base/check.h"
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h"
+
+namespace {
+
+// Returns the title to use depending on the provided `purpose`.
+NSString* GetTitleString(PasskeyWelcomeScreenPurpose purpose) {
+  NSString* stringID;
+  switch (purpose) {
+    case PasskeyWelcomeScreenPurpose::kEnroll:
+      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_TITLE";
+      break;
+    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
+      stringID =
+          @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_TITLE";
+      break;
+    case PasskeyWelcomeScreenPurpose::kReauthenticate:
+      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_TITLE";
+      break;
+  }
+  return NSLocalizedString(stringID, @"The title of the welcome screen.");
+}
+
+// Returns the subtitle to use depending on the provided `purpose`.
+NSString* GetSubtitleString(PasskeyWelcomeScreenPurpose purpose) {
+  NSString* stringID;
+  switch (purpose) {
+    case PasskeyWelcomeScreenPurpose::kEnroll:
+      return nil;
+    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
+      stringID =
+          @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_SUBTITLE";
+      break;
+    case PasskeyWelcomeScreenPurpose::kReauthenticate:
+      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_SUBTITLE";
+      break;
+  }
+  return NSLocalizedString(stringID, @"The subtitle of the welcome screen.");
+}
+
+// Returns the title to use for the primary button depending on the provided
+// `purpose`.
+NSString* GetPrimaryButtonTitle(PasskeyWelcomeScreenPurpose purpose) {
+  NSString* stringID;
+  switch (purpose) {
+    case PasskeyWelcomeScreenPurpose::kEnroll:
+    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
+      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_GET_STARTED_BUTTON";
+      break;
+    case PasskeyWelcomeScreenPurpose::kReauthenticate:
+      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_NEXT_BUTTON";
+      break;
+  }
+  return NSLocalizedString(
+      stringID, @"The title of the welcome screen's primary button.");
+}
+
+// Returns an array of instructions or nil depending on the provided `purpose`.
+NSArray<NSString*>* GetInstructions(PasskeyWelcomeScreenPurpose purpose) {
+  if (purpose != PasskeyWelcomeScreenPurpose::kEnroll) {
+    return nil;
+  }
+
+  return @[
+    NSLocalizedString(
+        @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_1",
+        @"First step of the passkey enrollment instructions"),
+    NSLocalizedString(
+        @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_2",
+        @"Second step of the passkey enrollment instructions"),
+    NSLocalizedString(
+        @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_3",
+        @"Third step of the passkey enrollment instructions"),
+  ];
+}
+
+}  // namespace
+
+PasskeyWelcomeScreenStrings* GetPasskeyWelcomeScreenStrings(
+    PasskeyWelcomeScreenPurpose purpose,
+    NSString* userEmail) {
+  NSString* footer = nil;
+  if (purpose == PasskeyWelcomeScreenPurpose::kEnroll) {
+    CHECK(userEmail);
+    NSString* stringWithPlaceholder = NSLocalizedString(
+        @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_FOOTER_MESSAGE",
+        @"Footer message shown at the bottom of the screen-specific view.");
+    footer =
+        [stringWithPlaceholder stringByReplacingOccurrencesOfString:@"$1"
+                                                         withString:userEmail];
+  }
+  NSString* secondaryButton =
+      NSLocalizedString(@"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON",
+                        @"The title of the welcome screen's secondary button.");
+
+  return [[PasskeyWelcomeScreenStrings alloc]
+        initWithTitle:GetTitleString(purpose)
+             subtitle:GetSubtitleString(purpose)
+               footer:footer
+        primaryButton:GetPrimaryButtonTitle(purpose)
+      secondaryButton:secondaryButton
+         instructions:GetInstructions(purpose)];
+}
diff --git a/ios/chrome/credential_provider_extension/passkey_welcome_screen_util_unittest.mm b/ios/chrome/credential_provider_extension/passkey_welcome_screen_util_unittest.mm
new file mode 100644
index 0000000..8d70b9d4
--- /dev/null
+++ b/ios/chrome/credential_provider_extension/passkey_welcome_screen_util_unittest.mm
@@ -0,0 +1,75 @@
+// 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.
+
+#import "ios/chrome/credential_provider_extension/passkey_welcome_screen_util.h"
+
+#import "ios/chrome/common/credential_provider/ui/passkey_welcome_screen_strings.h"
+#import "testing/gtest_mac.h"
+#import "testing/platform_test.h"
+
+namespace {
+
+class PasskeyWelcomeScreenUtilTest : public PlatformTest {};
+
+TEST_F(PasskeyWelcomeScreenUtilTest, TestStringsForEnrollmentPurpose) {
+  NSString* email = @"user@example.com";
+  PasskeyWelcomeScreenStrings* strings = GetPasskeyWelcomeScreenStrings(
+      PasskeyWelcomeScreenPurpose::kEnroll, email);
+
+  EXPECT_NSEQ(strings.title,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_TITLE");
+  EXPECT_FALSE(strings.subtitle);
+  EXPECT_NSEQ(strings.footer,
+              [@"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_FOOTER_MESSAGE"
+                  stringByReplacingOccurrencesOfString:@"$1"
+                                            withString:email]);
+  EXPECT_NSEQ(strings.primaryButton,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_GET_STARTED_BUTTON");
+  EXPECT_NSEQ(strings.secondaryButton,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON");
+  NSArray<NSString*>* expectedInstructions = @[
+    @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_1",
+    @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_2",
+    @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_3",
+  ];
+  EXPECT_NSEQ(strings.instructions, expectedInstructions);
+}
+
+TEST_F(PasskeyWelcomeScreenUtilTest,
+       TestStringsForFixDegradedRecoverabilityPurpose) {
+  PasskeyWelcomeScreenStrings* strings = GetPasskeyWelcomeScreenStrings(
+      PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability,
+      /*userEmail=*/nil);
+
+  EXPECT_NSEQ(
+      strings.title,
+      @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_TITLE");
+  EXPECT_NSEQ(
+      strings.subtitle,
+      @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_SUBTITLE");
+  EXPECT_FALSE(strings.footer);
+  EXPECT_NSEQ(strings.primaryButton,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_GET_STARTED_BUTTON");
+  EXPECT_NSEQ(strings.secondaryButton,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON");
+  EXPECT_FALSE(strings.instructions);
+}
+
+TEST_F(PasskeyWelcomeScreenUtilTest, TestStringsForReauthenticationPurpose) {
+  PasskeyWelcomeScreenStrings* strings = GetPasskeyWelcomeScreenStrings(
+      PasskeyWelcomeScreenPurpose::kReauthenticate, /*userEmail=*/nil);
+
+  EXPECT_NSEQ(strings.title,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_TITLE");
+  EXPECT_NSEQ(strings.subtitle,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_SUBTITLE");
+  EXPECT_FALSE(strings.footer);
+  EXPECT_NSEQ(strings.primaryButton,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_NEXT_BUTTON");
+  EXPECT_NSEQ(strings.secondaryButton,
+              @"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON");
+  EXPECT_FALSE(strings.instructions);
+}
+
+}  // namespace
diff --git a/ios/chrome/credential_provider_extension/ui/BUILD.gn b/ios/chrome/credential_provider_extension/ui/BUILD.gn
index 32f0f91..16616262 100644
--- a/ios/chrome/credential_provider_extension/ui/BUILD.gn
+++ b/ios/chrome/credential_provider_extension/ui/BUILD.gn
@@ -44,8 +44,6 @@
     "new_password_view_controller.mm",
     "passkey_error_alert_view_controller.h",
     "passkey_error_alert_view_controller.mm",
-    "passkey_welcome_screen_view_controller.h",
-    "passkey_welcome_screen_view_controller.mm",
     "password_note_cell.h",
     "password_note_cell.mm",
     "password_note_footer_view.h",
@@ -68,6 +66,7 @@
     "//ios/chrome/common/app_group",
     "//ios/chrome/common/credential_provider",
     "//ios/chrome/common/credential_provider:ui",
+    "//ios/chrome/common/credential_provider/ui/resources",
     "//ios/chrome/common/ui/colors",
     "//ios/chrome/common/ui/confirmation_alert",
     "//ios/chrome/common/ui/elements",
@@ -75,7 +74,6 @@
     "//ios/chrome/common/ui/elements:form_input_accessory",
     "//ios/chrome/common/ui/elements:popover_label_view_controller",
     "//ios/chrome/common/ui/favicon",
-    "//ios/chrome/common/ui/instruction_view",
     "//ios/chrome/common/ui/promo_style",
     "//ios/chrome/common/ui/resources",
     "//ios/chrome/common/ui/table_view",
@@ -183,7 +181,6 @@
     "new_password_coordinator_unittest.mm",
     "new_password_mediator_unittest.mm",
     "passkey_error_alert_view_controller_unittest.mm",
-    "passkey_welcome_screen_view_controller_unittest.mm",
   ]
   deps = [
     ":credential_list_ui_handler",
diff --git a/ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.mm b/ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.mm
deleted file mode 100644
index a8cd142..0000000
--- a/ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.mm
+++ /dev/null
@@ -1,255 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/credential_provider_extension/ui/passkey_welcome_screen_view_controller.h"
-
-#import "base/notreached.h"
-#import "ios/chrome/common/ui/colors/semantic_color_names.h"
-#import "ios/chrome/common/ui/instruction_view/instruction_view.h"
-#import "ios/chrome/common/ui/util/constraints_ui_util.h"
-
-namespace {
-
-// Vertical spacing between the UI elements contained in the
-// `specificContentView`.
-constexpr CGFloat kSpecificContentVerticalSpacing = 24;
-
-// Leading, trailing and top margin to use for the screen's title.
-constexpr CGFloat kTitleHorizontalAndTopMargin = 24;
-
-// Returns the background color for this view.
-UIColor* GetBackgroundColor() {
-  return [UIColor colorNamed:kPrimaryBackgroundColor];
-}
-
-// Returns the banner name to use depending on the provided `purpose`.
-NSString* GetBannerName(PasskeyWelcomeScreenPurpose purpose) {
-  switch (purpose) {
-    case PasskeyWelcomeScreenPurpose::kEnroll:
-    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
-      return @"passkey_generic_banner";
-    case PasskeyWelcomeScreenPurpose::kReauthenticate:
-      return @"passkey_bootstrapping_banner";
-  }
-}
-
-// Returns the title to use depending on the provided `purpose`.
-NSString* GetTitleString(PasskeyWelcomeScreenPurpose purpose) {
-  NSString* stringID;
-  switch (purpose) {
-    case PasskeyWelcomeScreenPurpose::kEnroll:
-      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_TITLE";
-      break;
-    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
-      stringID =
-          @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_TITLE";
-      break;
-    case PasskeyWelcomeScreenPurpose::kReauthenticate:
-      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_TITLE";
-      break;
-  }
-  return NSLocalizedString(stringID, @"The title of the welcome screen.");
-}
-
-// Returns the subtitle to use depending on the provided `purpose`.
-NSString* GetSubtitleString(PasskeyWelcomeScreenPurpose purpose) {
-  NSString* stringID;
-  switch (purpose) {
-    case PasskeyWelcomeScreenPurpose::kEnroll:
-      NOTREACHED();
-    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
-      stringID =
-          @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_PARTIAL_BOOTSRAPPING_SUBTITLE";
-      break;
-    case PasskeyWelcomeScreenPurpose::kReauthenticate:
-      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_BOOTSRAPPING_SUBTITLE";
-      break;
-  }
-  return NSLocalizedString(stringID, @"The subtitle of the welcome screen.");
-}
-
-// Returns the title to use for the primary button depending on the provided
-// `purpose`.
-NSString* GetPrimaryButtonTitle(PasskeyWelcomeScreenPurpose purpose) {
-  NSString* stringID;
-  switch (purpose) {
-    case PasskeyWelcomeScreenPurpose::kEnroll:
-    case PasskeyWelcomeScreenPurpose::kFixDegradedRecoverability:
-      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_GET_STARTED_BUTTON";
-      break;
-    case PasskeyWelcomeScreenPurpose::kReauthenticate:
-      stringID = @"IDS_IOS_CREDENTIAL_PROVIDER_NEXT_BUTTON";
-      break;
-  }
-  return NSLocalizedString(
-      stringID, @"The title of the welcome screen's primary button.");
-}
-
-}  // namespace
-
-@interface PasskeyWelcomeScreenViewController () <
-    PromoStyleViewControllerDelegate>
-
-@end
-
-@implementation PasskeyWelcomeScreenViewController {
-  // The purpose for which this view is shown. Used to appropriately set up the
-  // UI elements.
-  PasskeyWelcomeScreenPurpose _purpose;
-
-  // The view to be used as the navigation bar title view.
-  UIView* _navigationItemTitleView;
-
-  // Email address associated with the signed in account. Depending on the
-  // PasskeyWelcomeScreenPurpose, the user email might or might no have to be
-  // dispalyed in the UI. If part of the UI, the `userEmail` must not be `nil`.
-  NSString* _userEmail;
-
-  // Delegate for this view controller.
-  __weak id<PasskeyWelcomeScreenViewControllerDelegate>
-      _passkeyWelcomeScreenViewControllerDelegate;
-
-  // The block that should be executed when the primary button is tapped.
-  ProceduralBlock _primaryButtonAction;
-}
-
-- (instancetype)initForPurpose:(PasskeyWelcomeScreenPurpose)purpose
-       navigationItemTitleView:(UIView*)navigationItemTitleView
-                     userEmail:(NSString*)userEmail
-                      delegate:(id<PasskeyWelcomeScreenViewControllerDelegate>)
-                                   delegate
-           primaryButtonAction:(ProceduralBlock)primaryButtonAction {
-  self = [super initWithTaskRunner:nullptr];
-  if (self) {
-    _purpose = purpose;
-    _navigationItemTitleView = navigationItemTitleView;
-    _userEmail = userEmail;
-    _passkeyWelcomeScreenViewControllerDelegate = delegate;
-    _primaryButtonAction = primaryButtonAction;
-  }
-  return self;
-}
-
-#pragma mark - UIViewController
-
-- (void)viewDidLoad {
-  self.bannerName = GetBannerName(_purpose);
-  self.bannerSize = BannerImageSizeType::kExtraShort;
-
-  self.titleText = GetTitleString(_purpose);
-  self.titleTopMarginWhenNoHeaderImage = kTitleHorizontalAndTopMargin;
-  self.titleHorizontalMargin = kTitleHorizontalAndTopMargin;
-
-  if (_purpose == PasskeyWelcomeScreenPurpose::kEnroll) {
-    self.specificContentView = [self createSpecificContentView];
-  } else {
-    self.subtitleText = GetSubtitleString(_purpose);
-  }
-
-  self.primaryActionString = GetPrimaryButtonTitle(_purpose);
-  self.secondaryActionString =
-      NSLocalizedString(@"IDS_IOS_CREDENTIAL_PROVIDER_NOT_NOW_BUTTON",
-                        @"The title of the welcome screen's secondary button.");
-
-  [super viewDidLoad];
-
-  self.view.backgroundColor = GetBackgroundColor();
-  self.navigationItem.titleView = _navigationItemTitleView;
-}
-
-#pragma mark - PromoStyleViewController
-
-- (UIFontTextStyle)titleLabelFontTextStyle {
-  return UIFontTextStyleTitle1;
-}
-
-#pragma mark - PromoStyleViewControllerDelegate
-
-// Creates and configures the screen-specific view that's placed between the
-// titles and buttons.
-- (UIView*)createSpecificContentView {
-  UIView* specificContentView = [[UIView alloc] init];
-  specificContentView.translatesAutoresizingMaskIntoConstraints = NO;
-
-  InstructionView* instructionView = [self createInstructionView];
-  [specificContentView addSubview:instructionView];
-  AddSameConstraintsToSides(
-      instructionView, specificContentView,
-      LayoutSides::kTop | LayoutSides::kLeading | LayoutSides::kTrailing);
-
-  UILabel* footerMessage = [self createFooterMessage];
-  [specificContentView addSubview:footerMessage];
-  AddSameConstraintsToSides(
-      footerMessage, specificContentView,
-      LayoutSides::kLeading | LayoutSides::kTrailing | LayoutSides::kBottom);
-
-  [NSLayoutConstraint activateConstraints:@[
-    [footerMessage.topAnchor
-        constraintGreaterThanOrEqualToAnchor:instructionView.bottomAnchor
-                                    constant:kSpecificContentVerticalSpacing],
-  ]];
-
-  return specificContentView;
-}
-
-// Creates and configures the instruction view for the enrollment welcome
-// screen.
-- (InstructionView*)createInstructionView {
-  NSArray<NSString*>* steps = @[
-    NSLocalizedString(
-        @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_1",
-        @"First step of the passkey enrollment instructions"),
-    NSLocalizedString(
-        @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_2",
-        @"Second step of the passkey enrollment instructions"),
-    NSLocalizedString(
-        @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_INSTRUCTIONS_STEP_3",
-        @"Third step of the passkey enrollment instructions"),
-  ];
-
-  InstructionView* instructionView =
-      [[InstructionView alloc] initWithList:steps];
-  instructionView.translatesAutoresizingMaskIntoConstraints = NO;
-
-  return instructionView;
-}
-
-// Creates and configures the footer message for the enrollment welcome screen.
-- (UILabel*)createFooterMessage {
-  UILabel* footerMessage = [[UILabel alloc] init];
-  footerMessage.translatesAutoresizingMaskIntoConstraints = NO;
-  footerMessage.textAlignment = NSTextAlignmentCenter;
-  footerMessage.adjustsFontForContentSizeCategory = YES;
-  footerMessage.textColor = [UIColor colorNamed:kGrey600Color];
-  footerMessage.numberOfLines = 0;
-
-  UIFont* font = [UIFont systemFontOfSize:13 weight:UIFontWeightRegular];
-  footerMessage.font = [[UIFontMetrics defaultMetrics] scaledFontForFont:font];
-
-  CHECK(_userEmail);
-  NSString* stringWithPlaceholder = NSLocalizedString(
-      @"IDS_IOS_CREDENTIAL_PROVIDER_PASSKEY_ENROLLMENT_FOOTER_MESSAGE",
-      @"Footer message shown at the bottom of the screen-specific view.");
-  footerMessage.text =
-      [stringWithPlaceholder stringByReplacingOccurrencesOfString:@"$1"
-                                                       withString:_userEmail];
-
-  return footerMessage;
-}
-
-- (void)didTapPrimaryActionButton {
-  if (self.navigationController.topViewController != self) {
-    return;
-  }
-
-  CHECK(_primaryButtonAction);
-  _primaryButtonAction();
-}
-
-- (void)didTapSecondaryActionButton {
-  [_passkeyWelcomeScreenViewControllerDelegate
-      passkeyWelcomeScreenViewControllerShouldBeDismissed:self];
-}
-
-@end
diff --git a/ios/chrome/credential_provider_extension/ui/resources/BUILD.gn b/ios/chrome/credential_provider_extension/ui/resources/BUILD.gn
index 2acdbb7..5aaed628e 100644
--- a/ios/chrome/credential_provider_extension/ui/resources/BUILD.gn
+++ b/ios/chrome/credential_provider_extension/ui/resources/BUILD.gn
@@ -25,11 +25,5 @@
     "Assets.xcassets/multicolor_chrome.symbolset/multicolor.chrome.cr.svg",
     "Assets.xcassets/multicolor_credential.symbolset/Contents.json",
     "Assets.xcassets/multicolor_credential.symbolset/multicolor.credential.cr.svg",
-    "Assets.xcassets/passkey_bootstrapping_banner.imageset/Contents.json",
-    "Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_dark.pdf",
-    "Assets.xcassets/passkey_bootstrapping_banner.imageset/passkey_bootstrapping_banner_light.pdf",
-    "Assets.xcassets/passkey_generic_banner.imageset/Contents.json",
-    "Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_dark.pdf",
-    "Assets.xcassets/passkey_generic_banner.imageset/passkey_generic_banner_light.pdf",
   ]
 }
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn
index 91cf31d..e582b88 100644
--- a/ios/chrome/test/BUILD.gn
+++ b/ios/chrome/test/BUILD.gn
@@ -543,6 +543,7 @@
     "//ios/chrome/common:unit_tests",
     "//ios/chrome/common/app_group:unit_tests",
     "//ios/chrome/common/credential_provider:unit_tests",
+    "//ios/chrome/common/credential_provider/ui:unit_tests",
     "//ios/chrome/common/ui/reauthentication:unit_tests",
     "//ios/chrome/common/ui/util:unit_tests",
     "//ios/chrome/test/providers/signin:trusted_vault_provider",
@@ -557,7 +558,12 @@
   }
 
   if (enterprise_data_controls) {
-    deps += [ "//ios/chrome/browser/enterprise/data_controls:unit_tests" ]
+    deps += [
+      "//ios/chrome/browser/enterprise/data_controls:unit_tests",
+      "//ios/chrome/browser/enterprise/data_controls/coordinator:unit_tests",
+      "//ios/chrome/browser/enterprise/data_controls/model:unit_tests",
+      "//ios/chrome/browser/enterprise/data_controls/utils:unit_tests",
+    ]
   }
 
   if (ios_enable_widget_kit_extension) {
diff --git a/ios/chrome/test/fakes/BUILD.gn b/ios/chrome/test/fakes/BUILD.gn
index 6eebd4c..6ce57ff 100644
--- a/ios/chrome/test/fakes/BUILD.gn
+++ b/ios/chrome/test/fakes/BUILD.gn
@@ -39,7 +39,7 @@
     "//ios/chrome/browser/discover_feed/model",
     "//ios/chrome/browser/download/model",
     "//ios/chrome/browser/download/ui",
-    "//ios/chrome/browser/enterprise/data_controls:data_controls_utils",
+    "//ios/chrome/browser/enterprise/data_controls/utils",
     "//ios/chrome/browser/overscroll_actions/ui_bundled",
     "//ios/chrome/browser/presenters/ui_bundled",
     "//ios/chrome/browser/settings/ui_bundled/utils",
diff --git a/ios/chrome/test/variations_smoke_test/variations_smoke_test_app_interface.mm b/ios/chrome/test/variations_smoke_test/variations_smoke_test_app_interface.mm
index c9f1a2c5..a449084 100644
--- a/ios/chrome/test/variations_smoke_test/variations_smoke_test_app_interface.mm
+++ b/ios/chrome/test/variations_smoke_test/variations_smoke_test_app_interface.mm
@@ -37,19 +37,17 @@
 @implementation VariationsSmokeTestAppInterface
 
 + (void)isVariationsSeedStored:(void (^)(BOOL hasSeed))completion {
-  variations::SeedReaderWriter* seedReaderWriter =
-      GetApplicationContext()
-          ->GetVariationsService()
-          ->GetSeedStoreForTesting()
-          ->GetSeedReaderWriterForTesting();
-  if (seedReaderWriter->HasPendingWrite()) {
-    completion(NO);
-  }
-  seedReaderWriter->ReadSeedData(base::BindLambdaForTesting(
-      [completion](variations::SeedReaderWriter::ReadSeedDataResult result) {
-        BOOL hasSeed = (result.result != variations::LoadSeedResult::kEmpty);
-        completion(hasSeed);
-      }));
+  GetApplicationContext()
+      ->GetVariationsService()
+      ->GetSeedStoreForTesting()
+      ->GetSeedReaderWriterForTesting()
+      ->ReadSeedData(base::BindLambdaForTesting(
+          [completion](
+              variations::SeedReaderWriter::ReadSeedDataResult result) {
+            BOOL hasSeed =
+                (result.result != variations::LoadSeedResult::kEmpty);
+            completion(hasSeed);
+          }));
 }
 
 + (BOOL)variationsSeedFetchedInCurrentLaunch {
diff --git a/ios/web/BUILD.gn b/ios/web/BUILD.gn
index 2ab8318..b3b3ede 100644
--- a/ios/web/BUILD.gn
+++ b/ios/web/BUILD.gn
@@ -468,6 +468,7 @@
     ":core",
     "//base",
     "//base/test:test_support",
+    "//components/test/ios",
     "//components/url_formatter",
     "//ios/net",
     "//ios/testing:ocmock_support",
diff --git a/ios/web/common/features.h b/ios/web/common/features.h
index d304e3d..9f2b42c 100644
--- a/ios/web/common/features.h
+++ b/ios/web/common/features.h
@@ -33,9 +33,6 @@
 // WKWebView is set as NSURLRequestAttributionUser on iOS 15.
 BASE_DECLARE_FEATURE(kSetRequestAttribution);
 
-// Feature flag that enable Shared Highlighting color change in iOS.
-BASE_DECLARE_FEATURE(kIOSSharedHighlightingColorChange);
-
 // Feature flag to enable Measurements detection.
 BASE_DECLARE_FEATURE(kEnableMeasurements);
 
diff --git a/ios/web/common/features.mm b/ios/web/common/features.mm
index 57c5d8c..20bbcd2 100644
--- a/ios/web/common/features.mm
+++ b/ios/web/common/features.mm
@@ -25,9 +25,6 @@
 
 BASE_FEATURE(kSetRequestAttribution, base::FEATURE_ENABLED_BY_DEFAULT);
 
-BASE_FEATURE(kIOSSharedHighlightingColorChange,
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 BASE_FEATURE(kEnableMeasurements,
              "EnableMeasurementsExperience",
              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/ios/web/js_messaging/BUILD.gn b/ios/web/js_messaging/BUILD.gn
index f37412c..d135f1ed 100644
--- a/ios/web/js_messaging/BUILD.gn
+++ b/ios/web/js_messaging/BUILD.gn
@@ -188,6 +188,7 @@
     ":web_view_js_utils",
     "//base",
     "//base/test:test_support",
+    "//components/test/ios",
     "//ios/web/common:web_view_creation_util",
     "//ios/web/public/js_messaging",
     "//ios/web/public/test",
diff --git a/ios_internal b/ios_internal
index 815b45d..8151fa4 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit 815b45dca0ae9d763b871d2c1a4df5254ac87590
+Subproject commit 8151fa4276fa055bd93673299947ecc5572c1d50
diff --git a/media/base/media_content_type.cc b/media/base/media_content_type.cc
index 48d58a1..a3dafb01 100644
--- a/media/base/media_content_type.cc
+++ b/media/base/media_content_type.cc
@@ -4,6 +4,8 @@
 
 #include "media/base/media_content_type.h"
 
+#include "base/time/time.h"
+
 namespace media {
 
 namespace {
diff --git a/media/base/media_content_type.h b/media/base/media_content_type.h
index ed1f9ae..1e73275 100644
--- a/media/base/media_content_type.h
+++ b/media/base/media_content_type.h
@@ -5,9 +5,12 @@
 #ifndef MEDIA_BASE_MEDIA_CONTENT_TYPE_H_
 #define MEDIA_BASE_MEDIA_CONTENT_TYPE_H_
 
-#include "base/time/time.h"
 #include "media/base/media_export.h"
 
+namespace base {
+class TimeDelta;
+}  // namespace base
+
 namespace media {
 
 // The content type of a media player, which will be used by MediaSession to
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
index 89be216..c10c81e 100644
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -400,9 +400,6 @@
              base::FEATURE_ENABLED_BY_DEFAULT);
 #endif  // BUILDFLAG(ENABLE_LIBRARY_CDMS)
 
-// Display the Cast overlay button on the media controls.
-BASE_FEATURE(kMediaCastOverlayButton, base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Use AndroidOverlay only if required for secure video playback. This requires
 // that |kOverlayFullscreenVideo| is true, else it is ignored.
 BASE_FEATURE(kUseAndroidOverlayForSecureOnly,
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
index 10954b9..8d3a9df 100644
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -308,7 +308,6 @@
 #endif  // BUILDFLAG(IS_MAC)
 MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaCapabilitiesQueryGpuFactories);
 MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaCapabilitiesWithParameters);
-MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaCastOverlayButton);
 MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaEngagementBypassAutoplayPolicies);
 MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaEngagementHTTPSOnly);
 #if BUILDFLAG(IS_WIN)
diff --git a/media/base/video_frame.cc b/media/base/video_frame.cc
index c8662ac1..e74ac3d 100644
--- a/media/base/video_frame.cc
+++ b/media/base/video_frame.cc
@@ -450,7 +450,7 @@
     base::TimeDelta timestamp) {
   CHECK(gpu_memory_buffer);
 
-  auto si_format = viz::GetSharedImageFormat(gpu_memory_buffer->GetFormat());
+  auto si_format = gpu_memory_buffer->GetFormat();
   auto format = SharedImageFormatToVideoPixelFormat(si_format);
   if (!format) {
     return nullptr;
@@ -839,9 +839,10 @@
     gfx::ClientNativePixmapFactory* client_native_pixmap_factory,
     gfx::GpuMemoryBufferHandle handle,
     const gfx::Size& coded_size,
-    gfx::BufferFormat format,
+    viz::SharedImageFormat format,
     gfx::BufferUsage usage,
     base::TimeDelta timestamp) {
+  CHECK(viz::HasEquivalentBufferFormat(format));
   CHECK_EQ(handle.type, gfx::GpuMemoryBufferType::NATIVE_PIXMAP);
   auto gpu_memory_buffer =
       gpu::LegacyGpuMemoryBufferForVideo::CreateFromHandleForVideoFrame(
diff --git a/media/base/video_frame.h b/media/base/video_frame.h
index 56d4737..ee479e73 100644
--- a/media/base/video_frame.h
+++ b/media/base/video_frame.h
@@ -365,7 +365,7 @@
       gfx::ClientNativePixmapFactory* client_native_pixmap_factory,
       gfx::GpuMemoryBufferHandle handle,
       const gfx::Size& coded_size,
-      gfx::BufferFormat format,
+      viz::SharedImageFormat format,
       gfx::BufferUsage usage,
       base::TimeDelta timestamp);
 #endif
diff --git a/media/mojo/mojom/video_frame_mojom_traits.cc b/media/mojo/mojom/video_frame_mojom_traits.cc
index 3ad587f3..039a670b 100644
--- a/media/mojo/mojom/video_frame_mojom_traits.cc
+++ b/media/mojo/mojom/video_frame_mojom_traits.cc
@@ -12,6 +12,7 @@
 #include "base/memory/unsafe_shared_memory_region.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
+#include "components/viz/common/resources/shared_image_format_utils.h"
 #include "media/base/color_plane_layout.h"
 #include "media/base/format_utils.h"
 #include "media/mojo/mojom/video_frame_metadata_mojom_traits.h"
@@ -371,9 +372,9 @@
       return false;
     }
 
-    std::optional<gfx::BufferFormat> buffer_format =
-        VideoPixelFormatToGfxBufferFormat(format);
-    if (!buffer_format) {
+    std::optional<viz::SharedImageFormat> si_format =
+        VideoPixelFormatToSharedImageFormat(format);
+    if (!si_format || !viz::HasEquivalentBufferFormat(*si_format)) {
       return false;
     }
 
@@ -393,7 +394,7 @@
         ui::CreateClientNativePixmapFactoryOzone();
     frame = media::VideoFrame::WrapExternalGpuMemoryBufferHandle(
         visible_rect, natural_size, client_native_pixmap_factory.get(),
-        std::move(gpu_memory_buffer_handle), coded_size, *buffer_format,
+        std::move(gpu_memory_buffer_handle), coded_size, *si_format,
         buffer_usage, timestamp);
 #else
     return false;
diff --git a/media/parsers/BUILD.gn b/media/parsers/BUILD.gn
index 360d4f9..b71408b 100644
--- a/media/parsers/BUILD.gn
+++ b/media/parsers/BUILD.gn
@@ -157,6 +157,7 @@
   deps = [
     ":parsers",
     "//base",
+    "//media:test_support",
   ]
   seed_corpus = "//media/test/data"
   dict = "//media/test/jpeg.dict"
@@ -176,6 +177,7 @@
 fuzzer_test("media_vp9_parser_fuzzer") {
   sources = [ "vp9_parser_fuzzertest.cc" ]
   deps = [
+    ":parsers",
     "//base",
     "//media:test_support",
   ]
@@ -197,6 +199,7 @@
   deps = [
     ":parsers",
     "//base",
+    "//media:test_support",
   ]
   seed_corpus = "//media/test/data"
   dict = "//media/test/webp.dict"
diff --git a/net/device_bound_sessions/session_service_impl.cc b/net/device_bound_sessions/session_service_impl.cc
index cb3a154..4504ad72 100644
--- a/net/device_bound_sessions/session_service_impl.cc
+++ b/net/device_bound_sessions/session_service_impl.cc
@@ -95,9 +95,9 @@
 }  // namespace
 
 DeferredURLRequest::DeferredURLRequest(
-    const URLRequest* request,
+    base::WeakPtr<const URLRequest> request,
     SessionService::RefreshCompleteCallback callback)
-    : request(request), callback(std::move(callback)) {}
+    : request(std::move(request)), callback(std::move(callback)) {}
 
 DeferredURLRequest::DeferredURLRequest(DeferredURLRequest&& other) noexcept =
     default;
@@ -368,7 +368,7 @@
   // For the first deferring request, create a new vector and add the request.
   auto [it, inserted] = deferred_requests_.try_emplace(session_key.id);
   // Add the request to the deferred list.
-  it->second.emplace_back(request, std::move(callback));
+  it->second.emplace_back(request->GetWeakPtr(), std::move(callback));
 
   auto* session = GetSession(session_key);
   CHECK(session, base::NotFatalUntil::M147);
@@ -405,7 +405,8 @@
       session_store_->RestoreSessionBindingKey(
           session_key,
           base::BindOnce(&SessionServiceImpl::OnSessionKeyRestored,
-                         weak_factory_.GetWeakPtr(), request, session_key,
+                         weak_factory_.GetWeakPtr(), request->GetWeakPtr(),
+                         session_key,
                          request->device_bound_session_access_callback()));
     } else {
       UnblockDeferredRequests(session_key, RefreshResult::kFatalError);
@@ -710,10 +711,14 @@
 }
 
 void SessionServiceImpl::OnSessionKeyRestored(
-    URLRequest* request,
+    base::WeakPtr<URLRequest> request,
     const SessionKey& session_key,
     OnAccessCallback on_access_callback,
     Session::KeyIdOrError key_id_or_error) {
+  if (!request) {
+    return;
+  }
+
   if (!key_id_or_error.has_value()) {
     UnblockDeferredRequests(session_key, RefreshResult::kFatalError);
     DeleteSessionAndNotify(DeletionReason::kFailedToUnwrapKey, session_key,
@@ -729,7 +734,7 @@
 
   session->set_unexportable_key_id(key_id_or_error);
 
-  RefreshSessionInternal(request, session_key, session, *key_id_or_error);
+  RefreshSessionInternal(request.get(), session_key, session, *key_id_or_error);
 }
 
 void SessionServiceImpl::RefreshSessionInternal(
diff --git a/net/device_bound_sessions/session_service_impl.h b/net/device_bound_sessions/session_service_impl.h
index 4cac9ad0..3043025 100644
--- a/net/device_bound_sessions/session_service_impl.h
+++ b/net/device_bound_sessions/session_service_impl.h
@@ -39,7 +39,7 @@
 class SessionStore;
 
 struct DeferredURLRequest {
-  DeferredURLRequest(const URLRequest* request,
+  DeferredURLRequest(base::WeakPtr<const URLRequest> request,
                      SessionService::RefreshCompleteCallback callback);
   DeferredURLRequest(DeferredURLRequest&& other) noexcept;
 
@@ -47,7 +47,7 @@
 
   ~DeferredURLRequest();
 
-  raw_ptr<const URLRequest> request = nullptr;
+  base::WeakPtr<const URLRequest> request;
   base::ElapsedTimer timer;
   SessionService::RefreshCompleteCallback callback;
 };
@@ -191,7 +191,7 @@
   // Callback after unwrapping a session key. `on_access_callback` is
   // used to notify the browser that this request led to usage of a
   // session.
-  void OnSessionKeyRestored(URLRequest* request,
+  void OnSessionKeyRestored(base::WeakPtr<URLRequest> request,
                             const SessionKey& session_key,
                             OnAccessCallback on_access_callback,
                             Session::KeyIdOrError key_id_or_error);
diff --git a/net/device_bound_sessions/session_service_impl_unittest.cc b/net/device_bound_sessions/session_service_impl_unittest.cc
index d60dda36a..d8036fd 100644
--- a/net/device_bound_sessions/session_service_impl_unittest.cc
+++ b/net/device_bound_sessions/session_service_impl_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "net/device_bound_sessions/session_service_impl.h"
 
+#include "base/functional/callback_helpers.h"
 #include "base/test/gmock_callback_support.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
@@ -1599,6 +1600,79 @@
   EXPECT_EQ(future.Take(), SessionService::RefreshResult::kInitializedService);
 }
 
+TEST_F(SessionServiceImplWithStoreTest, RequestDestroyedDuringAsyncKeyRestore) {
+  // Start loading
+  EXPECT_CALL(store(), LoadSessions).Times(1);
+  service().LoadSessionsAsync();
+
+  base::Time expiry_time = base::Time::Now() + base::Days(1);
+
+  proto::Session session_proto;
+  session_proto.set_id(kSessionId);
+  session_proto.set_refresh_url(kUrlString);
+  session_proto.set_should_defer_when_expired(false);
+  session_proto.set_expiry_time(
+      expiry_time.ToDeltaSinceWindowsEpoch().InMicroseconds());
+  session_proto.mutable_session_inclusion_rules()->set_origin(
+      "https://example.com");
+  session_proto.mutable_session_inclusion_rules()->set_do_include_site(true);
+
+  proto::CookieCraving* craving_proto = session_proto.add_cookie_cravings();
+  craving_proto->set_name("test_cookie");
+  craving_proto->set_domain("example.com");
+  craving_proto->set_path("/");
+  craving_proto->set_secure(true);
+  craving_proto->set_httponly(true);
+  craving_proto->set_source_port(443);
+  craving_proto->set_creation_time(
+      base::Time::Now().ToDeltaSinceWindowsEpoch().InMicroseconds());
+  craving_proto->set_same_site(proto::CookieSameSite::LAX_MODE);
+  craving_proto->set_source_scheme(proto::CookieSourceScheme::SECURE);
+
+  std::unique_ptr<Session> session = Session::CreateFromProto(session_proto);
+  ASSERT_TRUE(session);
+
+  SessionStore::SessionsMap session_map;
+  session_map.insert(
+      {SessionKey{SchemefulSite(kTestUrl), session->id()}, std::move(session)});
+  FinishLoadingSessions(std::move(session_map));
+
+  // Create a request that should be deferred due to the session
+  net::TestDelegate delegate;
+  std::unique_ptr<URLRequest> request =
+      context()->CreateRequest(kTestUrl, IDLE, &delegate, kDummyAnnotation);
+  request->set_site_for_cookies(SiteForCookies::FromUrl(kTestUrl));
+
+  HttpRequestHeaders extra_headers;
+  std::optional<SessionService::DeferralParams> maybe_deferral =
+      service().ShouldDefer(request.get(), &extra_headers,
+                            FirstPartySetMetadata());
+  ASSERT_TRUE(maybe_deferral);
+  EXPECT_EQ(**maybe_deferral->session_id, kSessionId);
+
+  // Now actually defer the request
+  auto scoped_test_fetcher = ScopedTestRegistrationFetcher::CreateWithSuccess(
+      kSessionId, kUrlString, kOrigin);
+
+  SessionStore::RestoreSessionBindingKeyCallback restore_key_callback;
+  EXPECT_CALL(
+      store(),
+      RestoreSessionBindingKey(
+          SessionKey(SchemefulSite(kTestUrl), Session::Id(kSessionId)), _))
+      .WillOnce(Invoke([&](const SessionKey& session_key,
+                           SessionStore::RestoreSessionBindingKeyCallback cb) {
+        restore_key_callback = std::move(cb);
+      }));
+  service().DeferRequestForRefresh(request.get(), *maybe_deferral,
+                                   base::DoNothing());
+  // Simulate the request being cleaned up before the callback has been called.
+  request.reset();
+  ASSERT_TRUE(restore_key_callback);
+  // Call the callback, and the test should not crash even though the request
+  // was cleaned up.
+  std::move(restore_key_callback).Run(unexportable_keys::UnexportableKeyId());
+}
+
 TEST_F(SessionServiceImplWithStoreTest, SessionKeyRestoredOnUse) {
   // Start loading
   EXPECT_CALL(store(), LoadSessions).Times(1);
diff --git a/net/http/http_stream_factory_job_controller_unittest.cc b/net/http/http_stream_factory_job_controller_unittest.cc
index 7830034..66b0f4f 100644
--- a/net/http/http_stream_factory_job_controller_unittest.cc
+++ b/net/http/http_stream_factory_job_controller_unittest.cc
@@ -49,6 +49,7 @@
 #include "net/http/http_stream_pool.h"
 #include "net/http/http_stream_pool_group.h"
 #include "net/http/http_stream_pool_test_util.h"
+#include "net/http/test_upload_data_stream_not_allow_http1.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_with_source.h"
 #include "net/log/test_net_log.h"
@@ -384,9 +385,9 @@
     delay_main_job_with_available_spdy_session_ = false;
   }
 
-  void DisableAlternativeServices() {
+  void SetEnableAlternativeServices(bool enable_alternative_services) {
     ASSERT_FALSE(session_deps_.proxy_delegate);
-    enable_alternative_services_ = false;
+    enable_alternative_services_ = enable_alternative_services;
   }
 
   void SkipCreatingJobController() {
@@ -427,6 +428,7 @@
     session_ = std::make_unique<HttpNetworkSession>(params, session_context);
     factory_ = session_->http_stream_factory();
     if (create_job_controller_) {
+      request_delegate_ = std::make_unique<MockHttpStreamRequestDelegate>();
       CHECK(!request_delegate_->IsDone());
       auto job_controller = std::make_unique<HttpStreamFactory::JobController>(
           factory_, request_delegate_.get(), session_.get(), &job_factory_,
@@ -614,7 +616,11 @@
  public:
   HttpStreamFactoryJobControllerDualPathTest()
       : HttpStreamFactoryJobControllerTestBase(
-            /*happy_eyeballs_v3_enabled=*/GetParam()) {}
+            /*happy_eyeballs_v3_enabled=*/GetParam()) {
+    // Use real jobs to avoid mocking out the Resume() calls that block H1/H2
+    // jobs on H3 jobs under certain circumstances, but only for the HEv1 path.
+    job_factory_.set_use_real_jobs();
+  }
 };
 
 INSTANTIATE_TEST_SUITE_P(All,
@@ -808,6 +814,161 @@
   EXPECT_TRUE(quic_session_pool->FindExistingSession(session_key, server));
 }
 
+// Test the cases where there are no valid ALPNs to use.
+TEST_P(HttpStreamFactoryJobControllerDualPathTest, NoValidAlpns) {
+  // Reasons to not be able to use H2/H3. The only reason for HTTP/1.1 is an
+  // UploadDataStream that doesn't allow HTTP/1, due to not knowing its length.
+  enum class NoH2Reason {
+    kDisabledGlobally,
+    kRequiresHttp11,
+  };
+  enum class NoH3Reason {
+    kDisabledGlobally,
+    kNoAltService,
+  };
+  for (const auto no_h2_reason :
+       {NoH2Reason::kDisabledGlobally, NoH2Reason::kRequiresHttp11}) {
+    for (const auto no_h3_reason :
+         {NoH3Reason::kDisabledGlobally, NoH3Reason::kNoAltService}) {
+      CreateSessionDeps();
+      SetEnableAlternativeServices(true);
+
+      tcp_data_ = std::make_unique<SequencedSocketData>();
+      tcp_data_->set_connect_data(MockConnect(ASYNC, OK));
+      SSLSocketDataProvider ssl_data(SYNCHRONOUS, OK);
+      // Despite H1 and H2 both being banned, only H1 being disallowed is
+      // reflected in the next proto vector sent to the server. The main reason
+      // for this is that H2 may only be disallowed on a per-request basis, due
+      // to a chunked upload, while both reasons for disallowing H2 apply
+      // globally.
+      ssl_data.next_protos_expected_in_ssl_config =
+          NextProtoVector{NextProto::kProtoHTTP11};
+      session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data);
+
+      // Can't use switch for H2, because `enable_http2` must be set before
+      // creating an HttpNetworkSession, but SetHTTP11Required() ust be called
+      // after.
+      if (no_h2_reason == NoH2Reason::kDisabledGlobally) {
+        session_deps_.enable_http2 = false;
+      }
+
+      switch (no_h3_reason) {
+        case NoH3Reason::kDisabledGlobally:
+          session_deps_.enable_quic = false;
+          break;
+        case NoH3Reason::kNoAltService:
+          SetEnableAlternativeServices(false);
+          break;
+      }
+
+      UploadDataStreamNotAllowHTTP1 upload("Upload data that does not matter.");
+      HttpRequestInfo request_info;
+      request_info.method = "GET";
+      request_info.url = GURL("https://www.google.com");
+      request_info.upload_data_stream = &upload;
+
+      Initialize(request_info);
+      AlternativeService alternative_service(
+          NextProto::kProtoQUIC, request_info.url.host_piece(), 443);
+      SetAlternativeService(request_info, alternative_service);
+
+      if (no_h2_reason == NoH2Reason::kRequiresHttp11) {
+        session_->http_server_properties()->SetHTTP11Required(
+            url::SchemeHostPort(request_info.url), NetworkAnonymizationKey());
+      }
+
+      auto request = job_controller_->Start(
+          request_delegate_.get(), nullptr, net_log_with_source_,
+          HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY);
+      EXPECT_EQ(request_delegate_->WaitForError(), ERR_ALPN_NEGOTIATION_FAILED);
+      EXPECT_TRUE(ssl_data.ConnectDataConsumed());
+    }
+  }
+}
+
+// Check the case where a QUIC alt service request has the same destination as a
+// `enable_alternative_services=false` request. The latter request should not
+// get a QUIC session.
+TEST_P(HttpStreamFactoryJobControllerDualPathTest,
+       AltServiceHasSameDestinationAsNoQuicRequest) {
+  if (happy_eyeballs_v3_enabled()) {
+    GTEST_SKIP()
+        << "This test currently CHECKs in HEv3 mode, due to merging QUIC-only "
+           "and anything-but-quic ALPN lists, to get an empty list.";
+  }
+
+  // The alt-service URL for the initial request, and the destination URL for
+  // the second request.
+  const GURL alt_service_url("https://alt.a.test");
+
+  // Use COLD_START to stall alt job's QUIC connection attempt, which never
+  // connects.
+  quic_data_ = std::make_unique<MockQuicData>(version_);
+  quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
+  crypto_client_stream_factory_.set_handshake_mode(
+      MockCryptoClientStream::COLD_START);
+
+  // The TCP connection attempt of the initial request. It fails to connect. Use
+  // a connect completer so can wait until the connection has been attempted
+  // before starting the second request, to get a consistent TCP connection
+  // order.
+  MockConnectCompleter connect_completer1;
+  tcp_data_ = std::make_unique<SequencedSocketData>();
+  tcp_data_->set_connect_data(MockConnect(&connect_completer1));
+
+  // The TCP connection to `alt_service_url`, for the second request.
+  tcp_data2_ = std::make_unique<SequencedSocketData>();
+  tcp_data2_->set_connect_data(MockConnect(ASYNC, OK));
+  SSLSocketDataProvider ssl_data2(SYNCHRONOUS, OK);
+  session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data2);
+
+  // First request.
+  HttpRequestInfo request_info;
+  request_info.method = "GET";
+  request_info.url = GURL("https://a.test");
+
+  Initialize(request_info);
+  // Set up the alt service. Must be done after the Initialize() call.
+  AlternativeService alternative_service(NextProto::kProtoQUIC,
+                                         alt_service_url.host(), 443);
+  SetAlternativeService(request_info, alternative_service);
+
+  // Start and run the first request. Its TCP connection attempt fails. It hangs
+  // waiting on its alt service connection attempt.
+  auto request = job_controller_->Start(
+      request_delegate_.get(), nullptr, net_log_with_source_,
+      HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY);
+  connect_completer1.WaitForConnectAndComplete(ERR_FAILED);
+
+  // Start the second request to `alt_service_url` directly. The important part
+  // is the `enable_alternative_services=false`.
+  HttpRequestInfo request_info2;
+  request_info2.method = "GET";
+  request_info2.url = alt_service_url;
+  MockHttpStreamRequestDelegate request_delegate2;
+  auto owned_job_controller2 =
+      std::make_unique<HttpStreamFactory::JobController>(
+          factory_, &request_delegate2, session_.get(), &job_factory_,
+          request_info2, is_preconnect_, /*is_websocket=*/false,
+          enable_ip_based_pooling_for_h2_,
+          /*enable_alternative_services=*/false,
+          delay_main_job_with_available_spdy_session_,
+          /*allowed_bad_certs=*/std::vector<SSLConfig::CertAndStatus>());
+  auto job_controller2 = owned_job_controller2.get();
+  HttpStreamFactoryPeer::AddJobController(factory_,
+                                          std::move(owned_job_controller2));
+  auto request2 =
+      job_controller2->Start(&request_delegate2, nullptr, net_log_with_source_,
+                             HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY);
+  // The second request succeeds, and gets a TCP/IP connection.
+  auto stream2 = request_delegate2.WaitForHttpStream();
+  EXPECT_TRUE(stream2);
+  EXPECT_FALSE(stream2->GetQuicConnectionDetails());
+
+  // The other request is still waiting on the QUIC connection attempt.
+  EXPECT_FALSE(request_delegate_->IsDone());
+}
+
 TEST_F(HttpStreamFactoryJobControllerTest, ProxyResolutionFailsSync) {
   ProxyConfig proxy_config;
   proxy_config.set_pac_url(GURL("http://fooproxyurl"));
@@ -5204,9 +5365,7 @@
   if (!enable_ip_based_pooling_for_h2) {
     DisableIPBasedPoolingForH2();
   }
-  if (!enable_alternative_services) {
-    DisableAlternativeServices();
-  }
+  SetEnableAlternativeServices(enable_alternative_services);
 
   Initialize(request_info);
 
diff --git a/net/http/http_stream_factory_test_util.cc b/net/http/http_stream_factory_test_util.cc
index c15a4223..366e815 100644
--- a/net/http/http_stream_factory_test_util.cc
+++ b/net/http/http_stream_factory_test_util.cc
@@ -164,6 +164,14 @@
         quic::ParsedQuicVersion::Unsupported(),
     std::optional<ConnectionManagementConfig> management_config =
         std::nullopt) {
+  if (use_real_jobs_) {
+    return std::make_unique<HttpStreamFactory::Job>(
+        delegate, job_type, session, request_info, priority, proxy_info,
+        allowed_bad_certs, std::move(destination), alternative_protocol,
+        quic_version, is_websocket, enable_ip_based_pooling_for_h2,
+        std::move(management_config), net_log);
+  }
+
   auto job = std::make_unique<MockHttpStreamFactoryJob>(
       delegate, job_type, session, request_info, priority, proxy_info,
       allowed_bad_certs, std::move(destination), alternative_protocol,
diff --git a/net/http/http_stream_factory_test_util.h b/net/http/http_stream_factory_test_util.h
index 50f6d7ae..58c61b7 100644
--- a/net/http/http_stream_factory_test_util.h
+++ b/net/http/http_stream_factory_test_util.h
@@ -158,6 +158,8 @@
   MockHttpStreamFactoryJob* alternative_job() const { return alternative_job_; }
   MockHttpStreamFactoryJob* dns_alpn_h3_job() const { return dns_alpn_h3_job_; }
 
+  void set_use_real_jobs() { use_real_jobs_ = true; }
+
  private:
   raw_ptr<MockHttpStreamFactoryJob, AcrossTasksDanglingUntriaged> main_job_ =
       nullptr;
@@ -165,6 +167,9 @@
       alternative_job_ = nullptr;
   raw_ptr<MockHttpStreamFactoryJob, AcrossTasksDanglingUntriaged>
       dns_alpn_h3_job_ = nullptr;
+
+  // When set to true, creates real jobs, and accessors don't work.
+  bool use_real_jobs_ = false;
 };
 
 }  // namespace net
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc
index f190253..0d0198e 100644
--- a/net/socket/socket_test_util.cc
+++ b/net/socket/socket_test_util.cc
@@ -148,9 +148,12 @@
 
 MockConnectCompleter::~MockConnectCompleter() = default;
 
-void MockConnectCompleter::SetCallback(CompletionOnceCallback callback) {
-  CHECK(!callback_);
-  callback_ = std::move(callback);
+void MockConnectCompleter::WaitForConnect() {
+  // This class is single use - so either the RunLoop should already have been
+  // quit, or `connect_` is null (but not both).
+  CHECK(!callback_ || run_loop_.AnyQuitCalled());
+  CHECK(callback_ || !run_loop_.AnyQuitCalled());
+  run_loop_.Run();
 }
 
 void MockConnectCompleter::Complete(int result) {
@@ -158,6 +161,17 @@
   std::move(callback_).Run(result);
 }
 
+void MockConnectCompleter::WaitForConnectAndComplete(int result) {
+  WaitForConnect();
+  Complete(result);
+}
+
+void MockConnectCompleter::SetCallback(CompletionOnceCallback callback) {
+  CHECK(!callback_);
+  callback_ = std::move(callback);
+  run_loop_.Quit();
+}
+
 MockConnect::MockConnect() : mode(ASYNC), result(OK) {
   peer_addr = IPEndPoint(IPAddress(192, 0, 2, 33), 0);
 }
@@ -359,6 +373,13 @@
   paused_ = false;
 }
 
+void StaticSocketDataProvider::ExpectAllReadDataConsumed() const {
+  helper_.ExpectAllReadDataConsumed(printer_.get());
+}
+void StaticSocketDataProvider::ExpectAllWriteDataConsumed() const {
+  helper_.ExpectAllWriteDataConsumed(printer_.get());
+}
+
 MockRead StaticSocketDataProvider::OnRead() {
   if (AllReadDataConsumed()) {
     const net::MockRead pending_read(net::SYNCHRONOUS, net::ERR_IO_PENDING);
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h
index 2ceb9f1..a1488b5 100644
--- a/net/socket/socket_test_util.h
+++ b/net/socket/socket_test_util.h
@@ -26,6 +26,7 @@
 #include "base/memory/raw_span.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "base/run_loop.h"
 #include "base/strings/string_view_util.h"
 #include "build/build_config.h"
 #include "net/base/address_list.h"
@@ -116,9 +117,15 @@
 
   ~MockConnectCompleter();
 
+  // Wait for a connection attempt.
+  void WaitForConnect();
+
   // Completes Connect() with `result`.
   void Complete(int result);
 
+  // Convenience function that combines WaitForConnect() and Complete().
+  void WaitForConnectAndComplete(int result);
+
  private:
   friend class MockTCPClientSocket;
   friend class MockSSLClientSocket;
@@ -129,6 +136,7 @@
   void SetCallback(CompletionOnceCallback callback);
 
   CompletionOnceCallback callback_;
+  base::RunLoop run_loop_;
 };
 
 struct MockConnect {
@@ -551,6 +559,10 @@
   void Pause();
   void Resume();
 
+  // EXPECTs that all data has been consumed, printing any un-consumed data.
+  void ExpectAllReadDataConsumed() const;
+  void ExpectAllWriteDataConsumed() const;
+
   // From SocketDataProvider:
   MockRead OnRead() override;
   MockWriteResult OnWrite(const std::string& data) override;
diff --git a/net/spdy/spdy_test_util_common.cc b/net/spdy/spdy_test_util_common.cc
index 70330ca..ea6c20f 100644
--- a/net/spdy/spdy_test_util_common.cc
+++ b/net/spdy/spdy_test_util_common.cc
@@ -358,6 +358,7 @@
   params.enable_spdy_ping_based_connection_checking = session_deps->enable_ping;
   params.enable_user_alternate_protocol_ports =
       session_deps->enable_user_alternate_protocol_ports;
+  params.enable_http2 = session_deps->enable_http2;
   params.enable_quic = session_deps->enable_quic;
   params.spdy_session_max_recv_window_size =
       session_deps->session_max_recv_window_size;
diff --git a/net/spdy/spdy_test_util_common.h b/net/spdy/spdy_test_util_common.h
index c3aa462..bf34fd27 100644
--- a/net/spdy/spdy_test_util_common.h
+++ b/net/spdy/spdy_test_util_common.h
@@ -199,6 +199,7 @@
   bool enable_ping = false;
   bool enable_user_alternate_protocol_ports = false;
   bool enable_quic = false;
+  bool enable_http2 = true;
   bool enable_server_push_cancellation = false;
   size_t session_max_recv_window_size = kDefaultInitialWindowSize;
   int session_max_queued_capped_frames = kSpdySessionMaxQueuedCappedFrames;
diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h
index a69329b..8ad980d 100644
--- a/net/url_request/url_request.h
+++ b/net/url_request/url_request.h
@@ -962,6 +962,9 @@
     device_bound_session_deferrals_[deferral] = result;
   }
 
+  // Returns true if the request failed or was canceled.
+  bool failed() const;
+
  protected:
   // Allow the URLRequestJob class to control the is_pending() flag.
   void set_is_pending(bool value) { is_pending_ = value; }
@@ -971,9 +974,6 @@
   int status() const { return status_; }
   void set_status(int status);
 
-  // Returns true if the request failed or was canceled.
-  bool failed() const;
-
   // Returns the error status of the request.
 
   // Allow the URLRequestJob to redirect this request. If non-null,
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index 847b3ef8..d805360a 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -2159,6 +2159,14 @@
     }
   }
 
+  for (const auto& [_, result] : request_->device_bound_session_deferrals()) {
+    base::UmaHistogramEnumeration(
+        request_->failed()
+            ? "Net.DeviceBoundSessions.DeferralResultByOutcome.Failure"
+            : "Net.DeviceBoundSessions.DeferralResultByOutcome.Success",
+        result);
+  }
+
   start_time_ = base::TimeTicks();
 }
 
diff --git a/pdf/pdfium/pdfium_ink_writer.cc b/pdf/pdfium/pdfium_ink_writer.cc
index c62c5606..055e4239 100644
--- a/pdf/pdfium/pdfium_ink_writer.cc
+++ b/pdf/pdfium/pdfium_ink_writer.cc
@@ -38,8 +38,7 @@
     uint32_t group_index;
     // Guaranteeded to be non-empty.
     // TODO(367764863) Rewrite to base::raw_span.
-    RAW_PTR_EXCLUSION base::span<const ink::PartitionedMesh::VertexIndexPair>
-        outline;
+    RAW_PTR_EXCLUSION base::span<const ink::VertexIndexPair> outline;
   };
 
   explicit ModeledShapeOutlinesIterator(const ink::PartitionedMesh& shape)
@@ -68,9 +67,8 @@
   uint32_t outline_index_ = 0;
 };
 
-gfx::PointF GetVertexPosition(
-    base::span<const ink::Mesh> meshes,
-    const ink::PartitionedMesh::VertexIndexPair& vertex_index_pair) {
+gfx::PointF GetVertexPosition(base::span<const ink::Mesh> meshes,
+                              const ink::VertexIndexPair& vertex_index_pair) {
   ink::Point vertex_position =
       meshes[vertex_index_pair.mesh_index].VertexPosition(
           vertex_index_pair.vertex_index);
diff --git a/remoting/base/protobuf_http_stream_request.h b/remoting/base/protobuf_http_stream_request.h
index 646a9262..e5f99de 100644
--- a/remoting/base/protobuf_http_stream_request.h
+++ b/remoting/base/protobuf_http_stream_request.h
@@ -13,12 +13,7 @@
 #include "base/timer/timer.h"
 #include "remoting/base/protobuf_http_request_base.h"
 #include "services/network/public/cpp/simple_url_loader_stream_consumer.h"
-
-namespace google {
-namespace protobuf {
-class MessageLite;
-}  // namespace protobuf
-}  // namespace google
+#include "third_party/protobuf/src/google/protobuf/message_lite.h"
 
 namespace remoting {
 
diff --git a/remoting/host/BUILD.gn b/remoting/host/BUILD.gn
index 3fbf2c5..af28bdc 100644
--- a/remoting/host/BUILD.gn
+++ b/remoting/host/BUILD.gn
@@ -1059,7 +1059,7 @@
       ]
     }
 
-    # LINT.ThenChange(/remoting/host/it2me/it2me_native_messaging_host_allowed_origins.h:it2me_origins, /remoting/host/webauthn/remote_webauthn_extension_notifier.cc:extension_ids)
+    # LINT.ThenChange(/remoting/host/it2me/it2me_native_messaging_host_allowed_origins.h:it2me_origins, /remoting/host/webauthn/remote_webauthn_extension_notifier.cc:extension_ids, /remoting/tools/register_local_nm_hosts.sh:extension_ids)
 
     companion_extension_ids_joined = string_join(",", companion_extension_ids)
     security_key_extension_ids_joined =
diff --git a/remoting/host/linux/gnome_display_config_monitor.cc b/remoting/host/linux/gnome_display_config_monitor.cc
index bffa848..11d9b4f 100644
--- a/remoting/host/linux/gnome_display_config_monitor.cc
+++ b/remoting/host/linux/gnome_display_config_monitor.cc
@@ -93,8 +93,13 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(current_config_.has_value());
 
+  // Note about reentrancy: registered callbacks may potentially add more
+  // callbacks to the callback list, which is fine. Per documentation of
+  // CallbackListBase::Notify, callbacks are not pruned until the outermost
+  // iteration completes, so `schedule_call` in
+  // GnomeDisplayConfigMonitor::AddCallback will be false, and the Notify call
+  // will run all callbacks added during the iteration.
   callbacks_pending_current_config_.Notify(*current_config_);
-  DCHECK(callbacks_pending_current_config_.empty());
 }
 
 }  // namespace remoting
diff --git a/remoting/tools/register_local_nm_hosts.sh b/remoting/tools/register_local_nm_hosts.sh
index b05bbf1..c3491ac 100755
--- a/remoting/tools/register_local_nm_hosts.sh
+++ b/remoting/tools/register_local_nm_hosts.sh
@@ -13,6 +13,12 @@
 SRC_DIR="$(cd "$(dirname "$0")/../.." && pwd -P)"
 ME2ME_HOST_NAME="com.google.chrome.remote_desktop"
 IT2ME_HOST_NAME="com.google.chrome.remote_assistance"
+REMOTE_WEBAUTHN_NAME="com.google.chrome.remote_webauthn"
+
+# LINT.IfChange(extension_ids)
+COMPANION_EXTENSION_IDS="inomeogfingihgjfjlpeplalcfajhgai,pbnaomcgbfiofkfobmlhmdobjchjkphi"
+SECURITY_KEY_EXTENSION_IDS="djjmngfglakhkhmgcfdmjalogilepkhd,kbapnajlciffffomeaphfpckfdcfopef"
+# LINT.ThenChange(/remoting/host/BUILD.gn:extension_ids)
 
 install_manifest() {
   local manifest_template="$1"
@@ -31,6 +37,9 @@
     --define "${host_path_var_name}=${host_path}" \
     --define IT2ME_HOST_DESCRIPTION=dev \
     --define ME2ME_HOST_DESCRIPTION=dev \
+    --define REMOTE_WEBAUTHN_DESCRIPTION=dev \
+    --define_list COMPANION_EXTENSION_IDS="$COMPANION_EXTENSION_IDS" \
+    --define_list SECURITY_KEY_EXTENSION_IDS="$SECURITY_KEY_EXTENSION_IDS" \
     --template "${manifest_template}" \
     --output "${target_manifest}" \
     en
@@ -42,6 +51,7 @@
 
   local nm_host="remoting_native_messaging_host"
   local ra_host="remote_assistance_host"
+  local remote_webauthn="remote_webauthn"
   if [[ $(uname -s) == "Darwin" ]]; then
     nm_host="native_messaging_host.app/Contents/MacOS/native_messaging_host"
     ra_host="remote_assistance_host.app/Contents/MacOS/remote_assistance_host"
@@ -56,6 +66,11 @@
      "${SRC_DIR}/remoting/host/it2me/${IT2ME_HOST_NAME}.json.jinja2" \
      "${build_dir}/${ra_host}" \
      IT2ME_HOST_PATH "${chrome_data_dir}"
+
+  install_manifest \
+     "${SRC_DIR}/remoting/host/setup/${REMOTE_WEBAUTHN_NAME}.json.jinja2" \
+     "${build_dir}/${remote_webauthn}" \
+     REMOTE_WEBAUTHN_PATH "${chrome_data_dir}"
 }
 
 register_hosts_for_all_channels() {
@@ -86,6 +101,7 @@
 
   rm -f "${chrome_data_dir}/${ME2ME_HOST_NAME}.json"
   rm -f "${chrome_data_dir}/${IT2ME_HOST_NAME}.json"
+  rm -f "${chrome_data_dir}/${REMOTE_WEBAUTHN_NAME}.json"
 }
 
 unregister_hosts_for_all_channels() {
diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
index d520ee2..c160e6e 100644
--- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
@@ -297,7 +297,7 @@
   const uint64_t kAllowedMask = O_ACCMODE | O_APPEND | O_NONBLOCK | O_SYNC |
                                 kOLargeFileFlag | O_CLOEXEC | O_NOATIME;
 #if BUILDFLAG(IS_ANDROID)
-  const uint64_t kOsSpecificSeals = F_SEAL_FUTURE_WRITE;
+  const uint64_t kOsSpecificSeals = F_SEAL_WRITE | F_SEAL_FUTURE_WRITE;
 #else
   const uint64_t kOsSpecificSeals = 0;
 #endif
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index c5cdfce..2b4f27d2 100644
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -3152,12 +3152,9 @@
   std::unique_ptr<net::CookieCryptoDelegate> crypto_delegate = nullptr;
 
   if (params_->enable_encrypted_cookies) {
-    if (params_->cookie_encryption_provider) {
-      crypto_delegate = std::make_unique<CookieOSCryptAsyncDelegate>(
-          std::move(params_->cookie_encryption_provider));
-    } else {
-      crypto_delegate = cookie_config::GetCookieCryptoDelegate();
-    }
+    CHECK(params_->cookie_encryption_provider);
+    crypto_delegate = std::make_unique<CookieOSCryptAsyncDelegate>(
+        std::move(params_->cookie_encryption_provider));
   }
 
 #if BUILDFLAG(IS_WIN)
diff --git a/services/network/network_service_unittest.cc b/services/network/network_service_unittest.cc
index 2d826c57..c685b163 100644
--- a/services/network/network_service_unittest.cc
+++ b/services/network/network_service_unittest.cc
@@ -1160,16 +1160,17 @@
   }
 }
 
-INSTANTIATE_TEST_SUITE_P(/*no prefix*/,
-                         NetworkServiceCookieTest,
-                         testing::Combine(testing::Bool(), testing::Bool()),
-                         [](const auto& info) {
-                           return base::StringPrintf(
-                               "%s_%s",
-                               std::get<0>(info.param) ? "crypt" : "no_crypt",
-                               std::get<1>(info.param) ? "provider"
-                                                       : "no_provider");
-                         });
+INSTANTIATE_TEST_SUITE_P(
+    /*no prefix*/,
+    NetworkServiceCookieTest,
+    testing::Values(std::make_tuple(true, true),     // crypt_provider
+                    std::make_tuple(false, true),    // no_crypt_provider
+                    std::make_tuple(false, false)),  // no_crypt_no_provider
+    [](const auto& info) {
+      return base::StringPrintf(
+          "%s_%s", std::get<0>(info.param) ? "crypt" : "no_crypt",
+          std::get<1>(info.param) ? "provider" : "no_provider");
+    });
 
 class NetworkServiceTestWithService : public testing::Test {
  public:
diff --git a/services/network/public/cpp/BUILD.gn b/services/network/public/cpp/BUILD.gn
index a7ba27f2..2732eb3 100644
--- a/services/network/public/cpp/BUILD.gn
+++ b/services/network/public/cpp/BUILD.gn
@@ -69,6 +69,8 @@
     "content_decoding_interceptor.h",
     "content_language_parser.cc",
     "content_language_parser.h",
+    "cookie_encryption_provider_impl.cc",
+    "cookie_encryption_provider_impl.h",
     "cors/cors.cc",
     "cors/cors.h",
     "cors/origin_access_list.cc",
@@ -186,6 +188,8 @@
     "//base",
     "//components/link_header_util",
     "//components/miracle_parameter/common",
+    "//components/os_crypt/async/browser",
+    "//components/os_crypt/async/common",
     "//components/prefs",
     "//ipc",
     "//net",
diff --git a/chrome/browser/net/cookie_encryption_provider_impl.cc b/services/network/public/cpp/cookie_encryption_provider_impl.cc
similarity index 71%
rename from chrome/browser/net/cookie_encryption_provider_impl.cc
rename to services/network/public/cpp/cookie_encryption_provider_impl.cc
index 3f77066..52fedf2 100644
--- a/chrome/browser/net/cookie_encryption_provider_impl.cc
+++ b/services/network/public/cpp/cookie_encryption_provider_impl.cc
@@ -1,18 +1,19 @@
-// Copyright 2024 The Chromium Authors
+// 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.
 
-#include "chrome/browser/net/cookie_encryption_provider_impl.h"
+#include "services/network/public/cpp/cookie_encryption_provider_impl.h"
 
-#include "chrome/browser/browser_process.h"
 #include "components/os_crypt/async/browser/os_crypt_async.h"
 
-CookieEncryptionProviderImpl::CookieEncryptionProviderImpl() = default;
+CookieEncryptionProviderImpl::CookieEncryptionProviderImpl(
+    os_crypt_async::OSCryptAsync* os_crypt_async)
+    : os_crypt_async_(os_crypt_async) {}
 
 CookieEncryptionProviderImpl::~CookieEncryptionProviderImpl() = default;
 
 void CookieEncryptionProviderImpl::GetEncryptor(GetEncryptorCallback callback) {
-  g_browser_process->os_crypt_async()->GetInstance(base::BindOnce(
+  os_crypt_async_->GetInstance(base::BindOnce(
       [](GetEncryptorCallback callback, os_crypt_async::Encryptor encryptor) {
         std::move(callback).Run(std::move(encryptor));
       },
diff --git a/chrome/browser/net/cookie_encryption_provider_impl.h b/services/network/public/cpp/cookie_encryption_provider_impl.h
similarity index 64%
rename from chrome/browser/net/cookie_encryption_provider_impl.h
rename to services/network/public/cpp/cookie_encryption_provider_impl.h
index 68df8a7..8f80cab 100644
--- a/chrome/browser/net/cookie_encryption_provider_impl.h
+++ b/services/network/public/cpp/cookie_encryption_provider_impl.h
@@ -1,20 +1,27 @@
-// Copyright 2024 The Chromium Authors
+// 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.
 
-#ifndef CHROME_BROWSER_NET_COOKIE_ENCRYPTION_PROVIDER_IMPL_H_
-#define CHROME_BROWSER_NET_COOKIE_ENCRYPTION_PROVIDER_IMPL_H_
+#ifndef SERVICES_NETWORK_PUBLIC_CPP_COOKIE_ENCRYPTION_PROVIDER_IMPL_H_
+#define SERVICES_NETWORK_PUBLIC_CPP_COOKIE_ENCRYPTION_PROVIDER_IMPL_H_
 
+#include "base/component_export.h"
+#include "base/memory/raw_ptr.h"
 #include "components/os_crypt/async/common/encryptor.h"
 #include "mojo/public/cpp/bindings/receiver_set.h"
 #include "services/network/public/mojom/cookie_encryption_provider.mojom.h"
 
+namespace os_crypt_async {
+class OSCryptAsync;
+}
+
 // Implementation of CookieEncryptionProvider interface. This is Windows only
 // for now, but will be expanded to other platforms in future.
-class CookieEncryptionProviderImpl
+class COMPONENT_EXPORT(NETWORK_CPP) CookieEncryptionProviderImpl
     : public network::mojom::CookieEncryptionProvider {
  public:
-  CookieEncryptionProviderImpl();
+  explicit CookieEncryptionProviderImpl(
+      os_crypt_async::OSCryptAsync* os_crypt_async);
   ~CookieEncryptionProviderImpl() override;
 
   CookieEncryptionProviderImpl(const CookieEncryptionProviderImpl&) = delete;
@@ -30,6 +37,7 @@
 
  private:
   mojo::ReceiverSet<network::mojom::CookieEncryptionProvider> receivers_;
+  raw_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_;
 };
 
-#endif  // CHROME_BROWSER_NET_COOKIE_ENCRYPTION_PROVIDER_IMPL_H_
+#endif  // SERVICES_NETWORK_PUBLIC_CPP_COOKIE_ENCRYPTION_PROVIDER_IMPL_H_
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index be00625..88866797 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -620,10 +620,9 @@
   string? cookie_deprecation_label;
 
   // Sets the cookie encryption provider to be used by this network context if
-  // `enable_encrypted_cookies` is also enabled.
-  // If both are set then the `GetEncryptor` method on the supplied
-  // `cookie_encryption_provider` is called to obtain a valid set of keys for
-  // cookie encryption.
+  // `enable_encrypted_cookies` is enabled.
+  // The `GetEncryptor` method on the supplied `cookie_encryption_provider` is
+  // called to obtain a valid set of keys for cookie encryption.
   pending_remote<CookieEncryptionProvider>? cookie_encryption_provider;
 
   // Enables Device Bound Session Credential for this network context.
diff --git a/testing/buildbot/chromium.perf.json b/testing/buildbot/chromium.perf.json
index d34e310..ddfeeba 100644
--- a/testing/buildbot/chromium.perf.json
+++ b/testing/buildbot/chromium.perf.json
@@ -1723,6 +1723,57 @@
       }
     ]
   },
+  "mac-m4-mini-perf": {
+    "isolated_scripts": [
+      {
+        "args": [
+          "-v",
+          "-v",
+          "--browser=builder",
+          "--upload-results",
+          "--test-shard-map-filename=mac-m4-mini-perf_map.json",
+          "--ignore-benchmark-exit-code",
+          "--assert-gpu-compositing"
+        ],
+        "merge": {
+          "args": [
+            "--lightweight",
+            "--skip-perf",
+            "--upload-skia-json"
+          ],
+          "script": "//tools/perf/process_perf_results.py"
+        },
+        "name": "performance_test_suite",
+        "resultdb": {
+          "enable": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimensions": {
+            "cpu": "arm",
+            "mac_model": "Mac16,10",
+            "os": "Mac",
+            "pool": "chrome.tests.perf",
+            "synthetic_product_name": "Mac16,10_arm64-64-Apple_M4_apple m4_32768_APPLE SSD AP2048Z"
+          },
+          "expiration": 7200,
+          "hard_timeout": 14400,
+          "io_timeout": 21600,
+          "service_account": "chrome-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 25
+        },
+        "test": "performance_test_suite",
+        "trigger_script": {
+          "args": [
+            "--multiple-dimension-script-verbose",
+            "True"
+          ],
+          "requires_simultaneous_shard_dispatch": true,
+          "script": "//testing/trigger_scripts/perf_device_trigger.py"
+        }
+      }
+    ]
+  },
   "win-10-perf": {
     "isolated_scripts": [
       {
diff --git a/testing/buildbot/chromium.perf.pinpoint.json b/testing/buildbot/chromium.perf.pinpoint.json
index 2d164b5..2675e25 100644
--- a/testing/buildbot/chromium.perf.pinpoint.json
+++ b/testing/buildbot/chromium.perf.pinpoint.json
@@ -1457,6 +1457,57 @@
       }
     ]
   },
+  "mac-m4-mini-perf": {
+    "isolated_scripts": [
+      {
+        "args": [
+          "-v",
+          "-v",
+          "--browser=builder",
+          "--upload-results",
+          "--test-shard-map-filename=mac-m4-mini-perf_map.json",
+          "--ignore-benchmark-exit-code",
+          "--assert-gpu-compositing"
+        ],
+        "merge": {
+          "args": [
+            "--lightweight",
+            "--skip-perf",
+            "--upload-skia-json"
+          ],
+          "script": "//tools/perf/process_perf_results.py"
+        },
+        "name": "performance_test_suite",
+        "resultdb": {
+          "enable": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimensions": {
+            "cpu": "arm",
+            "mac_model": "Mac16,10",
+            "os": "Mac",
+            "pool": "chrome.tests.perf",
+            "synthetic_product_name": "Mac16,10_arm64-64-Apple_M4_apple m4_32768_APPLE SSD AP2048Z"
+          },
+          "expiration": 7200,
+          "hard_timeout": 14400,
+          "io_timeout": 21600,
+          "service_account": "chrome-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 25
+        },
+        "test": "performance_test_suite",
+        "trigger_script": {
+          "args": [
+            "--multiple-dimension-script-verbose",
+            "True"
+          ],
+          "requires_simultaneous_shard_dispatch": true,
+          "script": "//testing/trigger_scripts/perf_device_trigger.py"
+        }
+      }
+    ]
+  },
   "win-10-perf": {
     "isolated_scripts": [
       {
diff --git a/testing/buildbot/filters/trees_in_viz.cc_unittests.filter b/testing/buildbot/filters/trees_in_viz.cc_unittests.filter
index b2d3ced4..c6903c1e 100644
--- a/testing/buildbot/filters/trees_in_viz.cc_unittests.filter
+++ b/testing/buildbot/filters/trees_in_viz.cc_unittests.filter
@@ -44,3 +44,29 @@
 -LayerTreeHostPictureTestForceRecalculateScales.RunSingleThread_DelegatingRenderer
 -LayerTreeHostTestDamageWithScale.RunMultiThread_DelegatingRenderer
 -LayerTreeHostTestDamageWithScale.RunSingleThread_DelegatingRenderer
+
+# TODO(crbug.com/448874765): Fix RunMultiThread_DelegatingRenderer unittests
+-LayerTreeHostAnimationTestNoDamageAnimation.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestImplLayersPushProperties.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestVideoLayerInvalidate.RunSingleThread_DelegatingRenderer
+-LayerTreeHostContextTestDontUseLostResources.RunSingleThread_DelegatingRenderer
+-LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion.RunMultiThread_DelegatingRenderer
+-LayerTreeHostVideoTestSetNeedsDisplay.RunSingleThread_DelegatingRenderer
+-LayerTreeHostContextTestDontUseLostResources.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestLayersPushProperties.RunMultiThread_DelegatingRenderer
+-LayerTreeHostVideoTestSetNeedsDisplay.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestImageAnimationSynchronousScheduling.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestVideoLayerInvalidate.RunMultiThread_DelegatingRenderer
+-LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence.RunMultiThread_DelegatingRenderer
+
+# TODO(crbug.com/448683984) These tests fails with TreesInViz because the
+# tiling removal optimization during pinch zoom is disabled which might impact
+# the test expectations. Note that the test
+# LegacySWPictureLayerImplTest.SnappedTilingDuringZoom fails both with and
+# without TreesInViz enabled which indicates that test expectation depends on
+# tiling removal optimizations
+-LayerTreeHostTestCrispUpAfterPinchEnds.RunMultiThread_DelegatingRenderer
+-LegacySWPictureLayerImplTest.SnappedTilingDuringZoom
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index a6dea85..89f30ca 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -8486,6 +8486,24 @@
             ]
         }
     ],
+    "DesktopNewTopAreaLayout": [
+        {
+            "platforms": [
+                "chromeos",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "DesktopNewTopAreaLayout"
+                    ]
+                }
+            ]
+        }
+    ],
     "DesktopNtpDriveCache": [
         {
             "platforms": [
@@ -13490,6 +13508,21 @@
             ]
         }
     ],
+    "IOSNewTabGridTransitions": [
+        {
+            "platforms": [
+                "ios"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "TabGridNewTransitions"
+                    ]
+                }
+            ]
+        }
+    ],
     "IOSOmahaResyncTimerOnForeground": [
         {
             "platforms": [
@@ -13705,21 +13738,6 @@
             ]
         }
     ],
-    "IOSSharedHighlightingColorChange": [
-        {
-            "platforms": [
-                "ios"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "IOSSharedHighlightingColorChange"
-                    ]
-                }
-            ]
-        }
-    ],
     "IOSSkipCookieCaching": [
         {
             "platforms": [
@@ -16497,6 +16515,29 @@
             ]
         }
     ],
+    "NtpRealboxNextDesktop": [
+        {
+            "platforms": [
+                "chromeos",
+                "chromeos_lacros",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "params": {
+                        "CyclingPlaceholders": "true",
+                        "RealboxLayoutMode": "Tall"
+                    },
+                    "enable_features": [
+                        "NtpRealboxNext"
+                    ]
+                }
+            ]
+        }
+    ],
     "OcclusionCullingQuadSplitLimit": [
         {
             "platforms": [
@@ -19357,6 +19398,27 @@
             ]
         }
     ],
+    "PrivacySandboxWhatsNewSurvey": [
+        {
+            "platforms": [
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "params": {
+                        "en_site_id": "RTUwCNf90G6uR1hkrVX10XrazMww",
+                        "probability": "1.0"
+                    },
+                    "enable_features": [
+                        "PrivacySandboxWhatsNewSurvey"
+                    ]
+                }
+            ]
+        }
+    ],
     "PrivateAggregationApiErrorReporting": [
         {
             "platforms": [
@@ -19657,25 +19719,6 @@
             ]
         }
     ],
-    "ProtectedAudienceBidderUseBalancingThreadSelector": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "FledgeBidderUseBalancingThreadSelector"
-                    ]
-                }
-            ]
-        }
-    ],
     "ProtectedAudienceClickiness": [
         {
             "platforms": [
@@ -19810,25 +19853,6 @@
             ]
         }
     ],
-    "ProtectedAudienceSellerSignalsRequestsOneAtATime": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "FledgeSellerSignalsRequestsOneAtATime"
-                    ]
-                }
-            ]
-        }
-    ],
     "ProtectedAudienceSendDebugReportCooldownsToBandA": [
         {
             "platforms": [
@@ -23266,21 +23290,6 @@
             ]
         }
     ],
-    "SharedHighlightingAmp": [
-        {
-            "platforms": [
-                "ios"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "SharedHighlightingAmp"
-                    ]
-                }
-            ]
-        }
-    ],
     "SharedHighlightingIphClank": [
         {
             "platforms": [
@@ -24677,21 +24686,6 @@
             ]
         }
     ],
-    "TabGridNewTransitions": [
-        {
-            "platforms": [
-                "ios"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "TabGridNewTransitions"
-                    ]
-                }
-            ]
-        }
-    ],
     "TabGroupParityAndroidV2": [
         {
             "platforms": [
@@ -24948,21 +24942,6 @@
             ]
         }
     ],
-    "ThirdPartyDisableChromeAutofillSettingsScreenStudy": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "ThirdPartyDisableChromeAutofillSettingsScreen"
-                    ]
-                }
-            ]
-        }
-    ],
     "ThreadCacheMinCachedMemoryForPurging": [
         {
             "platforms": [
diff --git a/third_party/android_deps/autorolled/VERSION.txt b/third_party/android_deps/autorolled/VERSION.txt
index 0736c78..13b07ae 100644
--- a/third_party/android_deps/autorolled/VERSION.txt
+++ b/third_party/android_deps/autorolled/VERSION.txt
@@ -1 +1 @@
-c80783efa3896cf.40b2dcba616bb0b
\ No newline at end of file
+67d7f6f5a84ce77.b5c90cefdfa8231
\ No newline at end of file
diff --git a/third_party/android_deps/autorolled/bill_of_materials.json b/third_party/android_deps/autorolled/bill_of_materials.json
index 4e11bbd9..d1ffef5c 100644
--- a/third_party/android_deps/autorolled/bill_of_materials.json
+++ b/third_party/android_deps/autorolled/bill_of_materials.json
@@ -1477,7 +1477,7 @@
     {
         "name": "protobuf-javalite",
         "group": "com.google.protobuf",
-        "version": "4.32.1"
+        "version": "4.33.0-RC1"
     },
     {
         "name": "protobuf-lite",
@@ -1652,12 +1652,12 @@
     {
         "name": "checker-qual",
         "group": "org.checkerframework",
-        "version": "3.51.0"
+        "version": "3.51.1"
     },
     {
         "name": "checker-util",
         "group": "org.checkerframework",
-        "version": "3.51.0"
+        "version": "3.51.1"
     },
     {
         "name": "animal-sniffer-annotations",
diff --git a/third_party/android_deps/autorolled/build.gradle b/third_party/android_deps/autorolled/build.gradle
index 2275cd8..774cbfd 100644
--- a/third_party/android_deps/autorolled/build.gradle
+++ b/third_party/android_deps/autorolled/build.gradle
@@ -309,7 +309,7 @@
 versionCache['com.google.guava:guava'] = '33.5.0-jre'
 versionCache['com.google.guava:listenablefuture'] = '9999.0-empty-to-avoid-conflict-with-guava'
 versionCache['com.google.j2objc:j2objc-annotations'] = '3.1'
-versionCache['com.google.protobuf:protobuf-javalite'] = '4.32.1'
+versionCache['com.google.protobuf:protobuf-javalite'] = '4.33.0-RC1'
 versionCache['com.google.protobuf:protobuf-lite'] = '3.0.1'
 versionCache['com.google.testparameterinjector:test-parameter-injector'] = '1.18'
 versionCache['com.googlecode.java-diff-utils:diffutils'] = '1.3.0'
@@ -344,8 +344,8 @@
 versionCache['org.bouncycastle:bcprov-jdk18on'] = '1.81'
 versionCache['org.ccil.cowan.tagsoup:tagsoup'] = '1.2.1'
 versionCache['org.checkerframework:checker-compat-qual'] = '2.5.5'
-versionCache['org.checkerframework:checker-qual'] = '3.51.0'
-versionCache['org.checkerframework:checker-util'] = '3.51.0'
+versionCache['org.checkerframework:checker-qual'] = '3.51.1'
+versionCache['org.checkerframework:checker-util'] = '3.51.1'
 versionCache['org.codehaus.mojo:animal-sniffer-annotations'] = '1.24'
 versionCache['org.conscrypt:conscrypt-openjdk-uber'] = '2.5.2'
 versionCache['org.hamcrest:hamcrest'] = '2.2'
diff --git a/third_party/android_deps/autorolled/committed/libs/com_google_protobuf_protobuf_javalite/README.chromium b/third_party/android_deps/autorolled/committed/libs/com_google_protobuf_protobuf_javalite/README.chromium
index 50d655a..1f257a6 100644
--- a/third_party/android_deps/autorolled/committed/libs/com_google_protobuf_protobuf_javalite/README.chromium
+++ b/third_party/android_deps/autorolled/committed/libs/com_google_protobuf_protobuf_javalite/README.chromium
@@ -1,7 +1,7 @@
 Name: Protocol Buffers [Lite]
 Short Name: protobuf-javalite
-URL: https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/4.32.1/protobuf-javalite-4.32.1.jar
-Version: 4.32.1
+URL: https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/4.33.0-RC1/protobuf-javalite-4.33.0-RC1.jar
+Version: 4.33.0-RC1
 Update Mechanism: Autoroll
 License: BSD-3-Clause
 License File: LICENSE
diff --git a/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_qual/README.chromium b/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_qual/README.chromium
index 06dfa8fd..b1a7b61 100644
--- a/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_qual/README.chromium
+++ b/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_qual/README.chromium
@@ -1,7 +1,7 @@
 Name: Checker Qual
 Short Name: checker-qual
-URL: https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.51.0/checker-qual-3.51.0.jar
-Version: 3.51.0
+URL: https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.51.1/checker-qual-3.51.1.jar
+Version: 3.51.1
 Update Mechanism: Autoroll
 License: Apache-2.0, MIT, GPL-2.0-with-classpath-exception
 License File: LICENSE
diff --git a/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_util/README.chromium b/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_util/README.chromium
index ba9f9ec..633db312 100644
--- a/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_util/README.chromium
+++ b/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_util/README.chromium
@@ -1,7 +1,7 @@
 Name: Checker Util
 Short Name: checker-util
-URL: https://repo.maven.apache.org/maven2/org/checkerframework/checker-util/3.51.0/checker-util-3.51.0.jar
-Version: 3.51.0
+URL: https://repo.maven.apache.org/maven2/org/checkerframework/checker-util/3.51.1/checker-util-3.51.1.jar
+Version: 3.51.1
 Update Mechanism: Autoroll
 License: MIT
 License File: LICENSE
diff --git a/third_party/androidx/build.gradle b/third_party/androidx/build.gradle
index bfcaa1f..87134b4 100644
--- a/third_party/androidx/build.gradle
+++ b/third_party/androidx/build.gradle
@@ -314,7 +314,7 @@
     google()
     maven {
         // This URL is generated by the fetch_all_androidx.py script.
-        url 'https://androidx.dev/snapshots/builds/14196806/artifacts/repository'
+        url 'https://androidx.dev/snapshots/builds/14203925/artifacts/repository'
     }
     mavenCentral()
 }
diff --git a/third_party/androidx/committed/libs/androidx_activity_activity/README.chromium b/third_party/androidx/committed/libs/androidx_activity_activity/README.chromium
index 67a993c..5a67eac 100644
--- a/third_party/androidx/committed/libs/androidx_activity_activity/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_activity_activity/README.chromium
@@ -1,6 +1,6 @@
 Name: Activity
 Short Name: activity
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/activity/activity/1.12.0-SNAPSHOT/activity-1.12.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/activity/activity/1.12.0-SNAPSHOT/activity-1.12.0-20251002.111255-1.aar
 Version: 1.12.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_activity_activity_compose/README.chromium b/third_party/androidx/committed/libs/androidx_activity_activity_compose/README.chromium
index 89a0a0c5..93ce69c 100644
--- a/third_party/androidx/committed/libs/androidx_activity_activity_compose/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_activity_activity_compose/README.chromium
@@ -1,6 +1,6 @@
 Name: Activity Compose
 Short Name: activity-compose
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/activity/activity-compose/1.12.0-SNAPSHOT/activity-compose-1.12.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/activity/activity-compose/1.12.0-SNAPSHOT/activity-compose-1.12.0-20251002.111255-1.aar
 Version: 1.12.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_activity_activity_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_activity_activity_ktx/README.chromium
index 22103eb..4d453d5 100644
--- a/third_party/androidx/committed/libs/androidx_activity_activity_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_activity_activity_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: Activity Kotlin Extensions
 Short Name: activity-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/activity/activity-ktx/1.12.0-SNAPSHOT/activity-ktx-1.12.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/activity/activity-ktx/1.12.0-SNAPSHOT/activity-ktx-1.12.0-20251002.111255-1.aar
 Version: 1.12.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_annotation_annotation_experimental/README.chromium b/third_party/androidx/committed/libs/androidx_annotation_annotation_experimental/README.chromium
index 2d43644..7bd51c1b 100644
--- a/third_party/androidx/committed/libs/androidx_annotation_annotation_experimental/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_annotation_annotation_experimental/README.chromium
@@ -1,6 +1,6 @@
 Name: Experimental annotation
 Short Name: annotation-experimental
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/annotation/annotation-experimental/1.6.0-SNAPSHOT/annotation-experimental-1.6.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/annotation/annotation-experimental/1.6.0-SNAPSHOT/annotation-experimental-1.6.0-20251002.111255-1.aar
 Version: 1.6.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_annotation_annotation_jvm/README.chromium b/third_party/androidx/committed/libs/androidx_annotation_annotation_jvm/README.chromium
index e5a37ba..8fc9a8f 100644
--- a/third_party/androidx/committed/libs/androidx_annotation_annotation_jvm/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_annotation_annotation_jvm/README.chromium
@@ -1,6 +1,6 @@
 Name: Annotation
 Short Name: annotation-jvm
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/annotation/annotation-jvm/1.10.0-SNAPSHOT/annotation-jvm-1.10.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/annotation/annotation-jvm/1.10.0-SNAPSHOT/annotation-jvm-1.10.0-20251002.111255-1.jar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_appcompat_appcompat/README.chromium b/third_party/androidx/committed/libs/androidx_appcompat_appcompat/README.chromium
index b8a6bfc..7ccd181 100644
--- a/third_party/androidx/committed/libs/androidx_appcompat_appcompat/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_appcompat_appcompat/README.chromium
@@ -1,6 +1,6 @@
 Name: AppCompat
 Short Name: appcompat
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/appcompat/appcompat/1.8.0-SNAPSHOT/appcompat-1.8.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/appcompat/appcompat/1.8.0-SNAPSHOT/appcompat-1.8.0-20251002.111255-1.aar
 Version: 1.8.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_appcompat_appcompat_resources/README.chromium b/third_party/androidx/committed/libs/androidx_appcompat_appcompat_resources/README.chromium
index 782974f..6789deb5 100644
--- a/third_party/androidx/committed/libs/androidx_appcompat_appcompat_resources/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_appcompat_appcompat_resources/README.chromium
@@ -1,6 +1,6 @@
 Name: AppCompat Resources
 Short Name: appcompat-resources
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/appcompat/appcompat-resources/1.8.0-SNAPSHOT/appcompat-resources-1.8.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/appcompat/appcompat-resources/1.8.0-SNAPSHOT/appcompat-resources-1.8.0-20251002.111255-1.aar
 Version: 1.8.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_appsearch_appsearch/README.chromium b/third_party/androidx/committed/libs/androidx_appsearch_appsearch/README.chromium
index d547403..d833c37e 100644
--- a/third_party/androidx/committed/libs/androidx_appsearch_appsearch/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_appsearch_appsearch/README.chromium
@@ -1,6 +1,6 @@
 Name: AppSearch
 Short Name: appsearch
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/appsearch/appsearch/1.2.0-SNAPSHOT/appsearch-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/appsearch/appsearch/1.2.0-SNAPSHOT/appsearch-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_appsearch_appsearch_builtin_types/README.chromium b/third_party/androidx/committed/libs/androidx_appsearch_appsearch_builtin_types/README.chromium
index d446ee8..dc2beaae 100644
--- a/third_party/androidx/committed/libs/androidx_appsearch_appsearch_builtin_types/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_appsearch_appsearch_builtin_types/README.chromium
@@ -1,6 +1,6 @@
 Name: AppSearch Builtin Types
 Short Name: appsearch-builtin-types
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/appsearch/appsearch-builtin-types/1.2.0-SNAPSHOT/appsearch-builtin-types-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/appsearch/appsearch-builtin-types/1.2.0-SNAPSHOT/appsearch-builtin-types-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_appsearch_appsearch_platform_storage/README.chromium b/third_party/androidx/committed/libs/androidx_appsearch_appsearch_platform_storage/README.chromium
index 3f82c63..315f7064 100644
--- a/third_party/androidx/committed/libs/androidx_appsearch_appsearch_platform_storage/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_appsearch_appsearch_platform_storage/README.chromium
@@ -1,6 +1,6 @@
 Name: AppSearch Platform Storage
 Short Name: appsearch-platform-storage
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/appsearch/appsearch-platform-storage/1.2.0-SNAPSHOT/appsearch-platform-storage-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/appsearch/appsearch-platform-storage/1.2.0-SNAPSHOT/appsearch-platform-storage-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_arch_core_core_common/README.chromium b/third_party/androidx/committed/libs/androidx_arch_core_core_common/README.chromium
index 15e5dbe..67554160 100644
--- a/third_party/androidx/committed/libs/androidx_arch_core_core_common/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_arch_core_core_common/README.chromium
@@ -1,6 +1,6 @@
 Name: Arch-Common
 Short Name: core-common
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/arch/core/core-common/2.3.0-SNAPSHOT/core-common-2.3.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/arch/core/core-common/2.3.0-SNAPSHOT/core-common-2.3.0-20251002.111255-1.jar
 Version: 2.3.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_arch_core_core_runtime/README.chromium b/third_party/androidx/committed/libs/androidx_arch_core_core_runtime/README.chromium
index 9ae94d3..2b03dbc 100644
--- a/third_party/androidx/committed/libs/androidx_arch_core_core_runtime/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_arch_core_core_runtime/README.chromium
@@ -1,6 +1,6 @@
 Name: Arch-Runtime
 Short Name: core-runtime
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/arch/core/core-runtime/2.3.0-SNAPSHOT/core-runtime-2.3.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/arch/core/core-runtime/2.3.0-SNAPSHOT/core-runtime-2.3.0-20251002.111255-1.aar
 Version: 2.3.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_autofill_autofill/README.chromium b/third_party/androidx/committed/libs/androidx_autofill_autofill/README.chromium
index d4837e3..420cca05 100644
--- a/third_party/androidx/committed/libs/androidx_autofill_autofill/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_autofill_autofill/README.chromium
@@ -1,6 +1,6 @@
 Name: Autofill
 Short Name: autofill
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/autofill/autofill/1.4.0-SNAPSHOT/autofill-1.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/autofill/autofill/1.4.0-SNAPSHOT/autofill-1.4.0-20251002.111255-1.aar
 Version: 1.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_common/README.chromium b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_common/README.chromium
index 1da9135..9c17204 100644
--- a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_common/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_common/README.chromium
@@ -1,6 +1,6 @@
 Name: Benchmark - Common
 Short Name: benchmark-common
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/benchmark/benchmark-common/1.5.0-SNAPSHOT/benchmark-common-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/benchmark/benchmark-common/1.5.0-SNAPSHOT/benchmark-common-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_junit4/README.chromium b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_junit4/README.chromium
index 11ef4f0..2c6f8ca 100644
--- a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_junit4/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_junit4/README.chromium
@@ -1,6 +1,6 @@
 Name: Benchmark - JUnit4
 Short Name: benchmark-junit4
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/benchmark/benchmark-junit4/1.5.0-SNAPSHOT/benchmark-junit4-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/benchmark/benchmark-junit4/1.5.0-SNAPSHOT/benchmark-junit4-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro/README.chromium b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro/README.chromium
index a8e94b6..5a61f0ad 100644
--- a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro/README.chromium
@@ -1,6 +1,6 @@
 Name: Benchmark - Macrobenchmark
 Short Name: benchmark-macro
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/benchmark/benchmark-macro/1.5.0-SNAPSHOT/benchmark-macro-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/benchmark/benchmark-macro/1.5.0-SNAPSHOT/benchmark-macro-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro_junit4/README.chromium b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro_junit4/README.chromium
index 4a6aa53e..df63cb0 100644
--- a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro_junit4/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_macro_junit4/README.chromium
@@ -1,6 +1,6 @@
 Name: Benchmark - Macrobenchmark JUnit4
 Short Name: benchmark-macro-junit4
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/benchmark/benchmark-macro-junit4/1.5.0-SNAPSHOT/benchmark-macro-junit4-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/benchmark/benchmark-macro-junit4/1.5.0-SNAPSHOT/benchmark-macro-junit4-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_traceprocessor_android/README.chromium b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_traceprocessor_android/README.chromium
index 74d21265..470e8cfd 100644
--- a/third_party/androidx/committed/libs/androidx_benchmark_benchmark_traceprocessor_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_benchmark_benchmark_traceprocessor_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Benchmark TraceProcessor
 Short Name: benchmark-traceprocessor-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/benchmark/benchmark-traceprocessor-android/1.5.0-SNAPSHOT/benchmark-traceprocessor-android-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/benchmark/benchmark-traceprocessor-android/1.5.0-SNAPSHOT/benchmark-traceprocessor-android-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_biometric_biometric/README.chromium b/third_party/androidx/committed/libs/androidx_biometric_biometric/README.chromium
index 7989f51..81bb83d75 100644
--- a/third_party/androidx/committed/libs/androidx_biometric_biometric/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_biometric_biometric/README.chromium
@@ -1,6 +1,6 @@
 Name: Biometric
 Short Name: biometric
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/biometric/biometric/1.4.0-SNAPSHOT/biometric-1.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/biometric/biometric/1.4.0-SNAPSHOT/biometric-1.4.0-20251002.111255-1.aar
 Version: 1.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_browser_browser/README.chromium b/third_party/androidx/committed/libs/androidx_browser_browser/README.chromium
index 9aba770..1739a13 100644
--- a/third_party/androidx/committed/libs/androidx_browser_browser/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_browser_browser/README.chromium
@@ -1,6 +1,6 @@
 Name: Browser
 Short Name: browser
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/browser/browser/1.10.0-SNAPSHOT/browser-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/browser/browser/1.10.0-SNAPSHOT/browser-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_cardview_cardview/README.chromium b/third_party/androidx/committed/libs/androidx_cardview_cardview/README.chromium
index ccd7a8b..c46da41e 100644
--- a/third_party/androidx/committed/libs/androidx_cardview_cardview/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_cardview_cardview/README.chromium
@@ -1,6 +1,6 @@
 Name: CardView
 Short Name: cardview
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/cardview/cardview/1.1.0-SNAPSHOT/cardview-1.1.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/cardview/cardview/1.1.0-SNAPSHOT/cardview-1.1.0-20251002.111255-1.aar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_collection_collection_jvm/README.chromium b/third_party/androidx/committed/libs/androidx_collection_collection_jvm/README.chromium
index 706df85..677014a 100644
--- a/third_party/androidx/committed/libs/androidx_collection_collection_jvm/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_collection_collection_jvm/README.chromium
@@ -1,6 +1,6 @@
 Name: collections
 Short Name: collection-jvm
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/collection/collection-jvm/1.6.0-SNAPSHOT/collection-jvm-1.6.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/collection/collection-jvm/1.6.0-SNAPSHOT/collection-jvm-1.6.0-20251002.111255-1.jar
 Version: 1.6.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_collection_collection_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_collection_collection_ktx/README.chromium
index 949e04d8..60319459 100644
--- a/third_party/androidx/committed/libs/androidx_collection_collection_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_collection_collection_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: Collections Kotlin Extensions
 Short Name: collection-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/collection/collection-ktx/1.6.0-SNAPSHOT/collection-ktx-1.6.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/collection/collection-ktx/1.6.0-SNAPSHOT/collection-ktx-1.6.0-20251002.111255-1.jar
 Version: 1.6.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_animation_animation_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_animation_animation_android/README.chromium
index aac904b..b091b0cf 100644
--- a/third_party/androidx/committed/libs/androidx_compose_animation_animation_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_animation_animation_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Animation
 Short Name: animation-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/animation/animation-android/1.10.0-SNAPSHOT/animation-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/animation/animation-android/1.10.0-SNAPSHOT/animation-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_animation_animation_core_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_animation_animation_core_android/README.chromium
index a8e710f..e9d411c 100644
--- a/third_party/androidx/committed/libs/androidx_compose_animation_animation_core_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_animation_animation_core_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Animation Core
 Short Name: animation-core-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/animation/animation-core-android/1.10.0-SNAPSHOT/animation-core-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/animation/animation-core-android/1.10.0-SNAPSHOT/animation-core-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_android/README.chromium
index 2e5613b2..f2a044c 100644
--- a/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Foundation
 Short Name: foundation-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/foundation/foundation-android/1.10.0-SNAPSHOT/foundation-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/foundation/foundation-android/1.10.0-SNAPSHOT/foundation-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_layout_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_layout_android/README.chromium
index 1f906d9..188d821 100644
--- a/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_layout_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_layout_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Layouts
 Short Name: foundation-layout-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/foundation/foundation-layout-android/1.10.0-SNAPSHOT/foundation-layout-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/foundation/foundation-layout-android/1.10.0-SNAPSHOT/foundation-layout-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_material3_material3_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_material3_material3_android/README.chromium
index 39eefbe..3dd334a 100644
--- a/third_party/androidx/committed/libs/androidx_compose_material3_material3_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_material3_material3_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Material3 Components
 Short Name: material3-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/material3/material3-android/1.5.0-SNAPSHOT/material3-android-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/material3/material3-android/1.5.0-SNAPSHOT/material3-android-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_material_material_ripple_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_material_material_ripple_android/README.chromium
index 01f2b793..e327b411 100644
--- a/third_party/androidx/committed/libs/androidx_compose_material_material_ripple_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_material_material_ripple_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Material Ripple
 Short Name: material-ripple-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/material/material-ripple-android/1.10.0-SNAPSHOT/material-ripple-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/material/material-ripple-android/1.10.0-SNAPSHOT/material-ripple-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_android/README.chromium
index da0306b1..094c1fe4 100644
--- a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Runtime
 Short Name: runtime-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/runtime/runtime-android/1.10.0-SNAPSHOT/runtime-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/runtime/runtime-android/1.10.0-SNAPSHOT/runtime-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_annotation_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_annotation_android/README.chromium
index 5cbe123..130d135 100644
--- a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_annotation_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_annotation_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Runtime Annotation
 Short Name: runtime-annotation-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/runtime/runtime-annotation-android/1.10.0-SNAPSHOT/runtime-annotation-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/runtime/runtime-annotation-android/1.10.0-SNAPSHOT/runtime-annotation-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_retain_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_retain_android/README.chromium
index 216faae..6aa8d868 100644
--- a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_retain_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_retain_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Runtime Retain
 Short Name: runtime-retain-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/runtime/runtime-retain-android/1.10.0-SNAPSHOT/runtime-retain-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/runtime/runtime-retain-android/1.10.0-SNAPSHOT/runtime-retain-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_saveable_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_saveable_android/README.chromium
index db3259a..eda503c 100644
--- a/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_saveable_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_saveable_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Saveable
 Short Name: runtime-saveable-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/runtime/runtime-saveable-android/1.10.0-SNAPSHOT/runtime-saveable-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/runtime/runtime-saveable-android/1.10.0-SNAPSHOT/runtime-saveable-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_android/README.chromium
index b7a9e12..d318d57 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose UI
 Short Name: ui-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-android/1.10.0-SNAPSHOT/ui-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-android/1.10.0-SNAPSHOT/ui-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_geometry_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_geometry_android/README.chromium
index 6454801..020a33b 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_geometry_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_geometry_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Geometry
 Short Name: ui-geometry-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-geometry-android/1.10.0-SNAPSHOT/ui-geometry-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-geometry-android/1.10.0-SNAPSHOT/ui-geometry-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_graphics_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_graphics_android/README.chromium
index ae34857..1f68b46 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_graphics_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_graphics_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Graphics
 Short Name: ui-graphics-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-graphics-android/1.10.0-SNAPSHOT/ui-graphics-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-graphics-android/1.10.0-SNAPSHOT/ui-graphics-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_android/README.chromium
index 79c6f7b..1a177df5 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Testing
 Short Name: ui-test-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-test-android/1.10.0-SNAPSHOT/ui-test-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-test-android/1.10.0-SNAPSHOT/ui-test-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_junit4_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_junit4_android/README.chromium
index 09514fd..c0e52c9 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_junit4_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_junit4_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Testing for JUnit4
 Short Name: ui-test-junit4-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-test-junit4-android/1.10.0-SNAPSHOT/ui-test-junit4-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-test-junit4-android/1.10.0-SNAPSHOT/ui-test-junit4-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_manifest/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_manifest/README.chromium
index 35eefbe..182d35d 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_manifest/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_test_manifest/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Testing manifest dependency
 Short Name: ui-test-manifest
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-test-manifest/1.10.0-SNAPSHOT/ui-test-manifest-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-test-manifest/1.10.0-SNAPSHOT/ui-test-manifest-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_android/README.chromium
index 0e0f9b8d..af71c6d4 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose UI Text
 Short Name: ui-text-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-text-android/1.10.0-SNAPSHOT/ui-text-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-text-android/1.10.0-SNAPSHOT/ui-text-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_google_fonts/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_google_fonts/README.chromium
index a1a9133..156a7fc42 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_google_fonts/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_google_fonts/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Google Fonts integration
 Short Name: ui-text-google-fonts
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-text-google-fonts/1.10.0-SNAPSHOT/ui-text-google-fonts-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-text-google-fonts/1.10.0-SNAPSHOT/ui-text-google-fonts-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_unit_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_unit_android/README.chromium
index c3e07f00..a07f0d0 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_unit_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_unit_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Unit
 Short Name: ui-unit-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-unit-android/1.10.0-SNAPSHOT/ui-unit-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-unit-android/1.10.0-SNAPSHOT/ui-unit-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_compose_ui_ui_util_android/README.chromium b/third_party/androidx/committed/libs/androidx_compose_ui_ui_util_android/README.chromium
index 14000fe..f0add0a5 100644
--- a/third_party/androidx/committed/libs/androidx_compose_ui_ui_util_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_compose_ui_ui_util_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Util
 Short Name: ui-util-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/compose/ui/ui-util-android/1.10.0-SNAPSHOT/ui-util-android-1.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/compose/ui/ui-util-android/1.10.0-SNAPSHOT/ui-util-android-1.10.0-20251002.111255-1.aar
 Version: 1.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout/README.chromium b/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout/README.chromium
index e8f09406..ef6cee5 100644
--- a/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout/README.chromium
@@ -1,6 +1,6 @@
 Name: ConstraintLayout
 Short Name: constraintlayout
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/constraintlayout/constraintlayout/2.3.0-SNAPSHOT/constraintlayout-2.3.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/constraintlayout/constraintlayout/2.3.0-SNAPSHOT/constraintlayout-2.3.0-20251002.111255-1.aar
 Version: 2.3.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout_core/README.chromium b/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout_core/README.chromium
index 1ef839c..2c8656e 100644
--- a/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout_core/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout_core/README.chromium
@@ -1,6 +1,6 @@
 Name: ConstraintLayout Core
 Short Name: constraintlayout-core
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/constraintlayout/constraintlayout-core/1.2.0-SNAPSHOT/constraintlayout-core-1.2.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/constraintlayout/constraintlayout-core/1.2.0-SNAPSHOT/constraintlayout-core-1.2.0-20251002.111255-1.jar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_core_core/README.chromium b/third_party/androidx/committed/libs/androidx_core_core/README.chromium
index 97f0e4c..ada5839 100644
--- a/third_party/androidx/committed/libs/androidx_core_core/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_core_core/README.chromium
@@ -1,6 +1,6 @@
 Name: Core
 Short Name: core
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/core/core/1.18.0-SNAPSHOT/core-1.18.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/core/core/1.18.0-SNAPSHOT/core-1.18.0-20251002.111255-1.aar
 Version: 1.18.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_core_core_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_core_core_ktx/README.chromium
index e5d37f2..d4cf17f 100644
--- a/third_party/androidx/committed/libs/androidx_core_core_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_core_core_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: Core Kotlin Extensions
 Short Name: core-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/core/core-ktx/1.18.0-SNAPSHOT/core-ktx-1.18.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/core/core-ktx/1.18.0-SNAPSHOT/core-ktx-1.18.0-20251002.111255-1.aar
 Version: 1.18.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_core_core_viewtree/README.chromium b/third_party/androidx/committed/libs/androidx_core_core_viewtree/README.chromium
index 83d7061..9f4d12e69 100644
--- a/third_party/androidx/committed/libs/androidx_core_core_viewtree/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_core_core_viewtree/README.chromium
@@ -1,6 +1,6 @@
 Name: androidx.core:core-viewtree
 Short Name: core-viewtree
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/core/core-viewtree/1.1.0-SNAPSHOT/core-viewtree-1.1.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/core/core-viewtree/1.1.0-SNAPSHOT/core-viewtree-1.1.0-20251002.111255-1.aar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_credentials_credentials/README.chromium b/third_party/androidx/committed/libs/androidx_credentials_credentials/README.chromium
index 3a0b636b..19541c0 100644
--- a/third_party/androidx/committed/libs/androidx_credentials_credentials/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_credentials_credentials/README.chromium
@@ -1,6 +1,6 @@
 Name: Credentials
 Short Name: credentials
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/credentials/credentials/1.6.0-SNAPSHOT/credentials-1.6.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/credentials/credentials/1.6.0-SNAPSHOT/credentials-1.6.0-20251002.111255-1.aar
 Version: 1.6.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_credentials_credentials_play_services_auth/README.chromium b/third_party/androidx/committed/libs/androidx_credentials_credentials_play_services_auth/README.chromium
index ad3892c..e0156464 100644
--- a/third_party/androidx/committed/libs/androidx_credentials_credentials_play_services_auth/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_credentials_credentials_play_services_auth/README.chromium
@@ -1,6 +1,6 @@
 Name: Credentials Play Services Auth
 Short Name: credentials-play-services-auth
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/credentials/credentials-play-services-auth/1.6.0-SNAPSHOT/credentials-play-services-auth-1.6.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/credentials/credentials-play-services-auth/1.6.0-SNAPSHOT/credentials-play-services-auth-1.6.0-20251002.111255-1.aar
 Version: 1.6.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider/README.chromium b/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider/README.chromium
index b8e6a67..5aae71f 100644
--- a/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider/README.chromium
@@ -1,6 +1,6 @@
 Name: androidx.credentials.registry:registry-provider
 Short Name: registry-provider
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/credentials/registry/registry-provider/1.0.0-SNAPSHOT/registry-provider-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/credentials/registry/registry-provider/1.0.0-SNAPSHOT/registry-provider-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider_play_services/README.chromium b/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider_play_services/README.chromium
index f95d0daa..0df64b9 100644
--- a/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider_play_services/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider_play_services/README.chromium
@@ -1,6 +1,6 @@
 Name: androidx.credentials.registry:registry-provider-play-services
 Short Name: registry-provider-play-services
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/credentials/registry/registry-provider-play-services/1.0.0-SNAPSHOT/registry-provider-play-services-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/credentials/registry/registry-provider-play-services/1.0.0-SNAPSHOT/registry-provider-play-services-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_cursoradapter_cursoradapter/README.chromium b/third_party/androidx/committed/libs/androidx_cursoradapter_cursoradapter/README.chromium
index 257843d..e8c8c41 100644
--- a/third_party/androidx/committed/libs/androidx_cursoradapter_cursoradapter/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_cursoradapter_cursoradapter/README.chromium
@@ -1,6 +1,6 @@
 Name: Cursor Adapter
 Short Name: cursoradapter
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/cursoradapter/cursoradapter/1.1.0-SNAPSHOT/cursoradapter-1.1.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/cursoradapter/cursoradapter/1.1.0-SNAPSHOT/cursoradapter-1.1.0-20251002.111255-1.aar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_datastore_datastore_android/README.chromium b/third_party/androidx/committed/libs/androidx_datastore_datastore_android/README.chromium
index f355621..81ff0a7 100644
--- a/third_party/androidx/committed/libs/androidx_datastore_datastore_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_datastore_datastore_android/README.chromium
@@ -1,6 +1,6 @@
 Name: DataStore
 Short Name: datastore-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/datastore/datastore-android/1.2.0-SNAPSHOT/datastore-android-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/datastore/datastore-android/1.2.0-SNAPSHOT/datastore-android-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_datastore_datastore_core_android/README.chromium b/third_party/androidx/committed/libs/androidx_datastore_datastore_core_android/README.chromium
index 3d5b45a..2b1672d 100644
--- a/third_party/androidx/committed/libs/androidx_datastore_datastore_core_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_datastore_datastore_core_android/README.chromium
@@ -1,6 +1,6 @@
 Name: DataStore Core
 Short Name: datastore-core-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/datastore/datastore-core-android/1.2.0-SNAPSHOT/datastore-core-android-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/datastore/datastore-core-android/1.2.0-SNAPSHOT/datastore-core-android-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_datastore_datastore_core_okio_jvm/README.chromium b/third_party/androidx/committed/libs/androidx_datastore_datastore_core_okio_jvm/README.chromium
index d948047..f6b4a0c 100644
--- a/third_party/androidx/committed/libs/androidx_datastore_datastore_core_okio_jvm/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_datastore_datastore_core_okio_jvm/README.chromium
@@ -1,6 +1,6 @@
 Name: DataStore Core Okio
 Short Name: datastore-core-okio-jvm
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/datastore/datastore-core-okio-jvm/1.2.0-SNAPSHOT/datastore-core-okio-jvm-1.2.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/datastore/datastore-core-okio-jvm/1.2.0-SNAPSHOT/datastore-core-okio-jvm-1.2.0-20251002.111255-1.jar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_android/README.chromium b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_android/README.chromium
index 4a63a4e..b9dfa7cad 100644
--- a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Preferences DataStore
 Short Name: datastore-preferences-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/datastore/datastore-preferences-android/1.2.0-SNAPSHOT/datastore-preferences-android-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/datastore/datastore-preferences-android/1.2.0-SNAPSHOT/datastore-preferences-android-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_core_android/README.chromium b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_core_android/README.chromium
index ca03294f..718e795 100644
--- a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_core_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_core_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Preferences DataStore Core
 Short Name: datastore-preferences-core-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/datastore/datastore-preferences-core-android/1.2.0-SNAPSHOT/datastore-preferences-core-android-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/datastore/datastore-preferences-core-android/1.2.0-SNAPSHOT/datastore-preferences-core-android-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_external_protobuf/README.chromium b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_external_protobuf/README.chromium
index 8e01e19..ae44bad 100644
--- a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_external_protobuf/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_external_protobuf/README.chromium
@@ -1,6 +1,6 @@
 Name: Preferences External Protobuf
 Short Name: datastore-preferences-external-protobuf
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/datastore/datastore-preferences-external-protobuf/1.2.0-SNAPSHOT/datastore-preferences-external-protobuf-1.2.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/datastore/datastore-preferences-external-protobuf/1.2.0-SNAPSHOT/datastore-preferences-external-protobuf-1.2.0-20251002.111255-1.jar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: BSD-3-Clause
diff --git a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_proto/README.chromium b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_proto/README.chromium
index 1eec077f..116c4960 100644
--- a/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_proto/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_datastore_datastore_preferences_proto/README.chromium
@@ -1,6 +1,6 @@
 Name: Preferences DataStore Proto
 Short Name: datastore-preferences-proto
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/datastore/datastore-preferences-proto/1.2.0-SNAPSHOT/datastore-preferences-proto-1.2.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/datastore/datastore-preferences-proto/1.2.0-SNAPSHOT/datastore-preferences-proto-1.2.0-20251002.111255-1.jar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_drawerlayout_drawerlayout/README.chromium b/third_party/androidx/committed/libs/androidx_drawerlayout_drawerlayout/README.chromium
index 525b492..f31b238 100644
--- a/third_party/androidx/committed/libs/androidx_drawerlayout_drawerlayout/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_drawerlayout_drawerlayout/README.chromium
@@ -1,6 +1,6 @@
 Name: Drawer Layout
 Short Name: drawerlayout
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/drawerlayout/drawerlayout/1.3.0-SNAPSHOT/drawerlayout-1.3.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/drawerlayout/drawerlayout/1.3.0-SNAPSHOT/drawerlayout-1.3.0-20251002.111255-1.aar
 Version: 1.3.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_emoji_emoji/README.chromium b/third_party/androidx/committed/libs/androidx_emoji_emoji/README.chromium
index 44262040..e4f0ae36 100644
--- a/third_party/androidx/committed/libs/androidx_emoji_emoji/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_emoji_emoji/README.chromium
@@ -1,6 +1,6 @@
 Name: Emoji
 Short Name: emoji
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/emoji/emoji/1.2.0-SNAPSHOT/emoji-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/emoji/emoji/1.2.0-SNAPSHOT/emoji-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0, SIL Open Font License, Version 1.1, Unicode, Inc. License
diff --git a/third_party/androidx/committed/libs/androidx_fragment_fragment/README.chromium b/third_party/androidx/committed/libs/androidx_fragment_fragment/README.chromium
index 041913a..9600126 100644
--- a/third_party/androidx/committed/libs/androidx_fragment_fragment/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_fragment_fragment/README.chromium
@@ -1,6 +1,6 @@
 Name: fragment
 Short Name: fragment
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/fragment/fragment/1.9.0-SNAPSHOT/fragment-1.9.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/fragment/fragment/1.9.0-SNAPSHOT/fragment-1.9.0-20251002.111255-1.aar
 Version: 1.9.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_fragment_fragment_compose/README.chromium b/third_party/androidx/committed/libs/androidx_fragment_fragment_compose/README.chromium
index e49d1a1..bf43a8d 100644
--- a/third_party/androidx/committed/libs/androidx_fragment_fragment_compose/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_fragment_fragment_compose/README.chromium
@@ -1,6 +1,6 @@
 Name: Fragment Compose
 Short Name: fragment-compose
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/fragment/fragment-compose/1.9.0-SNAPSHOT/fragment-compose-1.9.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/fragment/fragment-compose/1.9.0-SNAPSHOT/fragment-compose-1.9.0-20251002.111255-1.aar
 Version: 1.9.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_fragment_fragment_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_fragment_fragment_ktx/README.chromium
index ec712f9..b5d05e5 100644
--- a/third_party/androidx/committed/libs/androidx_fragment_fragment_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_fragment_fragment_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: Fragment Kotlin Extensions
 Short Name: fragment-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/fragment/fragment-ktx/1.9.0-SNAPSHOT/fragment-ktx-1.9.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/fragment/fragment-ktx/1.9.0-SNAPSHOT/fragment-ktx-1.9.0-20251002.111255-1.aar
 Version: 1.9.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_fragment_fragment_testing/README.chromium b/third_party/androidx/committed/libs/androidx_fragment_fragment_testing/README.chromium
index 2cfbb738..3015086 100644
--- a/third_party/androidx/committed/libs/androidx_fragment_fragment_testing/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_fragment_fragment_testing/README.chromium
@@ -1,6 +1,6 @@
 Name: Fragment Testing Extensions
 Short Name: fragment-testing
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/fragment/fragment-testing/1.9.0-SNAPSHOT/fragment-testing-1.9.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/fragment/fragment-testing/1.9.0-SNAPSHOT/fragment-testing-1.9.0-20251002.111255-1.aar
 Version: 1.9.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_fragment_fragment_testing_manifest/README.chromium b/third_party/androidx/committed/libs/androidx_fragment_fragment_testing_manifest/README.chromium
index 6b88b2f..3da2c8de 100644
--- a/third_party/androidx/committed/libs/androidx_fragment_fragment_testing_manifest/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_fragment_fragment_testing_manifest/README.chromium
@@ -1,6 +1,6 @@
 Name: Fragment Testing Manifest dependency
 Short Name: fragment-testing-manifest
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/fragment/fragment-testing-manifest/1.9.0-SNAPSHOT/fragment-testing-manifest-1.9.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/fragment/fragment-testing-manifest/1.9.0-SNAPSHOT/fragment-testing-manifest-1.9.0-20251002.111255-1.aar
 Version: 1.9.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_graphics_graphics_path/README.chromium b/third_party/androidx/committed/libs/androidx_graphics_graphics_path/README.chromium
index 2b1cad1..9bd895eb 100644
--- a/third_party/androidx/committed/libs/androidx_graphics_graphics_path/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_graphics_graphics_path/README.chromium
@@ -1,6 +1,6 @@
 Name: Android Graphics Path
 Short Name: graphics-path
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/graphics/graphics-path/1.1.0-SNAPSHOT/graphics-path-1.1.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/graphics/graphics-path/1.1.0-SNAPSHOT/graphics-path-1.1.0-20251002.111255-1.aar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_graphics_graphics_shapes_android/README.chromium b/third_party/androidx/committed/libs/androidx_graphics_graphics_shapes_android/README.chromium
index c2039d63..c05e09c 100644
--- a/third_party/androidx/committed/libs/androidx_graphics_graphics_shapes_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_graphics_graphics_shapes_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Graphics Shapes
 Short Name: graphics-shapes-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/graphics/graphics-shapes-android/1.1.0-SNAPSHOT/graphics-shapes-android-1.1.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/graphics/graphics-shapes-android/1.1.0-SNAPSHOT/graphics-shapes-android-1.1.0-20251002.111255-1.aar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_interpolator_interpolator/README.chromium b/third_party/androidx/committed/libs/androidx_interpolator_interpolator/README.chromium
index 3c0d47a..b7784e9 100644
--- a/third_party/androidx/committed/libs/androidx_interpolator_interpolator/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_interpolator_interpolator/README.chromium
@@ -1,6 +1,6 @@
 Name: Interpolators
 Short Name: interpolator
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/interpolator/interpolator/1.1.0-SNAPSHOT/interpolator-1.1.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/interpolator/interpolator/1.1.0-SNAPSHOT/interpolator-1.1.0-20251002.111255-1.aar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_java8/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_java8/README.chromium
index c8c12ab..b67f528c 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_java8/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_java8/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle-Common for Java 8
 Short Name: lifecycle-common-java8
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-common-java8/2.10.0-SNAPSHOT/lifecycle-common-java8-2.10.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-common-java8/2.10.0-SNAPSHOT/lifecycle-common-java8-2.10.0-20251002.111255-1.jar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_jvm/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_jvm/README.chromium
index 2dd8b9e..83a333df 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_jvm/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_jvm/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle-Common
 Short Name: lifecycle-common-jvm
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-common-jvm/2.10.0-SNAPSHOT/lifecycle-common-jvm-2.10.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-common-jvm/2.10.0-SNAPSHOT/lifecycle-common-jvm-2.10.0-20251002.111255-1.jar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata/README.chromium
index b92242d..e16b60db 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle LiveData
 Short Name: lifecycle-livedata
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-livedata/2.10.0-SNAPSHOT/lifecycle-livedata-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-livedata/2.10.0-SNAPSHOT/lifecycle-livedata-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core/README.chromium
index 3db2db9..4fa9851b 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle LiveData Core
 Short Name: lifecycle-livedata-core
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-livedata-core/2.10.0-SNAPSHOT/lifecycle-livedata-core-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-livedata-core/2.10.0-SNAPSHOT/lifecycle-livedata-core-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core_ktx/README.chromium
index b38ba06..c6dba7b 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: LiveData Core Kotlin Extensions
 Short Name: lifecycle-livedata-core-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-livedata-core-ktx/2.10.0-SNAPSHOT/lifecycle-livedata-core-ktx-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-livedata-core-ktx/2.10.0-SNAPSHOT/lifecycle-livedata-core-ktx-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_ktx/README.chromium
index 3d349c1..020a0da 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: LiveData Kotlin Extensions
 Short Name: lifecycle-livedata-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-livedata-ktx/2.10.0-SNAPSHOT/lifecycle-livedata-ktx-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-livedata-ktx/2.10.0-SNAPSHOT/lifecycle-livedata-ktx-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_process/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_process/README.chromium
index 9cdc9f3..e8f39a7 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_process/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_process/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle Process
 Short Name: lifecycle-process
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-process/2.10.0-SNAPSHOT/lifecycle-process-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-process/2.10.0-SNAPSHOT/lifecycle-process-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_android/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_android/README.chromium
index f67a5bf..43d0de7 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle Runtime
 Short Name: lifecycle-runtime-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-runtime-android/2.10.0-SNAPSHOT/lifecycle-runtime-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-runtime-android/2.10.0-SNAPSHOT/lifecycle-runtime-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_compose_android/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_compose_android/README.chromium
index 261b29b..cd542754 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_compose_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_compose_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle Runtime Compose
 Short Name: lifecycle-runtime-compose-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-runtime-compose-android/2.10.0-SNAPSHOT/lifecycle-runtime-compose-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-runtime-compose-android/2.10.0-SNAPSHOT/lifecycle-runtime-compose-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_ktx_android/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_ktx_android/README.chromium
index 5cb59c6..a7911557 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_ktx_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_ktx_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle Kotlin Extensions
 Short Name: lifecycle-runtime-ktx-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-runtime-ktx-android/2.10.0-SNAPSHOT/lifecycle-runtime-ktx-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-runtime-ktx-android/2.10.0-SNAPSHOT/lifecycle-runtime-ktx-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_service/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_service/README.chromium
index 8a7f94ca8..06a5953 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_service/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_service/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle Service
 Short Name: lifecycle-service
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-service/2.10.0-SNAPSHOT/lifecycle-service-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-service/2.10.0-SNAPSHOT/lifecycle-service-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_android/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_android/README.chromium
index 7e28dcf9..5728f80 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle ViewModel
 Short Name: lifecycle-viewmodel-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-android/2.10.0-SNAPSHOT/lifecycle-viewmodel-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-android/2.10.0-SNAPSHOT/lifecycle-viewmodel-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_compose_android/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_compose_android/README.chromium
index a9e58e0..12d4fb23 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_compose_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_compose_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle ViewModel Compose
 Short Name: lifecycle-viewmodel-compose-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-compose-android/2.10.0-SNAPSHOT/lifecycle-viewmodel-compose-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-compose-android/2.10.0-SNAPSHOT/lifecycle-viewmodel-compose-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_ktx/README.chromium
index 9c3964c5..24ce479 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle ViewModel Kotlin Extensions
 Short Name: lifecycle-viewmodel-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-ktx/2.10.0-SNAPSHOT/lifecycle-viewmodel-ktx-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-ktx/2.10.0-SNAPSHOT/lifecycle-viewmodel-ktx-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate_android/README.chromium b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate_android/README.chromium
index ac8f9bf..23bfaac 100644
--- a/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Lifecycle ViewModel with SavedState
 Short Name: lifecycle-viewmodel-savedstate-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-savedstate-android/2.10.0-SNAPSHOT/lifecycle-viewmodel-savedstate-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/lifecycle/lifecycle-viewmodel-savedstate-android/2.10.0-SNAPSHOT/lifecycle-viewmodel-savedstate-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_loader_loader/README.chromium b/third_party/androidx/committed/libs/androidx_loader_loader/README.chromium
index 24370a7b..91566c32 100644
--- a/third_party/androidx/committed/libs/androidx_loader_loader/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_loader_loader/README.chromium
@@ -1,6 +1,6 @@
 Name: loader
 Short Name: loader
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/loader/loader/1.2.0-SNAPSHOT/loader-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/loader/loader/1.2.0-SNAPSHOT/loader-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_media_media/README.chromium b/third_party/androidx/committed/libs/androidx_media_media/README.chromium
index db160da..0eaee4b 100644
--- a/third_party/androidx/committed/libs/androidx_media_media/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_media_media/README.chromium
@@ -1,6 +1,6 @@
 Name: Media
 Short Name: media
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/media/media/1.8.0-SNAPSHOT/media-1.8.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/media/media/1.8.0-SNAPSHOT/media-1.8.0-20251002.111255-1.aar
 Version: 1.8.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_navigation_navigation_common_android/README.chromium b/third_party/androidx/committed/libs/androidx_navigation_navigation_common_android/README.chromium
index 30bdbefe..63caa62 100644
--- a/third_party/androidx/committed/libs/androidx_navigation_navigation_common_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_navigation_navigation_common_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Navigation Common
 Short Name: navigation-common-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/navigation/navigation-common-android/2.10.0-SNAPSHOT/navigation-common-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/navigation/navigation-common-android/2.10.0-SNAPSHOT/navigation-common-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_navigation_navigation_compose_android/README.chromium b/third_party/androidx/committed/libs/androidx_navigation_navigation_compose_android/README.chromium
index 320bc05a..1e0e9aa7 100644
--- a/third_party/androidx/committed/libs/androidx_navigation_navigation_compose_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_navigation_navigation_compose_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Compose Navigation
 Short Name: navigation-compose-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/navigation/navigation-compose-android/2.10.0-SNAPSHOT/navigation-compose-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/navigation/navigation-compose-android/2.10.0-SNAPSHOT/navigation-compose-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_navigation_navigation_runtime_android/README.chromium b/third_party/androidx/committed/libs/androidx_navigation_navigation_runtime_android/README.chromium
index 294f348..ffdedf0 100644
--- a/third_party/androidx/committed/libs/androidx_navigation_navigation_runtime_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_navigation_navigation_runtime_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Navigation Runtime
 Short Name: navigation-runtime-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/navigation/navigation-runtime-android/2.10.0-SNAPSHOT/navigation-runtime-android-2.10.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/navigation/navigation-runtime-android/2.10.0-SNAPSHOT/navigation-runtime-android-2.10.0-20251002.111255-1.aar
 Version: 2.10.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_android/README.chromium b/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_android/README.chromium
index a69c1a2..406f686 100644
--- a/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Navigation Event
 Short Name: navigationevent-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/navigationevent/navigationevent-android/1.0.0-SNAPSHOT/navigationevent-android-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/navigationevent/navigationevent-android/1.0.0-SNAPSHOT/navigationevent-android-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_compose_android/README.chromium b/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_compose_android/README.chromium
index b269b6c..8c06c52f 100644
--- a/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_compose_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_compose_android/README.chromium
@@ -1,6 +1,6 @@
 Name: NavigationEvent Compose
 Short Name: navigationevent-compose-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/navigationevent/navigationevent-compose-android/1.0.0-SNAPSHOT/navigationevent-compose-android-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/navigationevent/navigationevent-compose-android/1.0.0-SNAPSHOT/navigationevent-compose-android-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_paging_paging_common_android/README.chromium b/third_party/androidx/committed/libs/androidx_paging_paging_common_android/README.chromium
index 07d8e11d..17a97fa 100644
--- a/third_party/androidx/committed/libs/androidx_paging_paging_common_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_paging_paging_common_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Paging-Common
 Short Name: paging-common-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/paging/paging-common-android/3.4.0-SNAPSHOT/paging-common-android-3.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/paging/paging-common-android/3.4.0-SNAPSHOT/paging-common-android-3.4.0-20251002.111255-1.aar
 Version: 3.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_paging_paging_common_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_paging_paging_common_ktx/README.chromium
index e6414bd..9903a0154 100644
--- a/third_party/androidx/committed/libs/androidx_paging_paging_common_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_paging_paging_common_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: Paging-Common Kotlin Extensions
 Short Name: paging-common-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/paging/paging-common-ktx/3.4.0-SNAPSHOT/paging-common-ktx-3.4.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/paging/paging-common-ktx/3.4.0-SNAPSHOT/paging-common-ktx-3.4.0-20251002.111255-1.jar
 Version: 3.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_paging_paging_compose_android/README.chromium b/third_party/androidx/committed/libs/androidx_paging_paging_compose_android/README.chromium
index 4ffbcaa..cb44ed2 100644
--- a/third_party/androidx/committed/libs/androidx_paging_paging_compose_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_paging_paging_compose_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Paging-Compose
 Short Name: paging-compose-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/paging/paging-compose-android/3.4.0-SNAPSHOT/paging-compose-android-3.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/paging/paging-compose-android/3.4.0-SNAPSHOT/paging-compose-android-3.4.0-20251002.111255-1.aar
 Version: 3.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_paging_paging_runtime/README.chromium b/third_party/androidx/committed/libs/androidx_paging_paging_runtime/README.chromium
index 89cba65..c2fba53 100644
--- a/third_party/androidx/committed/libs/androidx_paging_paging_runtime/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_paging_paging_runtime/README.chromium
@@ -1,6 +1,6 @@
 Name: Paging-Runtime
 Short Name: paging-runtime
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/paging/paging-runtime/3.4.0-SNAPSHOT/paging-runtime-3.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/paging/paging-runtime/3.4.0-SNAPSHOT/paging-runtime-3.4.0-20251002.111255-1.aar
 Version: 3.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_palette_palette/README.chromium b/third_party/androidx/committed/libs/androidx_palette_palette/README.chromium
index de27fee..f5e72dc7 100644
--- a/third_party/androidx/committed/libs/androidx_palette_palette/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_palette_palette/README.chromium
@@ -1,6 +1,6 @@
 Name: Palette
 Short Name: palette
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/palette/palette/1.1.0-SNAPSHOT/palette-1.1.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/palette/palette/1.1.0-SNAPSHOT/palette-1.1.0-20251002.111255-1.aar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_pdf_pdf_document_service/README.chromium b/third_party/androidx/committed/libs/androidx_pdf_pdf_document_service/README.chromium
index 2ed71f8..c52afba 100644
--- a/third_party/androidx/committed/libs/androidx_pdf_pdf_document_service/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_pdf_pdf_document_service/README.chromium
@@ -1,6 +1,6 @@
 Name: androidx.pdf:pdf-document-service
 Short Name: pdf-document-service
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/pdf/pdf-document-service/1.0.0-SNAPSHOT/pdf-document-service-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/pdf/pdf-document-service/1.0.0-SNAPSHOT/pdf-document-service-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer/README.chromium b/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer/README.chromium
index 7b49f78c..3fb662e 100644
--- a/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer/README.chromium
@@ -1,6 +1,6 @@
 Name: androidx.pdf:pdf-viewer
 Short Name: pdf-viewer
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/pdf/pdf-viewer/1.0.0-SNAPSHOT/pdf-viewer-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/pdf/pdf-viewer/1.0.0-SNAPSHOT/pdf-viewer-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer_fragment/README.chromium b/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer_fragment/README.chromium
index 2bc272d..012e392 100644
--- a/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer_fragment/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer_fragment/README.chromium
@@ -1,6 +1,6 @@
 Name: androidx.pdf:pdf-viewer-fragment
 Short Name: pdf-viewer-fragment
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/pdf/pdf-viewer-fragment/1.0.0-SNAPSHOT/pdf-viewer-fragment-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/pdf/pdf-viewer-fragment/1.0.0-SNAPSHOT/pdf-viewer-fragment-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_preference_preference/README.chromium b/third_party/androidx/committed/libs/androidx_preference_preference/README.chromium
index 85b0e2d..fe69e7d 100644
--- a/third_party/androidx/committed/libs/androidx_preference_preference/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_preference_preference/README.chromium
@@ -1,6 +1,6 @@
 Name: Preference
 Short Name: preference
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/preference/preference/1.3.0-SNAPSHOT/preference-1.3.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/preference/preference/1.3.0-SNAPSHOT/preference-1.3.0-20251002.111255-1.aar
 Version: 1.3.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_profileinstaller_profileinstaller/README.chromium b/third_party/androidx/committed/libs/androidx_profileinstaller_profileinstaller/README.chromium
index 04ac617..15791dfe 100644
--- a/third_party/androidx/committed/libs/androidx_profileinstaller_profileinstaller/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_profileinstaller_profileinstaller/README.chromium
@@ -1,6 +1,6 @@
 Name: Profile Installer
 Short Name: profileinstaller
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/profileinstaller/profileinstaller/1.5.0-SNAPSHOT/profileinstaller-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/profileinstaller/profileinstaller/1.5.0-SNAPSHOT/profileinstaller-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_recyclerview_recyclerview/README.chromium b/third_party/androidx/committed/libs/androidx_recyclerview_recyclerview/README.chromium
index fdca0c23b..02c1cab 100644
--- a/third_party/androidx/committed/libs/androidx_recyclerview_recyclerview/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_recyclerview_recyclerview/README.chromium
@@ -1,6 +1,6 @@
 Name: RecyclerView
 Short Name: recyclerview
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/recyclerview/recyclerview/1.5.0-SNAPSHOT/recyclerview-1.5.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/recyclerview/recyclerview/1.5.0-SNAPSHOT/recyclerview-1.5.0-20251002.111255-1.aar
 Version: 1.5.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_resourceinspection_resourceinspection_annotation/README.chromium b/third_party/androidx/committed/libs/androidx_resourceinspection_resourceinspection_annotation/README.chromium
index 60cbfe2..517bb18 100644
--- a/third_party/androidx/committed/libs/androidx_resourceinspection_resourceinspection_annotation/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_resourceinspection_resourceinspection_annotation/README.chromium
@@ -1,6 +1,6 @@
 Name: Resource Inspection - Annotations
 Short Name: resourceinspection-annotation
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/resourceinspection/resourceinspection-annotation/1.1.0-SNAPSHOT/resourceinspection-annotation-1.1.0-20251001.131953-1.jar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/resourceinspection/resourceinspection-annotation/1.1.0-SNAPSHOT/resourceinspection-annotation-1.1.0-20251002.111255-1.jar
 Version: 1.1.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_savedstate_savedstate_android/README.chromium b/third_party/androidx/committed/libs/androidx_savedstate_savedstate_android/README.chromium
index 470c837..44ebe403 100644
--- a/third_party/androidx/committed/libs/androidx_savedstate_savedstate_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_savedstate_savedstate_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Saved State
 Short Name: savedstate-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/savedstate/savedstate-android/1.4.0-SNAPSHOT/savedstate-android-1.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/savedstate/savedstate-android/1.4.0-SNAPSHOT/savedstate-android-1.4.0-20251002.111255-1.aar
 Version: 1.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_savedstate_savedstate_compose_android/README.chromium b/third_party/androidx/committed/libs/androidx_savedstate_savedstate_compose_android/README.chromium
index 06f47f75..91376fc 100644
--- a/third_party/androidx/committed/libs/androidx_savedstate_savedstate_compose_android/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_savedstate_savedstate_compose_android/README.chromium
@@ -1,6 +1,6 @@
 Name: Saved State Compose
 Short Name: savedstate-compose-android
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/savedstate/savedstate-compose-android/1.4.0-SNAPSHOT/savedstate-compose-android-1.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/savedstate/savedstate-compose-android/1.4.0-SNAPSHOT/savedstate-compose-android-1.4.0-20251002.111255-1.aar
 Version: 1.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_savedstate_savedstate_ktx/README.chromium b/third_party/androidx/committed/libs/androidx_savedstate_savedstate_ktx/README.chromium
index ea91db0..0b91b2f0 100644
--- a/third_party/androidx/committed/libs/androidx_savedstate_savedstate_ktx/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_savedstate_savedstate_ktx/README.chromium
@@ -1,6 +1,6 @@
 Name: SavedState Kotlin Extensions
 Short Name: savedstate-ktx
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/savedstate/savedstate-ktx/1.4.0-SNAPSHOT/savedstate-ktx-1.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/savedstate/savedstate-ktx/1.4.0-SNAPSHOT/savedstate-ktx-1.4.0-20251002.111255-1.aar
 Version: 1.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_slidingpanelayout_slidingpanelayout/README.chromium b/third_party/androidx/committed/libs/androidx_slidingpanelayout_slidingpanelayout/README.chromium
index 3d9bf76..fef29e0 100644
--- a/third_party/androidx/committed/libs/androidx_slidingpanelayout_slidingpanelayout/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_slidingpanelayout_slidingpanelayout/README.chromium
@@ -1,6 +1,6 @@
 Name: Sliding Pane Layout
 Short Name: slidingpanelayout
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/slidingpanelayout/slidingpanelayout/1.3.0-SNAPSHOT/slidingpanelayout-1.3.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/slidingpanelayout/slidingpanelayout/1.3.0-SNAPSHOT/slidingpanelayout-1.3.0-20251002.111255-1.aar
 Version: 1.3.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_swiperefreshlayout_swiperefreshlayout/README.chromium b/third_party/androidx/committed/libs/androidx_swiperefreshlayout_swiperefreshlayout/README.chromium
index c75170d..ce59bb5b 100644
--- a/third_party/androidx/committed/libs/androidx_swiperefreshlayout_swiperefreshlayout/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_swiperefreshlayout_swiperefreshlayout/README.chromium
@@ -1,6 +1,6 @@
 Name: Swipe Refresh Layout
 Short Name: swiperefreshlayout
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/swiperefreshlayout/swiperefreshlayout/1.2.0-SNAPSHOT/swiperefreshlayout-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/swiperefreshlayout/swiperefreshlayout/1.2.0-SNAPSHOT/swiperefreshlayout-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_test_uiautomator_uiautomator/README.chromium b/third_party/androidx/committed/libs/androidx_test_uiautomator_uiautomator/README.chromium
index 026d587..76bfaf8 100644
--- a/third_party/androidx/committed/libs/androidx_test_uiautomator_uiautomator/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_test_uiautomator_uiautomator/README.chromium
@@ -1,6 +1,6 @@
 Name: UIAutomator
 Short Name: uiautomator
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/test/uiautomator/uiautomator/2.4.0-SNAPSHOT/uiautomator-2.4.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/test/uiautomator/uiautomator/2.4.0-SNAPSHOT/uiautomator-2.4.0-20251002.111255-1.aar
 Version: 2.4.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_transition_transition/README.chromium b/third_party/androidx/committed/libs/androidx_transition_transition/README.chromium
index 545eedf..5a8b8cc 100644
--- a/third_party/androidx/committed/libs/androidx_transition_transition/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_transition_transition/README.chromium
@@ -1,6 +1,6 @@
 Name: Transition
 Short Name: transition
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/transition/transition/1.7.0-SNAPSHOT/transition-1.7.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/transition/transition/1.7.0-SNAPSHOT/transition-1.7.0-20251002.111255-1.aar
 Version: 1.7.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_viewpager2_viewpager2/README.chromium b/third_party/androidx/committed/libs/androidx_viewpager2_viewpager2/README.chromium
index c7699cd..6e32816 100644
--- a/third_party/androidx/committed/libs/androidx_viewpager2_viewpager2/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_viewpager2_viewpager2/README.chromium
@@ -1,6 +1,6 @@
 Name: ViewPager2
 Short Name: viewpager2
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/viewpager2/viewpager2/1.2.0-SNAPSHOT/viewpager2-1.2.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/viewpager2/viewpager2/1.2.0-SNAPSHOT/viewpager2-1.2.0-20251002.111255-1.aar
 Version: 1.2.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_webkit_webkit/README.chromium b/third_party/androidx/committed/libs/androidx_webkit_webkit/README.chromium
index 8bcf1d7..895e439 100644
--- a/third_party/androidx/committed/libs/androidx_webkit_webkit/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_webkit_webkit/README.chromium
@@ -1,6 +1,6 @@
 Name: Webkit
 Short Name: webkit
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/webkit/webkit/1.15.0-SNAPSHOT/webkit-1.15.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/webkit/webkit/1.15.0-SNAPSHOT/webkit-1.15.0-20251002.111255-1.aar
 Version: 1.15.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/androidx/committed/libs/androidx_window_sidecar_sidecar/README.chromium b/third_party/androidx/committed/libs/androidx_window_sidecar_sidecar/README.chromium
index 4d9fa17..12b59df4 100644
--- a/third_party/androidx/committed/libs/androidx_window_sidecar_sidecar/README.chromium
+++ b/third_party/androidx/committed/libs/androidx_window_sidecar_sidecar/README.chromium
@@ -1,6 +1,6 @@
 Name: WindowManager Sidecar
 Short Name: sidecar
-URL: https://androidx.dev/snapshots/builds/14196806/artifacts/repository/androidx/window/sidecar/sidecar/1.0.0-SNAPSHOT/sidecar-1.0.0-20251001.131953-1.aar
+URL: https://androidx.dev/snapshots/builds/14203925/artifacts/repository/androidx/window/sidecar/sidecar/1.0.0-SNAPSHOT/sidecar-1.0.0-20251002.111255-1.aar
 Version: 1.0.0-SNAPSHOT
 Update Mechanism: Autoroll
 License: Apache-2.0
diff --git a/third_party/angle b/third_party/angle
index 1895857..b152eb3 160000
--- a/third_party/angle
+++ b/third_party/angle
@@ -1 +1 @@
-Subproject commit 1895857e24931c74b4fb96c4b3dcc925541306c6
+Subproject commit b152eb304ffde70a8dff4eb3f9f089de49b93b96
diff --git a/third_party/blink/public/devtools_protocol/domains/Browser.pdl b/third_party/blink/public/devtools_protocol/domains/Browser.pdl
index b17b3b1..b973cd9 100644
--- a/third_party/blink/public/devtools_protocol/domains/Browser.pdl
+++ b/third_party/blink/public/devtools_protocol/domains/Browser.pdl
@@ -119,8 +119,9 @@
       # Context to override. When omitted, default browser context is used.
       optional BrowserContextID browserContextId
 
-  # Grant specific permissions to the given origin and reject all others.
-  experimental command grantPermissions
+  # Grant specific permissions to the given origin and reject all others. Deprecated. Use
+  # setPermission instead.
+  experimental deprecated command grantPermissions
     parameters
       array of PermissionType permissions
       # Origin the permission applies to, all origins if not specified.
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn
index 0776fab..348fa8f 100644
--- a/third_party/blink/public/mojom/BUILD.gn
+++ b/third_party/blink/public/mojom/BUILD.gn
@@ -103,6 +103,7 @@
     "file_system_access/file_system_access_permission_mode.mojom",
     "file_system_access/file_system_access_transfer_token.mojom",
     "filesystem/file_system.mojom",
+    "fingerprinting_protection/canvas_interventions.mojom",
     "font_access/font_access.mojom",
     "forms/form_control_type.mojom",
     "geolocation/geolocation_service.mojom",
diff --git a/third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom b/third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom
new file mode 100644
index 0000000..52d0ed0
--- /dev/null
+++ b/third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom
@@ -0,0 +1,18 @@
+module blink.mojom;
+
+import "third_party/blink/public/mojom/fingerprinting_protection/noise_token.mojom";
+
+// Interface to update the canvas noise token value for clients (e.g., service
+// workers). This is passed from the browser (remote) to the renderer
+// (receiver). CanvasNoiseTokenUpdater is connected to CanvasInterventionsHelper
+// which is a 1:1 mapping for each worker thread on the renderer. This handles
+// any updates to the canvas noise token, which is the seed used for noising
+// canvas readbacks. Additionally, this update can be used to disable canvas
+// noising for the service worker.
+interface CanvasNoiseTokenUpdater {
+  // Listener function used by the renderer for when the browser process sends
+  // updates to the canvas noise token. This will update the canvas noise token
+  // on each intended ExecutionContext(s). This also means, that canvas noising
+  // can be disabled by also passing in a nullopt.
+  OnTokenReceived(NoiseToken? token);
+};
diff --git a/third_party/blink/public/mojom/service_worker/embedded_worker.mojom b/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
index b0c33de..39523a7 100644
--- a/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
+++ b/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
@@ -19,6 +19,7 @@
 import "third_party/blink/public/mojom/renderer_preference_watcher.mojom";
 import "third_party/blink/public/mojom/renderer_preferences.mojom";
 import "third_party/blink/public/mojom/script/script_type.mojom";
+import "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom";
 import "third_party/blink/public/mojom/service_worker/controller_service_worker.mojom";
 import "third_party/blink/public/mojom/service_worker/service_worker.mojom";
 import "third_party/blink/public/mojom/service_worker/service_worker_event_status.mojom";
@@ -176,6 +177,12 @@
   // canvas noising feature and the initial seed value the noising should use,
   // and must be available to the renderer prior to JavaScript execution.
   NoiseToken? canvas_noise_token;
+
+  // Implemented by CanvasInterventionsHelper to update the canvas noise token
+  // for this ServiceWorker's ExecutionContext. This is used to update the
+  // enablement of canvas noising in the renderer, or updating the seed value
+  // for generating a canvas noise.
+  pending_receiver<CanvasNoiseTokenUpdater> canvas_noise_token_observer;
 };
 
 // Holds timing information about the start worker sequence for UMA.
diff --git a/third_party/blink/public/web/web_element.h b/third_party/blink/public/web/web_element.h
index c815617..795d562 100644
--- a/third_party/blink/public/web/web_element.h
+++ b/third_party/blink/public/web/web_element.h
@@ -170,9 +170,10 @@
   // Returns {scrollLeft, scrollTop}.
   gfx::Vector2dF GetScrollOffset() const;
 
-  // Sets {scrollLeft, scrollTop}, returns true if the scroll was completed (or
-  // will be completed via a smooth scroll animation), false if the element
-  // cannot scroll (e.g. it's not rendered, no scroll extent).
+  // Sets {scrollLeft, scrollTop} and forces instant scroll, returns true if the
+  // scroll was completed (or will be completed via a smooth scroll animation),
+  // false if the element cannot scroll (e.g. it's not rendered, no scroll
+  // extent).
   bool SetScrollOffset(const gfx::Vector2dF& offset);
 
   // Scrolls the element into view if it isn't already visible.
diff --git a/third_party/blink/public/web/web_embedded_worker.h b/third_party/blink/public/web/web_embedded_worker.h
index e05f53d..6289b63b 100644
--- a/third_party/blink/public/web/web_embedded_worker.h
+++ b/third_party/blink/public/web/web_embedded_worker.h
@@ -36,6 +36,7 @@
 
 #include "third_party/blink/public/mojom/browser_interface_broker.mojom-shared.h"
 #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom-shared.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom-shared.h"
 #include "third_party/blink/public/mojom/frame/reporting_observer.mojom-shared.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom-shared.h"
 #include "third_party/blink/public/mojom/worker/worker_content_settings_proxy.mojom-shared.h"
@@ -96,7 +97,9 @@
       CrossVariantMojoReceiver<mojom::ReportingObserverInterfaceBase>
           coep_reporting_observer,
       CrossVariantMojoReceiver<mojom::ReportingObserverInterfaceBase>
-          dip_reporting_observer) = 0;
+          dip_reporting_observer,
+      CrossVariantMojoReceiver<mojom::CanvasNoiseTokenUpdaterInterfaceBase>
+          canvas_noise_token_observer) = 0;
   virtual void TerminateWorkerContext() = 0;
 };
 
diff --git a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc
index 80af233b..54bbf87 100644
--- a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc
+++ b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc
@@ -197,10 +197,17 @@
 CanvasInterventionsHelper::CanvasInterventionsHelper(
     ExecutionContext& execution_context)
     : Supplement<ExecutionContext>(execution_context),
-      ExecutionContextLifecycleObserver(&execution_context) {}
+      ExecutionContextLifecycleObserver(&execution_context),
+      receiver_(this, &execution_context) {}
 
 void CanvasInterventionsHelper::ContextDestroyed() {
-  CHECK_GT(num_noised_canvas_readbacks_, 0);
+  // CanvasInterventionsHelper will be created for every ExecutionContext,
+  // which, only perhaps a subset will have a noised canvas. We should not
+  // record any ExecutionContexts that did not have a noised canvas as that
+  // would significantly bloat the 0 increments for this UMA.
+  if (num_noised_canvas_readbacks_ == 0) {
+    return;
+  }
   UMA_HISTOGRAM_COUNTS_100(kCanvasNoiseReadbacksPerContextMetricName,
                            num_noised_canvas_readbacks_);
   base::UmaHistogramCounts100(
@@ -209,4 +216,16 @@
       num_noised_canvas_readbacks_);
 }
 
+void CanvasInterventionsHelper::Bind(
+    mojo::PendingReceiver<CanvasNoiseTokenUpdater> pending_receiver) {
+  receiver_.Bind(
+      std::move(pending_receiver),
+      GetExecutionContext()->GetTaskRunner(TaskType::kInternalDefault));
+}
+
+void CanvasInterventionsHelper::OnTokenReceived(
+    std::optional<NoiseToken> token) {
+  GetExecutionContext()->SetCanvasNoiseToken(token);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.h b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.h
index 7c6cf37..0637f7f 100644
--- a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.h
+++ b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.h
@@ -5,11 +5,14 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CANVAS_INTERVENTIONS_CANVAS_INTERVENTIONS_HELPER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CANVAS_INTERVENTIONS_CANVAS_INTERVENTIONS_HELPER_H_
 
+#include "third_party/blink/public/common/fingerprinting_protection/noise_token.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
+#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 
 namespace blink {
@@ -56,7 +59,8 @@
 class CORE_EXPORT CanvasInterventionsHelper
     : public GarbageCollected<CanvasInterventionsHelper>,
       public Supplement<ExecutionContext>,
-      public ExecutionContextLifecycleObserver {
+      public ExecutionContextLifecycleObserver,
+      public mojom::blink::CanvasNoiseTokenUpdater {
  public:
   enum class CanvasInterventionType {
     kNone,
@@ -76,6 +80,7 @@
                                  scoped_refptr<StaticBitmapImage>& snapshot);
 
   void Trace(Visitor* visitor) const override {
+    visitor->Trace(receiver_);
     Supplement<ExecutionContext>::Trace(visitor);
     ExecutionContextLifecycleObserver::Trace(visitor);
   }
@@ -84,8 +89,17 @@
 
   void ContextDestroyed() override;
 
+  void Bind(mojo::PendingReceiver<CanvasNoiseTokenUpdater> pending_receiver);
+
  private:
-  int num_noised_canvas_readbacks_ = 0;
+  // mojom::blink::CanvasNoiseTokenUpdater overrides:
+  void OnTokenReceived(std::optional<NoiseToken> token) override;
+
+  uint32_t num_noised_canvas_readbacks_ = 0;
+
+  HeapMojoReceiver<mojom::blink::CanvasNoiseTokenUpdater,
+                   CanvasInterventionsHelper>
+      receiver_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/css/resolver/element_style_resources.cc b/third_party/blink/renderer/core/css/resolver/element_style_resources.cc
index 67d2b1a..576ce91 100644
--- a/third_party/blink/renderer/core/css/resolver/element_style_resources.cc
+++ b/third_party/blink/renderer/core/css/resolver/element_style_resources.cc
@@ -276,18 +276,14 @@
 }
 
 static bool AllowExternalResources(CSSPropertyID property) {
-  if (RuntimeEnabledFeatures::SvgExternalResourcesEnabled()) {
-    if (property == CSSPropertyID::kClipPath ||
-        property == CSSPropertyID::kFill ||
-        property == CSSPropertyID::kMarkerEnd ||
-        property == CSSPropertyID::kMarkerMid ||
-        property == CSSPropertyID::kMarkerStart ||
-        property == CSSPropertyID::kStroke) {
-      return true;
-    }
-  }
   return property == CSSPropertyID::kBackdropFilter ||
-         property == CSSPropertyID::kFilter;
+         property == CSSPropertyID::kClipPath ||
+         property == CSSPropertyID::kFill ||
+         property == CSSPropertyID::kFilter ||
+         property == CSSPropertyID::kMarkerEnd ||
+         property == CSSPropertyID::kMarkerMid ||
+         property == CSSPropertyID::kMarkerStart ||
+         property == CSSPropertyID::kStroke;
 }
 
 SVGResource* ElementStyleResources::GetSVGResourceFromValue(
@@ -327,7 +323,6 @@
 
 static SVGResource* GetSingleSVGResource(CSSPropertyID property,
                                          ComputedStyleBuilder& builder) {
-  CHECK(RuntimeEnabledFeatures::SvgExternalResourcesEnabled());
   switch (property) {
     case CSSPropertyID::kClipPath: {
       auto* reference_clip =
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index 68353abb..e245062 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -2769,13 +2769,6 @@
   return CreateScrollResolvedPromise(script_state);
 }
 
-bool Element::SetScrollOffset(const ScrollOffset& offset) {
-  ScrollToOptions* scroll_to_options = ScrollToOptions::Create();
-  scroll_to_options->setLeft(offset.x());
-  scroll_to_options->setTop(offset.y());
-  return SetScrollOffset(scroll_to_options);
-}
-
 bool Element::SetScrollOffset(const ScrollToOptions* scroll_to_options) {
   if (!InActiveDocument()) {
     return false;
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
index cb6d0f71..b6066ae2 100644
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
@@ -554,7 +554,6 @@
   void scrollByForTesting(double x, double y);
   void scrollToForTesting(double x, double y);
 
-  bool SetScrollOffset(const ScrollOffset&);
   bool SetScrollOffset(const ScrollToOptions*);
 
   // Returns the bounds of this Element, unclipped, in the coordinate space of
diff --git a/third_party/blink/renderer/core/exported/web_element.cc b/third_party/blink/renderer/core/exported/web_element.cc
index c6e27a4..7039232c 100644
--- a/third_party/blink/renderer/core/exported/web_element.cc
+++ b/third_party/blink/renderer/core/exported/web_element.cc
@@ -33,6 +33,8 @@
 #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink.h"
 #include "third_party/blink/public/web/web_label_element.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_element.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_scroll_behavior.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_scroll_to_options.h"
 #include "third_party/blink/renderer/core/clipboard/data_object.h"
 #include "third_party/blink/renderer/core/clipboard/data_transfer.h"
 #include "third_party/blink/renderer/core/clipboard/data_transfer_access_policy.h"
@@ -391,7 +393,11 @@
 
 bool WebElement::SetScrollOffset(const gfx::Vector2dF& offset) {
   Element* element = Unwrap<Element>();
-  return element->SetScrollOffset(offset);
+  ScrollToOptions* scroll_to_options = ScrollToOptions::Create();
+  scroll_to_options->setLeft(offset.x());
+  scroll_to_options->setTop(offset.y());
+  scroll_to_options->setBehavior(V8ScrollBehavior::Enum::kInstant);
+  return element->SetScrollOffset(scroll_to_options);
 }
 
 void WebElement::ScrollIntoViewIfNeeded() {
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc
index 13fdae9..214d59b6 100644
--- a/third_party/blink/renderer/core/exported/web_view_test.cc
+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -355,9 +355,15 @@
   scoped_refptr<base::TestMockTimeTaskRunner> test_task_runner_;
 };
 
-class WebViewTestTouchDragEndContextMenu
+class WebViewTestTouchDragEndContextMenuWithPointerType
     : public WebViewTest,
-      public testing::WithParamInterface<bool> {};
+      public testing::WithParamInterface<
+          std::tuple<bool, WebPointerProperties::PointerType>> {};
+
+class WebViewTestWithPointerType
+    : public WebViewTest,
+      public ::testing::WithParamInterface<WebPointerProperties::PointerType> {
+};
 
 static bool HitTestIsContentEditable(WebView* view, int x, int y) {
   gfx::PointF hit_point(x, y);
@@ -3250,7 +3256,8 @@
           web_view->MainFrameImpl()->GetFrame()));
 }
 
-TEST_P(WebViewTestTouchDragEndContextMenu, ContextMenuOnLinkAndImageLongPress) {
+TEST_P(WebViewTestTouchDragEndContextMenuWithPointerType,
+       ContextMenuOnLinkAndImageLongPress) {
   ScopedTouchDragAndContextMenuForTest touch_drag_and_context_menu(false);
   RegisterMockedHttpURLLoad("long_press_links_and_images.html");
 
@@ -3261,7 +3268,7 @@
       base_url_ + "long_press_links_and_images.html");
 
   web_view->SettingsImpl()->SetTouchDragDropEnabled(true);
-  const bool set_touch_drag_end_context_menu = GetParam();
+  const bool set_touch_drag_end_context_menu = std::get<0>(GetParam());
   web_view->SettingsImpl()->SetTouchDragEndContextMenu(
       set_touch_drag_end_context_menu);
   web_view->MainFrameViewWidget()->Resize(gfx::Size(500, 300));
@@ -3270,9 +3277,12 @@
 
   WebString anchor_tag_id = WebString::FromUTF8("anchorTag");
   WebString image_tag_id = WebString::FromUTF8("imageTag");
+  const WebPointerProperties::PointerType primary_pointer_type(
+      std::get<1>(GetParam()));
 
-  EXPECT_TRUE(SimulateGestureAtElementById(
-      WebInputEvent::Type::kGestureLongPress, anchor_tag_id));
+  EXPECT_TRUE(
+      SimulateGestureAtElementById(WebInputEvent::Type::kGestureLongPress,
+                                   anchor_tag_id, primary_pointer_type));
   if (set_touch_drag_end_context_menu) {
     EXPECT_EQ("dragstart@a,", web_view->MainFrameImpl()->GetDocument().Title());
     const Element* element = static_cast<Element*>(
@@ -3309,7 +3319,7 @@
   }
 }
 
-TEST_F(WebViewTest, ContextMenuAndDragOnImageLongPress) {
+TEST_P(WebViewTestWithPointerType, ContextMenuAndDragOnImageLongPress) {
   ScopedTouchDragOnShortPressForTest touch_drag_on_short_press(true);
   ScopedTouchDragAndDropForTest touch_drag_and_drop(true);
   RegisterMockedHttpURLLoad("long_press_links_and_images.html");
@@ -3327,18 +3337,21 @@
   RunPendingTasks();
 
   WebString image_tag_id = WebString::FromUTF8("imageTag");
+  const WebPointerProperties::PointerType primary_pointer_type(GetParam());
 
-  EXPECT_TRUE(SimulateGestureAtElementById(
-      WebInputEvent::Type::kGestureShortPress, image_tag_id));
+  EXPECT_TRUE(
+      SimulateGestureAtElementById(WebInputEvent::Type::kGestureShortPress,
+                                   image_tag_id, primary_pointer_type));
   EXPECT_EQ("dragstart@img,",
             web_view->MainFrameImpl()->GetDocument().Title().Ascii());
-  EXPECT_TRUE(SimulateGestureAtElementById(
-      WebInputEvent::Type::kGestureLongPress, image_tag_id));
+  EXPECT_TRUE(
+      SimulateGestureAtElementById(WebInputEvent::Type::kGestureLongPress,
+                                   image_tag_id, primary_pointer_type));
   EXPECT_EQ("dragstart@img,contextmenu@img,",
             web_view->MainFrameImpl()->GetDocument().Title().Ascii());
 }
 
-TEST_F(WebViewTest, ContextMenuAndDragOnLinkLongPress) {
+TEST_P(WebViewTestWithPointerType, ContextMenuAndDragOnLinkLongPress) {
   ScopedTouchDragAndDropForTest touch_drag_and_drop(true);
   ScopedTouchDragOnShortPressForTest touch_drag_on_short_press(true);
 
@@ -3357,13 +3370,16 @@
   RunPendingTasks();
 
   WebString anchor_tag_id = WebString::FromUTF8("anchorTag");
+  const WebPointerProperties::PointerType primary_pointer_type(GetParam());
 
-  EXPECT_TRUE(SimulateGestureAtElementById(
-      WebInputEvent::Type::kGestureShortPress, anchor_tag_id));
+  EXPECT_TRUE(
+      SimulateGestureAtElementById(WebInputEvent::Type::kGestureShortPress,
+                                   anchor_tag_id, primary_pointer_type));
   EXPECT_EQ("dragstart@a,",
             web_view->MainFrameImpl()->GetDocument().Title().Ascii());
-  EXPECT_TRUE(SimulateGestureAtElementById(
-      WebInputEvent::Type::kGestureLongPress, anchor_tag_id));
+  EXPECT_TRUE(
+      SimulateGestureAtElementById(WebInputEvent::Type::kGestureLongPress,
+                                   anchor_tag_id, primary_pointer_type));
   EXPECT_EQ("dragstart@a,contextmenu@a,",
             web_view->MainFrameImpl()->GetDocument().Title().Ascii());
 }
@@ -6259,14 +6275,14 @@
 }
 
 // Regression test for https://crbug.com/1112987
-TEST_P(WebViewTestTouchDragEndContextMenu,
+TEST_P(WebViewTestTouchDragEndContextMenuWithPointerType,
        LongPressThenLongTapLinkInIframeStartsContextMenu) {
   RegisterMockedHttpURLLoad("long_press_link_in_iframe.html");
 
   WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(
       base_url_ + "long_press_link_in_iframe.html");
   web_view->SettingsImpl()->SetTouchDragDropEnabled(true);
-  const bool set_touch_drag_end_context_menu = GetParam();
+  const bool set_touch_drag_end_context_menu = std::get<0>(GetParam());
   web_view->SettingsImpl()->SetTouchDragEndContextMenu(
       set_touch_drag_end_context_menu);
   web_view->MainFrameViewWidget()->Resize(gfx::Size(500, 300));
@@ -6283,12 +6299,15 @@
   const gfx::PointF center = GetElementCenterPointInFrame(
       anchor, To<WebLocalFrameImpl>(
                   web_view->MainFrame()->FirstChild()->ToWebLocalFrame()));
+  const WebPointerProperties::PointerType primary_pointer_type(
+      std::get<1>(GetParam()));
 
   WebGestureEvent longpress_event(WebInputEvent::Type::kGestureLongPress,
                                   WebInputEvent::kNoModifiers,
                                   WebInputEvent::GetStaticTimeStampForTests(),
                                   WebGestureDevice::kTouchscreen);
   longpress_event.SetPositionInWidget(center);
+  longpress_event.primary_pointer_type = primary_pointer_type;
   EXPECT_EQ(WebInputEventResult::kHandledSystem,
             web_view->MainFrameWidget()->HandleInputEvent(
                 WebCoalescedInputEvent(longpress_event, ui::LatencyInfo())));
@@ -6298,6 +6317,7 @@
                             WebInputEvent::GetStaticTimeStampForTests(),
                             WebGestureDevice::kTouchscreen);
   tap_event.SetPositionInWidget(center);
+  tap_event.primary_pointer_type = primary_pointer_type;
 
   // If touch-drag-and-context-menu is enabled, we expect an ongoing drag
   // operation at the moment a tap is dispatched.  This changes the outcome of
@@ -6904,8 +6924,17 @@
 }
 #endif  // BUILDFLAG(IS_WIN)
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         WebViewTestTouchDragEndContextMenu,
-                         ::testing::Bool());
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    WebViewTestTouchDragEndContextMenuWithPointerType,
+    testing::Combine(testing::Bool(),
+                     testing::Values(WebPointerProperties::PointerType::kTouch,
+                                     WebPointerProperties::PointerType::kPen)));
+
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    WebViewTestWithPointerType,
+    ::testing::Values(WebPointerProperties::PointerType::kTouch,
+                      WebPointerProperties::PointerType::kPen));
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/html/json_document.cc b/third_party/blink/renderer/core/html/json_document.cc
index b061ae1a..c5920614 100644
--- a/third_party/blink/renderer/core/html/json_document.cc
+++ b/third_party/blink/renderer/core/html/json_document.cc
@@ -34,17 +34,17 @@
 
   void Invoke(ExecutionContext*, Event* event) override {
     DCHECK_EQ(event->type(), event_type_names::kChange);
-    if (!parsed_json_value_ &&
-        opt_error_.type == JSONParseErrorType::kNoError) {
-      parsed_json_value_ = ParseJSON(pre_->textContent(), &opt_error_);
+    if (original_content_.IsNull()) {
+      original_content_ = pre_->textContent();
+      std::unique_ptr<JSONValue> parsed = ParseJSON(original_content_);
+      if (parsed) {
+        pretty_printed_ = parsed->ToPrettyJSONString();
+      }
     }
-    if (opt_error_.type != JSONParseErrorType::kNoError) {
-      return;
-    }
-    if (checkbox_->Checked()) {
-      pre_->setTextContent(parsed_json_value_->ToPrettyJSONString());
+    if (checkbox_->Checked() && !pretty_printed_.IsNull()) {
+      pre_->setTextContent(pretty_printed_);
     } else {
-      pre_->setTextContent(parsed_json_value_->ToJSONString());
+      pre_->setTextContent(original_content_);
     }
   }
 
@@ -57,8 +57,11 @@
  private:
   Member<HTMLInputElement> checkbox_;
   Member<HTMLPreElement> pre_;
-  JSONParseError opt_error_{.type = JSONParseErrorType::kNoError};
-  std::unique_ptr<JSONValue> parsed_json_value_;
+  // The original and pretty-printed JSON. If `original_content_` is null, we
+  // have not yet attempted to parse `pre_`. If it is non-null, but
+  // `pretty_printed_` is null, the JSON could not be parsed.
+  String original_content_;
+  String pretty_printed_;
 };
 
 class JSONDocumentParser : public HTMLDocumentParser {
diff --git a/third_party/blink/renderer/core/html/json_document_test.cc b/third_party/blink/renderer/core/html/json_document_test.cc
index 2ff8fd5..a94e8dc 100644
--- a/third_party/blink/renderer/core/html/json_document_test.cc
+++ b/third_party/blink/renderer/core/html/json_document_test.cc
@@ -32,31 +32,41 @@
 };
 
 TEST_F(JSONDocumentTest, JSONDoc) {
-  LoadResource(
+  static const char kJSON[] =
       "{\"menu\":{\"id\":\"file\",\"value\":\"File\",\"popup\":{\"menuitem\":[{"
       "\"value\":\"New\",\"click\":\"CreateNewDoc\"}]},\"itemCount\":3,"
-      "\"isShown\":true}}");
-  EXPECT_EQ(
-      GetDocument()
-          .documentElement()
-          ->QuerySelector(html_names::kBodyTag.LocalName())
-          ->firstChild()
-          ->textContent(),
-      "{\"menu\":{\"id\":\"file\",\"value\":\"File\",\"popup\":{\"menuitem\":[{"
-      "\"value\":\"New\",\"click\":\"CreateNewDoc\"}]},\"itemCount\":3,"
-      "\"isShown\":true}}");
-  ClickPrettyPrintCheckbox();
-
-  EXPECT_EQ(
-      GetDocument()
-          .documentElement()
-          ->QuerySelector(html_names::kBodyTag.LocalName())
-          ->firstChild()
-          ->textContent(),
+      "\"isShown\":      true}}";
+  static const char kFormatted[] =
       "{\n  \"menu\": {\n    \"id\": \"file\",\n    \"value\": \"File\",\n    "
       "\"popup\": {\n      \"menuitem\": [\n        {\n          \"value\": "
       "\"New\",\n          \"click\": \"CreateNewDoc\"\n        }\n      ]\n   "
-      " },\n    \"itemCount\": 3,\n    \"isShown\": true\n  }\n}\n");
+      " },\n    \"itemCount\": 3,\n    \"isShown\": true\n  }\n}\n";
+
+  LoadResource(kJSON);
+  EXPECT_EQ(GetDocument()
+                .documentElement()
+                ->QuerySelector(html_names::kBodyTag.LocalName())
+                ->firstChild()
+                ->textContent(),
+            kJSON);
+
+  // Format the resource.
+  ClickPrettyPrintCheckbox();
+  EXPECT_EQ(GetDocument()
+                .documentElement()
+                ->QuerySelector(html_names::kBodyTag.LocalName())
+                ->firstChild()
+                ->textContent(),
+            kFormatted);
+
+  // Uncheck the checkbox, which should restore the original formatting.
+  ClickPrettyPrintCheckbox();
+  EXPECT_EQ(GetDocument()
+                .documentElement()
+                ->QuerySelector(html_names::kBodyTag.LocalName())
+                ->firstChild()
+                ->textContent(),
+            kJSON);
 }
 
 TEST_F(JSONDocumentTest, InvalidJSON) {
diff --git a/third_party/blink/renderer/core/html/media/html_media_element.cc b/third_party/blink/renderer/core/html/media/html_media_element.cc
index 85caa03d..d56d1e2 100644
--- a/third_party/blink/renderer/core/html/media/html_media_element.cc
+++ b/third_party/blink/renderer/core/html/media/html_media_element.cc
@@ -4417,21 +4417,19 @@
   if (!isConnected())
     return;
 
+  // TODO(crbug.com/448699375): Try to re-enable lazy initialization of media
+  // controls such that we only call EnsureMediaControls() when
+  // ShouldShowControls() or if the cast overlay button will be shown. Currently
+  // this information is only known in /modules/ that we can't access from
+  // /core/.
+  EnsureMediaControls();
+
+  // TODO(crbug.com/448699375): See if this can be removed in 2025. This doesn't
+  // sound needed but the following tests, on Android fails when removed:
+  // fullscreen/compositor-touch-hit-rects-fullscreen-video-controls.html
+  GetMediaControls()->Reset();
+
   bool native_controls = ShouldShowControls();
-
-  // When LazyInitializeMediaControls is enabled, initialize the controls only
-  // if native controls should be used or if using the cast overlay.
-  if (!RuntimeEnabledFeatures::LazyInitializeMediaControlsEnabled() ||
-      RuntimeEnabledFeatures::MediaCastOverlayButtonEnabled() ||
-      native_controls) {
-    EnsureMediaControls();
-
-    // TODO(mlamouri): this doesn't sound needed but the following tests, on
-    // Android fails when removed:
-    // fullscreen/compositor-touch-hit-rects-fullscreen-video-controls.html
-    GetMediaControls()->Reset();
-  }
-
   if (native_controls)
     GetMediaControls()->MaybeShow();
   else if (GetMediaControls())
diff --git a/third_party/blink/renderer/core/paint/svg_root_painter.cc b/third_party/blink/renderer/core/paint/svg_root_painter.cc
index 1c57005a..702b314 100644
--- a/third_party/blink/renderer/core/paint/svg_root_painter.cc
+++ b/third_party/blink/renderer/core/paint/svg_root_painter.cc
@@ -13,20 +13,6 @@
 
 namespace blink {
 
-namespace {
-
-bool ShouldApplySnappingScaleAdjustment(const LayoutSVGRoot& layout_svg_root) {
-  // If the RuntimeEnabledFeatures flag isn't set then apply scale adjustment.
-  if (!RuntimeEnabledFeatures::SvgNoPixelSnappingScaleAdjustmentEnabled()) {
-    return true;
-  }
-  // Apply scale adjustment if the SVG root is the document root - i.e it is
-  // not an inline SVG.
-  return layout_svg_root.IsDocumentElement();
-}
-
-}  // namespace
-
 gfx::Rect SVGRootPainter::PixelSnappedSize(
     const PhysicalOffset& paint_offset) const {
   return ToPixelSnappedRect(
@@ -40,7 +26,9 @@
       AffineTransform::Translation(snapped_size.x(), snapped_size.y());
   const PhysicalSize size = layout_svg_root_.StitchedSize();
   if (!size.IsEmpty()) {
-    if (ShouldApplySnappingScaleAdjustment(layout_svg_root_)) {
+    // Apply scale adjustment if the SVG root is the document root - i.e it is
+    // not an inline SVG.
+    if (layout_svg_root_.IsDocumentElement()) {
       paint_offset_to_border_box.Scale(
           snapped_size.width() / size.width.ToFloat(),
           snapped_size.height() / size.height.ToFloat());
diff --git a/third_party/blink/renderer/core/svg/svg_element.cc b/third_party/blink/renderer/core/svg/svg_element.cc
index 3cff1909..c3098c2 100644
--- a/third_party/blink/renderer/core/svg/svg_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_element.cc
@@ -795,9 +795,6 @@
 
 MutableCSSPropertyValueSet*
 SVGElement::GetPresentationAttributeStyleForDirectUpdate() {
-  if (!RuntimeEnabledFeatures::SvgEagerPresAttrStyleUpdateEnabled()) {
-    return nullptr;
-  }
   // If the element is not attached to the layout tree, then just mark dirty.
   if (!GetLayoutObject()) {
     return nullptr;
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
index 9119c4d..34a911a 100644
--- a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
+++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
@@ -60,7 +60,9 @@
         coep_reporting_observer,
     mojo::PendingReceiver<mojom::blink::ReportingObserver>
         dip_reporting_observer,
-    std::optional<NoiseToken> canvas_noise_token)
+    std::optional<NoiseToken> canvas_noise_token,
+    mojo::PendingReceiver<mojom::blink::CanvasNoiseTokenUpdater>
+        canvas_noise_token_observer)
     : script_url(script_url),
       script_type(script_type),
       global_scope_name(global_scope_name),
@@ -117,7 +119,8 @@
           require_cross_site_request_for_cookies),
       coep_reporting_observer(std::move(coep_reporting_observer)),
       dip_reporting_observer(std::move(dip_reporting_observer)),
-      canvas_noise_token(std::move(canvas_noise_token)) {
+      canvas_noise_token(std::move(canvas_noise_token)),
+      canvas_noise_token_observer(std::move(canvas_noise_token_observer)) {
   this->inherited_trial_features =
       std::make_unique<Vector<mojom::blink::OriginTrialFeature>>();
   if (inherited_trial_features) {
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.h b/third_party/blink/renderer/core/workers/global_scope_creation_params.h
index 9ab96a2..71c3201f 100644
--- a/third_party/blink/renderer/core/workers/global_scope_creation_params.h
+++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.h
@@ -19,6 +19,7 @@
 #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
 #include "third_party/blink/public/mojom/blob/blob_url_store.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/browser_interface_broker.mojom-blink-forward.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/loader/code_cache.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h"
@@ -95,7 +96,9 @@
           coep_reporting_observer = mojo::NullReceiver(),
       mojo::PendingReceiver<mojom::blink::ReportingObserver>
           dip_reporting_observer = mojo::NullReceiver(),
-      std::optional<NoiseToken> canvas_noise_token = std::nullopt);
+      std::optional<NoiseToken> canvas_noise_token = std::nullopt,
+      mojo::PendingReceiver<mojom::blink::CanvasNoiseTokenUpdater>
+          canvas_noise_token_observer = mojo::NullReceiver());
   GlobalScopeCreationParams(const GlobalScopeCreationParams&) = delete;
   GlobalScopeCreationParams& operator=(const GlobalScopeCreationParams&) =
       delete;
@@ -269,6 +272,9 @@
   // seed for NoiseHash calculations. This should not be piped to Worklet scopes
   // as canvas readbacks cannot be performed in Worklet threads.
   std::optional<NoiseToken> canvas_noise_token;
+
+  mojo::PendingReceiver<mojom::blink::CanvasNoiseTokenUpdater>
+      canvas_noise_token_observer;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.cc b/third_party/blink/renderer/core/workers/worker_global_scope.cc
index 507b290..4609a04 100644
--- a/third_party/blink/renderer/core/workers/worker_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.cc
@@ -735,6 +735,11 @@
         std::move(creation_params->dip_reporting_observer));
   }
 
+  if (creation_params->canvas_noise_token_observer) {
+    CanvasInterventionsHelper::From(this)->Bind(
+        std::move(creation_params->canvas_noise_token_observer));
+  }
+
   // A PermissionsPolicy is created by
   // PermissionsPolicy::CreateFromParentPolicy, even if the parent policy is
   // null.
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
index e1cc16f6..1364c1d 100644
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
@@ -32,12 +32,14 @@
 
 #include <memory>
 #include <utility>
+
 #include "base/task/single_thread_task_runner.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/mojom/referrer_policy.mojom-blink.h"
 #include "third_party/blink/public/mojom/browser_interface_broker.mojom-blink.h"
 #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom-blink.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom-blink.h"
 #include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-blink.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom-blink.h"
 #include "third_party/blink/public/platform/modules/service_worker/web_service_worker_network_provider.h"
@@ -120,7 +122,9 @@
     CrossVariantMojoReceiver<mojom::blink::ReportingObserverInterfaceBase>
         coep_reporting_observer,
     CrossVariantMojoReceiver<mojom::blink::ReportingObserverInterfaceBase>
-        dip_reporting_observer) {
+        dip_reporting_observer,
+    CrossVariantMojoReceiver<mojom::blink::CanvasNoiseTokenUpdaterInterfaceBase>
+        canvas_noise_token_observer) {
   DCHECK(!asked_to_terminate_);
 
   std::unique_ptr<ServiceWorkerInstalledScriptsManager>
@@ -138,7 +142,8 @@
           std::move(content_settings)),
       std::move(cache_storage), std::move(browser_interface_broker),
       interface_registry, std::move(initiator_thread_task_runner),
-      std::move(coep_reporting_observer), std::move(dip_reporting_observer));
+      std::move(coep_reporting_observer), std::move(dip_reporting_observer),
+      std::move(canvas_noise_token_observer));
 }
 
 void WebEmbeddedWorkerImpl::TerminateWorkerContext() {
@@ -163,7 +168,9 @@
     mojo::PendingReceiver<mojom::blink::ReportingObserver>
         coep_reporting_observer,
     mojo::PendingReceiver<mojom::blink::ReportingObserver>
-        dip_reporting_observer) {
+        dip_reporting_observer,
+    mojo::PendingReceiver<mojom::blink::CanvasNoiseTokenUpdater>
+        canvas_noise_token_observer) {
   DCHECK(!asked_to_terminate_);
 
   // For now we don't use global scope name for service workers.
@@ -232,7 +239,8 @@
       net::StorageAccessApiStatus::kNone,
       false /* require_cross_site_request_for_cookies */,
       nullptr /* origin_to_use */, std::move(coep_reporting_observer),
-      std::move(dip_reporting_observer), worker_start_data->canvas_noise_token);
+      std::move(dip_reporting_observer), worker_start_data->canvas_noise_token,
+      std::move(canvas_noise_token_observer));
 
   worker_thread_ = std::make_unique<ServiceWorkerThread>(
       std::make_unique<ServiceWorkerGlobalScopeProxy>(
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
index 512bb7c..6c0f3e71 100644
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
@@ -37,6 +37,7 @@
 #include "base/task/single_thread_task_runner.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom-blink-forward.h"
+#include "third_party/blink/public/mojom/fingerprinting_protection/canvas_interventions.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink-forward.h"
 #include "third_party/blink/public/web/web_embedded_worker.h"
 #include "third_party/blink/public/web/web_embedded_worker_start_data.h"
@@ -83,7 +84,10 @@
       CrossVariantMojoReceiver<mojom::blink::ReportingObserverInterfaceBase>
           coep_reporting_observer,
       CrossVariantMojoReceiver<mojom::blink::ReportingObserverInterfaceBase>
-          dip_reporting_observer) override;
+          dip_reporting_observer,
+      CrossVariantMojoReceiver<
+          mojom::blink::CanvasNoiseTokenUpdaterInterfaceBase>
+          canvas_noise_token_observer) override;
   void TerminateWorkerContext() override;
 
   void WaitForShutdownForTesting();
@@ -100,7 +104,9 @@
       mojo::PendingReceiver<mojom::blink::ReportingObserver>
           coep_reporting_observer,
       mojo::PendingReceiver<mojom::blink::ReportingObserver>
-          dip_reporting_observer);
+          dip_reporting_observer,
+      mojo::PendingReceiver<mojom::blink::CanvasNoiseTokenUpdater>
+          canvas_noise_token_observer);
 
   // Creates a cross-thread copyable outside settings object for top-level
   // worker script fetch.
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
index 5931169b..5854ecc 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
@@ -226,7 +226,6 @@
 
 bool ShouldShowCastOverlayButton(HTMLMediaElement& media_element) {
   return !media_element.ShouldShowControls() &&
-         RuntimeEnabledFeatures::MediaCastOverlayButtonEnabled() &&
          ShouldShowCastButton(media_element);
 }
 
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc
index 5141485..cfcf145 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc
@@ -157,17 +157,13 @@
 
 class MediaControlsImplTest
     : public PageTestBase,
-      private ScopedMediaCastOverlayButtonForTest,
       private ScopedMediaControlsOverlayPlayButtonForTest {
  public:
   explicit MediaControlsImplTest(
       base::test::TaskEnvironment::TimeSource time_source)
       : PageTestBase(time_source),
-        ScopedMediaCastOverlayButtonForTest(true),
         ScopedMediaControlsOverlayPlayButtonForTest(true) {}
-  MediaControlsImplTest()
-      : ScopedMediaCastOverlayButtonForTest(true),
-        ScopedMediaControlsOverlayPlayButtonForTest(true) {}
+  MediaControlsImplTest() : ScopedMediaControlsOverlayPlayButtonForTest(true) {}
 
  protected:
   void SetUp() override {
@@ -527,20 +523,6 @@
   ASSERT_TRUE(IsElementVisible(*cast_overlay_button));
 }
 
-TEST_F(MediaControlsImplTest, CastOverlayDisabled) {
-  MediaControls().MediaElement().SetBooleanAttribute(html_names::kControlsAttr,
-                                                     false);
-
-  ScopedMediaCastOverlayButtonForTest media_cast_overlay_button(false);
-
-  Element* cast_overlay_button = GetElementByShadowPseudoId(
-      MediaControls(), "-internal-media-controls-overlay-cast-button");
-  ASSERT_NE(nullptr, cast_overlay_button);
-
-  SimulateRemotePlaybackAvailable();
-  ASSERT_FALSE(IsElementVisible(*cast_overlay_button));
-}
-
 TEST_F(MediaControlsImplTest, CastOverlayDisableRemotePlaybackAttr) {
   MediaControls().MediaElement().SetBooleanAttribute(html_names::kControlsAttr,
                                                      false);
@@ -583,27 +565,6 @@
   EXPECT_TRUE(IsElementVisible(*cast_overlay_button));
 }
 
-TEST_F(MediaControlsImplTest, CastOverlayDisabledMediaControlsDisabled) {
-  MediaControls().MediaElement().SetBooleanAttribute(html_names::kControlsAttr,
-                                                     false);
-
-  ScopedMediaCastOverlayButtonForTest media_cast_overlay_button(false);
-
-  Element* cast_overlay_button = GetElementByShadowPseudoId(
-      MediaControls(), "-internal-media-controls-overlay-cast-button");
-  ASSERT_NE(nullptr, cast_overlay_button);
-
-  EXPECT_FALSE(IsElementVisible(*cast_overlay_button));
-  SimulateRemotePlaybackAvailable();
-  EXPECT_FALSE(IsElementVisible(*cast_overlay_button));
-
-  GetDocument().GetSettings()->SetMediaControlsEnabled(false);
-  EXPECT_FALSE(IsElementVisible(*cast_overlay_button));
-
-  GetDocument().GetSettings()->SetMediaControlsEnabled(true);
-  EXPECT_FALSE(IsElementVisible(*cast_overlay_button));
-}
-
 TEST_F(MediaControlsImplTest, CastOverlayDisabledAutoplayMuted) {
   MediaControls().MediaElement().SetBooleanAttribute(html_names::kControlsAttr,
                                                      false);
diff --git a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
index f5b6459..7e8bcd0 100644
--- a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
@@ -641,7 +641,8 @@
       InterfaceRegistry::GetEmptyInterfaceRegistry(),
       scheduler::GetSingleThreadTaskRunnerForTesting(),
       /*coep_reporting_observer=*/mojo::NullReceiver(),
-      /*dip_reporting_observer=*/mojo::NullReceiver());
+      /*dip_reporting_observer=*/mojo::NullReceiver(),
+      /*canvas_noise_token_observer=*/mojo::NullReceiver());
   testing::Mock::VerifyAndClearExpectations(mock_client_.get());
 
   // Terminate the worker immediately after start.
@@ -663,7 +664,8 @@
       InterfaceRegistry::GetEmptyInterfaceRegistry(),
       scheduler::GetSingleThreadTaskRunnerForTesting(),
       /*coep_reporting_observer=*/mojo::NullReceiver(),
-      /*dip_reporting_observer=*/mojo::NullReceiver());
+      /*dip_reporting_observer=*/mojo::NullReceiver(),
+      /*canvas_noise_token_observer=*/mojo::NullReceiver());
   testing::Mock::VerifyAndClearExpectations(mock_client_.get());
 
   // Terminate the worker while waiting for the debugger.
@@ -688,7 +690,8 @@
       InterfaceRegistry::GetEmptyInterfaceRegistry(),
       scheduler::GetSingleThreadTaskRunnerForTesting(),
       /*coep_reporting_observer=*/mojo::NullReceiver(),
-      /*dip_reporting_observer=*/mojo::NullReceiver());
+      /*dip_reporting_observer=*/mojo::NullReceiver(),
+      /*canvas_noise_token_observer=*/mojo::NullReceiver());
   testing::Mock::VerifyAndClearExpectations(mock_client_.get());
 
   mock_client_->WaitUntilFailedToLoadClassicScript();
@@ -712,7 +715,8 @@
       InterfaceRegistry::GetEmptyInterfaceRegistry(),
       scheduler::GetSingleThreadTaskRunnerForTesting(),
       /*coep_reporting_observer=*/mojo::NullReceiver(),
-      /*dip_reporting_observer=*/mojo::NullReceiver());
+      /*dip_reporting_observer=*/mojo::NullReceiver(),
+      /*canvas_noise_token_observer=*/mojo::NullReceiver());
   mock_client_->WaitUntilScriptEvaluated();
 
   // We need to fulfill mojo pipe to let BytesUploader await it and
diff --git a/third_party/blink/renderer/modules/xr/xr_gpu_binding.cc b/third_party/blink/renderer/modules/xr/xr_gpu_binding.cc
index ef1e615..dbbe586 100644
--- a/third_party/blink/renderer/modules/xr/xr_gpu_binding.cc
+++ b/third_party/blink/renderer/modules/xr/xr_gpu_binding.cc
@@ -81,7 +81,9 @@
 }
 
 XRGPUBinding::XRGPUBinding(XRSession* session, GPUDevice* device)
-    : XRGraphicsBinding(session), device_(device) {}
+    : XRGraphicsBinding(session), device_(device) {
+  transport_delegate_ = MakeGarbageCollected<XrGpuFrameTransportDelegate>(this);
+}
 
 XRProjectionLayer* XRGPUBinding::createProjectionLayer(
     const XRGPUProjectionLayerInit* init,
@@ -225,6 +227,18 @@
   return FromDawnEnum(GPU::GetPreferredCanvasFormat());
 }
 
+XrGpuFrameTransportDelegate* XRGPUBinding::GetTransportDelegate() {
+  return transport_delegate_;
+}
+
+scoped_refptr<DawnControlClientHolder> XRGPUBinding::GetDawnControlClient()
+    const {
+  if (!device_) {
+    return nullptr;
+  }
+  return device_->GetDawnControlClient();
+}
+
 bool XRGPUBinding::CanCreateLayer(ExceptionState& exception_state) {
   if (session()->ended()) {
     exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
@@ -280,6 +294,7 @@
 
 void XRGPUBinding::Trace(Visitor* visitor) const {
   visitor->Trace(device_);
+  visitor->Trace(transport_delegate_);
   XRGraphicsBinding::Trace(visitor);
   ScriptWrappable::Trace(visitor);
 }
diff --git a/third_party/blink/renderer/modules/xr/xr_gpu_binding.h b/third_party/blink/renderer/modules/xr/xr_gpu_binding.h
index 8104244..9103e5c 100644
--- a/third_party/blink/renderer/modules/xr/xr_gpu_binding.h
+++ b/third_party/blink/renderer/modules/xr/xr_gpu_binding.h
@@ -8,6 +8,7 @@
 #include "device/vr/public/mojom/vr_service.mojom-blink.h"
 #include "third_party/blink/renderer/modules/xr/xr_graphics_binding.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
+#include "third_party/blink/renderer/platform/graphics/gpu/xr_gpu_frame_transport_delegate.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
@@ -30,7 +31,9 @@
 class XRGPUProjectionLayerInit;
 class XRGPUSubImage;
 
-class XRGPUBinding final : public ScriptWrappable, public XRGraphicsBinding {
+class XRGPUBinding final : public ScriptWrappable,
+                           public XRGraphicsBinding,
+                           public XRGpuFrameTransportContext {
   DEFINE_WRAPPERTYPEINFO();
 
  public:
@@ -55,6 +58,9 @@
   gfx::Rect GetViewportForView(XRProjectionLayer* layer,
                                XRViewData* view) override;
 
+  scoped_refptr<DawnControlClientHolder> GetDawnControlClient() const override;
+  XrGpuFrameTransportDelegate* GetTransportDelegate();
+
   void Trace(Visitor*) const override;
 
  private:
@@ -63,6 +69,7 @@
                        ExceptionState& exception_state);
 
   Member<GPUDevice> device_;
+  Member<XrGpuFrameTransportDelegate> transport_delegate_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.cc b/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.cc
index c4821c55..091244b3 100644
--- a/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.cc
+++ b/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.cc
@@ -17,9 +17,10 @@
     XRGPUSwapChain* depth_stencil_swap_chain)
     : device_(binding->device()),
       color_swap_chain_(color_swap_chain),
-      depth_stencil_swap_chain_(depth_stencil_swap_chain) {
+      depth_stencil_swap_chain_(depth_stencil_swap_chain),
+      binding_(binding) {
   CHECK(color_swap_chain_);
-  transport_delegate_ = MakeGarbageCollected<XrGpuFrameTransportDelegate>(this);
+  CHECK(binding_);
 }
 
 uint16_t XRGPUDrawingContext::TextureWidth() const {
@@ -71,24 +72,15 @@
 }
 
 XRFrameTransportDelegate* XRGPUDrawingContext::GetTransportDelegate() {
-  return transport_delegate_;
-}
-
-scoped_refptr<DawnControlClientHolder>
-XRGPUDrawingContext::GetDawnControlClient() const {
-  if (!device_) {
-    return nullptr;
-  }
-  return device_->GetDawnControlClient();
+  return binding_->GetTransportDelegate();
 }
 
 void XRGPUDrawingContext::Trace(Visitor* visitor) const {
   visitor->Trace(device_);
   visitor->Trace(color_swap_chain_);
   visitor->Trace(depth_stencil_swap_chain_);
-  visitor->Trace(transport_delegate_);
+  visitor->Trace(binding_);
   XRLayerDrawingContext::Trace(visitor);
-  XRGpuFrameTransportContext::Trace(visitor);
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.h b/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.h
index 6419fb1..021ecba 100644
--- a/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.h
+++ b/third_party/blink/renderer/modules/xr/xr_gpu_drawing_context.h
@@ -6,7 +6,6 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_GPU_DRAWING_CONTEXT_H_
 
 #include "third_party/blink/renderer/modules/xr/xr_layer_drawing_context.h"
-#include "third_party/blink/renderer/platform/graphics/gpu/xr_gpu_frame_transport_delegate.h"
 
 namespace blink {
 
@@ -16,8 +15,7 @@
 class XRGPUSwapChain;
 class XRSession;
 
-class XRGPUDrawingContext final : public XRLayerDrawingContext,
-                                  public XRGpuFrameTransportContext {
+class XRGPUDrawingContext final : public XRLayerDrawingContext {
  public:
   XRGPUDrawingContext(XRGPUBinding*,
                       XRGPUSwapChain* color_swap_chain,
@@ -40,9 +38,6 @@
   scoped_refptr<StaticBitmapImage> TransferToStaticBitmapImage() override;
   XRFrameTransportDelegate* GetTransportDelegate() override;
 
-  // XRGpuFrameTransportContext overrides.
-  scoped_refptr<DawnControlClientHolder> GetDawnControlClient() const override;
-
   GPUDevice* device() { return device_; }
 
   XRGPUSwapChain* color_swap_chain() { return color_swap_chain_.Get(); }
@@ -56,7 +51,7 @@
   Member<GPUDevice> device_;
   Member<XRGPUSwapChain> color_swap_chain_;
   Member<XRGPUSwapChain> depth_stencil_swap_chain_;
-  Member<XrGpuFrameTransportDelegate> transport_delegate_;
+  Member<XRGPUBinding> binding_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_binding.cc b/third_party/blink/renderer/modules/xr/xr_webgl_binding.cc
index 9e70e3d..f1f829f 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_binding.cc
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_binding.cc
@@ -30,6 +30,7 @@
 #include "third_party/blink/renderer/modules/xr/xr_viewer_pose.h"
 #include "third_party/blink/renderer/modules/xr/xr_webgl_drawing_buffer_swap_chain.h"
 #include "third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.h"
+#include "third_party/blink/renderer/modules/xr/xr_webgl_frame_transport_context_impl.h"
 #include "third_party/blink/renderer/modules/xr/xr_webgl_layer.h"
 #include "third_party/blink/renderer/modules/xr/xr_webgl_sub_image.h"
 #include "third_party/blink/renderer/modules/xr/xr_webgl_swap_chain.h"
@@ -99,7 +100,10 @@
                                bool webgl2)
     : XRGraphicsBinding(session),
       webgl_context_(webgl_context),
-      webgl2_(webgl2) {}
+      webgl2_(webgl2),
+      transport_delegate_(MakeGarbageCollected<XRWebGLFrameTransportDelegate>(
+          MakeGarbageCollected<XRWebGLFrameTransportContextImpl>(
+              webgl_context_))) {}
 
 bool XRWebGLBinding::usesDepthValues() const {
   return false;
@@ -215,7 +219,7 @@
   }
 
   auto* drawing_context = MakeGarbageCollected<XRWebGLDrawingContext>(
-      webgl_context_, color_swap_chain, depth_stencil_swap_chain);
+      this, color_swap_chain, depth_stencil_swap_chain);
 
   return MakeGarbageCollected<XRProjectionLayer>(this, drawing_context);
 }
@@ -554,6 +558,10 @@
                    layer->textureHeight() * view->CurrentViewportScale());
 }
 
+XRFrameTransportDelegate* XRWebGLBinding::GetTransportDelegate() {
+  return transport_delegate_;
+}
+
 bool XRWebGLBinding::ValidateSessionAndContext(
     ExceptionState& exception_state) {
   if (session()->ended()) {
@@ -805,6 +813,7 @@
 
 void XRWebGLBinding::Trace(Visitor* visitor) const {
   visitor->Trace(webgl_context_);
+  visitor->Trace(transport_delegate_);
   XRGraphicsBinding::Trace(visitor);
   ScriptWrappable::Trace(visitor);
 }
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_binding.h b/third_party/blink/renderer/modules/xr/xr_webgl_binding.h
index 330755d..d10e21f 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_binding.h
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_binding.h
@@ -9,6 +9,8 @@
 #include "third_party/blink/renderer/modules/webgl/webgl_rendering_context.h"
 #include "third_party/blink/renderer/modules/xr/xr_graphics_binding.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
+#include "third_party/blink/renderer/platform/graphics/gpu/xr_webgl_frame_transport_delegate.h"
+#include "third_party/blink/renderer/platform/heap/member.h"
 
 namespace blink {
 
@@ -83,6 +85,8 @@
 
   WebGLRenderingContextBase* context() const { return webgl_context_.Get(); }
 
+  XRFrameTransportDelegate* GetTransportDelegate();
+
   void Trace(Visitor*) const override;
 
  private:
@@ -103,8 +107,9 @@
   XRWebGLSwapChain* GetSwapchainForLayer(XRCompositionLayer* layer);
 
   Member<WebGLRenderingContextBase> webgl_context_;
-
   bool webgl2_;
+
+  Member<XRWebGLFrameTransportDelegate> transport_delegate_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.cc b/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.cc
index df01295..3ad244b 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.cc
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.cc
@@ -13,15 +13,15 @@
 namespace blink {
 
 XRWebGLDrawingContext::XRWebGLDrawingContext(
-    WebGLRenderingContextBase* webgl_context,
+    XRWebGLBinding* binding,
     XRWebGLSwapChain* color_swap_chain,
     XRWebGLSwapChain* depth_stencil_swap_chain)
-    : webgl_context_(webgl_context),
+    : webgl_context_(binding->context()),
       color_swap_chain_(color_swap_chain),
-      depth_stencil_swap_chain_(depth_stencil_swap_chain) {
+      depth_stencil_swap_chain_(depth_stencil_swap_chain),
+      binding_(binding) {
   CHECK(color_swap_chain_);
-  transport_delegate_ = MakeGarbageCollected<XRWebGLFrameTransportDelegate>(
-      MakeGarbageCollected<XRWebGLFrameTransportContextImpl>(webgl_context));
+  CHECK(binding_);
 }
 
 void XRWebGLDrawingContext::SetCompositionLayer(XRCompositionLayer* layer) {
@@ -71,14 +71,14 @@
 }
 
 XRFrameTransportDelegate* XRWebGLDrawingContext::GetTransportDelegate() {
-  return transport_delegate_;
+  return binding_->GetTransportDelegate();
 }
 
 void XRWebGLDrawingContext::Trace(Visitor* visitor) const {
   visitor->Trace(webgl_context_);
   visitor->Trace(color_swap_chain_);
   visitor->Trace(depth_stencil_swap_chain_);
-  visitor->Trace(transport_delegate_);
+  visitor->Trace(binding_);
   XRLayerDrawingContext::Trace(visitor);
 }
 
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.h b/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.h
index 88db18c..e84aca3 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.h
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_drawing_context.h
@@ -12,11 +12,11 @@
 class WebGLRenderingContextBase;
 class XRWebGLSwapChain;
 class XRCompositionLayer;
-class XRWebGLFrameTransportDelegate;
+class XRWebGLBinding;
 
 class XRWebGLDrawingContext final : public XRLayerDrawingContext {
  public:
-  XRWebGLDrawingContext(WebGLRenderingContextBase*,
+  XRWebGLDrawingContext(XRWebGLBinding*,
                         XRWebGLSwapChain* color_swap_chain,
                         XRWebGLSwapChain* depth_stencil_swap_chain);
   ~XRWebGLDrawingContext() override = default;
@@ -47,7 +47,7 @@
   Member<WebGLRenderingContextBase> webgl_context_;
   Member<XRWebGLSwapChain> color_swap_chain_;
   Member<XRWebGLSwapChain> depth_stencil_swap_chain_;
-  Member<XRWebGLFrameTransportDelegate> transport_delegate_;
+  Member<XRWebGLBinding> binding_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/fonts/font.cc b/third_party/blink/renderer/platform/fonts/font.cc
index 66dfdb8e..99e0db40 100644
--- a/third_party/blink/renderer/platform/fonts/font.cc
+++ b/third_party/blink/renderer/platform/fonts/font.cc
@@ -263,7 +263,12 @@
 GlyphData Font::GetEmphasisMarkGlyphData(const AtomicString& mark) const {
   if (mark.empty())
     return GlyphData();
-  return CachingWordShaper(*this).EmphasisMarkGlyphData(TextRun(mark));
+  if (!RuntimeEnabledFeatures::EmphasisMarkShapeCacheEnabled()) {
+    return CachingWordShaper(*this).EmphasisMarkGlyphData(TextRun(mark));
+  }
+  return EnsureFontFallbackList()
+      ->GetOrCreateEmphasisMarkShape(*this, mark)
+      .EmphasisMarkGlyphData(font_description_);
 }
 
 int Font::EmphasisMarkAscent(const AtomicString& mark) const {
diff --git a/third_party/blink/renderer/platform/fonts/font_fallback_list.cc b/third_party/blink/renderer/platform/fonts/font_fallback_list.cc
index 5bba873..2fccbd5f 100644
--- a/third_party/blink/renderer/platform/fonts/font_fallback_list.cc
+++ b/third_party/blink/renderer/platform/fonts/font_fallback_list.cc
@@ -38,6 +38,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_family.h"
 #include "third_party/blink/renderer/platform/fonts/font_performance.h"
 #include "third_party/blink/renderer/platform/fonts/segmented_font_data.h"
+#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_uchar.h"
@@ -56,6 +57,7 @@
   visitor->Trace(cached_primary_simple_font_data_for_tab_size_);
   visitor->Trace(font_selector_);
   visitor->Trace(shape_cache_);
+  visitor->Trace(emphasis_mark_shape_);
 }
 
 bool FontFallbackList::ShouldSkipDrawing() const {
@@ -284,4 +286,20 @@
   return can_shape_word_by_word_;
 }
 
+const ShapeResult& FontFallbackList::GetOrCreateEmphasisMarkShape(
+    const Font& font,
+    const AtomicString& mark) {
+  const ShapeResult* cached_result = emphasis_mark_shape_.Get();
+  if (mark == emphasis_mark_text_ && cached_result) {
+    return *cached_result;
+  }
+  String mark16 = mark;
+  // HarfBuzzShaper requires a 16-bit string for a vertical text.
+  mark16.Ensure16Bit();
+  cached_result = HarfBuzzShaper(mark16).Shape(&font, TextDirection::kLtr);
+  emphasis_mark_text_ = mark;
+  emphasis_mark_shape_ = cached_result;
+  return *cached_result;
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/fonts/font_fallback_list.h b/third_party/blink/renderer/platform/fonts/font_fallback_list.h
index e50dc218..70ed7d4 100644
--- a/third_party/blink/renderer/platform/fonts/font_fallback_list.h
+++ b/third_party/blink/renderer/platform/fonts/font_fallback_list.h
@@ -80,6 +80,8 @@
     }
     return shape_cache_.Get();
   }
+  const ShapeResult& GetOrCreateEmphasisMarkShape(const Font&,
+                                                  const AtomicString& mark);
 
   const SimpleFontData* PrimarySimpleFontDataWithSpace(
       const FontDescription& font_description) {
@@ -178,6 +180,12 @@
   bool has_non_initial_font_features_ : 1 = false;
 
   Member<ShapeCache> shape_cache_;
+  // `emphasis_mark_shape_` and `emphasis_mark_text_` makes a simple cache of a
+  // ShapeResult for an emphasis mark.
+  // It doesn't use NGShapeCache, which stores only ShapeResults for the
+  // primary font.
+  Member<const ShapeResult> emphasis_mark_shape_;
+  AtomicString emphasis_mark_text_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
index b313bec..ca8863e 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
@@ -950,6 +950,20 @@
   return advance_so_far;
 }
 
+GlyphData ShapeResult::EmphasisMarkGlyphData(
+    const FontDescription& font_description) const {
+  for (const auto& run : runs_) {
+    DCHECK(run->font_data_);
+    if (run->glyph_data_.IsEmpty()) {
+      continue;
+    }
+    return GlyphData(run->glyph_data_[0].glyph,
+                     run->font_data_->EmphasisMarkFontData(font_description),
+                     run->CanvasRotation());
+  }
+  return GlyphData();
+}
+
 namespace {
 
 // Checks if the given script is a cursive script.
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
index c68c34af..2d3d592 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
@@ -372,6 +372,11 @@
                                 GraphemeClusterCallback,
                                 void* context) const;
 
+  // Returns the first GlyphData for an emphasis mark.
+  // Returns an empty GlyphData if this ShapeResult contains no glyphs.
+  GlyphData EmphasisMarkGlyphData(
+      const FontDescription& font_description) const;
+
   // Computes and returns the ink bounds (or visual overflow rect). This is
   // quite expensive and involves measuring each glyph accumulating the bounds.
   gfx::RectF ComputeInkBounds() const;
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
index ecf40a6d..4abc5e4 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
@@ -699,17 +699,6 @@
     return nullptr;
   }
   scoped_refptr<CanvasResource> resource = resource_;
-  if (ContextProviderWrapper()
-          ->ContextProvider()
-          .GetCapabilities()
-          .disable_2d_canvas_copy_on_write) {
-    // A readback operation may alter the texture parameters, which may affect
-    // the compositor's behavior. Therefore, we must trigger copy-on-write
-    // even though we are not technically writing to the texture, only to its
-    // parameters. This issue is Android-WebView specific: crbug.com/585250.
-    WillDraw();
-    resource->GetSyncToken();
-  }
 
   if (ShouldPropagateHighEntropyCanvasOpTypes(high_entropy_canvas_op_types,
                                               IsAccelerated())) {
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc
index e0a37f2a..e387da47 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc
@@ -532,35 +532,6 @@
             provider->Snapshot(FlushReason::kTesting)->GetSharedImage());
 }
 
-TEST_F(CanvasResourceProviderTest,
-       CanvasResourceProviderSharedImageCopyOnWriteDisabled) {
-  auto& fake_context = static_cast<FakeWebGraphicsContext3DProvider&>(
-      context_provider_wrapper_->ContextProvider());
-  auto caps = fake_context.GetCapabilities();
-  caps.disable_2d_canvas_copy_on_write = true;
-  fake_context.SetCapabilities(caps);
-
-  const gpu::SharedImageUsageSet shared_image_usage_flags =
-      gpu::SHARED_IMAGE_USAGE_DISPLAY_READ | gpu::SHARED_IMAGE_USAGE_SCANOUT;
-
-  Canvas2DColorParams color_params(PredefinedColorSpace::kSRGB,
-                                   CanvasPixelFormat::kUint8,
-                                   /*has_alpha=*/true);
-  auto provider = CanvasResourceProvider::CreateSharedImageProvider(
-      gfx::Size(10, 10), color_params,
-      CanvasResourceProvider::ShouldInitialize::kCallClear,
-      context_provider_wrapper_, RasterMode::kGPU, shared_image_usage_flags);
-
-  ASSERT_TRUE(provider->IsValid());
-
-  // Disabling copy-on-write forces a copy each time the resource is queried.
-  auto resource = provider->ProduceCanvasResource(FlushReason::kTesting);
-  EXPECT_NE(resource->GetClientSharedImage()->mailbox(),
-            provider->ProduceCanvasResource(FlushReason::kTesting)
-                ->GetClientSharedImage()
-                ->mailbox());
-}
-
 TEST_F(CanvasResourceProviderTest, CanvasResourceProviderBitmap) {
   const gfx::Size kSize(10, 10);
   const SkImageInfo kInfo =
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index db1cd67b..8f05068 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2045,6 +2045,10 @@
       status: "experimental",
     },
     {
+      name: "EmphasisMarkShapeCache",
+      status: "stable",
+    },
+    {
       name: "EnforceAnonymityExposure",
       status: "stable",
     },
@@ -2959,12 +2963,6 @@
       base_feature: "LayoutNGShapeCache",
     },
     {
-      name: "LazyInitializeMediaControls",
-      base_feature: "none",
-      public: true,
-      // This is enabled by features::kLazyInitializeMediaControls.
-    },
-    {
       // Allow triggering the word suggestion from left click.
       // From crbug.com/433209485
       name: "LeftClickToHandleSuggestion",
@@ -3145,12 +3143,6 @@
       name: "MediaCaptureVoiceIsolation",
       status: "experimental",
     },
-    // Set to reflect the MediaCastOverlayButton feature.
-    {
-      name: "MediaCastOverlayButton",
-      base_feature: "none",
-      public: true,
-    },
     {
       name: "MediaControlsExpandGesture",
       base_feature: "none",
@@ -4797,12 +4789,6 @@
       status: "stable",
     },
     {
-      // Feature for updating SVG presentation attribute style eagerly. This is
-      // a kill switch in case we encounter issues with this optimization.
-      name: "SvgEagerPresAttrStyleUpdate",
-      status: "stable",
-    },
-    {
       // Treat SVG documents in <object>/<embed> as replaced elements
       // https://issues.chromium.org/41302806
       name: "SVGEmbeddedAsReplacedElement",
@@ -4813,12 +4799,6 @@
       status: "experimental",
     },
     {
-      // Enables loading of external SVG resource documents for the 'clip-path',
-      // 'fill', 'stroke' and 'marker-*' properties.
-      name: "SvgExternalResources",
-      status: "stable",
-    },
-    {
       name: "SvgFilterPaintsForHiddenContent",
       status: "stable",
     },
@@ -4836,10 +4816,6 @@
       status: "test",
     },
     {
-      name: "SvgNoPixelSnappingScaleAdjustment",
-      status: "stable",
-    },
-    {
       name: "SvgPartitionSVGDocumentResourcesInMemoryCache",
       status: "stable",
     },
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index cc0373f..c441850 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2967,6 +2967,9 @@
 external/wpt/webdriver/tests/bidi/browsing_context/download_will_begin/download_will_begin.py [ Failure ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/448843863 [ Win11-arm64 ] external/wpt/fetch/fetch-later/basic.https.window.html [ Pass Timeout ]
+crbug.com/448843863 [ Mac14 ] external/wpt/fetch/fetch-later/basic.https.window.html [ Pass Timeout ]
+crbug.com/448843863 [ Win10.20h2 ] external/wpt/fetch/fetch-later/basic.https.window.html [ Pass Timeout ]
 crbug.com/448462500 external/wpt/css/css-align/blocks/align-content-table-cell-002.html [ Failure ]
 crbug.com/448462500 external/wpt/css/css-align/blocks/align-content-table-cell-005.html [ Failure ]
 crbug.com/448472314 external/wpt/css/css-anchor-position/align-dialog-002.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
index c126c40..7cc2774 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -401355,19 +401355,19 @@
        ]
       }
      },
-     "idlharness.any-expected.txt": [
-      "351ecaf716a0f84352a2f4e63e06c57095548ca2",
-      []
-     ],
-     "idlharness.any.serviceworker-expected.txt": [
+     "idlharness.https.any-expected.txt": [
       "a6d9009716f5cb19ee68d269cb17a28c59ca3cba",
       []
      ],
-     "idlharness.any.sharedworker-expected.txt": [
+     "idlharness.https.any.serviceworker-expected.txt": [
       "a6d9009716f5cb19ee68d269cb17a28c59ca3cba",
       []
      ],
-     "idlharness.any.worker-expected.txt": [
+     "idlharness.https.any.sharedworker-expected.txt": [
+      "a6d9009716f5cb19ee68d269cb17a28c59ca3cba",
+      []
+     ],
+     "idlharness.https.any.worker-expected.txt": [
       "a6d9009716f5cb19ee68d269cb17a28c59ca3cba",
       []
      ],
@@ -402449,6 +402449,10 @@
       "603fe05de3f9f35539189c335f61222d7c3c7800",
       []
      ],
+     "basic.https.window-expected.txt": [
+      "f78b1432ae55d538fc1b7f7a9ed5dcb7378f7764",
+      []
+     ],
      "permissions-policy": {
       "README.md": [
        "a0a724a25e04da5f2e0e4aef74752c8a0732fcb0",
@@ -444274,10 +444278,6 @@
      "7d5c6e8fbf92b4b9cdd271ac9761c5ab4179a2cf",
      []
     ],
-    "navigate-to-javascript-url-001-expected.txt": [
-     "e00aa59169152cb577d2cee96f98ed18584af01c",
-     []
-    ],
     "navigate-to-javascript-url-003-expected.txt": [
      "9015f1ed55d99b43fc10881f86122ec94abd3889",
      []
@@ -450954,6 +450954,10 @@
      "ed647bbe78fed07eb31fb89274edee8be96ae8e8",
      []
     ],
+    "RTCPeerConnection-remote-track-mute.https-expected.txt": [
+     "aa3d23af3d8cbd4e5a922f2546ae55d6cc3b437c",
+     []
+    ],
     "RTCPeerConnection-restartIce.https-expected.txt": [
      "61998e7fc24b72bc801946975da57ebfb9bd6cf1",
      []
@@ -528658,7 +528662,7 @@
       ]
      ],
      "contents-rule.html": [
-      "8dd62fba1379863fde6cac6a91cc252d54f90340",
+      "9a800a1524175ce0fefd508ba60a4d1a65ff4fca",
       [
        null,
        {}
@@ -589996,10 +590000,10 @@
        ]
       ]
      },
-     "idlharness.any.js": [
+     "idlharness.https.any.js": [
       "7b3c694e16ac3ec2776398067cf6ddbef949c969",
       [
-       "fetch/api/idlharness.any.html",
+       "fetch/api/idlharness.https.any.html",
        {
         "script_metadata": [
          [
@@ -590023,7 +590027,7 @@
        }
       ],
       [
-       "fetch/api/idlharness.any.serviceworker.html",
+       "fetch/api/idlharness.https.any.serviceworker.html",
        {
         "script_metadata": [
          [
@@ -590047,7 +590051,7 @@
        }
       ],
       [
-       "fetch/api/idlharness.any.sharedworker.html",
+       "fetch/api/idlharness.https.any.sharedworker.html",
        {
         "script_metadata": [
          [
@@ -590071,7 +590075,7 @@
        }
       ],
       [
-       "fetch/api/idlharness.any.worker.html",
+       "fetch/api/idlharness.https.any.worker.html",
        {
         "script_metadata": [
          [
@@ -595461,7 +595465,7 @@
       ]
      ],
      "basic.https.window.js": [
-      "f3ed42fe35a078942980ff44f66eee26a71f38cf",
+      "afedbf5d4c4fb6eb069e650911014a10e0d43b4a",
       [
        "fetch/fetch-later/basic.https.window.html",
        {}
@@ -819743,7 +819747,7 @@
      ]
     ],
     "RTCPeerConnection-remote-track-mute.https.html": [
-     "c280a7d44d8d2a477f2600c741ed68903e516651",
+     "f625623e00d70d587ad3eb3bd73fb8163723a214",
      [
       null,
       {
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any-expected.txt
deleted file mode 100644
index 351ecaf7..0000000
--- a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any-expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-This is a testharness.js-based test.
-Found 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] Request interface: attribute isReloadNavigation
-  assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-[FAIL] Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type
-  assert_inherits: property "isReloadNavigation" not found in prototype chain
-[FAIL] FetchLaterResult interface: existence and properties of interface object
-  assert_own_property: self does not have own property "FetchLaterResult" expected property "FetchLaterResult" missing
-[FAIL] FetchLaterResult interface object length
-  assert_own_property: self does not have own property "FetchLaterResult" expected property "FetchLaterResult" missing
-[FAIL] FetchLaterResult interface object name
-  assert_own_property: self does not have own property "FetchLaterResult" expected property "FetchLaterResult" missing
-[FAIL] FetchLaterResult interface: existence and properties of interface prototype object
-  assert_own_property: self does not have own property "FetchLaterResult" expected property "FetchLaterResult" missing
-[FAIL] FetchLaterResult interface: existence and properties of interface prototype object's "constructor" property
-  assert_own_property: self does not have own property "FetchLaterResult" expected property "FetchLaterResult" missing
-[FAIL] FetchLaterResult interface: existence and properties of interface prototype object's @@unscopables property
-  assert_own_property: self does not have own property "FetchLaterResult" expected property "FetchLaterResult" missing
-[FAIL] FetchLaterResult interface: attribute activated
-  assert_own_property: self does not have own property "FetchLaterResult" expected property "FetchLaterResult" missing
-[FAIL] Window interface: operation fetchLater(RequestInfo, optional DeferredRequestInit)
-  assert_own_property: global object missing non-static operation expected property "fetchLater" missing
-[FAIL] Window interface: window must inherit property "fetchLater(RequestInfo, optional DeferredRequestInit)" with the proper type
-  assert_own_property: expected property "fetchLater" missing
-[FAIL] Window interface: calling fetchLater(RequestInfo, optional DeferredRequestInit) on window with too few arguments must throw TypeError
-  assert_own_property: expected property "fetchLater" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any-expected.txt
similarity index 100%
copy from third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt
copy to third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.js b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.js
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.js
rename to third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.js
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.serviceworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
rename to third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.serviceworker-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt
rename to third_party/blink/web_tests/external/wpt/fetch/api/idlharness.https.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/fetch/fetch-later/basic.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/fetch-later/basic.https.window-expected.txt
new file mode 100644
index 0000000..f78b143
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/fetch-later/basic.https.window-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+[FAIL] fetchLater() throws TypeError on non-trustworthy http URL.
+  assert_throws_js: function "() => fetchLater('http://example.com')" threw object "SecurityError: Failed to execute 'fetchLater' on 'Window': fetchLater was passed an insecure URL." ("SecurityError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/fetch/fetch-later/basic.https.window.js b/third_party/blink/web_tests/external/wpt/fetch/fetch-later/basic.https.window.js
index f3ed42f..afedbf5 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/fetch-later/basic.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/fetch/fetch-later/basic.https.window.js
@@ -52,11 +52,8 @@
 }, `fetchLater() with https://example.com URL does not throw.`);
 
 test(() => {
-  const httpUrl = 'http://example.com';
-  assert_throws_dom(
-      'SecurityError', () => fetchLater(httpUrl),
-      `should throw SecurityError for insecure http url ${httpUrl}`);
-}, `fetchLater() throws SecurityError on non-trustworthy http URL.`);
+  assert_throws_js(TypeError, () => fetchLater('http://example.com'));
+}, `fetchLater() throws TypeError on non-trustworthy http URL.`);
 
 test(() => {
   assert_throws_js(TypeError, () => fetchLater('file://tmp'));
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-select-element/customizable-select/option-form-ancestor-select.html b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-select-element/customizable-select/option-form-ancestor-select.html
new file mode 100644
index 0000000..a3f7da62
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-select-element/customizable-select/option-form-ancestor-select.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://html.spec.whatwg.org/multipage/form-elements.html#dom-option-form">
+<link rel=help href="https://github.com/whatwg/html/issues/11708">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<form id=form>
+  <select id=select1></select>
+</form>
+
+<select id=select2 form=form></select>
+
+<script>
+const form = document.getElementById('form');
+const select1 = document.getElementById('select1');
+const select2 = document.getElementById('select2');
+
+test(() => {
+  const div1 = document.createElement('div');
+  select1.appendChild(div1);
+  const option1 = document.createElement('option');
+  div1.appendChild(option1);
+
+  const div2 = document.createElement('div');
+  select2.appendChild(div2);
+  const option2 = document.createElement('option');
+  div2.appendChild(option2);
+
+  assert_equals(option1.form, form, 'option1');
+  assert_equals(option2.form, form, 'option2');
+}, 'option.form should look up the ancestor chain for a select element to get its form from.');
+</script>
diff --git a/third_party/boringssl/src b/third_party/boringssl/src
index 706742e..caf5961 160000
--- a/third_party/boringssl/src
+++ b/third_party/boringssl/src
@@ -1 +1 @@
-Subproject commit 706742e482d89214f13a642ccfcdad596a24a32f
+Subproject commit caf5961d5a28df7a18274b932ddfb7fe2272c2dd
diff --git a/third_party/breakpad/breakpad b/third_party/breakpad/breakpad
index a1220f67..5d89000 160000
--- a/third_party/breakpad/breakpad
+++ b/third_party/breakpad/breakpad
@@ -1 +1 @@
-Subproject commit a1220f673dc44632e821bd1a217089e5a159a203
+Subproject commit 5d89000703d413048bf74f4ad22afcd3e3d76367
diff --git a/third_party/chromite b/third_party/chromite
index 52a376f..e5ec238 160000
--- a/third_party/chromite
+++ b/third_party/chromite
@@ -1 +1 @@
-Subproject commit 52a376fbc1830ae28a762993a102e4dca7d02e16
+Subproject commit e5ec238f59a5cdca68627e2c4a41789429c34bcc
diff --git a/third_party/cros_system_api b/third_party/cros_system_api
index c33ff08..2c31c25 160000
--- a/third_party/cros_system_api
+++ b/third_party/cros_system_api
@@ -1 +1 @@
-Subproject commit c33ff08e2b27ddaed22c8799fefd3a4b7d3c49a9
+Subproject commit 2c31c25519405d3d2b107844fd5e8c8bc397dbf7
diff --git a/third_party/dawn b/third_party/dawn
index e213957..da556b4 160000
--- a/third_party/dawn
+++ b/third_party/dawn
@@ -1 +1 @@
-Subproject commit e213957fd428ed14f567ff1b58432b2c01433b73
+Subproject commit da556b4eb39e603729869c3eedbedd8643e1518e
diff --git a/third_party/depot_tools b/third_party/depot_tools
index 3f15de2..9fd9d31f 160000
--- a/third_party/depot_tools
+++ b/third_party/depot_tools
@@ -1 +1 @@
-Subproject commit 3f15de2ac33315ac4f08c0da2cb723ccf07f8217
+Subproject commit 9fd9d31f9441c754dd8860bfea7ca1be7833eaae
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src
index b69e0e7..9b36dc2 160000
--- a/third_party/devtools-frontend/src
+++ b/third_party/devtools-frontend/src
@@ -1 +1 @@
-Subproject commit b69e0e75a2f47a34d6fc64468bdc4e2769de6943
+Subproject commit 9b36dc2ca2bc508b1e4904e959a1024f4fc19a2c
diff --git a/third_party/ink/BUILD.gn b/third_party/ink/BUILD.gn
index 0e869f43..df21f598 100644
--- a/third_party/ink/BUILD.gn
+++ b/third_party/ink/BUILD.gn
@@ -20,6 +20,8 @@
     "src/ink/brush/brush_paint.h",
     "src/ink/brush/brush_tip.cc",
     "src/ink/brush/brush_tip.h",
+    "src/ink/brush/color_function.cc",
+    "src/ink/brush/color_function.h",
     "src/ink/brush/easing_function.cc",
     "src/ink/brush/easing_function.h",
     "src/ink/color/color.cc",
@@ -59,6 +61,7 @@
     "src/ink/geometry/mesh.h",
     "src/ink/geometry/mesh_format.cc",
     "src/ink/geometry/mesh_format.h",
+    "src/ink/geometry/mesh_packing_types.cc",
     "src/ink/geometry/mesh_packing_types.h",
     "src/ink/geometry/mutable_mesh.cc",
     "src/ink/geometry/mutable_mesh.h",
@@ -141,8 +144,6 @@
     "src/ink/strokes/internal/easing_implementation.cc",
     "src/ink/strokes/internal/easing_implementation.h",
     "src/ink/strokes/internal/extrusion_points.h",
-    "src/ink/strokes/internal/legacy_vertex.cc",
-    "src/ink/strokes/internal/legacy_vertex.h",
     "src/ink/strokes/internal/noise_generator.cc",
     "src/ink/strokes/internal/noise_generator.h",
     "src/ink/strokes/internal/rounded_polygon.cc",
diff --git a/third_party/ink/README.chromium b/third_party/ink/README.chromium
index 3ad150b2..de178b7 100644
--- a/third_party/ink/README.chromium
+++ b/third_party/ink/README.chromium
@@ -1,7 +1,7 @@
 Name: Ink
 URL: https://github.com/google/ink.git
 Version: N/A
-Revision: 4e6081ad7052f97df7d77e1d87cea2d70c18a47b
+Revision: a262b2d58f1ab81ee6513d6c408965fd4336ba40
 Update Mechanism: Manual
 License: Apache-2.0
 License File: LICENSE
diff --git a/third_party/ink/src b/third_party/ink/src
index 4e6081a..a262b2d 160000
--- a/third_party/ink/src
+++ b/third_party/ink/src
@@ -1 +1 @@
-Subproject commit 4e6081ad7052f97df7d77e1d87cea2d70c18a47b
+Subproject commit a262b2d58f1ab81ee6513d6c408965fd4336ba40
diff --git a/third_party/ink_stroke_modeler/README.chromium b/third_party/ink_stroke_modeler/README.chromium
index 68f0e5c..a785191 100644
--- a/third_party/ink_stroke_modeler/README.chromium
+++ b/third_party/ink_stroke_modeler/README.chromium
@@ -1,7 +1,7 @@
 Name: Ink Stroke Modeler
 URL: https://github.com/google/ink-stroke-modeler
 Version: N/A
-Revision: fe79520c9ad7d2d445d26d3c59fda6fc54eb4d5c
+Revision: 2cd45e8683025c28fa2efcf672ad46607e8af869
 Update Mechanism: Manual
 License: Apache-2.0
 License File: LICENSE
diff --git a/third_party/ink_stroke_modeler/src b/third_party/ink_stroke_modeler/src
index fe79520..2cd45e8 160000
--- a/third_party/ink_stroke_modeler/src
+++ b/third_party/ink_stroke_modeler/src
@@ -1 +1 @@
-Subproject commit fe79520c9ad7d2d445d26d3c59fda6fc54eb4d5c
+Subproject commit 2cd45e8683025c28fa2efcf672ad46607e8af869
diff --git a/third_party/inspector_protocol/README.chromium b/third_party/inspector_protocol/README.chromium
index 4129a697..ec34b3b 100644
--- a/third_party/inspector_protocol/README.chromium
+++ b/third_party/inspector_protocol/README.chromium
@@ -2,7 +2,7 @@
 Short Name: inspector_protocol
 URL: https://chromium.googlesource.com/deps/inspector_protocol/
 Version: N/A
-Revision: 4cbd5a109cb6f9fc3a5a798dcda8d78ec68f16ca
+Revision: 1b1bcbbe060e8c8cd8704f00f78978c50991b307
 Update Mechanism: Autoroll
 License: BSD-3-Clause
 License File: LICENSE
diff --git a/third_party/inspector_protocol/templates/TypeBuilder_h.template b/third_party/inspector_protocol/templates/TypeBuilder_h.template
index 7c2a696..33c5d1a 100644
--- a/third_party/inspector_protocol/templates/TypeBuilder_h.template
+++ b/third_party/inspector_protocol/templates/TypeBuilder_h.template
@@ -74,7 +74,7 @@
 class {{config.protocol.export_macro}} {{type.id}} : public ::{{config.crdtp.namespace}}::ProtocolObject<{{type.id}}>{% if protocol.is_exported(domain.domain, type.id) %},
     public API::{{type.id}}{% endif %} {
 public:
-    ~{{type.id}}() override { }
+    ~{{type.id}}() override;  // Defined below
     {% for property in type.properties %}
       {% set property_type = protocol.resolve_type(property) %}
       {% set property_name = property.name | to_title_case %}
@@ -105,7 +105,7 @@
       {% else %}
     {{property_type.raw_return_type}} {{"get" | to_method_case}}{{property_name}}() { return {{property_type.to_raw_type % property_field}}; }
       {% endif %}
-    void {{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value) { {{property_field}} = {{property_type.to_rvalue % "value"}}; }
+    void {{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value);  // Defined below
     {% endfor %}
 
     template<int STATE>
@@ -126,18 +126,9 @@
       {% set property_name = property.name | to_title_case %}
 
       {% if property.optional %}
-        {{type.id}}Builder<STATE>& {{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value)
-        {
-            m_result->{{"set" | to_method_case}}{{property_name}}({{property_type.to_rvalue % "value"}});
-            return *this;
-        }
+        {{type.id}}Builder<STATE>& {{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value);  // Defined below
       {% else %}
-        {{type.id}}Builder<STATE | {{property_name}}Set>& {{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value)
-        {
-            static_assert(!(STATE & {{property_name}}Set), "property {{property.name}} should not be set yet");
-            m_result->{{"set" | to_method_case}}{{property_name}}({{property_type.to_rvalue % "value"}});
-            return castState<{{property_name}}Set>();
-        }
+        {{type.id}}Builder<STATE | {{property_name}}Set>& {{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value);  // Defined below
       {% endif %}
     {% endfor %}
 
@@ -167,14 +158,7 @@
 private:
     DECLARE_SERIALIZATION_SUPPORT();
 
-    {{type.id}}()
-    {
-    {% for property in type.properties %}
-      {% if not(property.optional) and "default_value" in protocol.resolve_type(property) %}
-          m_{{property.name}} = {{protocol.resolve_type(property).default_value}};
-      {%endif %}
-    {% endfor %}
-    }
+    {{type.id}}();  // Defined below
 
     {% for property in type.properties %}
       {% if property.optional %}
@@ -187,6 +171,51 @@
 
   {% endfor %}
 
+// ------------- Type and builder method definitions.
+//
+// These methods separate from the type declaration because of
+// https://github.com/llvm/llvm-project/issues/59966. The DevTools protocol has
+// mutually recursive types, so we cannot simply reorder the types.
+  {% for type in domain.types %}
+    {% if not protocol.generate_type(domain.domain, type.id) %}{% continue %}{% endif %}
+    {% if not (type.type == "object") or not ("properties" in type) %}{% continue %}{% endif %}
+inline {{type.id}}::~{{type.id}}() = default;
+    {% for property in type.properties %}
+      {% set property_type = protocol.resolve_type(property) %}
+      {% set property_name = property.name | to_title_case %}
+      {% set property_field = "m_" + property.name %}
+inline void {{type.id}}::{{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value) { {{property_field}} = {{property_type.to_rvalue % "value"}}; }
+    {% endfor %}
+
+    {% for property in type.properties %}
+      {% set property_type = protocol.resolve_type(property) %}
+      {% set property_name = property.name | to_title_case %}
+      {% if property.optional %}
+template<int STATE>
+inline {{type.id}}::{{type.id}}Builder<STATE>& {{type.id}}::{{type.id}}Builder<STATE>::{{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value) {
+  m_result->{{"set" | to_method_case}}{{property_name}}({{property_type.to_rvalue % "value"}});
+  return *this;
+}
+      {% else %}
+template<int STATE>
+inline {{type.id}}::{{type.id}}Builder<STATE | {{type.id}}::{{type.id}}Builder<STATE>::{{property_name}}Set>&
+{{type.id}}::{{type.id}}Builder<STATE>::{{"set" | to_method_case}}{{property_name}}({{property_type.pass_type}} value) {
+  static_assert(!(STATE & {{property_name}}Set), "property {{property.name}} should not be set yet");
+  m_result->{{"set" | to_method_case}}{{property_name}}({{property_type.to_rvalue % "value"}});
+  return castState<{{property_name}}Set>();
+}
+      {% endif %}
+    {% endfor %}
+
+inline {{type.id}}::{{type.id}}() {
+    {% for property in type.properties %}
+      {% if not(property.optional) and "default_value" in protocol.resolve_type(property) %}
+  m_{{property.name}} = {{protocol.resolve_type(property).default_value}};
+      {%endif %}
+    {% endfor %}
+}
+  {% endfor %}
+
 // ------------- Backend interface.
 
 class {{config.protocol.export_macro}} Backend {
diff --git a/third_party/lss b/third_party/lss
index ed31caa..29164a8 160000
--- a/third_party/lss
+++ b/third_party/lss
@@ -1 +1 @@
-Subproject commit ed31caa60f20a4f6569883b2d752ef7522de51e0
+Subproject commit 29164a80da4d41134950d76d55199ea33fbb9613
diff --git a/third_party/perfetto b/third_party/perfetto
index 0a10916..7d2ae96 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit 0a10916ffdc4935c38237d4a62bbc8bca68d2b7c
+Subproject commit 7d2ae96575efa97ddab72f0b962d22660c00a567
diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn
index 891430b..4fa59c50 100644
--- a/third_party/protobuf/BUILD.gn
+++ b/third_party/protobuf/BUILD.gn
@@ -52,7 +52,12 @@
 
 # On Android, we must use a static library to avoid symbol conflicts with
 # the system's version of protobuf.
-if (is_android) {
+# Exclude Android fuzzing builds since having targets that include a proto_library
+# and a fuzzable_proto_library leads to symbol conflicts due to the inclusion of
+# the protobuf lite_runtime and full_runtime.
+# TODO(448809154): Investigate whether symbol conflicts with the system's protobuf
+# version appear on our android fuzzing devices.
+if (is_android && !use_fuzzing_engine_with_lpm) {
   _protobuf_lite_target_type = "static_library"
 } else {
   _protobuf_lite_target_type = "component"
diff --git a/third_party/rust/anstyle/v1/BUILD.gn b/third_party/rust/anstyle/v1/BUILD.gn
index 414ab99..0c23c495 100644
--- a/third_party/rust/anstyle/v1/BUILD.gn
+++ b/third_party/rust/anstyle/v1/BUILD.gn
@@ -29,7 +29,7 @@
   cargo_pkg_name = "anstyle"
   cargo_pkg_description = "ANSI text styling"
   cargo_pkg_repository = "https://github.com/rust-cli/anstyle.git"
-  cargo_pkg_version = "1.0.11"
+  cargo_pkg_version = "1.0.13"
 
   allow_unsafe = true
 
diff --git a/third_party/rust/anstyle/v1/README.chromium b/third_party/rust/anstyle/v1/README.chromium
index a41fde22..08e0d30 100644
--- a/third_party/rust/anstyle/v1/README.chromium
+++ b/third_party/rust/anstyle/v1/README.chromium
@@ -1,7 +1,7 @@
 Name: anstyle
 URL: https://crates.io/crates/anstyle
-Version: 1.0.11
-Revision: 886539c95318db5de9db49b6d66d19413bd308cc
+Version: 1.0.13
+Revision: 14dd743496d1614f8261a093ce755f26d8e2069d
 Update Mechanism: Manual
 License: Apache-2.0
 License File: //third_party/rust/chromium_crates_io/vendor/anstyle-v1/LICENSE-APACHE
diff --git a/third_party/rust/chromium_crates_io/Cargo.lock b/third_party/rust/chromium_crates_io/Cargo.lock
index 202f08c2..9d4d525 100644
--- a/third_party/rust/chromium_crates_io/Cargo.lock
+++ b/third_party/rust/chromium_crates_io/Cargo.lock
@@ -9,7 +9,7 @@
 
 [[package]]
 name = "anstyle"
-version = "1.0.11"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
diff --git a/third_party/rust/chromium_crates_io/supply-chain/config.toml b/third_party/rust/chromium_crates_io/supply-chain/config.toml
index e29f83574..fc1ab7c 100644
--- a/third_party/rust/chromium_crates_io/supply-chain/config.toml
+++ b/third_party/rust/chromium_crates_io/supply-chain/config.toml
@@ -44,7 +44,7 @@
 [policy."adler2:2.0.1"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
-[policy."anstyle:1.0.11"]
+[policy."anstyle:1.0.13"]
 criteria = ["crypto-safe", "safe-to-run"]
 
 [policy."anyhow:1.0.100"]
diff --git a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/.cargo_vcs_info.json b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/.cargo_vcs_info.json
index e96b9ee..3b2c256 100644
--- a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/.cargo_vcs_info.json
+++ b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/.cargo_vcs_info.json
@@ -1,6 +1,6 @@
 {
   "git": {
-    "sha1": "886539c95318db5de9db49b6d66d19413bd308cc"
+    "sha1": "14dd743496d1614f8261a093ce755f26d8e2069d"
   },
   "path_in_vcs": "crates/anstyle"
 }
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.lock b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.lock
index 506b822b..67daab0d 100644
--- a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.lock
+++ b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.lock
@@ -3,10 +3,92 @@
 version = 3
 
 [[package]]
+name = "anstream"
+version = "0.6.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338"
+dependencies = [
+ "anstyle 1.0.10",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
 name = "anstyle"
-version = "1.0.11"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
+
+[[package]]
+name = "anstyle"
+version = "1.0.13"
 dependencies = [
  "lexopt",
+ "snapbox",
+]
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
+dependencies = [
+ "anstyle 1.0.10",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
+
+[[package]]
+name = "hermit-abi"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+
+[[package]]
+name = "is-terminal"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "is_terminal_polyfill"
+version = "1.48.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2736dd548daf35f50d261bbad35a83890bb9b461797f15de528485fbf206ab15"
+dependencies = [
+ "is-terminal",
 ]
 
 [[package]]
@@ -14,3 +96,131 @@
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401"
+
+[[package]]
+name = "libc"
+version = "0.2.172"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
+
+[[package]]
+name = "normalize-line-endings"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+
+[[package]]
+name = "similar"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
+
+[[package]]
+name = "snapbox"
+version = "0.6.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "881f1849454828a68363dd288b7a0a071e55e2a4356d2c38b567db18a9be0d9f"
+dependencies = [
+ "anstream",
+ "anstyle 1.0.10",
+ "normalize-line-endings",
+ "similar",
+ "snapbox-macros",
+]
+
+[[package]]
+name = "snapbox-macros"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16569f53ca23a41bb6f62e0a5084aa1661f4814a67fa33696a79073e03a664af"
+dependencies = [
+ "anstream",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
diff --git a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml
index 7b6eed4..45168cc 100644
--- a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml
+++ b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml
@@ -13,7 +13,7 @@
 edition = "2021"
 rust-version = "1.66.0"
 name = "anstyle"
-version = "1.0.11"
+version = "1.0.13"
 build = false
 include = [
     "build.rs",
@@ -43,49 +43,45 @@
 
 [package.metadata.docs.rs]
 all-features = true
-rustdoc-args = [
-    "--cfg",
-    "docsrs",
-    "--generate-link-to-definition",
-]
+rustdoc-args = ["--generate-link-to-definition"]
 
 [package.metadata.release]
 tag-prefix = ""
 
 [[package.metadata.release.pre-release-replacements]]
 file = "CHANGELOG.md"
-min = 1
-replace = "{{version}}"
 search = "Unreleased"
-
-[[package.metadata.release.pre-release-replacements]]
-exactly = 1
-file = "CHANGELOG.md"
-replace = "...{{tag_name}}"
-search = '\.\.\.HEAD'
-
-[[package.metadata.release.pre-release-replacements]]
-file = "CHANGELOG.md"
+replace = "{{version}}"
 min = 1
-replace = "{{date}}"
-search = "ReleaseDate"
 
 [[package.metadata.release.pre-release-replacements]]
-exactly = 1
 file = "CHANGELOG.md"
+search = '\.\.\.HEAD'
+replace = "...{{tag_name}}"
+exactly = 1
+
+[[package.metadata.release.pre-release-replacements]]
+file = "CHANGELOG.md"
+search = "ReleaseDate"
+replace = "{{date}}"
+min = 1
+
+[[package.metadata.release.pre-release-replacements]]
+file = "CHANGELOG.md"
+search = "<!-- next-header -->"
 replace = """
 <!-- next-header -->
 ## [Unreleased] - ReleaseDate
 """
-search = "<!-- next-header -->"
+exactly = 1
 
 [[package.metadata.release.pre-release-replacements]]
-exactly = 1
 file = "CHANGELOG.md"
+search = "<!-- next-url -->"
 replace = """
 <!-- next-url -->
 [Unreleased]: https://github.com/rust-cli/anstyle/compare/{{tag_name}}...HEAD"""
-search = "<!-- next-url -->"
+exactly = 1
 
 [features]
 default = ["std"]
@@ -104,6 +100,9 @@
 [dev-dependencies.lexopt]
 version = "0.3.0"
 
+[dev-dependencies.snapbox]
+version = "0.6.5"
+
 [lints.clippy]
 bool_assert_comparison = "allow"
 branches_sharing_code = "allow"
diff --git a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml.orig b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml.orig
index 5784d3c5..a08fe0a 100644
--- a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml.orig
+++ b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/Cargo.toml.orig
@@ -1,6 +1,6 @@
 [package]
 name = "anstyle"
-version = "1.0.11"
+version = "1.0.13"
 description = "ANSI text styling"
 categories = ["command-line-interface"]
 keywords = ["ansi", "terminal", "color", "no_std"]
@@ -12,7 +12,7 @@
 
 [package.metadata.docs.rs]
 all-features = true
-rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
+rustdoc-args = ["--generate-link-to-definition"]
 
 [package.metadata.release]
 tag-prefix = ""
@@ -32,6 +32,7 @@
 
 [dev-dependencies]
 lexopt = "0.3.0"
+snapbox = "0.6.5"
 
 [lints]
 workspace = true
diff --git a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/README.md b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/README.md
index 3025c18..99ea5e1 100644
--- a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/README.md
+++ b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/README.md
@@ -26,8 +26,8 @@
 
 Licensed under either of
 
-* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
-* MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
+* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or <https://www.apache.org/licenses/LICENSE-2.0>)
+* MIT license ([LICENSE-MIT](LICENSE-MIT) or <https://opensource.org/license/mit>)
 
 at your option.
 
diff --git a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/color.rs b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/color.rs
index 479921d4..a66dd530 100644
--- a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/color.rs
+++ b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/color.rs
@@ -591,7 +591,7 @@
         let c2: u8 = (code / 10) % 10;
         let c3: u8 = code % 10;
 
-        let mut printed = true;
+        let mut printed = false;
         if c1 != 0 {
             printed = true;
             self.buffer[self.len] = b'0' + c1;
diff --git a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/lib.rs
index a8802224e..f1449fc 100644
--- a/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/lib.rs
+++ b/third_party/rust/chromium_crates_io/vendor/anstyle-v1/src/lib.rs
@@ -45,7 +45,7 @@
 //! ```
 
 #![cfg_attr(not(feature = "std"), no_std)]
-#![cfg_attr(docsrs, feature(doc_auto_cfg))]
+#![cfg_attr(docsrs, feature(doc_cfg))]
 #![warn(missing_docs)]
 #![warn(clippy::std_instead_of_core)]
 #![warn(clippy::std_instead_of_alloc)]
diff --git a/third_party/skia b/third_party/skia
index 05c1f58..c7f4bad 160000
--- a/third_party/skia
+++ b/third_party/skia
@@ -1 +1 @@
-Subproject commit 05c1f58034159ee906aa740552db93b8e18b8e02
+Subproject commit c7f4bad47e455de3383c91e92fb946cb4e32ec9a
diff --git a/third_party/vulkan-deps b/third_party/vulkan-deps
index 9252990..7bc87a4 160000
--- a/third_party/vulkan-deps
+++ b/third_party/vulkan-deps
@@ -1 +1 @@
-Subproject commit 9252990324db5bd9f8aaf270c1777173562db19e
+Subproject commit 7bc87a4a45cf97006ec991d78c13d27e4ff2ea47
diff --git a/third_party/vulkan-loader/src b/third_party/vulkan-loader/src
index 0b058dd..0a278cc 160000
--- a/third_party/vulkan-loader/src
+++ b/third_party/vulkan-loader/src
@@ -1 +1 @@
-Subproject commit 0b058dd7537945bdf09d28fd9188ed7639b90f2e
+Subproject commit 0a278cc725089cb67bf6027076e5d72f97c04d86
diff --git a/third_party/vulkan-validation-layers/src b/third_party/vulkan-validation-layers/src
index c5afc61..df09d50 160000
--- a/third_party/vulkan-validation-layers/src
+++ b/third_party/vulkan-validation-layers/src
@@ -1 +1 @@
-Subproject commit c5afc61ad217fa7a119fc8673934962397930fbd
+Subproject commit df09d5013747cb28b30d8aa4b80748bb548aaa5f
diff --git a/third_party/webrtc b/third_party/webrtc
index 023f237..8d5ed77 160000
--- a/third_party/webrtc
+++ b/third_party/webrtc
@@ -1 +1 @@
-Subproject commit 023f237a1163844875157a9fb06a2ae6470d52d6
+Subproject commit 8d5ed7732345fc1c470284a47c5c508f33a58417
diff --git a/tools/android/avd/proto/android_36_google_apis_x64.textpb b/tools/android/avd/proto/android_36_google_apis_x64.textpb
index f064fb01..ad31d27a 100644
--- a/tools/android/avd/proto/android_36_google_apis_x64.textpb
+++ b/tools/android/avd/proto/android_36_google_apis_x64.textpb
@@ -11,18 +11,18 @@
 
 system_image_package {
   package_name: "chromium/third_party/android_sdk/public/system-images/android-36/google_apis/x86_64"
-  version: "ZTEw8um1C8-hBLxgyv3ZdeNaJMiaStgcv5vFp1Ls-MsC"  # (v7) BE2A.250530.026.F3
+  version: "nS1z3ppjuBsshStsL6WRWB4FwUaUN9zjMA7M5baTrxwC"  # (v6) BP22.250325.006
 }
 system_image_name: "system-images;android-36;google_apis;x86_64"
 
 avd_package {
   package_name: "chromium/third_party/android_sdk/public/avds/android-36/google_apis/x86_64"
-  # Created in https://ci.chromium.org/ui/b/8702355247321119617
+  # Created in https://ci.chromium.org/ui/b/8705163385740243089
   # Patched gmscore version 25.07.33 in https://crrev.com/c/6377466
-  version: "Dj1HZfDZny8On27fGDYHq704t8MeJXhwaAF-grP2YooC"
+  version: "AUbPSGjcJWxf-AKxylFsZTy-CTqb0odgG-5jr6cRNLsC"
 }
 avd_name: "android_36_google_apis_x64"
 
 avd_launch_settings {
-  gpu_mode: "lavapipe"
-}
+  gpu_mode: "swangle_indirect"
+}
\ No newline at end of file
diff --git a/tools/android/avd/proto/android_36_google_apis_x64_local.textpb b/tools/android/avd/proto/android_36_google_apis_x64_local.textpb
index 78457a07..72154d7 100644
--- a/tools/android/avd/proto/android_36_google_apis_x64_local.textpb
+++ b/tools/android/avd/proto/android_36_google_apis_x64_local.textpb
@@ -11,18 +11,18 @@
 
 system_image_package {
   package_name: "chromium/third_party/android_sdk/public/system-images/android-36/google_apis/x86_64"
-  version: "ZTEw8um1C8-hBLxgyv3ZdeNaJMiaStgcv5vFp1Ls-MsC"  # (v7) BE2A.250530.026.F3
+  version: "nS1z3ppjuBsshStsL6WRWB4FwUaUN9zjMA7M5baTrxwC"  # (v6) BP22.250325.006
 }
 system_image_name: "system-images;android-36;google_apis;x86_64"
 
 avd_package {
   package_name: "chromium/third_party/android_sdk/public/avds/android-36/google_apis/x86_64"
-  # Created in https://ci.chromium.org/ui/b/8702355247321119617
+  # Created in https://ci.chromium.org/ui/b/8705163385740243089
   # Patched gmscore version 25.07.33 in https://crrev.com/c/6377466
-  version: "ydiiqITTk3hOfDNzvmGriCDSi1Kj1viCPArIMZj02p4C"
+  version: "kKq6-MTaMsZF3x5oVu4jDqoNdTnJiPzVyTzDN_Yc4b8C"
 }
 avd_name: "android_36_google_apis_x64"
 
 avd_launch_settings {
-  gpu_mode: "lavapipe"
-}
+  gpu_mode: "swangle_indirect"
+}
\ No newline at end of file
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 5bb4c29d..8528ff3 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -46903,6 +46903,10 @@
 </action>
 
 <action name="TabSwitcher.GroupSuggest">
+  <obsolete>
+    Switched to using enum histogram. See
+    &quot;GroupSuggestionService.SuggestionUiEvent&quot;.
+  </obsolete>
   <owner>mfiaz@google.com</owner>
   <owner>clank-tab-dev@google.com</owner>
   <description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 314bd9f..f216597 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -8437,6 +8437,7 @@
   <int value="-2041208747" label="StorageBuckets:enabled"/>
   <int value="-2041091005" label="OmniboxDomainSuggestions:enabled"/>
   <int value="-2040899483" label="TabGroupParityAndroid:disabled"/>
+  <int value="-2040695258" label="WebUIOmniboxFullPopup:disabled"/>
   <int value="-2040471724" label="CrOSComponent:disabled"/>
   <int value="-2040360427" label="DesktopScreenshots:disabled"/>
   <int value="-2040154722" label="TimeOfDayScreenSaver:enabled"/>
@@ -11334,6 +11335,8 @@
   <int value="-1019760093" label="PrintWithPostScriptType42Fonts:enabled"/>
   <int value="-1019492310"
       label="OmniboxUIExperimentJogTextfieldOnPopup:enabled"/>
+  <int value="-1019412189"
+      label="AckCopyOutputRequestEarlyForViewTransition:disabled"/>
   <int value="-1018983714" label="FedCm:enabled"/>
   <int value="-1018713194"
       label="SupervisedUserInterstitialWithoutApprovals:disabled"/>
@@ -12885,6 +12888,8 @@
   <int value="-458726025" label="WebApkInstallFailureNotification:disabled"/>
   <int value="-458308082" label="ContextualTriggersSelectionMenu:disabled"/>
   <int value="-458090289" label="CrOSLateBootMissiveStorage:disabled"/>
+  <int value="-458067613"
+      label="AckCopyOutputRequestEarlyForViewTransition:enabled"/>
   <int value="-457584339" label="TemporaryHoldingSpace:enabled"/>
   <int value="-457246393" label="FloatingWorkspaceV2:enabled"/>
   <int value="-457174225" label="Av1Decoder:enabled"/>
@@ -14634,6 +14639,7 @@
   <int value="175254474" label="SpectreVariant2Mitigation:enabled"/>
   <int value="175564245"
       label="ZeroCopyRBPPartialRasterWithGpuCompositor:disabled"/>
+  <int value="175884656" label="NtpRealboxNext:enabled"/>
   <int value="176284157" label="HistoryOptInEntryPoints:enabled"/>
   <int value="176329316" label="MediaAppImageMantisReimagine:disabled"/>
   <int value="176401620" label="TabGroupParityAndroid:enabled"/>
@@ -15311,6 +15317,7 @@
   <int value="408190863" label="OmniboxDisableInstantExtendedLimit:disabled"/>
   <int value="408469366"
       label="NtpHistoryClustersModuleSuggestionChipHeader:disabled"/>
+  <int value="408854471" label="WebUIOmniboxFullPopup:enabled"/>
   <int value="409097421" label="EnablePixAccountLinking:enabled"/>
   <int value="409174264" label="camera-super-res-override"/>
   <int value="409566604" label="IntentPickerPWAPersistence:enabled"/>
@@ -18671,6 +18678,7 @@
       label="SupportMultipleServerRequestsForPixPayments:enabled"/>
   <int value="1604335827"
       label="AutofillUpstreamAllowAdditionalEmailDomains:enabled"/>
+  <int value="1604497846" label="NtpRealboxNext:disabled"/>
   <int value="1604893983" label="VizForWebView:disabled"/>
   <int value="1604914671" label="eol-reset-dismissed-prefs"/>
   <int value="1605398303" label="MacSystemMediaPermissionsInfoUI:enabled"/>
diff --git a/tools/metrics/histograms/metadata/actor/histograms.xml b/tools/metrics/histograms/metadata/actor/histograms.xml
index 84b72d8..c420fdb 100644
--- a/tools/metrics/histograms/metadata/actor/histograms.xml
+++ b/tools/metrics/histograms/metadata/actor/histograms.xml
@@ -80,6 +80,33 @@
   </summary>
 </histogram>
 
+<histogram name="Actor.PageContext.APC.Duration" units="ms"
+    expires_after="2026-08-11">
+  <owner>dtapuska@google.com</owner>
+  <owner>bokan@google.com</owner>
+  <owner>chrome-synapse-team@google.com</owner>
+  <summary>
+    Duration of fetching of the annotated page context for the PerformActions
+    response.
+  </summary>
+</histogram>
+
+<histogram name="Actor.PageContext.Screenshot.Duration" units="ms"
+    expires_after="2026-08-11">
+  <owner>dtapuska@google.com</owner>
+  <owner>bokan@google.com</owner>
+  <owner>chrome-synapse-team@google.com</owner>
+  <summary>Duration of screenshot for the PerformActions response.</summary>
+</histogram>
+
+<histogram name="Actor.PageContext.TabCount" units="count"
+    expires_after="2026-08-11">
+  <owner>dtapuska@google.com</owner>
+  <owner>bokan@google.com</owner>
+  <owner>chrome-synapse-team@google.com</owner>
+  <summary>Number of tabs to observe in PerformActions response.</summary>
+</histogram>
+
 <histogram name="Actor.Task.Count.Cancelled" units="count"
     expires_after="2026-08-11">
   <owner>dtapuska@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/browser/histograms.xml b/tools/metrics/histograms/metadata/browser/histograms.xml
index 7cf1e48..3b2cf803 100644
--- a/tools/metrics/histograms/metadata/browser/histograms.xml
+++ b/tools/metrics/histograms/metadata/browser/histograms.xml
@@ -2074,13 +2074,6 @@
   </summary>
 </histogram>
 
-<histogram name="SidePanel.ComboboxMenuShown" enum="Boolean"
-    expires_after="2024-09-22">
-  <owner>corising@chromium.org</owner>
-  <owner>top-chrome-desktop-ui@google.com</owner>
-  <summary>Records true when the side panel combobox is opened.</summary>
-</histogram>
-
 <histogram name="SidePanel.OpenDuration" units="ms" expires_after="2026-03-22">
   <owner>corising@chromium.org</owner>
   <owner>top-chrome-desktop-ui@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/download/histograms.xml b/tools/metrics/histograms/metadata/download/histograms.xml
index 937b352..68ca00d6 100644
--- a/tools/metrics/histograms/metadata/download/histograms.xml
+++ b/tools/metrics/histograms/metadata/download/histograms.xml
@@ -848,17 +848,6 @@
   </summary>
 </histogram>
 
-<histogram name="Download.Retry.InterruptReason" enum="InterruptReason"
-    expires_after="2025-10-06">
-  <owner>drubery@chromium.org</owner>
-  <owner>chlily@chromium.org</owner>
-  <owner>chrome-counter-abuse-alerts@google.com</owner>
-  <summary>
-    Records the last interrupt reason for a download that has just been retried
-    through the download bubble.
-  </summary>
-</histogram>
-
 <histogram name="Download.Service.Complete.FileSize.{DownloadClient}"
     units="KB" expires_after="never">
 <!-- expires-never: Download service stability metric. -->
diff --git a/tools/metrics/histograms/metadata/enterprise/enums.xml b/tools/metrics/histograms/metadata/enterprise/enums.xml
index c6162ed4..f802fa6 100644
--- a/tools/metrics/histograms/metadata/enterprise/enums.xml
+++ b/tools/metrics/histograms/metadata/enterprise/enums.xml
@@ -2295,6 +2295,7 @@
   <int value="1398" label="PreferSlowCiphers"/>
   <int value="1399" label="DeveloperToolsAvailabilityAllowlist"/>
   <int value="1400" label="DeveloperToolsAvailabilityBlocklist"/>
+  <int value="1401" label="LocalNetworkAccessRestrictionsTemporaryOptOut"/>
 </enum>
 
 <enum name="EnterprisePoliciesSources">
diff --git a/tools/metrics/histograms/metadata/extensions/histograms.xml b/tools/metrics/histograms/metadata/extensions/histograms.xml
index d48414e..3596919 100644
--- a/tools/metrics/histograms/metadata/extensions/histograms.xml
+++ b/tools/metrics/histograms/metadata/extensions/histograms.xml
@@ -2510,6 +2510,19 @@
   </summary>
 </histogram>
 
+<histogram
+    name="Extensions.Functions.DeveloperPrivate.NoSuchExtensionErrorThrown"
+    enum="ExtensionFunctions" expires_after="2026-04-01">
+  <owner>kelvinjiang@chromium.org</owner>
+  <owner>extensions-core@chromium.org</owner>
+  <summary>
+    Recorded when an error is thrown from a developerPrivate API function when
+    there is no extension with the specified ID found. Used to pinpoint which
+    functions may be causing most crashes as seen in crbug.com/431205004 when
+    this error is thrown.
+  </summary>
+</histogram>
+
 <histogram name="Extensions.Functions.DidSandboxedComponentExtensionAPICall"
     enum="Boolean" expires_after="2025-09-30">
   <owner>wjmaclean@chromium.org</owner>
@@ -2753,6 +2766,25 @@
   </summary>
 </histogram>
 
+<histogram name="Extensions.GreylistedForceInstalled.{TrustLevel}.Enabled"
+    enum="Boolean" expires_after="2025-12-28">
+  <owner>anunoy@chromium.org</owner>
+  <owner>chrome-counter-abuse-alerts@google.com</owner>
+  <summary>
+    Records the enabled state of a greylisted force-installed extension in a
+    {TrustLevel} management environment. A greylisted extension is one that has
+    been taken down by the Chrome Web Store for non-malware reasons such as
+    store policy violations or unwanted software categorization. Recorded once
+    per extension at profile startup on Windows and macOS. Only applicable for
+    &quot;user profiles&quot; (profiles where people can install extensions,
+    specifically profiles that can have non-component extensions installed).
+  </summary>
+  <token key="TrustLevel">
+    <variant name="HighTrust" summary="high-trust"/>
+    <variant name="LowTrust" summary="low-trust"/>
+  </token>
+</histogram>
+
 <histogram name="Extensions.HasPermissions_Install4" enum="Boolean"
     expires_after="never">
 <!-- expires-never: Monitoring extension usage. -->
diff --git a/tools/metrics/histograms/metadata/ios/enums.xml b/tools/metrics/histograms/metadata/ios/enums.xml
index 667423f..195f421e5 100644
--- a/tools/metrics/histograms/metadata/ios/enums.xml
+++ b/tools/metrics/histograms/metadata/ios/enums.xml
@@ -913,7 +913,7 @@
   <int value="1" label="NewTab"/>
   <int value="2" label="NewIncognitoTab"/>
   <int value="3" label="NewWindow"/>
-  <int value="4" label="Follow"/>
+  <int value="4" label="Obsolete in M143 - Follow"/>
   <int value="5" label="Bookmark"/>
   <int value="6" label="ReadingList"/>
   <int value="7" label="ClearBrowsingData"/>
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml
index 95149992..4bb3359e 100644
--- a/tools/metrics/histograms/metadata/net/histograms.xml
+++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -1860,6 +1860,22 @@
   </summary>
 </histogram>
 
+<histogram name="Net.DeviceBoundSessions.DeferralResultByOutcome.{Outcome}"
+    enum="DeviceBoundSessionRefreshResult" expires_after="2026-02-18">
+  <owner>drubery@chromium.org</owner>
+  <owner>chrome-counter-abuse-alerts@google.com</owner>
+  <summary>
+    This records the outcome of deferring a request due to a Device Bound
+    Session (https://github.com/w3c/webappsec-dbsc/blob/main/README.md). This is
+    logged every time a {Outcome} request is unblocked after being deferred,
+    which is usually due to a refresh completing.
+  </summary>
+  <token key="Outcome">
+    <variant name="Failure" summary="failed"/>
+    <variant name="Success" summary="successful"/>
+  </token>
+</histogram>
+
 <histogram name="Net.DeviceBoundSessions.DeferralResult{Duration}"
     enum="DeviceBoundSessionRefreshResult" expires_after="2026-02-18">
   <owner>drubery@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index aa61e5c..59d5435 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -1802,22 +1802,6 @@
   <token key="Type" variants="InterestGroupRequestType"/>
 </histogram>
 
-<histogram name="Ads.InterestGroup.Net.ResponseParsed.{Type}" enum="Boolean"
-    expires_after="2026-01-31">
-  <owner>xtlsheep@google.com</owner>
-  <owner>pauljensen@chromium.org</owner>
-  <owner>privacy-sandbox-dev@chromium.org</owner>
-  <summary>
-    True if the trusted KVv2 bidding or scoring signals successfully parsed the
-    received response without any CBOR parsing error. Recorded whenever there is
-    a response received for Kvv2 signals.
-
-    See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
-    version of the FLEDGE explainer.
-  </summary>
-  <token key="Type" variants="InterestGroupRequestType"/>
-</histogram>
-
 <histogram name="Ads.InterestGroup.Net.ResponseSizeBytes.{Type}" units="bytes"
     expires_after="2026-03-15">
   <owner>caraitto@chromium.org</owner>
@@ -2377,6 +2361,36 @@
   </summary>
 </histogram>
 
+<histogram name="Ads.InterestGroup.TrustedKVv2BiddingResponseParsed"
+    enum="Boolean" expires_after="2026-01-31">
+  <owner>xtlsheep@google.com</owner>
+  <owner>pauljensen@chromium.org</owner>
+  <owner>privacy-sandbox-dev@chromium.org</owner>
+  <summary>
+    True if the trusted KVv2 bidding signals successfully parsed the received
+    response without any CBOR parsing error. Recorded whenever there is a
+    response received for Kvv2 signals.
+
+    See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
+    version of the FLEDGE explainer.
+  </summary>
+</histogram>
+
+<histogram name="Ads.InterestGroup.TrustedKVv2ScoringResponseParsed"
+    enum="Boolean" expires_after="2026-01-31">
+  <owner>xtlsheep@google.com</owner>
+  <owner>pauljensen@chromium.org</owner>
+  <owner>privacy-sandbox-dev@chromium.org</owner>
+  <summary>
+    True if the trusted KVv2 scoring signals successfully parsed the received
+    response without any CBOR parsing error. Recorded whenever there is a
+    response received for Kvv2 signals.
+
+    See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
+    version of the FLEDGE explainer.
+  </summary>
+</histogram>
+
 <histogram name="Ads.InterestGroup.Update.AuctionExecutionMode"
     enum="InterestGroupAdAuctionExecutionMode" expires_after="2025-09-14">
   <owner>behamilton@google.com</owner>
@@ -6028,6 +6042,62 @@
   </summary>
 </histogram>
 
+<histogram name="Mojo.Channel.ChannelInitPauseToFlushTime" units="ms"
+    expires_after="2026-07-13">
+  <owner>rakina@chromium.org</owner>
+  <owner>navigation-dev@chromium.org</owner>
+  <summary>
+    For each RenderProcessHost, records its time spent between pausing and
+    flushing its IPC channel via Pause() (triggered when the channel is
+    intialized) and Flush() (after the renderer process launched notification is
+    received) respectively.
+
+    Recorded when the channel gets flushed.
+  </summary>
+</histogram>
+
+<histogram name="Mojo.Channel.ChannelInitPauseToUnpauseTime" units="ms"
+    expires_after="2026-07-13">
+  <owner>rakina@chromium.org</owner>
+  <owner>navigation-dev@chromium.org</owner>
+  <summary>
+    For each RenderProcessHost, records its time spent between pausing and
+    flushing its IPC channel via Pause() (triggered when the channel is
+    initialized) and Unpause() (after the renderer process launched notification
+    is received) respectively.
+
+    Recorded when the channel gets unpaused.
+  </summary>
+</histogram>
+
+<histogram name="Mojo.Channel.ProcessLaunchPauseToFlushTime" units="ms"
+    expires_after="2026-07-13">
+  <owner>rakina@chromium.org</owner>
+  <owner>navigation-dev@chromium.org</owner>
+  <summary>
+    For each RenderProcessHost, records its time spent between pausing and
+    flushing its IPC channel via Pause() (triggered when renderer process launch
+    is requested) and Flush() (after the renderer process launched notification
+    is received) respectively.
+
+    Recorded when the channel gets flushed.
+  </summary>
+</histogram>
+
+<histogram name="Mojo.Channel.ProcessLaunchPauseToUnpauseTime" units="ms"
+    expires_after="2026-07-13">
+  <owner>rakina@chromium.org</owner>
+  <owner>navigation-dev@chromium.org</owner>
+  <summary>
+    For each RenderProcessHost, records its time spent between pausing and
+    flushing its IPC channel via Pause() (triggered when renderer process launch
+    is requested) and Unpause() (after the renderer process launched
+    notification is received) respectively.
+
+    Recorded when the channel gets unpaused.
+  </summary>
+</histogram>
+
 <histogram name="Mojo.Channel.WriteMessageLatency" units="ms"
     expires_after="2026-03-22">
   <owner>amistry@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/page/histograms.xml b/tools/metrics/histograms/metadata/page/histograms.xml
index ddce2b1d..5a3a27d 100644
--- a/tools/metrics/histograms/metadata/page/histograms.xml
+++ b/tools/metrics/histograms/metadata/page/histograms.xml
@@ -2765,7 +2765,7 @@
 </histogram>
 
 <histogram name="PageLoad.Clients.WebView.PageAttemptResults"
-    enum="WebViewPageAttemptResult" expires_after="2025-10-31">
+    enum="WebViewPageAttemptResult" expires_after="2026-09-30">
   <owner>narms@google.com</owner>
   <owner>android-sre@google.com</owner>
   <summary>
@@ -2779,7 +2779,7 @@
 </histogram>
 
 <histogram name="PageLoad.Clients.WebView.PageAttempts" enum="Boolean"
-    expires_after="2025-10-31">
+    expires_after="2026-09-30">
   <owner>narms@google.com</owner>
   <owner>android-sre@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/profile/enums.xml b/tools/metrics/histograms/metadata/profile/enums.xml
index 9d958af..f659e50 100644
--- a/tools/metrics/histograms/metadata/profile/enums.xml
+++ b/tools/metrics/histograms/metadata/profile/enums.xml
@@ -461,6 +461,9 @@
   <int value="26" label="Google services settings button"/>
   <int value="27" label="History sync button"/>
   <int value="28" label="Batch Upload with bookmarks as primary button"/>
+  <int value="29" label="Batch Upload as primary button"/>
+  <int value="30"
+      label="Batch Upload for Windows Deprecation as primary button"/>
 </enum>
 
 <!-- LINT.ThenChange(//chrome/browser/ui/views/profiles/profile_menu_view_base.h:ActionableItem) -->
diff --git a/tools/metrics/histograms/metadata/sync/enums.xml b/tools/metrics/histograms/metadata/sync/enums.xml
index acf86ee..5157912 100644
--- a/tools/metrics/histograms/metadata/sync/enums.xml
+++ b/tools/metrics/histograms/metadata/sync/enums.xml
@@ -77,7 +77,11 @@
   <int value="0" label="Password manager settings"/>
   <int value="1" label="Password promo card"/>
   <int value="2" label="Bookmark manager promo card"/>
-  <int value="3" label="Profile menu button"/>
+  <int value="3" label="Profile menu row button"/>
+  <int value="4" label="Profile menu primary button action"/>
+  <int value="5" label="Profile menu primary button with bookmarks action"/>
+  <int value="6"
+      label="Profile menu priamry button with Windows10 depreciation action"/>
 </enum>
 
 <!-- LINT.ThenChange(/chrome/browser/profiles/batch_upload/batch_upload_service.h:EntryPoint) -->
diff --git a/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml b/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml
index a1d4888..b27571b 100644
--- a/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml
+++ b/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml
@@ -41,6 +41,28 @@
   <int value="3" label="Dismissed"/>
 </enum>
 
+<enum name="SuggestionUiEvent">
+  <summary>
+    Events related to the group suggestion service UI. See
+    TabSwitcherGroupSuggestionService.SuggestionUiEvent for the Java equivalent.
+  </summary>
+  <int value="0" label="Unknown"/>
+  <int value="1" label="TabSwitcherOpened"/>
+  <int value="2" label="RequestStarted"/>
+  <int value="3" label="RequestNoResult"/>
+  <int value="4" label="RequestHasSuggestion"/>
+  <int value="5" label="RequestHasMultipleSuggestions"/>
+  <int value="6" label="InvalidatedDueToGap"/>
+  <int value="7" label="InvalidatedDueToNoSelectedTab"/>
+  <int value="8" label="InvalidatedDueToTabState"/>
+  <int value="9" label="InvalidatedDueToEmptySuggestion"/>
+  <int value="10" label="InvalidatedDueToPinnedTab"/>
+  <int value="11" label="Shown"/>
+  <int value="12" label="Ignored"/>
+  <int value="13" label="Rejected"/>
+  <int value="14" label="Accepted"/>
+</enum>
+
 <enum name="TabGroupSuggestionThrottleReason">
   <int value="0" label="Unknown"/>
   <int value="1" label="OverlappingTabs"/>
diff --git a/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml b/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml
index 384ba8ae..32dc138 100644
--- a/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml
+++ b/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml
@@ -73,6 +73,17 @@
   </summary>
 </histogram>
 
+<histogram name="GroupSuggestionsService.SuggestionUiEvent"
+    enum="SuggestionUiEvent" expires_after="2026-09-01">
+  <owner>mfiaz@google.com</owner>
+  <owner>ssid@chromium.org</owner>
+  <owner>salg@google.com</owner>
+  <summary>
+    Records events related to the group suggestion service UI. Logged each time
+    the respective event occurs.
+  </summary>
+</histogram>
+
 <histogram
     name="GroupSuggestionsService.TabSwitches.PerGroup.{GroupCreationSource}"
     units="count" expires_after="2026-03-29">
diff --git a/tools/perf/core/bot_platforms.py b/tools/perf/core/bot_platforms.py
index 0ff76a52..ee6f99b 100644
--- a/tools/perf/core/bot_platforms.py
+++ b/tools/perf/core/bot_platforms.py
@@ -739,6 +739,7 @@
     'speedometer3-minorms',
 ])
 _MAC_M3_PRO_BENCHMARK_CONFIGS = PerfSuite([])
+_MAC_M4_MINI_BENCHMARK_CONFIGS = PerfSuite(OFFICIAL_BENCHMARK_CONFIGS)
 
 _WIN_10_BENCHMARK_CONFIGS = PerfSuite(OFFICIAL_BENCHMARK_CONFIGS).Remove([
     'v8.runtime_stats.top_25',
@@ -937,6 +938,12 @@
                           4,
                           'mac',
                           crossbench=_CROSSBENCH_BENCHMARKS_ALL)
+MAC_M4_MINI = PerfPlatform('mac-m4-mini-perf',
+                          'Mac M4 mini ARM',
+                          _MAC_M4_MINI_BENCHMARK_CONFIGS,
+                          25,
+                          '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 27f8dab..3a8eab9 100755
--- a/tools/perf/core/perf_data_generator.py
+++ b/tools/perf/core/perf_data_generator.py
@@ -105,8 +105,7 @@
     'win-10-perf',
     'win-10_laptop_low_end-perf',
     'win-11-perf',
-    'mac-laptop_high_end-perf',
-    'mac-laptop_low_end-perf',
+    'mac-m4-mini-perf',
 ]
 
 UPLOAD_SKIA_JSON_BUILDERS = frozenset([
@@ -144,6 +143,7 @@
     'mac-m1_mini_2020-perf-pgo',
     'mac-m2-pro-perf',
     'mac-m3-pro-perf',
+    'mac-m4-mini-perf',
     'win-10-processor-perf',
     'win-10_amd_laptop-perf',
     'win-10_laptop_low_end-processor-perf',
@@ -1116,6 +1116,26 @@
             'Mac15,3_arm64-64-Apple_M3_apple m3_8192_APPLE SSD AP0512Z',
         },
     },
+    'mac-m4-mini-perf': {
+        'tests': [
+            {
+                'isolate': 'performance_test_suite',
+                'extra_args': [
+                    '--assert-gpu-compositing',
+                ],
+            },
+        ],
+        'platform':
+        'mac',
+        'dimension': {
+            'cpu': 'arm',
+            'mac_model': 'Mac16,10',
+            'os': 'Mac',
+            'pool': 'chrome.tests.perf',
+            'synthetic_product_name':
+                'Mac16,10_arm64-64-Apple_M4_apple m4_32768_APPLE SSD AP2048Z',
+        },
+    },
     '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 20513678..e470e2b2 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/v52.0/linux-arm64/trace_processor_shell"
         },
         "win": {
-            "hash": "3736426ecd2bab7bae268e5ce089b3722b1c334a",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/1451bd10ade11980c8ef405fffdb62afb9a4a7eb/trace_processor_shell.exe"
+            "hash": "e6a95281ff2ab517cc2d0070f16b7058d51d15da",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/c3d7213203ae688a21f50930a09a3036ba3b077a/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "46d798c1864490cbb2ee053d6eda436184470e69",
@@ -21,8 +21,8 @@
             "full_remote_path": "perfetto-luci-artifacts/ebf44e57a3b734c5281bdff53d9945805486004e/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "880bf6393a7373423b0593414b47c948f39b0fde",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/0a10916ffdc4935c38237d4a62bbc8bca68d2b7c/trace_processor_shell"
+            "hash": "02fed0447d3f38deed9f12a545f7fcaa3d793c1d",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/f7f9d7cf6ca7d162042ac1f3566fb4a1fdfd7095/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/perf/core/shard_maps/mac-m4-mini-perf_map.json b/tools/perf/core/shard_maps/mac-m4-mini-perf_map.json
new file mode 100644
index 0000000..847734f
--- /dev/null
+++ b/tools/perf/core/shard_maps/mac-m4-mini-perf_map.json
@@ -0,0 +1,787 @@
+{
+    "0": {
+        "benchmarks": {
+            "jetstream2": {
+                "abridged": false
+            },
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "ad_frames.fencedframe": {
+                "abridged": false
+            },
+            "blink_perf.accessibility": {
+                "end": 21,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "jetstream_2": {
+                "display_name": "jetstream2.crossbench",
+                "arguments": []
+            },
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "1": {
+        "benchmarks": {
+            "jetstream2": {
+                "abridged": false
+            },
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.accessibility": {
+                "begin": 21,
+                "abridged": false
+            },
+            "blink_perf.bindings": {
+                "end": 21,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "jetstream_2": {
+                "display_name": "jetstream2.crossbench",
+                "arguments": []
+            },
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "2": {
+        "benchmarks": {
+            "jetstream2": {
+                "abridged": false
+            },
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.bindings": {
+                "begin": 21,
+                "end": 48,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "jetstream_2": {
+                "display_name": "jetstream2.crossbench",
+                "arguments": []
+            },
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "3": {
+        "benchmarks": {
+            "jetstream2": {
+                "abridged": false
+            },
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.bindings": {
+                "begin": 48,
+                "abridged": false
+            },
+            "blink_perf.css": {
+                "end": 22,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "jetstream_2": {
+                "display_name": "jetstream2.crossbench",
+                "arguments": []
+            },
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "4": {
+        "benchmarks": {
+            "jetstream2": {
+                "abridged": false
+            },
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.css": {
+                "begin": 22,
+                "end": 49,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "jetstream_2": {
+                "display_name": "jetstream2.crossbench",
+                "arguments": []
+            },
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "5": {
+        "benchmarks": {
+            "jetstream2": {
+                "abridged": false
+            },
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.css": {
+                "begin": 49,
+                "abridged": false
+            },
+            "blink_perf.dom": {
+                "end": 1,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "jetstream_2": {
+                "display_name": "jetstream2.crossbench",
+                "arguments": []
+            },
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "6": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.dom": {
+                "begin": 1,
+                "abridged": false
+            },
+            "blink_perf.events": {
+                "abridged": false
+            },
+            "blink_perf.image_decoder": {
+                "abridged": false
+            },
+            "blink_perf.layout": {
+                "end": 6,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "7": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.layout": {
+                "begin": 6,
+                "end": 52,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "8": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.layout": {
+                "begin": 52,
+                "end": 97,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "9": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.layout": {
+                "begin": 97,
+                "abridged": false
+            },
+            "blink_perf.owp_storage": {
+                "abridged": false
+            },
+            "blink_perf.parser": {
+                "end": 17,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "10": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.parser": {
+                "begin": 17,
+                "abridged": false
+            },
+            "blink_perf.shadow_dom": {
+                "end": 32,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "11": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "blink_perf.shadow_dom": {
+                "begin": 32,
+                "abridged": false
+            },
+            "blink_perf.webaudio": {
+                "abridged": false
+            },
+            "blink_perf.webcodecs": {
+                "abridged": false
+            },
+            "blink_perf.webgl": {
+                "abridged": false
+            },
+            "blink_perf.webgpu": {
+                "abridged": false
+            },
+            "desktop_ui": {
+                "end": 8,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "12": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "desktop_ui": {
+                "begin": 8,
+                "abridged": false
+            },
+            "dummy_benchmark.noisy_benchmark_1": {
+                "abridged": false
+            },
+            "dummy_benchmark.stable_benchmark_1": {
+                "abridged": false
+            },
+            "media.desktop": {
+                "abridged": false
+            },
+            "memory.desktop": {
+                "end": 1,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "13": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "memory.desktop": {
+                "begin": 1,
+                "abridged": false
+            },
+            "octane": {
+                "abridged": false
+            },
+            "power.desktop": {
+                "abridged": false
+            },
+            "rasterize_and_record_micro.top_25": {
+                "end": 22,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "14": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "rasterize_and_record_micro.top_25": {
+                "begin": 22,
+                "abridged": false
+            },
+            "rendering.desktop": {
+                "end": 42,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "15": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "rendering.desktop": {
+                "begin": 42,
+                "end": 88,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "16": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "rendering.desktop": {
+                "begin": 88,
+                "end": 133,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "17": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "rendering.desktop": {
+                "begin": 133,
+                "end": 179,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "18": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "rendering.desktop": {
+                "begin": 179,
+                "end": 224,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "19": {
+        "benchmarks": {
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer3": {
+                "abridged": false
+            },
+            "rendering.desktop.notracing": {
+                "abridged": false
+            },
+            "rendering.desktop": {
+                "begin": 224,
+                "end": 270,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_3": {
+                "display_name": "speedometer3.crossbench",
+                "arguments": []
+            },
+            "motionmark_1.3": {
+                "display_name": "motionmark1.3.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "20": {
+        "benchmarks": {
+            "rendering.desktop": {
+                "begin": 270,
+                "abridged": false
+            },
+            "speedometer": {
+                "abridged": false
+            },
+            "speedometer-future": {
+                "abridged": false
+            },
+            "speedometer2-future": {
+                "abridged": false
+            },
+            "speedometer3-future": {
+                "abridged": false
+            },
+            "system_health.common_desktop": {
+                "end": 1,
+                "abridged": false
+            }
+        },
+        "crossbench": {
+            "speedometer_2": {
+                "display_name": "speedometer2.crossbench",
+                "arguments": []
+            }
+        }
+    },
+    "21": {
+        "benchmarks": {
+            "system_health.common_desktop": {
+                "begin": 1,
+                "abridged": false
+            },
+            "system_health.memory_desktop": {
+                "end": 13,
+                "abridged": false
+            }
+        }
+    },
+    "22": {
+        "benchmarks": {
+            "system_health.memory_desktop": {
+                "begin": 13,
+                "abridged": false
+            },
+            "v8.browsing_desktop": {
+                "end": 24,
+                "abridged": false
+            }
+        }
+    },
+    "23": {
+        "benchmarks": {
+            "v8.browsing_desktop": {
+                "begin": 24,
+                "abridged": false
+            },
+            "v8.browsing_desktop-future": {
+                "abridged": false
+            },
+            "v8.runtime_stats.top_25": {
+                "end": 57,
+                "abridged": false
+            }
+        }
+    },
+    "24": {
+        "benchmarks": {
+            "v8.runtime_stats.top_25": {
+                "begin": 57,
+                "abridged": false
+            },
+            "wasmpspdfkit": {
+                "abridged": false
+            },
+            "webrtc": {
+                "abridged": false
+            }
+        }
+    },
+    "extra_infos": {
+        "num_stories": 1359,
+        "predicted_min_shard_time": 900,
+        "predicted_min_shard_index": 8,
+        "predicted_max_shard_time": 910,
+        "predicted_max_shard_index": 0,
+        "shard #0": 910,
+        "shard #1": 910,
+        "shard #2": 910,
+        "shard #3": 910,
+        "shard #4": 910,
+        "shard #5": 910,
+        "shard #6": 910,
+        "shard #7": 910,
+        "shard #8": 900,
+        "shard #9": 910,
+        "shard #10": 900,
+        "shard #11": 910,
+        "shard #12": 900,
+        "shard #13": 910,
+        "shard #14": 900,
+        "shard #15": 910,
+        "shard #16": 900,
+        "shard #17": 910,
+        "shard #18": 900,
+        "shard #19": 910,
+        "shard #20": 900,
+        "shard #21": 910,
+        "shard #22": 900,
+        "shard #23": 910,
+        "shard #24": 900
+    }
+}
diff --git a/tools/perf/core/shard_maps/timing_data/mac-m4-mini-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-m4-mini-perf_timing.json
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/tools/perf/core/shard_maps/timing_data/mac-m4-mini-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 fb6f4ac..503759c4 100644
--- a/tools/perf/cross_device_test_config.py
+++ b/tools/perf/cross_device_test_config.py
@@ -312,4 +312,13 @@
     'mac-m3-pro-perf': {
         'speedometer3.1.crossbench': 4,
     },
+    'mac-m4-mini-perf': {
+        'jetstream2': 6,
+        'jetstream2.crossbench': 6,
+        'speedometer2': 20,
+        'speedometer3': 20,
+        'speedometer3.crossbench': 20,
+        'rendering.desktop.notracing': 20,
+        'motionmark1.3.crossbench': 20,
+    },
 }
diff --git a/ui/accessibility/BUILD.gn b/ui/accessibility/BUILD.gn
index 3c7b117..1ba60da 100644
--- a/ui/accessibility/BUILD.gn
+++ b/ui/accessibility/BUILD.gn
@@ -571,6 +571,8 @@
     ]
     deps = [
       "//base:base_java",
+      "//base:flagged_apis_java",
+      "//base:service_loader_java",
       "//build/android:build_java",
       "//third_party/androidx:androidx_annotation_annotation_jvm_java",
       "//third_party/jni_zero:jni_zero_java",
diff --git a/ui/accessibility/android/accessibility_state.cc b/ui/accessibility/android/accessibility_state.cc
index 9b75737..684241a 100644
--- a/ui/accessibility/android/accessibility_state.cc
+++ b/ui/accessibility/android/accessibility_state.cc
@@ -35,6 +35,13 @@
       static_cast<bool>(highContrastEnabled));
 }
 
+void JNI_AccessibilityState_OnTextCursorBlinkIntervalChanged(
+    JNIEnv* env,
+    jint newIntervalMs) {
+  AccessibilityState::Get()->NotifyTextCursorBlinkIntervalObservers(
+      base::Milliseconds(newIntervalMs));
+}
+
 void JNI_AccessibilityState_RecordAccessibilityServiceInfoHistograms(
     JNIEnv* env) {
   AccessibilityState::Get()->NotifyRecordAccessibilityServiceInfoHistogram();
@@ -70,6 +77,13 @@
                     high_contrast_enabled);
 }
 
+void AccessibilityState::NotifyTextCursorBlinkIntervalObservers(
+    base::TimeDelta new_interval_ms) {
+  observers_.Notify(
+      &AccessibilityStateObserver::OnTextCursorBlinkIntervalChanged,
+      new_interval_ms);
+}
+
 void AccessibilityState::NotifyRecordAccessibilityServiceInfoHistogram() {
   observers_.Notify(
       &AccessibilityStateObserver::RecordAccessibilityServiceInfoHistograms);
@@ -110,6 +124,12 @@
 }
 
 // static
+base::TimeDelta AccessibilityState::GetTextCursorBlinkInterval() {
+  return base::Milliseconds(Java_AccessibilityState_getTextCursorBlinkInterval(
+      base::android::AttachCurrentThread()));
+}
+
+// static
 bool AccessibilityState::PrefersReducedMotion() {
   return Java_AccessibilityState_prefersReducedMotion(
       base::android::AttachCurrentThread());
diff --git a/ui/accessibility/android/accessibility_state.h b/ui/accessibility/android/accessibility_state.h
index edb7dd4..13be461 100644
--- a/ui/accessibility/android/accessibility_state.h
+++ b/ui/accessibility/android/accessibility_state.h
@@ -12,6 +12,7 @@
 #include "base/no_destructor.h"
 #include "base/observer_list.h"
 #include "base/observer_list_types.h"
+#include "base/time/time.h"
 
 namespace ui {
 
@@ -30,6 +31,10 @@
     // Called when the contrast level changes.
     virtual void OnContrastLevelChanged(bool high_contrast_enabled) {}
 
+    // Called when the text cursor blink interval changes.
+    virtual void OnTextCursorBlinkIntervalChanged(
+        base::TimeDelta text_cursor_blink_interval) {}
+
     // Called during browser startup and any time enabled services change.
     virtual void RecordAccessibilityServiceInfoHistograms() {}
   };
@@ -48,6 +53,9 @@
   // Notifies all delegates of a contrast level change.
   void NotifyContrastLevelObservers(bool high_contrast_enabled);
 
+  // Notifies all delegates of a cursor blink interval change.
+  void NotifyTextCursorBlinkIntervalObservers(base::TimeDelta new_interval);
+
   // Notifies all delegates to record service info histograms.
   void NotifyRecordAccessibilityServiceInfoHistogram();
 
@@ -70,6 +78,9 @@
   // Returns a vector containing the IDs of all running accessibility services.
   static std::vector<std::string> GetAccessibilityServiceIds();
 
+  // Returns the OS-level setting for the text cursor blink interval.
+  static base::TimeDelta GetTextCursorBlinkInterval();
+
   // Returns true when the user has set the OS-level setting to reduce motion.
   static bool PrefersReducedMotion();
 
diff --git a/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java b/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java
index 37f5a64d..ec9aa66f 100644
--- a/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java
+++ b/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java
@@ -26,6 +26,7 @@
 import android.os.Handler;
 import android.os.SystemClock;
 import android.provider.Settings;
+import android.view.ViewConfiguration;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
 import android.view.autofill.AutofillManager;
@@ -36,11 +37,13 @@
 import org.jni_zero.JNINamespace;
 import org.jni_zero.NativeMethods;
 
+import org.chromium.base.AconfigFlaggedApiDelegate;
 import org.chromium.base.ActivityState;
 import org.chromium.base.ApplicationState;
 import org.chromium.base.ApplicationStatus;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
+import org.chromium.base.ServiceLoaderUtil;
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.build.annotations.NullMarked;
@@ -85,6 +88,7 @@
             "Accessibility.Android.UpdateAccessibilityServices.Runtime";
     private static final int MAX_RUNTIME_BUCKET = 16 * 1000; // 16,000 microseconds = 16ms.
     private static int sPollCount;
+    private static @Nullable AconfigFlaggedApiDelegate sAconfigFlaggedApiDelegate;
 
     /** Interface for the observers of the system's accessibility state. */
     public interface Listener {
@@ -253,6 +257,7 @@
     private static boolean sDisplayInversionEnabled;
     private static boolean sHighContrastEnabled;
     private static int sFontWeightAdjustment;
+    private static int sTextCursorBlinkInterval;
     private static float sAnimatorDurationScale;
 
     // Observers for various System, Activity, and Settings states relevant to accessibility.
@@ -489,6 +494,13 @@
         return sAnimatorDurationScale;
     }
 
+    /** Returns the current TEXT_CURSOR_BLINK_INTERVAL from the users OS accessibility settings. */
+    @CalledByNative
+    public static int getTextCursorBlinkInterval() {
+        if (!sExtraStateInitialized) updateExtraState();
+        return sTextCursorBlinkInterval;
+    }
+
     /** Returns whether the user settings specify preferred reduced motion. */
     @CalledByNative
     public static boolean prefersReducedMotion() {
@@ -524,6 +536,19 @@
                         Settings.Global.ANIMATOR_DURATION_SCALE,
                         1f);
 
+        if (sAconfigFlaggedApiDelegate == null) {
+            sAconfigFlaggedApiDelegate =
+                    ServiceLoaderUtil.maybeCreate(AconfigFlaggedApiDelegate.class);
+        }
+
+        if (sAconfigFlaggedApiDelegate != null) {
+            ViewConfiguration viewConfiguration = ViewConfiguration.get(context);
+            sTextCursorBlinkInterval =
+                    sAconfigFlaggedApiDelegate.getTextCursorBlinkInterval(viewConfiguration);
+        } else {
+            sTextCursorBlinkInterval = 500;
+        }
+
         int highTextContrastEnabled =
                 Settings.Secure.getInt(
                         context.getContentResolver(),
@@ -1038,7 +1063,7 @@
         contentResolver.unregisterContentObserver(sTextContrastObserver);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
             UiModeManager uiModeManager =
-                (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
+                    (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
             if (uiModeManager != null && sContrastChangeListener != null) {
                 uiModeManager.removeContrastChangeListener(sContrastChangeListener);
             }
@@ -1053,6 +1078,7 @@
         sHighContrastEnabled = false;
         sAnimatorDurationScale = 1f;
         sAccessibilityManager = null;
+        sTextCursorBlinkInterval = 500;
     }
 
     private static void processServicesChange() {
@@ -1065,6 +1091,7 @@
         AccessibilityStateJni.get().onAnimatorDurationScaleChanged();
         AccessibilityStateJni.get().onDisplayInversionEnabledChanged(isDisplayInversionEnabled());
         AccessibilityStateJni.get().onContrastLevelChanged(isHighContrastEnabled());
+        AccessibilityStateJni.get().onTextCursorBlinkIntervalChanged(getTextCursorBlinkInterval());
     }
 
     private static class ServicesObserver extends ContentObserver {
@@ -1094,6 +1121,8 @@
 
         void onContrastLevelChanged(boolean highContrastEnabled);
 
+        void onTextCursorBlinkIntervalChanged(int textCursorBlinkInterval);
+
         void recordAccessibilityServiceInfoHistograms();
     }
 
diff --git a/ui/accessibility/extensions/highcontrast/highcontrast.ts b/ui/accessibility/extensions/highcontrast/highcontrast.ts
index dac26f7..dc15646c 100644
--- a/ui/accessibility/extensions/highcontrast/highcontrast.ts
+++ b/ui/accessibility/extensions/highcontrast/highcontrast.ts
@@ -89,6 +89,19 @@
   html[hcx="5"] video {
     filter: url("#hc_extension_yellow_on_black_back");
   }
+
+  html[hc] .docs-menubar,
+  html[hc] .docs-titlebar-buttons,
+  html[hc] .kix-appview-editor-toolbar,
+  html[hc] .goog-toolbar,
+  html[hc] header[role="banner"],
+  html[hc] [role="toolbar"] {
+    z-index: 2147483647 !important;
+    will-change: transform;
+    transform: translateZ(0);
+    contain: paint;
+    pointer-events: auto !important;
+  }
 `;
 
 /**
@@ -132,6 +145,7 @@
       right: '0px',
       bottom: '0px',
       zIndex: '-1999999999',
+      pointerEvents: 'none',
     });
     document.body.appendChild(bg);
   }
diff --git a/ui/accessibility/extensions/highcontrast/manifest.json b/ui/accessibility/extensions/highcontrast/manifest.json
index aa08a5d8..5fc500d8 100644
--- a/ui/accessibility/extensions/highcontrast/manifest.json
+++ b/ui/accessibility/extensions/highcontrast/manifest.json
@@ -1,6 +1,6 @@
 {
   "name": "__MSG_HIGHCONTRAST_APPNAME__",
-  "version": "0.9.8",
+  "version": "0.9.9",
   "description": "__MSG_HIGHCONTRAST_APPDESC__",
   "manifest_version": 3,
   "permissions": [
diff --git a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
index 8733a64f..7e19392f 100644
--- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
@@ -1385,6 +1385,9 @@
         return aconfigFlaggedApiDelegate.setKeyboardCaptureEnabled(window, hasCapture);
     }
 
+    /**
+     * Returns bounds of this window in global dp coordinates (takes display topology into account).
+     */
     @CalledByNative
     @VisibleForTesting(otherwise = PRIVATE)
     public int @Nullable [] getBoundsInScreenCoordinates() {
@@ -1401,12 +1404,11 @@
         final WindowManager wm = context.getSystemService(WindowManager.class);
         final Rect boundsPx = wm.getCurrentWindowMetrics().getBounds();
         final DisplayAndroid display = getDisplay();
+        final Rect globalBoundsDp =
+                DisplayUtil.convertLocalPxToGlobalDipCoordinates(display, boundsPx);
 
         return new int[] {
-            DisplayUtil.pxToDp(display, boundsPx.left),
-            DisplayUtil.pxToDp(display, boundsPx.top),
-            DisplayUtil.pxToDp(display, boundsPx.width()),
-            DisplayUtil.pxToDp(display, boundsPx.height())
+            globalBoundsDp.left, globalBoundsDp.top, globalBoundsDp.width(), globalBoundsDp.height()
         }; // x, y, width, height
     }
 
diff --git a/ui/android/java/src/org/chromium/ui/display/DisplayUtil.java b/ui/android/java/src/org/chromium/ui/display/DisplayUtil.java
index 05f3c738a..49bbc17d 100644
--- a/ui/android/java/src/org/chromium/ui/display/DisplayUtil.java
+++ b/ui/android/java/src/org/chromium/ui/display/DisplayUtil.java
@@ -425,6 +425,30 @@
     }
 
     /**
+     * Converts local coordinates (display and pixel coordinates relative to the origin of the
+     * display) to global dip coordinates (as in Web API spec). Rounds the resulting Rect outwards
+     * to the nearest dip.
+     *
+     * @param display Reference display of the local coordinates provided.
+     * @param localCoordinatesPx Display coordinates in pixels.
+     * @return Global coordinates in dips.
+     */
+    public static Rect convertLocalPxToGlobalDipCoordinates(
+            DisplayAndroid display, Rect localCoordinatesPx) {
+        final float displayDipScale = display.getDipScale();
+        final Rect displayBoundsGlobalCoordinatesDip = display.getBounds();
+
+        final Rect localCoordinatesDip =
+                scaleToEnclosingRect(localCoordinatesPx, 1.0f / displayDipScale);
+
+        final Rect globalCoordinatesDip = new Rect(localCoordinatesDip);
+        globalCoordinatesDip.offset(
+                displayBoundsGlobalCoordinatesDip.left, displayBoundsGlobalCoordinatesDip.top);
+
+        return globalCoordinatesDip;
+    }
+
+    /**
      * Scales a given rectangle by a specified factor and rounds the result to the smallest
      * integer-based rectangle that encloses it.
      *
diff --git a/ui/android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java b/ui/android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java
index 1a031583..29667c7 100644
--- a/ui/android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java
+++ b/ui/android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java
@@ -14,9 +14,12 @@
 import org.jni_zero.JNINamespace;
 import org.jni_zero.NativeMethods;
 
+import org.chromium.base.AconfigFlaggedApiDelegate;
 import org.chromium.base.ContextUtils;
+import org.chromium.base.ServiceLoaderUtil;
 import org.chromium.base.StrictModeContext;
 import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.ui.R;
 
 /**
@@ -32,6 +35,8 @@
     // ui/android/java/res/values/dimens.xml.
     private static final float MIN_SCALING_SPAN_MM = 12.0f;
 
+    private @Nullable AconfigFlaggedApiDelegate mAconfigFlaggedApiDelegate;
+
     private ViewConfiguration mViewConfiguration;
     private float mDensity;
 
@@ -81,7 +86,8 @@
                         getMinimumFlingVelocity(),
                         getTouchSlop(),
                         getDoubleTapSlop(),
-                        getMinScalingSpan());
+                        getMinScalingSpan(),
+                        getTextCursorBlinkInterval());
     }
 
     @CalledByNative
@@ -124,6 +130,18 @@
         return toDips(getScaledMinScalingSpan());
     }
 
+    @CalledByNative
+    private int getTextCursorBlinkInterval() {
+        if (mAconfigFlaggedApiDelegate == null) {
+            mAconfigFlaggedApiDelegate =
+                    ServiceLoaderUtil.maybeCreate(AconfigFlaggedApiDelegate.class);
+            if (mAconfigFlaggedApiDelegate == null) {
+                return AconfigFlaggedApiDelegate.DEFAULT_TEXT_CURSOR_BLINK_INTERVAL_MS;
+            }
+        }
+        return mAconfigFlaggedApiDelegate.getTextCursorBlinkInterval(mViewConfiguration);
+    }
+
     private int getScaledMinScalingSpan() {
         final Resources res = ContextUtils.getApplicationContext().getResources();
         // The correct minimum scaling span depends on how we recognize scale
@@ -163,6 +181,7 @@
                 float minimumFlingVelocity,
                 float touchSlop,
                 float doubleTapSlop,
-                float minScalingSpan);
+                float minScalingSpan,
+                int textCursorBlinkInterval);
     }
 }
diff --git a/ui/android/junit/src/org/chromium/ui/base/WindowAndroidTest.java b/ui/android/junit/src/org/chromium/ui/base/WindowAndroidTest.java
index 6bda54f3..3b1c6dd 100644
--- a/ui/android/junit/src/org/chromium/ui/base/WindowAndroidTest.java
+++ b/ui/android/junit/src/org/chromium/ui/base/WindowAndroidTest.java
@@ -135,6 +135,7 @@
 
         doReturn(boundsPx).when(mWindowMetrics).getBounds();
         doReturn(2.0f).when(mDisplay).getDipScale();
+        doReturn(new Rect(0, 0, 540, 960)).when(mDisplay).getBounds();
 
         final int[] expectedBoundsDp = new int[] {5, 10, 540, 960}; // x, y, width, height
         final int[] actualBounds = mWindowAndroid.getBoundsInScreenCoordinates();
diff --git a/ui/android/junit/src/org/chromium/ui/display/DisplayUtilTest.java b/ui/android/junit/src/org/chromium/ui/display/DisplayUtilTest.java
index cf7d549..414ea43c 100644
--- a/ui/android/junit/src/org/chromium/ui/display/DisplayUtilTest.java
+++ b/ui/android/junit/src/org/chromium/ui/display/DisplayUtilTest.java
@@ -687,4 +687,89 @@
                     DisplayUtil.convertGlobalDipToLocalPxCoordinates(globalCoordinatesDip));
         }
     }
+
+    @Test
+    public void testConvertLocalPxToGlobalDipCoordinates_fullDisplayBounds() {
+        final float displayDipScale = 1.25f;
+        final Rect displayLocalCoordinatesPx = new Rect(0, 0, 3120, 1980);
+        final Rect displayGlobalCoordinatesDp = new Rect(-960, -720, 1536, 864);
+
+        prepareDisplayAndroid(
+                displayGlobalCoordinatesDp, displayLocalCoordinatesPx, displayDipScale);
+        assertEquals(
+                "Conversion between coordinate systems failed",
+                displayGlobalCoordinatesDp,
+                DisplayUtil.convertLocalPxToGlobalDipCoordinates(
+                        mDisplayAndroid, displayLocalCoordinatesPx));
+    }
+
+    @Test
+    public void testConvertLocalPxToGlobalDipCoordinates_rounding() {
+        final float displayDipScale = 1.2f;
+        final Rect displayLocalCoordinatesPx = new Rect(0, 0, 1000, 1000);
+        final Rect displayGlobalCoordinatesDp = new Rect(0, 0, 834, 834);
+        final Rect testLocalCoordinatesPx = new Rect(1, 3, 100, 1000);
+        final Rect expectedGlobalCoordinatesDp = new Rect(0, 2, 84, 834);
+
+        prepareDisplayAndroid(
+                displayGlobalCoordinatesDp, displayLocalCoordinatesPx, displayDipScale);
+        assertEquals(
+                "Conversion between coordinate systems failed",
+                expectedGlobalCoordinatesDp,
+                DisplayUtil.convertLocalPxToGlobalDipCoordinates(
+                        mDisplayAndroid, testLocalCoordinatesPx));
+    }
+
+    @Test
+    public void testConvertLocalPxToGlobalDipCoordinates_emptyRect() {
+        final float displayDipScale = 1.3f;
+        final Rect displayLocalCoordinatesPx = new Rect(0, 0, 1000, 1000);
+        final Rect displayGlobalCoordinatesDp = new Rect(0, 0, 770, 770);
+        final Rect testLocalCoordinatesPx = new Rect(123, 456, 123, 456);
+        final Rect expectedGlobalCoordinatesDp = new Rect(94, 350, 95, 351);
+
+        prepareDisplayAndroid(
+                displayGlobalCoordinatesDp, displayLocalCoordinatesPx, displayDipScale);
+        assertEquals(
+                "Conversion between coordinate systems failed",
+                expectedGlobalCoordinatesDp,
+                DisplayUtil.convertLocalPxToGlobalDipCoordinates(
+                        mDisplayAndroid, testLocalCoordinatesPx));
+    }
+
+    @Test
+    public void testConvertLocalPxToGlobalDipCoordinates_displayOriginTranslation() {
+        final float displayDipScale = 1.75f;
+        final Rect displayLocalCoordinatesPx = new Rect(0, 0, 1000, 1000);
+        final Rect displayGlobalCoordinatesDp = new Rect(-100, -200, 472, 372);
+        final Rect testLocalCoordinatesPx = new Rect(12, 34, 567, 890);
+        final Rect expectedGlobalCoordinatesDp =
+                new Rect(-100 + 6, -200 + 19, -100 + 324, -200 + 509);
+
+        prepareDisplayAndroid(
+                displayGlobalCoordinatesDp, displayLocalCoordinatesPx, displayDipScale);
+        assertEquals(
+                "Conversion between coordinate systems failed",
+                expectedGlobalCoordinatesDp,
+                DisplayUtil.convertLocalPxToGlobalDipCoordinates(
+                        mDisplayAndroid, testLocalCoordinatesPx));
+    }
+
+    @Test
+    public void testConvertLocalPxToGlobalDipCoordinates_coordinatesNotInsideDisplay() {
+        final float displayDipScale = 0.5f;
+        final Rect displayLocalCoordinatesPx = new Rect(0, 0, 1000, 1000);
+        final Rect displayGlobalCoordinatesDp = new Rect(-500, 700, 1500, 2700);
+        final Rect testLocalCoordinatesPx = new Rect(-600, -400, -100, 1300);
+        final Rect expectedGlobalCoordinatesDp =
+                new Rect(-500 - 1200, 700 - 800, -500 - 200, 700 + 2600);
+
+        prepareDisplayAndroid(
+                displayGlobalCoordinatesDp, displayLocalCoordinatesPx, displayDipScale);
+        assertEquals(
+                "Conversion between coordinate systems failed",
+                expectedGlobalCoordinatesDp,
+                DisplayUtil.convertLocalPxToGlobalDipCoordinates(
+                        mDisplayAndroid, testLocalCoordinatesPx));
+    }
 }
diff --git a/ui/android/window_android.h b/ui/android/window_android.h
index 3b72774..5809e50 100644
--- a/ui/android/window_android.h
+++ b/ui/android/window_android.h
@@ -158,6 +158,8 @@
 
   bool SetHasKeyboardCapture(bool keyboard_capture);
 
+  // Returns bounds of this window in global dp coordinates (takes display
+  // topology into account).
   std::optional<gfx::Rect> GetBoundsInScreenCoordinates();
 
   class TestHooks {
diff --git a/ui/base/interaction/element_tracker.cc b/ui/base/interaction/element_tracker.cc
index ecfa25ce..e00d65e 100644
--- a/ui/base/interaction/element_tracker.cc
+++ b/ui/base/interaction/element_tracker.cc
@@ -11,6 +11,7 @@
 #include <sstream>
 
 #include "base/callback_list.h"
+#include "base/check.h"
 #include "base/containers/contains.h"
 #include "base/dcheck_is_on.h"
 #include "base/functional/bind.h"
@@ -188,7 +189,10 @@
 };
 
 TrackedElement::TrackedElement(ElementIdentifier id, ElementContext context)
-    : identifier_(id), context_(context) {}
+    : identifier_(id), context_(context) {
+  CHECK(id);
+  CHECK(context);
+}
 
 TrackedElement::~TrackedElement() = default;
 
@@ -275,7 +279,12 @@
 ElementTracker::Contexts ElementTracker::GetAllContextsForTesting() const {
   Contexts result;
   for (const auto& [key, data] : element_data_) {
-    result.insert(key.second);
+    const ElementContext context = key.second;
+    // The null context is used for registering "in any context" callbacks, but
+    // is not actually a valid context.
+    if (context) {
+      result.insert(context);
+    }
   }
   return result;
 }
diff --git a/ui/base/interaction/interactive_test_internal.cc b/ui/base/interaction/interactive_test_internal.cc
index aaf4edb..16e1e3c 100644
--- a/ui/base/interaction/interactive_test_internal.cc
+++ b/ui/base/interaction/interactive_test_internal.cc
@@ -121,6 +121,7 @@
 }
 
 void InteractiveTestPrivate::MaybeAddPivotElement(ElementContext context) {
+  CHECK(context) << "Attempted to run steps in an invalid (null) context.";
   if (!base::Contains(pivot_elements_, context)) {
     auto pivot =
         std::make_unique<TestElement>(kInteractiveTestPivotElementId, context);
diff --git a/ui/gfx/android/view_configuration.cc b/ui/gfx/android/view_configuration.cc
index 895f544..7f0eb4b9 100644
--- a/ui/gfx/android/view_configuration.cc
+++ b/ui/gfx/android/view_configuration.cc
@@ -19,15 +19,7 @@
 namespace {
 
 struct ViewConfigurationData {
-  ViewConfigurationData()
-      : double_tap_timeout_in_ms_(0),
-        long_press_timeout_in_ms_(0),
-        tap_timeout_in_ms_(0),
-        max_fling_velocity_in_dips_s_(0),
-        min_fling_velocity_in_dips_s_(0),
-        touch_slop_in_dips_(0),
-        double_tap_slop_in_dips_(0),
-        min_scaling_span_in_dips_(0) {
+  ViewConfigurationData() {
     JNIEnv* env = AttachCurrentThread();
     j_view_configuration_helper_.Reset(
         Java_ViewConfigurationHelper_createWithListener(env));
@@ -47,6 +39,8 @@
            Java_ViewConfigurationHelper_getDoubleTapSlop(
                env, j_view_configuration_helper_),
            Java_ViewConfigurationHelper_getMinScalingSpan(
+               env, j_view_configuration_helper_),
+           Java_ViewConfigurationHelper_getTextCursorBlinkInterval(
                env, j_view_configuration_helper_));
   }
 
@@ -59,10 +53,11 @@
                           float minimum_fling_velocity,
                           float touch_slop,
                           float double_tap_slop,
-                          float min_scaling_span) {
+                          float min_scaling_span,
+                          int text_cursor_blink_interval) {
     base::AutoLock autolock(lock_);
     Update(maximum_fling_velocity, minimum_fling_velocity, touch_slop,
-           double_tap_slop, min_scaling_span);
+           double_tap_slop, min_scaling_span, text_cursor_blink_interval);
   }
 
   int double_tap_timeout_in_ms() const { return double_tap_timeout_in_ms_; }
@@ -94,18 +89,26 @@
     return min_scaling_span_in_dips_;
   }
 
+  base::TimeDelta text_cursor_blink_interval() {
+    base::AutoLock autolock(lock_);
+    return text_cursor_blink_interval_;
+  }
+
  private:
   void Update(float maximum_fling_velocity,
               float minimum_fling_velocity,
               float touch_slop,
               float double_tap_slop,
-              float min_scaling_span) {
+              float min_scaling_span,
+              int text_cursor_blink_interval) {
     DCHECK_LE(minimum_fling_velocity, maximum_fling_velocity);
     max_fling_velocity_in_dips_s_ = maximum_fling_velocity;
     min_fling_velocity_in_dips_s_ = minimum_fling_velocity;
     touch_slop_in_dips_ = touch_slop;
     double_tap_slop_in_dips_ = double_tap_slop;
     min_scaling_span_in_dips_ = min_scaling_span;
+    text_cursor_blink_interval_ =
+        base::Milliseconds(text_cursor_blink_interval);
   }
 
   base::Lock lock_;
@@ -113,17 +116,18 @@
 
   // These values will remain constant throughout the lifetime of the app, so
   // read-access needn't be synchronized.
-  int double_tap_timeout_in_ms_;
-  int long_press_timeout_in_ms_;
-  int tap_timeout_in_ms_;
+  int double_tap_timeout_in_ms_ = 0;
+  int long_press_timeout_in_ms_ = 0;
+  int tap_timeout_in_ms_ = 0;
 
   // These values may vary as view-specific parameters change, so read/write
   // access must be synchronized.
-  int max_fling_velocity_in_dips_s_;
-  int min_fling_velocity_in_dips_s_;
-  int touch_slop_in_dips_;
-  int double_tap_slop_in_dips_;
-  int min_scaling_span_in_dips_;
+  int max_fling_velocity_in_dips_s_ = 0;
+  int min_fling_velocity_in_dips_s_ = 0;
+  int touch_slop_in_dips_ = 0;
+  int double_tap_slop_in_dips_ = 0;
+  int min_scaling_span_in_dips_ = 0;
+  base::TimeDelta text_cursor_blink_interval_ = base::Milliseconds(500);
 };
 
 ViewConfigurationData& GetViewConfigurationData() {
@@ -139,10 +143,11 @@
     jfloat minimum_fling_velocity,
     jfloat touch_slop,
     jfloat double_tap_slop,
-    jfloat min_scaling_span) {
+    jfloat min_scaling_span,
+    jint text_cursor_blink_interval) {
   GetViewConfigurationData().SynchronizedUpdate(
       maximum_fling_velocity, minimum_fling_velocity, touch_slop,
-      double_tap_slop, min_scaling_span);
+      double_tap_slop, min_scaling_span, text_cursor_blink_interval);
 }
 
 int ViewConfiguration::GetDoubleTapTimeoutInMs() {
@@ -177,4 +182,8 @@
   return GetViewConfigurationData().min_scaling_span_in_dips();
 }
 
+base::TimeDelta ViewConfiguration::GetTextCursorBlinkInterval() {
+  return GetViewConfigurationData().text_cursor_blink_interval();
+}
+
 }  // namespace gfx
diff --git a/ui/gfx/android/view_configuration.h b/ui/gfx/android/view_configuration.h
index 064e753..4852a5f 100644
--- a/ui/gfx/android/view_configuration.h
+++ b/ui/gfx/android/view_configuration.h
@@ -8,6 +8,7 @@
 #include <jni.h>
 
 #include "base/component_export.h"
+#include "base/time/time.h"
 
 namespace gfx {
 
@@ -26,6 +27,7 @@
   static int GetDoubleTapSlopInDips();
 
   static int GetMinScalingSpanInDips();
+  static base::TimeDelta GetTextCursorBlinkInterval();
 };
 
 }  // namespace gfx
diff --git a/ui/gfx/icon_util.cc b/ui/gfx/icon_util.cc
index 5eb37ad..b072d34 100644
--- a/ui/gfx/icon_util.cc
+++ b/ui/gfx/icon_util.cc
@@ -9,12 +9,15 @@
 
 #include "ui/gfx/icon_util.h"
 
+#include <windows.h>
+
 #include <algorithm>
 
 #include "base/check_op.h"
 #include "base/compiler_specific.h"
 #include "base/containers/heap_array.h"
 #include "base/containers/span.h"
+#include "base/feature_list.h"
 #include "base/files/file_util.h"
 #include "base/files/important_file_writer.h"
 #include "base/memory/ref_counted_memory.h"
@@ -32,6 +35,7 @@
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/image/image_family.h"
 #include "ui/gfx/skbitmap_operations.h"
+#include "ui/gfx/switches.h"
 
 namespace {
 
@@ -360,6 +364,23 @@
   ii.yHotspot = hotspot.y();
   ii.hbmMask = mask.get();
   ii.hbmColor = bitmap_handle.get();
+  if (base::FeatureList::IsEnabled(features::kTransparentIconWorkaround)) {
+    // Windows renders fully transparent cursors as black squares, instead of
+    // creating an invisible cursor. To avoid this, we set both the color and
+    // mask bitmaps to null, which has the same effect as creating a fully
+    // transparent cursor. See https://crbug.com/441293180
+    bool fully_transparent = true;
+    for (int y = 0; y < bitmap.height() && fully_transparent; y++) {
+      for (int x = 0; x < bitmap.width() && fully_transparent; x++) {
+        fully_transparent &=
+            SkColorGetA(bitmap.getColor(x, y)) == SK_AlphaTRANSPARENT;
+      }
+    }
+    if (fully_transparent) {
+      ii.hbmMask = nullptr;
+      ii.hbmColor = nullptr;
+    }
+  }
 
   return base::win::ScopedGDIObject<HICON>(CreateIconIndirect(&ii));
 }
diff --git a/ui/gfx/icon_util_unittest.cc b/ui/gfx/icon_util_unittest.cc
index d54599a..673239ce 100644
--- a/ui/gfx/icon_util_unittest.cc
+++ b/ui/gfx/icon_util_unittest.cc
@@ -17,6 +17,7 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/path_service.h"
+#include "base/test/scoped_feature_list.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkCanvas.h"
@@ -25,6 +26,7 @@
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/image/image_family.h"
 #include "ui/gfx/image/image_unittest_util.h"
+#include "ui/gfx/switches.h"
 
 namespace {
 
@@ -67,7 +69,7 @@
     return base::win::ScopedGDIObject<HICON>(icon);
   }
 
-  SkBitmap CreateBlackSkBitmap(int width, int height) {
+  SkBitmap CreateTransparentBlackSkBitmap(int width, int height) {
     SkBitmap bitmap;
     bitmap.allocN32Pixels(width, height);
     // Setting the pixels to transparent-black.
@@ -75,6 +77,14 @@
     return bitmap;
   }
 
+  SkBitmap CreateNonTransparentSkBitmap(int width, int height) {
+    SkBitmap bitmap;
+    bitmap.allocN32Pixels(width, height, /*isOpaque=*/true);
+    // Setting the pixels to non-transparent white.
+    memset(bitmap.getPixels(), 0xFF, width * height * 4);
+    return bitmap;
+  }
+
   // Loads an .ico file from |icon_filename| and asserts that it contains all of
   // the expected icon sizes up to and including |max_icon_size|, and no other
   // icons. If |max_icon_size| >= 256, this tests for a 256x256 PNG icon entry.
@@ -89,6 +99,10 @@
   base::ScopedTempDir temp_directory_;
 };
 
+class IconUtilTransparentCursorTest : public IconUtilTest,
+                                      public testing::WithParamInterface<bool> {
+};
+
 void IconUtilTest::CheckAllIconSizes(const base::FilePath& icon_filename,
                                      int max_icon_size) {
   ASSERT_TRUE(base::PathExists(icon_filename));
@@ -270,7 +284,8 @@
 // the returned handle is valid and refers to an icon with the expected
 // dimensions color depth etc.
 TEST_F(IconUtilTest, TestBasicCreateHICONFromSkBitmap) {
-  SkBitmap bitmap = CreateBlackSkBitmap(kSmallIconWidth, kSmallIconHeight);
+  SkBitmap bitmap =
+      CreateTransparentBlackSkBitmap(kSmallIconWidth, kSmallIconHeight);
   base::win::ScopedGDIObject<HICON> icon(
       IconUtil::CreateHICONFromSkBitmap(bitmap));
   EXPECT_TRUE(icon.is_valid());
@@ -314,26 +329,28 @@
 
   // Test with only a 16x16 icon. Should only scale up to 48x48.
   image_family.Add(gfx::Image::CreateFrom1xBitmap(
-      CreateBlackSkBitmap(kSmallIconWidth, kSmallIconHeight)));
+      CreateTransparentBlackSkBitmap(kSmallIconWidth, kSmallIconHeight)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                       icon_filename));
   CheckAllIconSizes(icon_filename, 48);
 
   // Test with a 48x48 icon. Should only scale down.
-  image_family.Add(gfx::Image::CreateFrom1xBitmap(CreateBlackSkBitmap(48, 48)));
+  image_family.Add(
+      gfx::Image::CreateFrom1xBitmap(CreateTransparentBlackSkBitmap(48, 48)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                       icon_filename));
   CheckAllIconSizes(icon_filename, 48);
 
   // Test with a 64x64 icon. Should scale up to 256x256.
-  image_family.Add(gfx::Image::CreateFrom1xBitmap(CreateBlackSkBitmap(64, 64)));
+  image_family.Add(
+      gfx::Image::CreateFrom1xBitmap(CreateTransparentBlackSkBitmap(64, 64)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                       icon_filename));
   CheckAllIconSizes(icon_filename, 256);
 
   // Test with a 256x256 icon. Should include the 256x256 in the output.
-  image_family.Add(gfx::Image::CreateFrom1xBitmap(
-      CreateBlackSkBitmap(256, 256)));
+  image_family.Add(
+      gfx::Image::CreateFrom1xBitmap(CreateTransparentBlackSkBitmap(256, 256)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                       icon_filename));
   CheckAllIconSizes(icon_filename, 256);
@@ -341,7 +358,8 @@
   // Test with a 49x49 icon. Should scale up to 256x256, but exclude the
   // original 49x49 representation from the output.
   image_family.clear();
-  image_family.Add(gfx::Image::CreateFrom1xBitmap(CreateBlackSkBitmap(49, 49)));
+  image_family.Add(
+      gfx::Image::CreateFrom1xBitmap(CreateTransparentBlackSkBitmap(49, 49)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                       icon_filename));
   CheckAllIconSizes(icon_filename, 256);
@@ -349,14 +367,16 @@
   // Test with a non-square 16x32 icon. Should scale up to 48, but exclude the
   // original 16x32 representation from the output.
   image_family.clear();
-  image_family.Add(gfx::Image::CreateFrom1xBitmap(CreateBlackSkBitmap(16, 32)));
+  image_family.Add(
+      gfx::Image::CreateFrom1xBitmap(CreateTransparentBlackSkBitmap(16, 32)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                       icon_filename));
   CheckAllIconSizes(icon_filename, 48);
 
   // Test with a non-square 32x49 icon. Should scale up to 256, but exclude the
   // original 32x49 representation from the output.
-  image_family.Add(gfx::Image::CreateFrom1xBitmap(CreateBlackSkBitmap(32, 49)));
+  image_family.Add(
+      gfx::Image::CreateFrom1xBitmap(CreateTransparentBlackSkBitmap(32, 49)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                       icon_filename));
   CheckAllIconSizes(icon_filename, 256);
@@ -365,7 +385,8 @@
   // The empty image should be ignored.
   image_family.clear();
   image_family.Add(gfx::Image());
-  image_family.Add(gfx::Image::CreateFrom1xBitmap(CreateBlackSkBitmap(16, 16)));
+  image_family.Add(
+      gfx::Image::CreateFrom1xBitmap(CreateTransparentBlackSkBitmap(16, 16)));
   ASSERT_TRUE(IconUtil::CreateIconFileFromImageFamily(image_family,
                                                        icon_filename));
   CheckAllIconSizes(icon_filename, 48);
@@ -432,3 +453,48 @@
       IconUtil::CreateSkBitmapFromHICON(icon.get(), gfx::Size(size, size));
   EXPECT_EQ(bitmap_loaded.getColor(1, 1), semi_transparent_red);
 }
+
+// This test ensures that when an custom cursor is created from an SkBitmap
+// that is not fully transparent, the returned handle is a valid HICON.
+TEST_P(IconUtilTransparentCursorTest,
+       TestCreateNonTransparentCursorFromSkBitmap) {
+  base::test::ScopedFeatureList feature_list_;
+  if (GetParam()) {
+    feature_list_.InitAndEnableFeature(features::kTransparentIconWorkaround);
+  } else {
+    feature_list_.InitAndDisableFeature(features::kTransparentIconWorkaround);
+  }
+  SkBitmap bitmap =
+      CreateNonTransparentSkBitmap(kSmallIconWidth, kSmallIconHeight);
+  base::win::ScopedGDIObject<HICON> icon(
+      IconUtil::CreateCursorFromSkBitmap(bitmap, gfx::Point()));
+  // The feature being enabled shouldn't affect non-transparent cursors.
+  EXPECT_TRUE(icon.is_valid());
+}
+
+// This test ensures that when an custom cursor is created from a fully
+// transparent SkBitmap, the returned handle is a null shape. This is a
+// workaround to an issue in Windows where fully transparent cursors are
+// rendered as black squares. Instead of creating a fully transparent
+// cursor. See https://crbug.com/441293180
+TEST_P(IconUtilTransparentCursorTest, TestCreateTransparentCursorFromSkBitmap) {
+  base::test::ScopedFeatureList feature_list_;
+  if (GetParam()) {
+    feature_list_.InitAndEnableFeature(features::kTransparentIconWorkaround);
+  } else {
+    feature_list_.InitAndDisableFeature(features::kTransparentIconWorkaround);
+  }
+  SkBitmap bitmap =
+      CreateTransparentBlackSkBitmap(kSmallIconWidth, kSmallIconHeight);
+  base::win::ScopedGDIObject<HICON> icon(
+      IconUtil::CreateCursorFromSkBitmap(bitmap, gfx::Point()));
+  // If the feature is enabled, the icon will have a nullptr mask and bitmap and
+  // will be invalid.
+  if (!GetParam()) {
+    EXPECT_TRUE(icon.is_valid());
+  } else {
+    EXPECT_FALSE(icon.is_valid());
+  }
+}
+
+INSTANTIATE_TEST_SUITE_P(All, IconUtilTransparentCursorTest, ::testing::Bool());
diff --git a/ui/gfx/platform_font.cc b/ui/gfx/platform_font.cc
index 7d5e2ff..d01a6ca 100644
--- a/ui/gfx/platform_font.cc
+++ b/ui/gfx/platform_font.cc
@@ -4,6 +4,10 @@
 
 #include "ui/gfx/platform_font.h"
 
+#include <tuple>
+
+#include "base/check.h"
+#include "third_party/skia/include/core/SkTypeface.h"
 #include "ui/gfx/font_list.h"
 
 namespace gfx {
@@ -32,4 +36,13 @@
          user_or_locale_delta;
 }
 
+std::strong_ordering PlatformFont::Compare(const PlatformFont& other) const {
+  DCHECK(GetNativeSkTypeface());
+  DCHECK(other.GetNativeSkTypeface());
+  return std::make_tuple(GetNativeSkTypeface()->uniqueID(), GetFontSize(),
+                         GetStyle()) <=>
+         std::make_tuple(other.GetNativeSkTypeface()->uniqueID(),
+                         other.GetFontSize(), other.GetStyle());
+}
+
 }  // namespace gfx
diff --git a/ui/gfx/platform_font.h b/ui/gfx/platform_font.h
index fb2e6d00..f0f6567 100644
--- a/ui/gfx/platform_font.h
+++ b/ui/gfx/platform_font.h
@@ -126,9 +126,16 @@
   // otherwise lose the handle to the correct platform font instance.
   virtual sk_sp<SkTypeface> GetNativeSkTypeface() const = 0;
 
+  std::strong_ordering operator<=>(const PlatformFont& other) const {
+    return Compare(other);
+  }
+
  protected:
   virtual ~PlatformFont() = default;
 
+  // Compares this PlatformFont with |other|.
+  virtual std::strong_ordering Compare(const PlatformFont& other) const;
+
  private:
   friend class base::RefCounted<PlatformFont>;
 };
diff --git a/ui/gfx/switches.cc b/ui/gfx/switches.cc
index d368604..419f77ec1 100644
--- a/ui/gfx/switches.cc
+++ b/ui/gfx/switches.cc
@@ -67,4 +67,10 @@
 
 BASE_FEATURE(kHdrAgtm, base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kTransparentIconWorkaround,
+#if BUILDFLAG(IS_WIN)
+             base::FEATURE_ENABLED_BY_DEFAULT);
+#else
+             base::FEATURE_DISABLED_BY_DEFAULT);
+#endif  // BUILDFLAG(IS_WIN)
 }  // namespace features
diff --git a/ui/gfx/switches.h b/ui/gfx/switches.h
index 1e30496..1f04666 100644
--- a/ui/gfx/switches.h
+++ b/ui/gfx/switches.h
@@ -34,6 +34,11 @@
 
 GFX_SWITCHES_EXPORT BASE_DECLARE_FEATURE(kHdrAgtm);
 
+// Workaround for an issue in Windows where icons with fully transparent
+// pixels are rendered as black squares. See https://crbug.com/441293180
+// Used as a killswitch in case an issue is discovered with the implementation.
+GFX_SWITCHES_EXPORT BASE_DECLARE_FEATURE(kTransparentIconWorkaround);
+
 }  // namespace features
 
 #endif  // UI_GFX_SWITCHES_H_
diff --git a/ui/native_theme/os_settings_provider_android.cc b/ui/native_theme/os_settings_provider_android.cc
index fa79d5d..64b893d 100644
--- a/ui/native_theme/os_settings_provider_android.cc
+++ b/ui/native_theme/os_settings_provider_android.cc
@@ -33,6 +33,10 @@
   return display_inversion_enabled_;
 }
 
+base::TimeDelta OsSettingsProviderAndroid::CaretBlinkInterval() const {
+  return text_cursor_blink_interval_;
+}
+
 void OsSettingsProviderAndroid::OnDisplayInversionEnabledChanged(bool enabled) {
   if (std::exchange(display_inversion_enabled_, enabled) != enabled) {
     NotifyOnSettingsChanged();
@@ -47,4 +51,12 @@
   }
 }
 
+void OsSettingsProviderAndroid::OnTextCursorBlinkIntervalChanged(
+    base::TimeDelta new_interval) {
+  if (std::exchange(text_cursor_blink_interval_, new_interval) !=
+      new_interval) {
+    NotifyOnSettingsChanged();
+  }
+}
+
 }  // namespace ui
diff --git a/ui/native_theme/os_settings_provider_android.h b/ui/native_theme/os_settings_provider_android.h
index fc698e5e..b1032e0 100644
--- a/ui/native_theme/os_settings_provider_android.h
+++ b/ui/native_theme/os_settings_provider_android.h
@@ -7,6 +7,7 @@
 
 #include "base/component_export.h"
 #include "base/scoped_observation.h"
+#include "base/time/time.h"
 #include "ui/accessibility/android/accessibility_state.h"
 #include "ui/native_theme/os_settings_provider.h"
 
@@ -26,10 +27,13 @@
   NativeTheme::PreferredContrast PreferredContrast() const override;
   bool PrefersReducedTransparency() const override;
   bool PrefersInvertedColors() const override;
+  base::TimeDelta CaretBlinkInterval() const override;
 
   // AccessibilityState::AccessibilityStateObserver:
   void OnDisplayInversionEnabledChanged(bool enabled) override;
   void OnContrastLevelChanged(bool high_contrast_enabled) override;
+  void OnTextCursorBlinkIntervalChanged(
+      base::TimeDelta new_interval) override;
 
  private:
   base::ScopedObservation<AccessibilityState,
@@ -38,6 +42,7 @@
 
   bool high_contrast_enabled_ = false;
   bool display_inversion_enabled_ = false;
+  base::TimeDelta text_cursor_blink_interval_ = kDefaultCaretBlinkInterval;
 };
 
 }  // namespace ui
diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
index a1c60e75..f6ff17a 100644
--- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc
+++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
@@ -365,9 +365,6 @@
       // API is implemented.
       properties->supports_color_picker_dialog = false;
 
-      // TODO(crbug.com/425715421): Remove this once support is implemented.
-      properties->supports_split_view_drag_and_drop = false;
-
       initialised = true;
     }
 
diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
index 02a3cec2..99ee74c 100644
--- a/ui/ozone/public/ozone_platform.h
+++ b/ui/ozone/public/ozone_platform.h
@@ -154,10 +154,6 @@
     // Whether the platform supports system/shell integrated color picker
     // dialog. An example is XDG Desktop Portal provided PickColor dialog.
     bool supports_color_picker_dialog = true;
-
-    // Whether the platform supports drag and drop as an entrypoint to create
-    // new Split Views.
-    bool supports_split_view_drag_and_drop = true;
   };
 
   // Groups platform properties that can only be known at run time.
diff --git a/ui/views/interaction/element_tracker_views_unittest.cc b/ui/views/interaction/element_tracker_views_unittest.cc
index e770ebe..af3c6c2 100644
--- a/ui/views/interaction/element_tracker_views_unittest.cc
+++ b/ui/views/interaction/element_tracker_views_unittest.cc
@@ -798,23 +798,15 @@
 }
 
 TEST_F(ElementTrackerViewsTest, GetNativeView) {
-  // A view not in a widget has no native view.
   auto button = std::make_unique<LabelButton>();
-  TrackedElementViews element_no_widget(button.get(), kTestElementID,
-                                        ui::ElementContext());
-  EXPECT_EQ(gfx::NativeView(), element_no_widget.GetNativeView());
 
   // Once added to a widget, it should have the widget's native view.
   auto* button_in_widget = widget_->SetContentsView(std::move(button));
-  EXPECT_EQ(widget_->GetNativeView(), element_no_widget.GetNativeView());
-
-  // The element returned from the tracker should also have the correct native
-  // view.
   button_in_widget->SetProperty(kElementIdentifierKey, kTestElementID);
-  TrackedElementViews* tracked_element =
+  TrackedElementViews* element =
       ElementTrackerViews::GetInstance()->GetElementForView(button_in_widget);
-  ASSERT_NE(nullptr, tracked_element);
-  EXPECT_EQ(widget_->GetNativeView(), tracked_element->GetNativeView());
+  ASSERT_NE(nullptr, element);
+  EXPECT_EQ(widget_->GetNativeView(), element->GetNativeView());
 }
 
 TEST_F(ElementTrackerViewsTest, TestElementSetAndGetNativeView) {
diff --git a/ui/views/view.cc b/ui/views/view.cc
index 9d7fe983b..b3f5d4e 100644
--- a/ui/views/view.cc
+++ b/ui/views/view.cc
@@ -55,6 +55,7 @@
 #include "ui/base/metadata/base_type_conversion.h"
 #include "ui/base/metadata/metadata_impl_macros.h"
 #include "ui/base/mojom/menu_source_type.mojom.h"
+#include "ui/base/ui_base_features.h"
 #include "ui/color/color_provider.h"
 #include "ui/compositor/clip_recorder.h"
 #include "ui/compositor/compositor.h"
@@ -2802,7 +2803,10 @@
 }
 
 PaintInfo::ScaleType View::GetPaintScaleType() const {
-  return PaintInfo::ScaleType::kScaleWithEdgeSnapping;
+  if (::features::IsPixelCanvasRecordingEnabled()) {
+    return PaintInfo::ScaleType::kScaleWithEdgeSnapping;
+  }
+  return PaintInfo::ScaleType::kUniformScaling;
 }
 
 void View::HandlePropertyChangeEffects(PropertyEffects effects) {
diff --git a/ui/views/view.h b/ui/views/view.h
index 7f70b4f6..4fada89 100644
--- a/ui/views/view.h
+++ b/ui/views/view.h
@@ -1093,6 +1093,13 @@
   // the hierarchy beneath it.
   void Paint(const PaintInfo& parent_paint_info);
 
+  // Returns the type of scaling to be done for this View. Override this to
+  // change the default scaling type from |kScaleToFit|. You would want to
+  // override this for a view and return |kScaleToScaleFactor| in cases where
+  // scaling should cause no distortion. Such as in the case of an image or
+  // an icon.
+  virtual PaintInfo::ScaleType GetPaintScaleType() const;
+
   // The background object may be null.
   void SetBackground(std::unique_ptr<Background> b);
   Background* GetBackground() const;
@@ -1921,13 +1928,6 @@
   // Override to paint a border not specified by SetBorder().
   virtual void OnPaintBorder(gfx::Canvas* canvas);
 
-  // Returns the type of scaling to be done for this View. Override this to
-  // change the default scaling type from |kScaleToFit|. You would want to
-  // override this for a view and return |kScaleToScaleFactor| in cases where
-  // scaling should cause no distortion. Such as in the case of an image or
-  // an icon.
-  virtual PaintInfo::ScaleType GetPaintScaleType() const;
-
   // Accelerated painting ------------------------------------------------------
 
   // Returns the offset from this view to the nearest ancestor with a layer. If
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc
index 01999dc..a7eb21b 100644
--- a/ui/views/view_unittest.cc
+++ b/ui/views/view_unittest.cc
@@ -2434,6 +2434,27 @@
   EXPECT_TRUE(v2->did_paint_);
 }
 
+TEST_F(ViewTest, GetPaintScaleType) {
+  View view;
+
+  // When PixelCanvasRecording is enabled, the scale type should be
+  // kScaleWithEdgeSnapping.
+  {
+    base::test::ScopedFeatureList feature_list;
+    feature_list.InitAndEnableFeature(::features::kEnablePixelCanvasRecording);
+    EXPECT_EQ(view.GetPaintScaleType(),
+              PaintInfo::ScaleType::kScaleWithEdgeSnapping);
+  }
+
+  // When PixelCanvasRecording is disabled, the scale type should return
+  // kUniformScaling.
+  {
+    base::test::ScopedFeatureList feature_list;
+    feature_list.InitAndDisableFeature(::features::kEnablePixelCanvasRecording);
+    EXPECT_EQ(view.GetPaintScaleType(), PaintInfo::ScaleType::kUniformScaling);
+  }
+}
+
 TEST_F(ViewTest, PaintInPromotedToLayer) {
   ScopedTestPaintWidget widget(CreateParams(
       Widget::InitParams::CLIENT_OWNS_WIDGET, Widget::InitParams::TYPE_POPUP));
diff --git a/ui/webui/resources/cr_components/composebox/composebox_proxy.ts b/ui/webui/resources/cr_components/composebox/composebox_proxy.ts
index d376421..c7cf51d 100644
--- a/ui/webui/resources/cr_components/composebox/composebox_proxy.ts
+++ b/ui/webui/resources/cr_components/composebox/composebox_proxy.ts
@@ -35,6 +35,8 @@
     isWeatherAnswerSuggestion: null,
     answer: null,
     tailSuggestCommonPrefix: null,
+    keywordChipHint: '',
+    keywordChipA11y: '',
   };
 }
 
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox_action.ts b/ui/webui/resources/cr_components/searchbox/searchbox_action.ts
index ef4f841..45c3d6f 100644
--- a/ui/webui/resources/cr_components/searchbox/searchbox_action.ts
+++ b/ui/webui/resources/cr_components/searchbox/searchbox_action.ts
@@ -9,8 +9,8 @@
 import {getCss} from './searchbox_action.css.js';
 import {getHtml} from './searchbox_action.html.js';
 
-// Displays an action associated with AutocompleteMatch (i.e. Clear
-// Browsing History, etc.)
+// Displays a UI chip for an `AutocompleteMatch`. E.g. for keywords ('Search
+// YouTube') or actions ('Clear browsing data').
 export class SearchboxActionElement extends CrLitElement {
   static get is() {
     return 'cr-searchbox-action';
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox_browser_proxy.ts b/ui/webui/resources/cr_components/searchbox/searchbox_browser_proxy.ts
index a9f8745..33a742d 100644
--- a/ui/webui/resources/cr_components/searchbox/searchbox_browser_proxy.ts
+++ b/ui/webui/resources/cr_components/searchbox/searchbox_browser_proxy.ts
@@ -39,6 +39,8 @@
     isWeatherAnswerSuggestion: null,
     answer: null,
     tailSuggestCommonPrefix: null,
+    keywordChipHint: '',
+    keywordChipA11y: '',
   };
 }
 
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox_match.html.ts b/ui/webui/resources/cr_components/searchbox/searchbox_match.html.ts
index ea4a2f6..2bf560d 100644
--- a/ui/webui/resources/cr_components/searchbox/searchbox_match.html.ts
+++ b/ui/webui/resources/cr_components/searchbox/searchbox_match.html.ts
@@ -26,6 +26,18 @@
     <span id="separator" class="dim">${this.separatorText_}</span>
     <span id="description" .innerHTML="${this.descriptionHtml_}"></span>
   </div>
+  <div aria-hidden="true">
+    ${this.match.keywordChipHint ? html`
+      <div id="actions-focus-border">
+        <cr-searchbox-action id="keyword"
+            hint="${this.match.keywordChipHint}"
+            icon-path="//resources/images/icon_search.svg"
+            aria-label="${this.match.keywordChipA11y}"
+            tabindex="1">
+        </cr-searchbox-action>
+      </div>
+    ` : ''}
+  </div>
   <div id="actions-container" class="actions container" aria-hidden="true">
     ${this.match.actions.map((item, index) => html`
       <div id="actions-focus-border">
@@ -35,12 +47,12 @@
             icon-path="${item.iconPath}"
             aria-label="${item.a11yLabel}"
             action-index="${index}"
-            @execute-action="${this.onExecuteAction_}" tabindex="1">
+            @execute-action="${this.onExecuteAction_}" tabindex="2">
         </cr-searchbox-action>
       </div>
     `)}
   </div>
-  <cr-icon-button id="remove" class="action-icon icon-clear" tabindex="2"
+  <cr-icon-button id="remove" class="action-icon icon-clear" tabindex="3"
       aria-label="${this.removeButtonAriaLabel_}"
       title="${this.removeButtonTitle_}"
       ?hidden="${!this.match.supportsDeletion}"
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox_match.ts b/ui/webui/resources/cr_components/searchbox/searchbox_match.ts
index 05edc2a..3054ff6 100644
--- a/ui/webui/resources/cr_components/searchbox/searchbox_match.ts
+++ b/ui/webui/resources/cr_components/searchbox/searchbox_match.ts
@@ -444,6 +444,12 @@
         selection.state !== SelectionLineState.kNormal &&
             selection.line === this.matchIndex);
 
+    this.shadowRoot.querySelector('#keyword')
+        ?.classList.toggle(
+            'selected',
+            selection.state === SelectionLineState.kKeywordMode &&
+                selection.line === this.matchIndex);
+
     [...this.shadowRoot.querySelectorAll(
          '#actions-container cr-searchbox-action')]
         .forEach((action, index) => {
diff --git a/v8 b/v8
index b164296..390bfaa 160000
--- a/v8
+++ b/v8
@@ -1 +1 @@
-Subproject commit b164296b607abfb076305350e31687d8bbcef466
+Subproject commit 390bfaaf1e224a6c3c2b7cb40410d1722ec3d16e