diff --git a/DEPS b/DEPS
index 4e0cce6..3a5ba7b 100644
--- a/DEPS
+++ b/DEPS
@@ -228,11 +228,11 @@
   # 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': 'd7437eec2e9718eda8c8f5cb94ddcef1005c0bfb',
+  'skia_revision': '6bf9189ae55401fcfaaadb8ee7bcc8103f87ddfe',
   # 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': 'd5bc1bb5517606fbd131b29cc36170c00d58da13',
+  'v8_revision': '4ca9099406f256e1582a6e7ddc17d3162d569fec',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -240,15 +240,15 @@
   # 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': 'a379730191b995d184997764db25dd686c8335ab',
+  'angle_revision': '61517a160f016bcc4922fe49255405986ccf8182',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': '44660405ea6ce02683617cc483aecc080499aa27',
+  'swiftshader_revision': 'dcfc0a6e2d8440695e44745126747e4c8aed6cf6',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': '6c8cd905587809a0ff299d1edb34fc85bed4c976',
+  'pdfium_revision': 'fdbfb3c44434f3de59d2e23a8dbfeefe52608167',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
@@ -299,7 +299,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': '4360d3a81d9d484e96562f1291f273ffadcb0a7d',
+  'catapult_revision': '61f0e50fb92a3aea539bf5c22f3708e12e90dd17',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -347,11 +347,11 @@
   # 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': 'ccc4766e76ecaf3424f6cb74aa8ccee80800464b',
+  'dawn_revision': '8975f1656de5af1044e5d15bb0a5f40d644ffe04',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'quiche_revision': 'e39688aa0c2ecbed7d2bd9a5ad10be5e2e8932fb',
+  'quiche_revision': '3a9a2464c5d09875d2214300fab53145df81ee47',
   # 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.
@@ -767,7 +767,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'lo5p1oo8yhPj2rUylGmKm2aBBQvNarY6hgj1tYbctQkC',
+          'version': 'GpWCGdjX5wF8nbSbZY5hqlRfEA-DL6lRgj-iN2tjTXIC',
       },
     ],
     'condition': 'checkout_android',
@@ -1372,7 +1372,7 @@
     Var('chromium_git') + '/external/github.com/cisco/openh264' + '@' + '3dd5b80bc4f172dd82925bb259cb7c82348409c5',
 
   'src/third_party/openscreen/src':
-    Var('chromium_git') + '/openscreen' + '@' + '0a7aefe8037a448db69f9314b360e3e10f4cab74',
+    Var('chromium_git') + '/openscreen' + '@' + 'b9be95eef079e1c04520a05a3bd057bec59b77a3',
 
   'src/third_party/openxr/src': {
     'url': Var('chromium_git') + '/external/github.com/KhronosGroup/OpenXR-SDK' + '@' + 'bf21ccb1007bb531b45d9978919a56ea5059c245',
@@ -1389,7 +1389,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '70e408c9bc8610ab9a8484b2ed91461d8416166e',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '171e281775914c1c427b926666bf1c0f8070e762',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1478,7 +1478,7 @@
       'packages': [
           {
               'package': 'fuchsia/third_party/aemu/linux-amd64',
-              'version': 'pmyID7CW-4NsGYefh7NnE4xj3AbHD5lu9r5GLO3rzMYC'
+              'version': 'DxCnfY154Xn-UYrZ-GF8FewyGfo29cYHkKdDMgpEHJkC'
           },
       ],
       'condition': 'host_os == "linux" and checkout_fuchsia',
@@ -1618,10 +1618,10 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '827cad9e402b63bbe38787456115bcb681a8a152',
 
   'src/third_party/webgpu-cts/src':
-    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'c53abb766db4f9a1369b084b985319379b74f1b7',
+    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '6881e0cd401986aa80bdbf132ca4ab434bc1d7d7',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '53adc7b1c8b200bd3227fb06157a56bff09471bb',
+    Var('webrtc_git') + '/src.git' + '@' + 'bdf35afa3992d8208a1744d64559225d56718fe7',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1682,7 +1682,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@0373519cba23d48901497d77251cb5f7e9df5cfa',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@499fb7ba4c37e93cf8cbe4c1ade18d38e926578c',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/WATCHLISTS b/WATCHLISTS
index d2757f7..7be716f 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -90,6 +90,9 @@
       'filepath': 'chrome/android/java/src/org/chromium/chrome/browser/toolbar/' \
                   '|chrome/browser/ui/android/toolbar/'
     },
+    'android_toolbar_deps': {
+      'filepath': 'chrome/android/java/src/org/chromium/chrome/browser/toolbar/DEPS'
+    },
     'android_uma_settings': {
       'filepath': 'chrome/android/java/src/org/chromium/chrome/browser/settings/privacy/PrivacyPreferencesManager.java|'\
                   'chrome/android/java/src/org/chromium/chrome/browser/settings/privacy/PrivacyPreferences.java|'\
@@ -2115,8 +2118,8 @@
     'android_studio': ['wnwen+watch@chromium.org',
                        'nyquist+watch@chromium.org'],
     'android_tab': ['dtrainor+watch@chromium.org'],
-    'android_toolbar': ['jinsukkim+watch@chromium.org',
-                        'hanxi+watch@chromium.org'],
+    'android_toolbar': ['hanxi+watch@chromium.org'],
+    'android_toolbar_deps': ['jinsukkim+watch@chromium.org'],
     'android_uma_settings': ['asvitkine+watch@chromium.org',
                              'gayane+watch@chromium.org'],
     'android_webapk': ['dominickn+watch-webapk@chromium.org',
diff --git a/android_webview/test/BUILD.gn b/android_webview/test/BUILD.gn
index 6700b18..28b5c56b 100644
--- a/android_webview/test/BUILD.gn
+++ b/android_webview/test/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//android_webview/system_webview_apk_tmpl.gni")
 import("//android_webview/variables.gni")
 import("//build/config/android/rules.gni")
 import("//build/config/python.gni")
@@ -27,6 +28,18 @@
   data = [ "//android_webview/tools/cts_config/" ]
 }
 
+script_test("crx_smoke_tests") {
+  script =
+      "//android_webview/test/components/run_webview_component_smoketest.py"
+  run_under_python2 = true
+  args = [ "--webview-package-name=$system_webview_package_name" ]
+  data = [ "//android_webview/test/components/crx_smoke_tests.py" ]
+  data_deps = [
+    "//android_webview:system_webview_apk",
+    "//android_webview/tools/system_webview_shell:system_webview_shell_apk",
+  ]
+}
+
 script_test("system_webview_wpt") {
   script = "//testing/scripts/run_android_wpt.py"
   args = [
diff --git a/android_webview/test/components/crx_smoke_tests.py b/android_webview/test/components/crx_smoke_tests.py
new file mode 100644
index 0000000..3484aa2
--- /dev/null
+++ b/android_webview/test/components/crx_smoke_tests.py
@@ -0,0 +1,161 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import json
+import logging
+import os
+import posixpath
+import sys
+import time
+import zipfile
+
+from collections import namedtuple
+from py_utils.tempfile_ext import NamedTemporaryDirectory
+from telemetry.testing import serially_executed_browser_test_case
+
+logger = logging.getLogger(__name__)
+ComponentData = namedtuple('ComponentData', ['component_id', 'browser_args'])
+_SET_CONDITION_HTML = """
+var test_harness = {}
+test_harness.test_succeeded = true;
+window.webview_smoke_test_harness = test_harness;
+"""
+_COMPONENT_NAME_TO_DATA = {
+  'WebViewAppsPackageNamesAllowlist': ComponentData(
+      component_id = 'aemllinfpjdgcldgaelcgakpjmaekbai',
+      browser_args = [
+          '--enable-features=WebViewAppsPackageNamesAllowlist',
+          '--vmodule=*_allowlist_component_*=2'])
+}
+
+class WebViewCrxSmokeTests(
+    serially_executed_browser_test_case.SeriallyExecutedBrowserTestCase):
+
+  _device = None
+  _device_components_dir = None
+
+  @classmethod
+  def Name(cls):
+    return 'webview_crx_smoke_tests'
+
+  @classmethod
+  def SetBrowserOptions(cls, finder_options):
+    """Sets browser command line arguments
+
+    Args:
+      finder_options: Command line arguments for starting the browser"""
+    finder_options_copy = finder_options.Copy()
+    finder_options_copy.browser_options.AppendExtraBrowserArgs(
+        _COMPONENT_NAME_TO_DATA[finder_options.component_name].browser_args)
+
+    super(WebViewCrxSmokeTests, cls).SetBrowserOptions(finder_options_copy)
+    cls._device = cls._browser_to_create._platform_backend.device
+
+  @classmethod
+  def StartBrowser(cls):
+    """Start browser and wait for it's pid to appear in the processes list"""
+    super(WebViewCrxSmokeTests, cls).StartBrowser()
+
+    # Wait until the browser is up and running
+    for _ in range(60):
+      logger.info('Waiting 1 second for the browser to start running')
+      time.sleep(1)
+      if cls.browser._browser_backend.processes:
+        break
+
+    assert cls.browser._browser_backend.processes, 'Browser did not start'
+    logger.info('Browser is running')
+
+  @classmethod
+  def SetUpProcess(cls):
+    """Prepares the test device"""
+    super(WebViewCrxSmokeTests, cls).SetUpProcess()
+    assert cls._finder_options.crx_file, '--crx-file is required'
+    assert cls._finder_options.component_name, '--component-name is required'
+    assert cls._finder_options.webview_package_name, (
+        '--webview-package-name is required')
+
+    cls._device_components_dir = ('/data/data/%s/app_webview/components' %
+                                  cls._finder_options.webview_package_name)
+    cls.SetBrowserOptions(cls._finder_options)
+    cls._MaybeClearOutComponentsDir()
+    component_id = _COMPONENT_NAME_TO_DATA.get(
+        cls._finder_options.component_name).component_id
+    with zipfile.ZipFile(cls._finder_options.crx_file) as crx_archive, \
+        NamedTemporaryDirectory() as tmp_dir,                          \
+        crx_archive.open('manifest.json') as manifest:
+      crx_device_dir = posixpath.join(
+          cls._device_components_dir, 'cps',
+          component_id, '1_%s' % json.loads(manifest.read())['version'])
+
+      try:
+        # Create directory on the test device for the CRX files
+        logger.info('Creating directory %r on device' % crx_device_dir)
+        output = cls._device.RunShellCommand(
+            ['mkdir', '-p', crx_device_dir])
+        logger.debug('Recieved the following output from adb: %s' % output)
+      except Exception as e:
+        logger.exception('Exception %r was raised' % str(e))
+        raise
+
+      # Move CRX files to the device directory
+      crx_archive.extractall(tmp_dir)
+      cls._MoveNewCrxToDevice(tmp_dir, crx_device_dir)
+
+    # Start the browser after the device is in a clean state and the CRX
+    # files are loaded onto the device
+    cls.StartBrowser()
+
+  @classmethod
+  def _MoveNewCrxToDevice(cls, src_dir, crx_device_dir):
+    """Pushes the CRX files onto the test device
+
+    Args:
+      src_dir: Source directory containing CRX files
+      crx_device_dir: Destination directory for CRX files on the test device"""
+
+    for f in os.listdir(src_dir):
+      src_path = os.path.join(src_dir, f)
+      dest_path = posixpath.join(crx_device_dir, f)
+      assert os.path.isfile(src_path), '%r is not a file' % src_path
+      logger.info('Pushing %r to %r' % (src_path, dest_path))
+      cls._device.adb.Push(src_path, dest_path)
+
+  @classmethod
+  def _MaybeClearOutComponentsDir(cls):
+    """Clears out CRX files on test device so that
+    the test starts with a clean state """
+    try:
+      output = cls._device.RemovePath(cls._device_components_dir,
+                                      recursive=True,
+                                      force=True)
+      logger.debug('Recieved the following output from adb: %s' % output)
+    except Exception as e:
+      logger.exception('Exception %r was raised' % str(e))
+      raise
+
+  @classmethod
+  def AddCommandlineArgs(cls, parser):
+    """Adds test suite specific command line arguments"""
+    parser.add_option('--crx-file', action='store', help='Path to CRX file')
+    parser.add_option('--component-name', action='store', help='Component name',
+                      choices=_COMPONENT_NAME_TO_DATA.keys())
+    parser.add_option('--webview-package-name', action='store',
+                      help='WebView package name')
+
+  def Test_run_webview_smoke_test(self):
+    """Test waits for a javascript condition to be set on the WebView shell"""
+    browser_tab = self.browser.tabs[0]
+    browser_tab.action_runner.Navigate(
+        'about:blank', script_to_evaluate_on_commit=_SET_CONDITION_HTML)
+
+    # Wait 5 minutes for the javascript condition. If the condition is not
+    # set within 5 minutes then an exception will be raised which will cause
+    # the test to fail.
+    browser_tab.action_runner.WaitForJavaScriptCondition(
+        'window.webview_smoke_test_harness.test_succeeded', timeout=300)
+
+
+def load_tests(*_):
+  return serially_executed_browser_test_case.LoadAllTestsInModule(sys.modules[__name__])
diff --git a/android_webview/test/components/run_webview_component_smoketest.py b/android_webview/test/components/run_webview_component_smoketest.py
new file mode 100755
index 0000000..f4b8675f
--- /dev/null
+++ b/android_webview/test/components/run_webview_component_smoketest.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env vpython
+
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+""" Runs component smoketests for WebView """
+
+import argparse
+import os
+import sys
+
+SRC_DIR = os.path.join(os.path.dirname(__file__),
+                       os.pardir,
+                       os.pardir,
+                       os.pardir)
+PERF_DIR = os.path.join(SRC_DIR, 'tools', 'perf')
+PY_UTILS_DIR = os.path.join(
+    SRC_DIR, 'third_party', 'catapult', 'common', 'py_utils')
+
+if PERF_DIR not in sys.path:
+  sys.path.append(PERF_DIR)
+
+if PY_UTILS_DIR not in sys.path:
+  sys.path.append(PY_UTILS_DIR)
+
+from chrome_telemetry_build import chromium_config
+from core import path_util
+
+path_util.AddTelemetryToPath()
+
+from telemetry.testing import browser_test_runner
+
+def main(args):
+  config = chromium_config.ChromiumConfig(
+      top_level_dir=os.path.dirname(__file__),
+      benchmark_dirs=[os.path.dirname(__file__)])
+  return browser_test_runner.Run(config, args)
+
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv[1:]))
diff --git a/android_webview/test/components/run_webview_component_smoketest.pydeps b/android_webview/test/components/run_webview_component_smoketest.pydeps
new file mode 100644
index 0000000..82f68b7
--- /dev/null
+++ b/android_webview/test/components/run_webview_component_smoketest.pydeps
@@ -0,0 +1,361 @@
+# Generated by running:
+#   build/print_python_deps.py --output android_webview/test/components/run_webview_component_smoketest.pydeps --gn-paths android_webview/test/components/run_webview_component_smoketest.py
+//android_webview/test/components/run_webview_component_smoketest.py
+//build/android/pylib/__init__.py
+//build/android/pylib/constants/__init__.py
+//build/android/pylib/constants/host_paths.py
+//components/variations/service/generate_ui_string_overrider.py
+//third_party/catapult/common/py_trace_event/py_trace_event/__init__.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/__init__.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/log.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/multiprocessing_shim.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_trace_writer.py
+//third_party/catapult/common/py_trace_event/py_trace_event/trace_time.py
+//third_party/catapult/common/py_trace_event/third_party/protobuf/encoder.py
+//third_party/catapult/common/py_trace_event/third_party/protobuf/wire_format.py
+//third_party/catapult/common/py_utils/py_utils/__init__.py
+//third_party/catapult/common/py_utils/py_utils/atexit_with_log.py
+//third_party/catapult/common/py_utils/py_utils/binary_manager.py
+//third_party/catapult/common/py_utils/py_utils/camel_case.py
+//third_party/catapult/common/py_utils/py_utils/cloud_storage.py
+//third_party/catapult/common/py_utils/py_utils/cloud_storage_global_lock.py
+//third_party/catapult/common/py_utils/py_utils/constants/__init__.py
+//third_party/catapult/common/py_utils/py_utils/constants/exit_codes.py
+//third_party/catapult/common/py_utils/py_utils/dependency_util.py
+//third_party/catapult/common/py_utils/py_utils/discover.py
+//third_party/catapult/common/py_utils/py_utils/exc_util.py
+//third_party/catapult/common/py_utils/py_utils/file_util.py
+//third_party/catapult/common/py_utils/py_utils/lock.py
+//third_party/catapult/common/py_utils/py_utils/logging_util.py
+//third_party/catapult/common/py_utils/py_utils/modules_util.py
+//third_party/catapult/common/py_utils/py_utils/retry_util.py
+//third_party/catapult/common/py_utils/py_utils/tempfile_ext.py
+//third_party/catapult/common/py_utils/py_utils/ts_proxy_server.py
+//third_party/catapult/common/py_utils/py_utils/webpagereplay_go_server.py
+//third_party/catapult/dependency_manager/dependency_manager/__init__.py
+//third_party/catapult/dependency_manager/dependency_manager/archive_info.py
+//third_party/catapult/dependency_manager/dependency_manager/base_config.py
+//third_party/catapult/dependency_manager/dependency_manager/cloud_storage_info.py
+//third_party/catapult/dependency_manager/dependency_manager/dependency_info.py
+//third_party/catapult/dependency_manager/dependency_manager/dependency_manager_util.py
+//third_party/catapult/dependency_manager/dependency_manager/exceptions.py
+//third_party/catapult/dependency_manager/dependency_manager/local_path_info.py
+//third_party/catapult/dependency_manager/dependency_manager/manager.py
+//third_party/catapult/dependency_manager/dependency_manager/uploader.py
+//third_party/catapult/devil/devil/__init__.py
+//third_party/catapult/devil/devil/android/__init__.py
+//third_party/catapult/devil/devil/android/apk_helper.py
+//third_party/catapult/devil/devil/android/app_ui.py
+//third_party/catapult/devil/devil/android/battery_utils.py
+//third_party/catapult/devil/devil/android/constants/__init__.py
+//third_party/catapult/devil/devil/android/constants/chrome.py
+//third_party/catapult/devil/devil/android/constants/file_system.py
+//third_party/catapult/devil/devil/android/cpu_temperature.py
+//third_party/catapult/devil/devil/android/crash_handler.py
+//third_party/catapult/devil/devil/android/decorators.py
+//third_party/catapult/devil/devil/android/device_denylist.py
+//third_party/catapult/devil/devil/android/device_errors.py
+//third_party/catapult/devil/devil/android/device_signal.py
+//third_party/catapult/devil/devil/android/device_temp_file.py
+//third_party/catapult/devil/devil/android/device_utils.py
+//third_party/catapult/devil/devil/android/flag_changer.py
+//third_party/catapult/devil/devil/android/forwarder.py
+//third_party/catapult/devil/devil/android/install_commands.py
+//third_party/catapult/devil/devil/android/logcat_monitor.py
+//third_party/catapult/devil/devil/android/md5sum.py
+//third_party/catapult/devil/devil/android/ndk/__init__.py
+//third_party/catapult/devil/devil/android/ndk/abis.py
+//third_party/catapult/devil/devil/android/perf/__init__.py
+//third_party/catapult/devil/devil/android/perf/cache_control.py
+//third_party/catapult/devil/devil/android/perf/perf_control.py
+//third_party/catapult/devil/devil/android/perf/surface_stats_collector.py
+//third_party/catapult/devil/devil/android/perf/thermal_throttle.py
+//third_party/catapult/devil/devil/android/sdk/__init__.py
+//third_party/catapult/devil/devil/android/sdk/aapt.py
+//third_party/catapult/devil/devil/android/sdk/adb_wrapper.py
+//third_party/catapult/devil/devil/android/sdk/build_tools.py
+//third_party/catapult/devil/devil/android/sdk/bundletool.py
+//third_party/catapult/devil/devil/android/sdk/intent.py
+//third_party/catapult/devil/devil/android/sdk/keyevent.py
+//third_party/catapult/devil/devil/android/sdk/shared_prefs.py
+//third_party/catapult/devil/devil/android/sdk/split_select.py
+//third_party/catapult/devil/devil/android/sdk/version_codes.py
+//third_party/catapult/devil/devil/android/settings.py
+//third_party/catapult/devil/devil/android/tools/__init__.py
+//third_party/catapult/devil/devil/android/tools/provision_devices.py
+//third_party/catapult/devil/devil/android/tools/script_common.py
+//third_party/catapult/devil/devil/android/tools/system_app.py
+//third_party/catapult/devil/devil/android/tools/video_recorder.py
+//third_party/catapult/devil/devil/android/valgrind_tools/__init__.py
+//third_party/catapult/devil/devil/android/valgrind_tools/base_tool.py
+//third_party/catapult/devil/devil/base_error.py
+//third_party/catapult/devil/devil/constants/__init__.py
+//third_party/catapult/devil/devil/constants/exit_codes.py
+//third_party/catapult/devil/devil/devil_env.py
+//third_party/catapult/devil/devil/utils/__init__.py
+//third_party/catapult/devil/devil/utils/cmd_helper.py
+//third_party/catapult/devil/devil/utils/geometry.py
+//third_party/catapult/devil/devil/utils/host_utils.py
+//third_party/catapult/devil/devil/utils/lazy/__init__.py
+//third_party/catapult/devil/devil/utils/lazy/weak_constant.py
+//third_party/catapult/devil/devil/utils/logging_common.py
+//third_party/catapult/devil/devil/utils/lsusb.py
+//third_party/catapult/devil/devil/utils/parallelizer.py
+//third_party/catapult/devil/devil/utils/reraiser_thread.py
+//third_party/catapult/devil/devil/utils/reset_usb.py
+//third_party/catapult/devil/devil/utils/run_tests_helper.py
+//third_party/catapult/devil/devil/utils/timeout_retry.py
+//third_party/catapult/devil/devil/utils/watchdog_timer.py
+//third_party/catapult/devil/devil/utils/zip_utils.py
+//third_party/catapult/systrace/systrace/__init__.py
+//third_party/catapult/systrace/systrace/trace_result.py
+//third_party/catapult/systrace/systrace/tracing_agents/__init__.py
+//third_party/catapult/systrace/systrace/tracing_agents/atrace_agent.py
+//third_party/catapult/systrace/systrace/util.py
+//third_party/catapult/telemetry/telemetry/__init__.py
+//third_party/catapult/telemetry/telemetry/benchmark.py
+//third_party/catapult/telemetry/telemetry/compat_mode_options.py
+//third_party/catapult/telemetry/telemetry/core/__init__.py
+//third_party/catapult/telemetry/telemetry/core/android_action_runner.py
+//third_party/catapult/telemetry/telemetry/core/android_platform.py
+//third_party/catapult/telemetry/telemetry/core/cros_interface.py
+//third_party/catapult/telemetry/telemetry/core/debug_data.py
+//third_party/catapult/telemetry/telemetry/core/exceptions.py
+//third_party/catapult/telemetry/telemetry/core/fuchsia_interface.py
+//third_party/catapult/telemetry/telemetry/core/local_server.py
+//third_party/catapult/telemetry/telemetry/core/memory_cache_http_server.py
+//third_party/catapult/telemetry/telemetry/core/network_controller.py
+//third_party/catapult/telemetry/telemetry/core/os_version.py
+//third_party/catapult/telemetry/telemetry/core/platform.py
+//third_party/catapult/telemetry/telemetry/core/tracing_controller.py
+//third_party/catapult/telemetry/telemetry/core/util.py
+//third_party/catapult/telemetry/telemetry/decorators.py
+//third_party/catapult/telemetry/telemetry/internal/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/actions/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/actions/action_runner.py
+//third_party/catapult/telemetry/telemetry/internal/actions/drag.py
+//third_party/catapult/telemetry/telemetry/internal/actions/javascript_click.py
+//third_party/catapult/telemetry/telemetry/internal/actions/key_event.py
+//third_party/catapult/telemetry/telemetry/internal/actions/load_media.py
+//third_party/catapult/telemetry/telemetry/internal/actions/media_action.py
+//third_party/catapult/telemetry/telemetry/internal/actions/mouse_click.py
+//third_party/catapult/telemetry/telemetry/internal/actions/navigate.py
+//third_party/catapult/telemetry/telemetry/internal/actions/page_action.py
+//third_party/catapult/telemetry/telemetry/internal/actions/pinch.py
+//third_party/catapult/telemetry/telemetry/internal/actions/play.py
+//third_party/catapult/telemetry/telemetry/internal/actions/repaint_continuously.py
+//third_party/catapult/telemetry/telemetry/internal/actions/repeatable_scroll.py
+//third_party/catapult/telemetry/telemetry/internal/actions/scroll.py
+//third_party/catapult/telemetry/telemetry/internal/actions/scroll_bounce.py
+//third_party/catapult/telemetry/telemetry/internal/actions/scroll_to_element.py
+//third_party/catapult/telemetry/telemetry/internal/actions/seek.py
+//third_party/catapult/telemetry/telemetry/internal/actions/swipe.py
+//third_party/catapult/telemetry/telemetry/internal/actions/tap.py
+//third_party/catapult/telemetry/telemetry/internal/actions/utils.py
+//third_party/catapult/telemetry/telemetry/internal/actions/wait.py
+//third_party/catapult/telemetry/telemetry/internal/app/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/app/android_app.py
+//third_party/catapult/telemetry/telemetry/internal/app/possible_app.py
+//third_party/catapult/telemetry/telemetry/internal/backends/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/backends/android_app_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/android_browser_backend_settings.py
+//third_party/catapult/telemetry/telemetry/internal/backends/app_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/browser_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/android_browser_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/android_browser_finder.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/android_minidump_symbolizer.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/chrome_browser_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/chrome_startup_args.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/cros_browser_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/cros_browser_finder.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/cros_browser_with_oobe.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/cros_minidump_symbolizer.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/crx_id.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/desktop_browser_finder.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/desktop_minidump_symbolizer.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/extension_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/fuchsia_browser_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/fuchsia_browser_finder.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/gpu_compositing_checker.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/lacros_browser_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/minidump_finder.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/minidump_symbolizer.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/misc_web_contents_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/oobe.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome/tab_list_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/devtools_client_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/devtools_http.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_backend_list.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_console.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_log.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_memory.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_page.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_runtime.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_serviceworker.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_storage.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_websocket.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/memory_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/system_info_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/tracing_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/ui_devtools_client_backend.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/websocket.py
+//third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/window_manager_backend.py
+//third_party/catapult/telemetry/telemetry/internal/browser/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/browser/browser.py
+//third_party/catapult/telemetry/telemetry/internal/browser/browser_finder.py
+//third_party/catapult/telemetry/telemetry/internal/browser/browser_finder_exceptions.py
+//third_party/catapult/telemetry/telemetry/internal/browser/browser_info.py
+//third_party/catapult/telemetry/telemetry/internal/browser/browser_interval_profiling_controller.py
+//third_party/catapult/telemetry/telemetry/internal/browser/extension_dict.py
+//third_party/catapult/telemetry/telemetry/internal/browser/extension_page.py
+//third_party/catapult/telemetry/telemetry/internal/browser/extension_to_load.py
+//third_party/catapult/telemetry/telemetry/internal/browser/possible_browser.py
+//third_party/catapult/telemetry/telemetry/internal/browser/tab.py
+//third_party/catapult/telemetry/telemetry/internal/browser/tab_list.py
+//third_party/catapult/telemetry/telemetry/internal/browser/ui_devtools.py
+//third_party/catapult/telemetry/telemetry/internal/browser/user_agent.py
+//third_party/catapult/telemetry/telemetry/internal/browser/web_contents.py
+//third_party/catapult/telemetry/telemetry/internal/forwarders/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/forwarders/android_forwarder.py
+//third_party/catapult/telemetry/telemetry/internal/forwarders/do_nothing_forwarder.py
+//third_party/catapult/telemetry/telemetry/internal/forwarders/forwarder_utils.py
+//third_party/catapult/telemetry/telemetry/internal/forwarders/fuchsia_forwarder.py
+//third_party/catapult/telemetry/telemetry/internal/image_processing/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/image_processing/image_util_numpy_impl.py
+//third_party/catapult/telemetry/telemetry/internal/platform/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/platform/android_device.py
+//third_party/catapult/telemetry/telemetry/internal/platform/android_platform_backend.py
+//third_party/catapult/telemetry/telemetry/internal/platform/cros_device.py
+//third_party/catapult/telemetry/telemetry/internal/platform/desktop_device.py
+//third_party/catapult/telemetry/telemetry/internal/platform/device.py
+//third_party/catapult/telemetry/telemetry/internal/platform/device_finder.py
+//third_party/catapult/telemetry/telemetry/internal/platform/fuchsia_device.py
+//third_party/catapult/telemetry/telemetry/internal/platform/fuchsia_platform_backend.py
+//third_party/catapult/telemetry/telemetry/internal/platform/gpu_device.py
+//third_party/catapult/telemetry/telemetry/internal/platform/gpu_info.py
+//third_party/catapult/telemetry/telemetry/internal/platform/linux_based_platform_backend.py
+//third_party/catapult/telemetry/telemetry/internal/platform/network_controller_backend.py
+//third_party/catapult/telemetry/telemetry/internal/platform/platform_backend.py
+//third_party/catapult/telemetry/telemetry/internal/platform/system_info.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/atrace_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/chrome_report_events_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/chrome_return_as_stream_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/chrome_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/chrome_tracing_devtools_manager.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/cpu_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/display_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/perfetto_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_agent/telemetry_tracing_agent.py
+//third_party/catapult/telemetry/telemetry/internal/platform/tracing_controller_backend.py
+//third_party/catapult/telemetry/telemetry/internal/results/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/results/artifact_compatibility_wrapper.py
+//third_party/catapult/telemetry/telemetry/internal/results/artifact_logger.py
+//third_party/catapult/telemetry/telemetry/internal/results/gtest_progress_reporter.py
+//third_party/catapult/telemetry/telemetry/internal/results/page_test_results.py
+//third_party/catapult/telemetry/telemetry/internal/results/results_options.py
+//third_party/catapult/telemetry/telemetry/internal/results/story_run.py
+//third_party/catapult/telemetry/telemetry/internal/story_runner.py
+//third_party/catapult/telemetry/telemetry/internal/util/__init__.py
+//third_party/catapult/telemetry/telemetry/internal/util/binary_manager.py
+//third_party/catapult/telemetry/telemetry/internal/util/command_line.py
+//third_party/catapult/telemetry/telemetry/internal/util/exception_formatter.py
+//third_party/catapult/telemetry/telemetry/internal/util/external_modules.py
+//third_party/catapult/telemetry/telemetry/internal/util/file_handle.py
+//third_party/catapult/telemetry/telemetry/internal/util/format_for_logging.py
+//third_party/catapult/telemetry/telemetry/internal/util/global_hooks.py
+//third_party/catapult/telemetry/telemetry/internal/util/local_first_binary_manager.py
+//third_party/catapult/telemetry/telemetry/internal/util/path.py
+//third_party/catapult/telemetry/telemetry/internal/util/ts_proxy_server.py
+//third_party/catapult/telemetry/telemetry/internal/util/webpagereplay_go_server.py
+//third_party/catapult/telemetry/telemetry/page/__init__.py
+//third_party/catapult/telemetry/telemetry/page/cache_temperature.py
+//third_party/catapult/telemetry/telemetry/page/legacy_page_test.py
+//third_party/catapult/telemetry/telemetry/page/shared_page_state.py
+//third_party/catapult/telemetry/telemetry/page/traffic_setting.py
+//third_party/catapult/telemetry/telemetry/project_config.py
+//third_party/catapult/telemetry/telemetry/story/__init__.py
+//third_party/catapult/telemetry/telemetry/story/expectations.py
+//third_party/catapult/telemetry/telemetry/story/shared_state.py
+//third_party/catapult/telemetry/telemetry/story/story.py
+//third_party/catapult/telemetry/telemetry/story/story_filter.py
+//third_party/catapult/telemetry/telemetry/story/story_set.py
+//third_party/catapult/telemetry/telemetry/story/typ_expectations.py
+//third_party/catapult/telemetry/telemetry/testing/__init__.py
+//third_party/catapult/telemetry/telemetry/testing/browser_test_runner.py
+//third_party/catapult/telemetry/telemetry/testing/test_utils.py
+//third_party/catapult/telemetry/telemetry/timeline/__init__.py
+//third_party/catapult/telemetry/telemetry/timeline/atrace_config.py
+//third_party/catapult/telemetry/telemetry/timeline/chrome_trace_category_filter.py
+//third_party/catapult/telemetry/telemetry/timeline/chrome_trace_config.py
+//third_party/catapult/telemetry/telemetry/timeline/system_trace_config.py
+//third_party/catapult/telemetry/telemetry/timeline/tracing_config.py
+//third_party/catapult/telemetry/telemetry/util/__init__.py
+//third_party/catapult/telemetry/telemetry/util/cmd_util.py
+//third_party/catapult/telemetry/telemetry/util/color_histogram.py
+//third_party/catapult/telemetry/telemetry/util/image_util.py
+//third_party/catapult/telemetry/telemetry/util/js_template.py
+//third_party/catapult/telemetry/telemetry/util/rgba_color.py
+//third_party/catapult/telemetry/telemetry/util/screenshot.py
+//third_party/catapult/telemetry/telemetry/util/statistics.py
+//third_party/catapult/telemetry/telemetry/util/wpr_modes.py
+//third_party/catapult/telemetry/telemetry/web_perf/__init__.py
+//third_party/catapult/telemetry/telemetry/web_perf/story_test.py
+//third_party/catapult/telemetry/telemetry/web_perf/timeline_based_measurement.py
+//third_party/catapult/telemetry/telemetry/web_perf/timeline_interaction_record.py
+//third_party/catapult/telemetry/telemetry/wpr/__init__.py
+//third_party/catapult/telemetry/telemetry/wpr/archive_info.py
+//third_party/catapult/telemetry/third_party/png/png.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/__init__.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_abnf.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_app.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_core.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_exceptions.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_handshake.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_http.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_logging.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_socket.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_ssl_compat.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_url.py
+//third_party/catapult/telemetry/third_party/websocket-client/websocket/_utils.py
+//third_party/catapult/third_party/typ/typ/__init__.py
+//third_party/catapult/third_party/typ/typ/arg_parser.py
+//third_party/catapult/third_party/typ/typ/artifacts.py
+//third_party/catapult/third_party/typ/typ/expectations_parser.py
+//third_party/catapult/third_party/typ/typ/fakes/__init__.py
+//third_party/catapult/third_party/typ/typ/fakes/host_fake.py
+//third_party/catapult/third_party/typ/typ/host.py
+//third_party/catapult/third_party/typ/typ/json_results.py
+//third_party/catapult/third_party/typ/typ/pool.py
+//third_party/catapult/third_party/typ/typ/printer.py
+//third_party/catapult/third_party/typ/typ/python_2_3_compat.py
+//third_party/catapult/third_party/typ/typ/result_sink.py
+//third_party/catapult/third_party/typ/typ/runner.py
+//third_party/catapult/third_party/typ/typ/stats.py
+//third_party/catapult/third_party/typ/typ/test_case.py
+//third_party/catapult/third_party/typ/typ/version.py
+//third_party/catapult/tracing/tracing/__init__.py
+//third_party/catapult/tracing/tracing/trace_data/__init__.py
+//third_party/catapult/tracing/tracing/trace_data/trace_data.py
+//third_party/catapult/tracing/tracing/value/__init__.py
+//third_party/catapult/tracing/tracing/value/diagnostics/__init__.py
+//third_party/catapult/tracing/tracing/value/diagnostics/reserved_infos.py
+//third_party/catapult/tracing/tracing_project.py
+//tools/json_comment_eater/json_comment_eater.py
+//tools/json_to_struct/element_generator.py
+//tools/json_to_struct/json_to_struct.py
+//tools/json_to_struct/struct_generator.py
+//tools/perf/chrome_telemetry_build/__init__.py
+//tools/perf/chrome_telemetry_build/chromium_config.py
+//tools/perf/core/__init__.py
+//tools/perf/core/path_util.py
+//tools/variations/fieldtrial_to_struct.py
+//tools/variations/fieldtrial_util.py
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 06b5c94f..5a70048 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -84,6 +84,10 @@
     "accessibility/chromevox/touch_exploration_manager.h",
     "accessibility/default_accessibility_delegate.cc",
     "accessibility/default_accessibility_delegate.h",
+    "accessibility/dictation_nudge.cc",
+    "accessibility/dictation_nudge.h",
+    "accessibility/dictation_nudge_controller.cc",
+    "accessibility/dictation_nudge_controller.h",
     "accessibility/magnifier/docked_magnifier_controller.cc",
     "accessibility/magnifier/docked_magnifier_controller.h",
     "accessibility/magnifier/docked_magnifier_controller.h",
@@ -2061,6 +2065,7 @@
     "accessibility/chromevox/touch_accessibility_enabler_unittest.cc",
     "accessibility/chromevox/touch_exploration_controller_unittest.cc",
     "accessibility/chromevox/touch_exploration_manager_unittest.cc",
+    "accessibility/dictation_nudge_controller_unittest.cc",
     "accessibility/magnifier/docked_magnifier_controller_unittest.cc",
     "accessibility/magnifier/fullscreen_magnifier_controller_unittest.cc",
     "accessibility/magnifier/magnifier_test_utils.cc",
diff --git a/ash/accessibility/accessibility_controller_impl.cc b/ash/accessibility/accessibility_controller_impl.cc
index d9babfb..a3e0e70 100644
--- a/ash/accessibility/accessibility_controller_impl.cc
+++ b/ash/accessibility/accessibility_controller_impl.cc
@@ -13,6 +13,7 @@
 #include "ash/accelerators/accelerator_controller_impl.h"
 #include "ash/accessibility/accessibility_observer.h"
 #include "ash/accessibility/autoclick/autoclick_controller.h"
+#include "ash/accessibility/dictation_nudge_controller.h"
 #include "ash/accessibility/sticky_keys/sticky_keys_controller.h"
 #include "ash/accessibility/switch_access/point_scan_controller.h"
 #include "ash/accessibility/ui/accessibility_highlight_controller.h"
@@ -748,6 +749,9 @@
   Shell::Get()->tablet_mode_controller()->RemoveObserver(this);
   Shell::Get()->session_controller()->RemoveObserver(this);
 
+  // Clean up any child windows and widgets that might be animating out.
+  dictation_nudge_controller_.reset();
+
   for (auto& observer : observers_)
     observer.OnAccessibilityControllerShutdown();
 }
@@ -1254,6 +1258,14 @@
   ToggleDictation();
 }
 
+void AccessibilityControllerImpl::ShowDictationLanguageUpgradedNudge(
+    const std::string& dictation_locale,
+    const std::string& application_locale) {
+  dictation_nudge_controller_ = std::make_unique<DictationNudgeController>(
+      dictation_locale, application_locale);
+  dictation_nudge_controller_->ShowNudge();
+}
+
 void AccessibilityControllerImpl::SilenceSpokenFeedback() {
   if (client_)
     client_->SilenceSpokenFeedback();
@@ -2015,6 +2027,8 @@
       UpdateAccessibilityHighlightingFromPrefs();
       break;
     case FeatureType::kDictation:
+      if (!enabled)
+        dictation_nudge_controller_.reset();
       break;
     case FeatureType::kFloatingMenu:
       if (enabled && always_show_floating_menu_when_enabled_)
diff --git a/ash/accessibility/accessibility_controller_impl.h b/ash/accessibility/accessibility_controller_impl.h
index 6678a4f2..376daa9 100644
--- a/ash/accessibility/accessibility_controller_impl.h
+++ b/ash/accessibility/accessibility_controller_impl.h
@@ -44,6 +44,7 @@
 class AccessibilityEventRewriter;
 class AccessibilityHighlightController;
 class AccessibilityObserver;
+class DictationNudgeController;
 class FloatingAccessibilityController;
 class PointScanController;
 class ScopedBacklightsForcedOff;
@@ -382,6 +383,9 @@
       int point_scan_speed_dips_per_second) override;
   void SetDictationActive(bool is_active) override;
   void ToggleDictationFromSource(DictationToggleSource source) override;
+  void ShowDictationLanguageUpgradedNudge(
+      const std::string& dictation_locale,
+      const std::string& application_locale) override;
   void HandleAutoclickScrollableBoundsFound(
       gfx::Rect& bounds_in_screen) override;
   std::u16string GetBatteryDescription() const override;
@@ -422,6 +426,9 @@
   bool enable_chromevox_volume_slide_gesture() {
     return enable_chromevox_volume_slide_gesture_;
   }
+  DictationNudgeController* GetDictationNudgeControllerForTest() {
+    return dictation_nudge_controller_.get();
+  }
 
  private:
   // Populate |features_| with the feature of the correct type.
@@ -514,6 +521,11 @@
   // Used to force the backlights off to darken the screen.
   std::unique_ptr<ScopedBacklightsForcedOff> scoped_backlights_forced_off_;
 
+  // Used to show the offline dictation language upgrade nudge. This is created
+  // with ShowDictationLanguageUpgradedNudge() and reset at Shutdown() or when
+  // the Dictation feature is disabled.
+  std::unique_ptr<DictationNudgeController> dictation_nudge_controller_;
+
   // True if ChromeVox should enable its volume slide gesture.
   bool enable_chromevox_volume_slide_gesture_ = false;
 
diff --git a/ash/accessibility/dictation_nudge.cc b/ash/accessibility/dictation_nudge.cc
new file mode 100644
index 0000000..28a304d
--- /dev/null
+++ b/ash/accessibility/dictation_nudge.cc
@@ -0,0 +1,71 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/accessibility/dictation_nudge.h"
+
+#include "ash/accessibility/dictation_nudge_controller.h"
+#include "ash/resources/vector_icons/vector_icons.h"
+#include "ash/strings/grit/ash_strings.h"
+#include "ash/style/ash_color_provider.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/compositor/layer.h"
+#include "ui/gfx/text_constants.h"
+#include "ui/views/controls/label.h"
+#include "ui/wm/core/coordinate_conversion.h"
+
+namespace ash {
+
+namespace {
+
+// The size of the clipboard icon.
+constexpr int kIconSize = 20;
+
+// The minimum width of the label.
+constexpr int kMinLabelWidth = 200;
+
+// The spacing between the icon and label in the nudge view.
+constexpr int kIconLabelSpacing = 16;
+
+// The padding which separates the nudge's border with its inner contents.
+constexpr int kNudgePadding = 16;
+
+constexpr char kDictationNudgeName[] = "DictationOfflineContextualNudge";
+
+}  // namespace
+
+DictationNudge::DictationNudge(DictationNudgeController* controller)
+    : SystemNudge(kDictationNudgeName), controller_(controller) {}
+
+DictationNudge::~DictationNudge() = default;
+
+std::unique_ptr<views::View> DictationNudge::CreateLabelView() const {
+  std::unique_ptr<views::Label> label = std::make_unique<views::Label>();
+  label->SetPaintToLayer();
+  label->layer()->SetFillsBoundsOpaquely(false);
+  label->SetPosition(
+      gfx::Point(kNudgePadding + kIconSize + kIconLabelSpacing, kNudgePadding));
+
+  label->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT);
+  label->SetEnabledColor(AshColorProvider::Get()->GetContentLayerColor(
+      AshColorProvider::ContentLayerType::kTextColorPrimary));
+  label->SetAutoColorReadabilityEnabled(false);
+
+  const std::u16string language_name = l10n_util::GetDisplayNameForLocale(
+      controller_->dictation_locale(), controller_->application_locale(),
+      /*is_for_ui=*/true);
+
+  const std::u16string label_text = l10n_util::GetStringFUTF16(
+      IDS_ASH_DICTATION_LANGUAGE_SUPPORTED_OFFLINE_NUDGE, language_name);
+  label->SetText(label_text);
+  label->SetMultiLine(true);
+  label->SizeToFit(kMinLabelWidth);
+
+  return std::move(label);
+}
+
+const gfx::VectorIcon& DictationNudge::GetIcon() const {
+  return kDictationOffNewuiIcon;
+}
+
+}  // namespace ash
diff --git a/ash/accessibility/dictation_nudge.h b/ash/accessibility/dictation_nudge.h
new file mode 100644
index 0000000..2ba5f69
--- /dev/null
+++ b/ash/accessibility/dictation_nudge.h
@@ -0,0 +1,41 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_ACCESSIBILITY_DICTATION_NUDGE_H_
+#define ASH_ACCESSIBILITY_DICTATION_NUDGE_H_
+
+#include <string>
+
+#include "ash/ash_export.h"
+#include "ash/system/tray/system_nudge.h"
+
+namespace ash {
+
+class DictationNudgeController;
+class DictationNudgeControllerTest;
+
+// Implements a contextual nudge for Dictation informing the user
+// that their Dictation language now works offline.
+class ASH_EXPORT DictationNudge : public SystemNudge {
+ public:
+  DictationNudge(DictationNudgeController* controller);
+  DictationNudge(const DictationNudge&) = delete;
+  DictationNudge& operator=(const DictationNudge&) = delete;
+  ~DictationNudge() override;
+
+ protected:
+  // SystemNudge:
+  std::unique_ptr<views::View> CreateLabelView() const override;
+  const gfx::VectorIcon& GetIcon() const override;
+
+ private:
+  friend class DictationNudgeControllerTest;
+
+  // Unowned. The DictationNudgeController owns |this|.
+  const DictationNudgeController* const controller_;
+};
+
+}  // namespace ash
+
+#endif  // ASH_ACCESSIBILITY_DICTATION_NUDGE_H_
diff --git a/ash/accessibility/dictation_nudge_controller.cc b/ash/accessibility/dictation_nudge_controller.cc
new file mode 100644
index 0000000..cbb6380
--- /dev/null
+++ b/ash/accessibility/dictation_nudge_controller.cc
@@ -0,0 +1,23 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/accessibility/dictation_nudge_controller.h"
+
+#include "ash/accessibility/dictation_nudge.h"
+
+namespace ash {
+
+DictationNudgeController::DictationNudgeController(
+    const std::string& dictation_locale,
+    const std::string& application_locale)
+    : dictation_locale_(dictation_locale),
+      application_locale_(application_locale) {}
+
+DictationNudgeController::~DictationNudgeController() = default;
+
+std::unique_ptr<SystemNudge> DictationNudgeController::CreateSystemNudge() {
+  return std::make_unique<DictationNudge>(this);
+}
+
+}  // namespace ash
\ No newline at end of file
diff --git a/ash/accessibility/dictation_nudge_controller.h b/ash/accessibility/dictation_nudge_controller.h
new file mode 100644
index 0000000..b5d48491
--- /dev/null
+++ b/ash/accessibility/dictation_nudge_controller.h
@@ -0,0 +1,48 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_ACCESSIBILITY_DICTATION_NUDGE_CONTROLLER_H_
+#define ASH_ACCESSIBILITY_DICTATION_NUDGE_CONTROLLER_H_
+
+#include <string>
+
+#include "ash/ash_export.h"
+#include "ash/system/tray/system_nudge_controller.h"
+
+namespace ash {
+
+// Class that manages showing a nudge explaining that Dictation language has
+// been upgraded in the background to work offline.
+class ASH_EXPORT DictationNudgeController : public SystemNudgeController {
+ public:
+  // Creates the Dictation nudge for the user's preferred recognition locale,
+  // |dictation_locale|. Uses the |application_locale| to get the human-readable
+  // name for the |dictation_locale|.
+  DictationNudgeController(const std::string& dictation_locale,
+                           const std::string& application_locale);
+  DictationNudgeController(const DictationNudgeController&) = delete;
+  DictationNudgeController& operator=(const DictationNudgeController&) = delete;
+  ~DictationNudgeController() override;
+
+  SystemNudge* GetDictationNudgeForTesting() const { return nudge_.get(); }
+
+  std::string dictation_locale() const { return dictation_locale_; }
+  std::string application_locale() const { return application_locale_; }
+
+ protected:
+  // SystemNudgeController:
+  std::unique_ptr<SystemNudge> CreateSystemNudge() override;
+
+ private:
+  // The locale in which the user's speech recognition is processed for
+  // Dictation.
+  const std::string dictation_locale_;
+
+  // The application locale for Chrome OS.
+  const std::string application_locale_;
+};
+
+}  // namespace ash
+
+#endif  // ASH_ACCESSIBILITY_DICTATION_NUDGE_CONTROLLER_H_
diff --git a/ash/accessibility/dictation_nudge_controller_unittest.cc b/ash/accessibility/dictation_nudge_controller_unittest.cc
new file mode 100644
index 0000000..bb8daeb0
--- /dev/null
+++ b/ash/accessibility/dictation_nudge_controller_unittest.cc
@@ -0,0 +1,163 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <string>
+
+#include "ash/accessibility/accessibility_controller_impl.h"
+#include "ash/accessibility/dictation_nudge.h"
+#include "ash/accessibility/dictation_nudge_controller.h"
+#include "ash/shell.h"
+#include "ash/system/tray/system_nudge.h"
+#include "ash/test/ash_test_base.h"
+#include "base/run_loop.h"
+#include "base/strings/utf_string_conversions.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "ui/compositor/layer.h"
+#include "ui/compositor/scoped_animation_duration_scale_mode.h"
+#include "ui/views/controls/label.h"
+#include "ui/views/widget/widget.h"
+#include "ui/views/widget/widget_observer.h"
+
+using ::testing::HasSubstr;
+
+namespace ash {
+namespace {
+
+class NudgeWigetObserver : public views::WidgetObserver {
+ public:
+  NudgeWigetObserver(views::Widget* widget) : widget_(widget) {
+    if (!widget_)
+      return;
+
+    widget_->AddObserver(this);
+  }
+
+  ~NudgeWigetObserver() override { CleanupWidget(); }
+
+  void WaitForClose() {
+    if (!widget_)
+      return;
+    run_loop_ = std::make_unique<base::RunLoop>();
+    run_loop_->Run();
+  }
+
+  // views::WidgetObserver:
+  void OnWidgetClosing(views::Widget* widget) override {
+    CleanupWidget();
+    if (run_loop_)
+      run_loop_->Quit();
+  }
+
+  void CleanupWidget() {
+    if (!widget_)
+      return;
+    widget_->RemoveObserver(this);
+    widget_ = nullptr;
+  }
+
+ private:
+  views::Widget* widget_;
+  std::unique_ptr<base::RunLoop> run_loop_;
+};
+}  // namespace
+
+// Tests for showing the Dictation Nudge from AccessibilityControllerImpl.
+class DictationNudgeControllerTest : public AshTestBase {
+ public:
+  DictationNudgeControllerTest() = default;
+  DictationNudgeControllerTest(const DictationNudgeControllerTest&) = delete;
+  DictationNudgeControllerTest& operator=(const DictationNudgeControllerTest&) =
+      delete;
+  ~DictationNudgeControllerTest() override = default;
+
+  // AshTestBase:
+  void SetUp() override {
+    AshTestBase::SetUp();
+    Shell::Get()->accessibility_controller()->dictation().SetEnabled(true);
+  }
+
+  void ShowDictationLanguageUpgradedNudge(std::string dictation_locale,
+                                          std::string application_locale) {
+    Shell::Get()
+        ->accessibility_controller()
+        ->ShowDictationLanguageUpgradedNudge(dictation_locale,
+                                             application_locale);
+  }
+
+  DictationNudgeController* GetDictationNudgeController() {
+    return Shell::Get()
+        ->accessibility_controller()
+        ->GetDictationNudgeControllerForTest();
+  }
+
+  std::unique_ptr<views::View> GetDictationNudgeLabel(DictationNudge* nudge) {
+    return nudge->CreateLabelView();
+  }
+
+  void WaitForWidgetClose(DictationNudgeController* controller,
+                          SystemNudge* nudge) {
+    views::Widget* nudge_widget = nudge->widget();
+    ASSERT_TRUE(nudge_widget);
+    EXPECT_FALSE(nudge_widget->IsClosed());
+
+    // Slow down the duration of the nudge.
+    ui::ScopedAnimationDurationScaleMode test_duration_mode(
+        ui::ScopedAnimationDurationScaleMode::SLOW_DURATION);
+
+    // Pretend the hide nudge timer has elapsed.
+    NudgeWigetObserver widget_close_observer(nudge_widget);
+    controller->FireHideNudgeTimerForTesting();
+
+    EXPECT_TRUE(nudge_widget->GetLayer()->GetAnimator()->is_animating());
+
+    widget_close_observer.WaitForClose();
+  }
+};
+
+TEST_F(DictationNudgeControllerTest, ShowsAndHidesNudge) {
+  EXPECT_FALSE(GetDictationNudgeController());
+
+  ShowDictationLanguageUpgradedNudge("en-US", "en-US");
+
+  DictationNudgeController* controller = GetDictationNudgeController();
+  ASSERT_TRUE(controller);
+
+  SystemNudge* nudge = controller->GetDictationNudgeForTesting();
+  ASSERT_TRUE(nudge);
+
+  WaitForWidgetClose(controller, nudge);
+}
+
+TEST_F(DictationNudgeControllerTest, SetsLabelBasedOnApplicationLocale) {
+  struct {
+    std::string locale;
+    std::string application_locale;
+    std::string label;
+  } kTestCases[] = {
+      {"en-US", "en-US", "English"},
+      {"es-ES", "en-US", "Spanish"},
+      {"en-US", "es-ES", "inglés"},
+      {"es-ES", "es-ES", "español"},
+  };
+  for (const auto& testcase : kTestCases) {
+    ShowDictationLanguageUpgradedNudge(testcase.locale,
+                                       testcase.application_locale);
+
+    DictationNudgeController* controller = GetDictationNudgeController();
+    ASSERT_TRUE(controller);
+
+    DictationNudge* nudge =
+        static_cast<DictationNudge*>(controller->GetDictationNudgeForTesting());
+    ASSERT_TRUE(nudge);
+
+    std::unique_ptr<views::View> label = GetDictationNudgeLabel(nudge);
+    std::string text =
+        base::UTF16ToUTF8(static_cast<views::Label*>(label.get())->GetText());
+    EXPECT_THAT(text, HasSubstr(testcase.label));
+
+    WaitForWidgetClose(controller, nudge);
+  }
+}
+
+}  // namespace ash
\ No newline at end of file
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 6df6fc6..3120c995 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -762,6 +762,9 @@
       <message name="IDS_ASH_DICTATION_CONFIRMATION_BODY" desc="The message shown the first time the user enables Dictation, explaining that the audio data will be sent to Google for transcription">
         Dictation sends your voice to Google to allow voice typing in any text field.
       </message>
+      <message name="IDS_ASH_DICTATION_LANGUAGE_SUPPORTED_OFFLINE_NUDGE" desc="The message shown for existing Dictation users when their Dictation language has been upgraded in the background to work offline.">
+        <ph name="language">$1<ex>English</ex></ph> speech is now processed locally and works offline. You can change your Dictation language in Settings > Accessibility.
+      </message>
       <message name="IDS_ASH_SWITCH_ACCESS_DISABLE_CONFIRMATION_TEXT" desc="The text for the modal dialog shown when the user disables Switch Access, to confirm they meant to disable the feature.">
         Are you sure you want to turn off Switch Access?
       </message>
diff --git a/ash/ash_strings_grd/IDS_ASH_DICTATION_LANGUAGE_SUPPORTED_OFFLINE_NUDGE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_DICTATION_LANGUAGE_SUPPORTED_OFFLINE_NUDGE.png.sha1
new file mode 100644
index 0000000..73f2ec3
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_ASH_DICTATION_LANGUAGE_SUPPORTED_OFFLINE_NUDGE.png.sha1
@@ -0,0 +1 @@
+81c8d75227cff8512f93d227e0f27e5546d36709
\ No newline at end of file
diff --git a/ash/public/cpp/accessibility_controller.h b/ash/public/cpp/accessibility_controller.h
index 015e4ab1..574f1382 100644
--- a/ash/public/cpp/accessibility_controller.h
+++ b/ash/public/cpp/accessibility_controller.h
@@ -111,6 +111,12 @@
   // Starts or stops dictation. Records metrics for toggling via SwitchAccess.
   virtual void ToggleDictationFromSource(DictationToggleSource source) = 0;
 
+  // Shows a nudge explaining that a user's dictation language was upgraded to
+  // work offline.
+  virtual void ShowDictationLanguageUpgradedNudge(
+      const std::string& dictation_locale,
+      const std::string& application_locale) = 0;
+
   // Called when the Automatic Clicks extension finds scrollable bounds.
   virtual void HandleAutoclickScrollableBoundsFound(
       gfx::Rect& bounds_in_screen) = 0;
diff --git a/ash/public/cpp/assistant/assistant_image_downloader.cc b/ash/public/cpp/assistant/assistant_image_downloader.cc
deleted file mode 100644
index 628c5c9..0000000
--- a/ash/public/cpp/assistant/assistant_image_downloader.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/public/cpp/assistant/assistant_image_downloader.h"
-
-#include "base/check_op.h"
-
-namespace ash {
-namespace {
-AssistantImageDownloader* g_assistant_image_downloader = nullptr;
-}
-
-// static
-AssistantImageDownloader* AssistantImageDownloader::GetInstance() {
-  return g_assistant_image_downloader;
-}
-
-AssistantImageDownloader::AssistantImageDownloader() {
-  DCHECK(!g_assistant_image_downloader);
-  g_assistant_image_downloader = this;
-}
-AssistantImageDownloader::~AssistantImageDownloader() {
-  DCHECK_EQ(g_assistant_image_downloader, this);
-  g_assistant_image_downloader = nullptr;
-}
-
-}  // namespace ash
diff --git a/ash/webui/shimless_rma/resources/icons.html b/ash/webui/shimless_rma/resources/icons.html
index 7d5fe42..c76946d 100644
--- a/ash/webui/shimless_rma/resources/icons.html
+++ b/ash/webui/shimless_rma/resources/icons.html
@@ -4,6 +4,9 @@
       <g id="wifi" width="20" height="20" viewBox="0 0 20 20">
         <path fill-rule="evenodd" d="M7.99999976,4.4408921e-15 C11.7328,4.4408921e-15 14.4955,1.61135 15.6876,2.44135 C16.0317,2.68099 16.1038,3.16533 15.8425,3.49646 L15.8425,3.49646 L8.5554,12.7289 C8.2698,13.0905 7.72802,13.0905 7.44247,12.7281 L7.44247,12.7281 L0.15749,3.49646 C-0.10379,3.16533 -0.03169,2.68099 0.31239,2.44135 C1.50455,1.61135 4.26792,4.4408921e-15 7.99999976,4.4408921e-15 Z M7.9986,5 C9.23601,5 10.350948,5.2101302 11.3111193,5.50860386 L11.6254,5.6112 L11.6254,5.6112 C12.314,4.73885 13.3886,3.37739 13.3886,3.37739 C12.1425,2.71268 10.2788,2 8,2 C5.72159,2 3.85753,2.71277 2.61134,3.37751 C2.61134,3.37751 3.36107,4.32758 4.3736,5.61069 C5.40153,5.25916 6.62474,5 7.9986,5 Z" transform="translate(2 4)"/>
       </g>
+      <g id="info">
+        <path fill-rule="evenodd" clip-rule="evenodd" d="M9 14H11V10H9V14ZM10 2C5.584 2 2 5.584 2 10C2 14.416 5.584 18 10 18C14.416 18 18 14.416 18 10C18 5.584 14.416 2 10 2ZM10 16C6.6925 16 4 13.3075 4 10C4 6.6925 6.6925 4 10 4C13.3075 4 16 6.6925 16 10C16 13.3075 13.3075 16 10 16ZM9 8H11V6H9V8Z" />
+      </g>
     </defs>
   </svg>
 </iron-iconset-svg>
diff --git a/ash/webui/shimless_rma/resources/repair_component_chip.html b/ash/webui/shimless_rma/resources/repair_component_chip.html
index 70c603e..ca553c8 100644
--- a/ash/webui/shimless_rma/resources/repair_component_chip.html
+++ b/ash/webui/shimless_rma/resources/repair_component_chip.html
@@ -8,29 +8,43 @@
     background-color: lightskyblue;
   }
 
+  #condtainerDiv {
+    width: 180px;
+    height: 40px;
+  }
+
   #containerButton {
-    width:  180px;
+    width: 180px;
     height: 40px;
     border-radius: 10px;
     box-shadow: 0px 2px 2px 2px #bbb;
   }
 
-  .checkedBox {
-    background-color: lightblue;
-    position: absolute;
-    top: 5px;
-    right: 5px;
+  .icon-top-right {
+    position: relative;
+    top: -5px;
+    right: 20px;
     width: 15px;
-    height:  15px;
+    height: 15px;
   }
-
 </style>
 
-<div>
+<div id="containerDiv">
   <cr-button disabled$="[[disabled]]"
       id="containerButton" on-click="onComponentButtonClicked_">
     <span id="componentName">[[componentName]]</span>
-    <!-- TODO(joonbug): replace with iron-icon -->
-    <span hidden$="[[!checked]]" class="checkedBox"></span>
   </cr-button>
+
+  <!-- TODO(joonbug): Replace icon with checked icon -->
+  <iron-icon id="checkedIcon" icon="shimless-icon:wifi"
+    hidden$="[[!checked]]" class="icon-top-right">
+  </iron-icon>
+  <iron-icon id="infoIcon" icon="shimless-icon:info"
+    hidden$="[[!disabled]]" class="icon-top-right">
+  </iron-icon>
+
+  <!-- TODO(joonbug): i18n message -->
+  <paper-tooltip for="infoIcon" aria-hidden="true" id="additionalMessage">
+    This component couldn't be detected. Check that it's installed correctly.
+  </paper-tooltip>
 </div>
\ No newline at end of file
diff --git a/ash/webui/shimless_rma/resources/repair_component_chip.js b/ash/webui/shimless_rma/resources/repair_component_chip.js
index 5de86a6f..fba76766 100644
--- a/ash/webui/shimless_rma/resources/repair_component_chip.js
+++ b/ash/webui/shimless_rma/resources/repair_component_chip.js
@@ -2,8 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://resources/cr_elements/cr_button/cr_button.m.js';
 import './shimless_rma_shared_css.js';
+import './icons.js';
+
+import 'chrome://resources/cr_elements/cr_button/cr_button.m.js';
+import 'chrome://resources/cr_elements/icons.m.js';
+import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
+import 'chrome://resources/polymer/v3_0/paper-tooltip/paper-tooltip.js';
 
 import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/base/android/java/src/org/chromium/base/compat/ApiHelperForS.java b/base/android/java/src/org/chromium/base/compat/ApiHelperForS.java
index 13a01d6..11cbbe05 100644
--- a/base/android/java/src/org/chromium/base/compat/ApiHelperForS.java
+++ b/base/android/java/src/org/chromium/base/compat/ApiHelperForS.java
@@ -4,6 +4,7 @@
 
 package org.chromium.base.compat;
 
+import android.Manifest;
 import android.annotation.TargetApi;
 import android.app.PictureInPictureParams;
 import android.content.ClipData;
@@ -54,10 +55,8 @@
     }
 
     public static boolean hasBluetoothConnectPermission() {
-        // TODO(b/183501112): Replace the permission string with the actual Manfifest constant once
-        // Chrome starts compiling against the S SDK.
         return ApiCompatibilityUtils.checkPermission(ContextUtils.getApplicationContext(),
-                       "android.permission.BLUETOOTH_CONNECT", Process.myPid(), Process.myUid())
+                       Manifest.permission.BLUETOOTH_CONNECT, Process.myPid(), Process.myUid())
                 == PackageManager.PERMISSION_GRANTED;
     }
 
diff --git a/base/values.cc b/base/values.cc
index a01cdac7..3a64525 100644
--- a/base/values.cc
+++ b/base/values.cc
@@ -1367,20 +1367,6 @@
       key, const_cast<const ListValue**>(out_value));
 }
 
-bool DictionaryValue::RemoveWithoutPathExpansion(
-    StringPiece key,
-    std::unique_ptr<Value>* out_value) {
-  DCHECK(IsStringUTF8AllowingNoncharacters(key));
-  auto entry_iterator = dict().find(key);
-  if (entry_iterator == dict().end())
-    return false;
-
-  if (out_value)
-    *out_value = std::move(entry_iterator->second);
-  dict().erase(entry_iterator);
-  return true;
-}
-
 std::unique_ptr<DictionaryValue> DictionaryValue::DeepCopyWithoutEmptyChildren()
     const {
   std::unique_ptr<DictionaryValue> copy =
diff --git a/base/values.h b/base/values.h
index 2bd7aa7..89108a7b 100644
--- a/base/values.h
+++ b/base/values.h
@@ -749,13 +749,6 @@
   // DEPRECATED, use `Value::FindListKey(key)` instead.
   bool GetListWithoutPathExpansion(StringPiece key, ListValue** out_value);
 
-  // Like Remove(), but without special treatment of '.'.  This allows e.g. URLs
-  // to be used as paths.
-  // DEPRECATED, use `Value::RemoveKey(key)` or `Value::ExtractKey(key)`
-  // instead.
-  bool RemoveWithoutPathExpansion(StringPiece key,
-                                  std::unique_ptr<Value>* out_value);
-
   // Makes a copy of `this` but doesn't include empty dictionaries and lists in
   // the copy.  This never returns NULL, even if `this` itself is empty.
   std::unique_ptr<DictionaryValue> DeepCopyWithoutEmptyChildren() const;
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index e6101b0..047439ef 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -3873,9 +3873,11 @@
   #     resource dependencies of the apk.
   #   shared_library: shared_library target that contains the unit tests.
   #   apk_name: The name of the produced apk. If unspecified, it uses the name
-  #             of the shared_library target suffixed with "_apk"
+  #             of the shared_library target suffixed with "_apk".
   #   use_default_launcher: Whether the default activity (NativeUnitTestActivity)
   #     should be used for launching tests.
+  #   allow_cleartext_traffic: (Optional) Whether to allow cleartext network
+  #     requests during the test.
   #   use_native_activity: Test implements ANativeActivity_onCreate().
   #
   # Example
@@ -3895,6 +3897,8 @@
     assert(_use_native_activity != "" && _android_manifest != "")
 
     if (!defined(invoker.android_manifest)) {
+      _allow_cleartext_traffic = defined(invoker.allow_cleartext_traffic) &&
+                                 invoker.allow_cleartext_traffic
       jinja_template("${target_name}_manifest") {
         _native_library_name = get_label_info(invoker.shared_library, "name")
         if (defined(invoker.android_manifest_template)) {
@@ -3908,6 +3912,7 @@
           "is_component_build=${is_component_build}",
           "native_library_name=${_native_library_name}",
           "use_native_activity=${_use_native_activity}",
+          "allow_cleartext_traffic=${_allow_cleartext_traffic}",
         ]
       }
     }
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 67a395a..94e1dc8 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1927,37 +1927,15 @@
 # Note that this can be applied regardless of platform and architecture to
 # clean up the call sites. This will only apply the flag when necessary.
 #
-# This config is just an alias to no_shorten_64_warnings and will
-# suppress a superset of warning 4267 and any 64-bit -> 32-bit implicit
-# conversions. Having both for a time means not having to go through and
-# update all references to no_size_t_to_int_warning throughout the codebase
-# atomically.
-#
-# Any new warning suppressions should use the no_shorten_64_warnings
-# config below and not this.
-#
-# TODO(jschuh): crbug.com/167187 fix this and delete this config.
-config("no_size_t_to_int_warning") {
-  configs = [ ":no_shorten_64_warnings" ]
-}
-
-# As part of re-enabling -Wconversion (see issue 588506) some code
-# will continue to generate warnings.
-# The first warning to be enabled will be -Wshorten-64-to-32.
-#
-# Code that currently generates warnings for this can include this
-# config to disable them.
+# TODO(crbug.com/879657): Fix all instances and delete this.
 config("no_shorten_64_warnings") {
   if (current_cpu == "x64" || current_cpu == "arm64") {
     if (is_clang) {
       cflags = [ "-Wno-shorten-64-to-32" ]
-    } else {
-      if (is_win) {
-        # MSVC does not have an explicit warning equivalent to
-        # -Wshorten-64-to-32 but 4267 warns for size_t -> int
-        # on 64-bit builds, so is the closest.
-        cflags = [ "/wd4267" ]
-      }
+    } else if (is_win) {
+      # MSVC does not have an explicit warning equivalent to -Wshorten-64-to-32
+      # but 4267 warns for size_t -> int on 64-bit builds, so is the closest.
+      cflags = [ "/wd4267" ]
     }
   }
 }
diff --git a/build/config/dcheck_always_on.gni b/build/config/dcheck_always_on.gni
index 76635fd..a868076 100644
--- a/build/config/dcheck_always_on.gni
+++ b/build/config/dcheck_always_on.gni
@@ -30,7 +30,7 @@
   # down to:
   # (build_with_chromium && !is_official_builds) || dcheck_is_configurable
   dcheck_always_on = (build_with_chromium && !is_official_build &&
-                      !is_fuchsia && !is_chromeos) || dcheck_is_configurable
+                      !is_fuchsia) || dcheck_is_configurable
 }
 
 declare_args() {
diff --git a/build/config/fuchsia/generate_runner_scripts.gni b/build/config/fuchsia/generate_runner_scripts.gni
index fc81931..f6180755 100644
--- a/build/config/fuchsia/generate_runner_scripts.gni
+++ b/build/config/fuchsia/generate_runner_scripts.gni
@@ -138,10 +138,15 @@
     }
 
     data += [
-      "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/ffx",
+      "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/device-finder",
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/fvm",
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/merkleroot",
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/pm",
+
+      # TODO(crbug.com/1162314) Remove "symbolize" when transition to
+      # "symbolizer" is complete.
+      "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/symbolize",
+
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/symbolizer",
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/zbi",
     ]
diff --git a/build/fuchsia/device_target.py b/build/fuchsia/device_target.py
index 06bc874..8d134e5 100644
--- a/build/fuchsia/device_target.py
+++ b/build/fuchsia/device_target.py
@@ -5,15 +5,19 @@
 """Implements commands for running and interacting with Fuchsia on devices."""
 
 import boot_data
+import filecmp
 import logging
 import os
 import pkg_repo
 import re
 import subprocess
+import sys
 import target
+import tempfile
 import time
+import uuid
 
-from common import EnsurePathExists, GetHostToolPathFromPlatform
+from common import SDK_ROOT, EnsurePathExists, GetHostToolPathFromPlatform
 
 # The maximum times to attempt mDNS resolution when connecting to a freshly
 # booted Fuchsia instance before aborting.
@@ -23,7 +27,11 @@
 CONNECT_RETRY_COUNT_BEFORE_LOGGING = 10
 
 # Number of seconds to wait for device discovery.
-BOOT_DISCOVERY_DELAY_SECS = 4
+BOOT_DISCOVERY_TIMEOUT_SECS = 2 * 60
+
+# The timeout limit for one call to the device-finder tool.
+_DEVICE_FINDER_TIMEOUT_LIMIT_SECS = \
+    BOOT_DISCOVERY_TIMEOUT_SECS / BOOT_DISCOVERY_ATTEMPTS
 
 # Time between a reboot command is issued and when connection attempts from the
 # host begin.
@@ -155,44 +163,64 @@
                       'set and that remote serving is set up.')
 
   def _Discover(self):
-    """Resolves device IP by the |_node_name|. If |_node_name|
-    isn't specified, and there is only one device on the network,
-    then returns the IP address of that advice.
+    """Queries mDNS for the IP address of a booted Fuchsia instance whose name
+    matches |_node_name| on the local area network. If |_node_name| isn't
+    specified, and there is only one device on the network, then returns the
+    IP address of that advice.
 
     Sets |_host_name| and returns True if the device was found,
-    or returns False if the device couldn't be found."""
+    or waits up to |timeout| seconds and returns False if the device couldn't
+    be found."""
 
-    ffx_command = ['target', 'list']
+    dev_finder_path = GetHostToolPathFromPlatform('device-finder')
+
     if self._node_name:
-      ffx_command.append(self._node_name)
-    ffx_command.extend(['--format', 'simple'])
-    proc = self.RunFFXCommand(ffx_command,
-                              stdout=subprocess.PIPE,
-                              stderr=open(os.devnull, 'w'))
+      command = [
+          dev_finder_path,
+          'resolve',
+          '-timeout',
+          "%ds" % _DEVICE_FINDER_TIMEOUT_LIMIT_SECS,
+          '-device-limit',
+          '1',  # Exit early as soon as a host is found.
+          self._node_name
+      ]
+    else:
+      command = [
+          dev_finder_path, 'list', '-full', '-timeout',
+          "%ds" % _DEVICE_FINDER_TIMEOUT_LIMIT_SECS
+      ]
 
-    output = proc.communicate()[0].strip().split('\n')
-    if proc.returncode != 0 or len(output[0]) == 0:
+    proc = subprocess.Popen(command,
+                            stdout=subprocess.PIPE,
+                            stderr=open(os.devnull, 'w'))
+
+    output = set(proc.communicate()[0].strip().split('\n'))
+    if proc.returncode != 0:
       return False
 
     if self._node_name:
-      # With ffx, it is possible to enter part of a name and the device will
-      # show up, so we need to get the full name.
-      self._host, self._node_name = output[0].split()
+      # Handle the result of "device-finder resolve".
+      self._host = output.pop().strip()
+
     else:
-      if len(output) > 1:
-        logging.info('More than one device was discovered on the network. '
-                     'Use --node-name <name> to specify the device to use.')
-        logging.info('List of devices:')
-        logging.info(output)
+      name_host_pairs = [x.strip().split(' ') for x in output]
+
+      # Handle the output of "device-finder list".
+      if len(name_host_pairs) > 1:
+        print('More than one device was discovered on the network.')
+        print('Use --node-name <name> to specify the device to use.')
+        print('\nList of devices:')
+        for pair in name_host_pairs:
+          print('  ' + pair[1])
+        print()
         raise Exception('Ambiguous target device specification.')
-      assert len(output) == 1
-      name_host_pairs = output[0].split()
-      if len(name_host_pairs) < 2:  # Check if device has both address and name.
-        return False
-      self._host, self._node_name = name_host_pairs
+
+      assert len(name_host_pairs) == 1
+      self._host, self._node_name = name_host_pairs[0]
 
     logging.info('Found device "%s" at address %s.' % (self._node_name,
                                                        self._host))
+
     return True
 
   def Start(self):
@@ -208,8 +236,8 @@
         self._pkg_repo = pkg_repo.ExternalPkgRepo(
             os.path.join(self._fuchsia_out_dir, 'amber-files'))
       else:
-        # Create an ephemeral package repository, then start both "pm serve" as well as
-        # the bootserver.
+        # Create an ephemeral package repository, then start both "pm serve" as
+        # well as the bootserver.
         self._pkg_repo = pkg_repo.ManagedPkgRepo(self)
 
     return self._pkg_repo
@@ -223,11 +251,11 @@
     self._node_name = m.groupdict()['nodename']
     logging.info('Booted device "%s".' % self._node_name)
 
-    # Repeatedly search for a device
+    # Repeatdly query mDNS until we find the device, or we hit the timeout of
+    # DISCOVERY_TIMEOUT_SECS.
     logging.info('Waiting for device to join network.')
     for _ in xrange(BOOT_DISCOVERY_ATTEMPTS):
       if self._Discover():
-        time.sleep(BOOT_DISCOVERY_DELAY_SECS)
         break
 
     if not self._host:
diff --git a/build/fuchsia/device_target_test.py b/build/fuchsia/device_target_test.py
deleted file mode 100755
index a6cf2a2..0000000
--- a/build/fuchsia/device_target_test.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env vpython3
-# Copyright 2021 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Tests scenarios with number of devices and invalid devices"""
-
-import subprocess
-import unittest
-import unittest.mock as mock
-from argparse import Namespace
-from device_target import DeviceTarget
-from target import Target
-
-
-class TestDiscoverDeviceTarget(unittest.TestCase):
-  def setUp(self):
-    self.args = Namespace(out_dir='out/fuchsia',
-                          target_cpu='x64',
-                          host=None,
-                          node_name=None,
-                          port=None,
-                          ssh_config=None,
-                          fuchsia_out_dir=None,
-                          os_check='update',
-                          system_log_file=None)
-
-  def testNoNodeNameOneDeviceReturnNoneCheckNameAndAddress(self):
-    with (DeviceTarget.CreateFromArgs(self.args)) as device_target_instance:
-      with mock.patch.object(DeviceTarget, 'RunFFXCommand') as mock_ffx:
-        mock_spec_popen = mock.create_autospec(subprocess.Popen, instance=True)
-        mock_spec_popen.communicate.return_value = ('address device_name', '')
-        mock_spec_popen.returncode = 0
-        mock_ffx.return_value = mock_spec_popen
-        with mock.patch.object(Target,
-                               '_WaitUntilReady') as mock_waituntilready:
-          mock_waituntilready.return_value = True
-          self.assertIsNone(device_target_instance.Start())
-          self.assertEqual(device_target_instance._node_name, 'device_name')
-          self.assertEqual(device_target_instance._host, 'address')
-
-  def testNoNodeNameTwoDevicesRaiseExceptionAmbiguousTarget(self):
-    with (DeviceTarget.CreateFromArgs(self.args)) as device_target_instance:
-      with mock.patch.object(DeviceTarget, 'RunFFXCommand') as mock_ffx:
-        mock_spec_popen = mock.create_autospec(subprocess.Popen, instance=True)
-        mock_spec_popen.communicate.return_value = ('address1 device_name1\n'
-                                                    'address2 device_name2', '')
-        mock_spec_popen.returncode = 0
-        mock_spec_popen.stdout = ''
-        mock_ffx.return_value = mock_spec_popen
-        with self.assertRaisesRegex(Exception,
-                                    'Ambiguous target device specification.'):
-          device_target_instance.Start()
-          self.assertIsNone(device_target_instance._node_name)
-          self.assertIsNone(device_target_instance._host)
-
-  def testNoNodeNameDeviceDoesntHaveNameRaiseExceptionCouldNotFind(self):
-    with (DeviceTarget.CreateFromArgs(self.args)) as device_target_instance:
-      with mock.patch.object(DeviceTarget, 'RunFFXCommand') as mock_ffx:
-        mock_spec_popen = mock.create_autospec(subprocess.Popen, instance=True)
-        mock_spec_popen.communicate.return_value = ('address', '')
-        mock_spec_popen.returncode = 0
-        mock_ffx.return_value = mock_spec_popen
-        with self.assertRaisesRegex(Exception, 'Could not find device'):
-          device_target_instance.Start()
-          self.assertIsNone(device_target_instance._node_name)
-          self.assertIsNone(device_target_instance._host)
-
-  def testNodeNameDefinedDeviceFoundReturnNoneCheckNameAndHost(self):
-    self.args.node_name = 'device_name'
-    with (DeviceTarget.CreateFromArgs(self.args)) as device_target_instance:
-      with mock.patch.object(DeviceTarget, 'RunFFXCommand') as mock_ffx:
-        mock_spec_popen = mock.create_autospec(subprocess.Popen, instance=True)
-        mock_spec_popen.communicate.return_value = ('address device_name', '')
-        mock_spec_popen.returncode = 0
-        mock_ffx.return_value = mock_spec_popen
-        with mock.patch.object(Target,
-                               '_WaitUntilReady') as mock_waituntilready:
-          mock_waituntilready.return_value = True
-          self.assertIsNone(device_target_instance.Start())
-          self.assertEqual(device_target_instance._node_name, 'device_name')
-          self.assertEqual(device_target_instance._host, 'address')
-
-  def testNodeNameDefinedDeviceNotFoundRaiseExceptionCouldNotFind(self):
-    self.args.node_name = 'wrong_device_name'
-    with (DeviceTarget.CreateFromArgs(self.args)) as device_target_instance:
-      with mock.patch.object(DeviceTarget, 'RunFFXCommand') as mock_ffx:
-        mock_spec_popen = mock.create_autospec(subprocess.Popen, instance=True)
-        mock_spec_popen.communicate.return_value = ('address device_name', '')
-        mock_spec_popen.returncode = 2
-        mock_ffx.return_value = mock_spec_popen
-        with self.assertRaisesRegex(Exception, 'Could not find device'):
-          device_target_instance.Start()
-          self.assertIsNone(device_target_instance._node_name)
-          self.assertIsNone(device_target_instance._host)
-
-  def testNoDevicesFoundRaiseExceptionCouldNotFind(self):
-    with (DeviceTarget.CreateFromArgs(self.args)) as device_target_instance:
-      with mock.patch.object(DeviceTarget, 'RunFFXCommand') as mock_ffx:
-        mock_spec_popen = mock.create_autospec(subprocess.Popen, instance=True)
-        mock_spec_popen.communicate.return_value = ('', '')
-        mock_spec_popen.returncode = 0
-        mock_ffx.return_value = mock_spec_popen
-        with self.assertRaisesRegex(Exception, 'Could not find device'):
-          device_target_instance.Start()
-          self.assertIsNone(device_target_instance._node_name)
-          self.assertIsNone(device_target_instance._host)
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 818d5ba..be95944 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-6.20210802.1.1
+6.20210802.2.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 818d5ba..be95944 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-6.20210802.1.1
+6.20210802.2.1
diff --git a/build/fuchsia/target.py b/build/fuchsia/target.py
index a819389..55164b3 100644
--- a/build/fuchsia/target.py
+++ b/build/fuchsia/target.py
@@ -12,8 +12,6 @@
 import remote_cmd
 import runner_logs
 
-_FFX_PATH = os.path.join(common.SDK_ROOT, 'tools', 'x64', 'ffx')
-
 _SHUTDOWN_CMD = ['dm', 'poweroff']
 _ATTACH_RETRY_INTERVAL = 1
 _ATTACH_RETRY_SECONDS = 120
@@ -322,14 +320,3 @@
         if pkgctl_out != meta_far_merkel:
           raise Exception('Hash mismatch for %s after resolve (%s vs %s).' %
                           (package_name, pkgctl_out, meta_far_merkel))
-
-  def RunFFXCommand(self, ffx_args, **kwargs):
-    """Automatically gets the FFX path and runs FFX based on the
-    arguments provided. Extra args can be added to be used with Popen.
-
-    ffx_args: The arguments for a ffx command.
-    kwargs: A dictionary of parameters to be passed to subprocess.Popen().
-
-    Returns a Popen object for the command."""
-    command = [_FFX_PATH] + ffx_args
-    return subprocess.Popen(command, **kwargs)
\ No newline at end of file
diff --git a/chrome/android/features/start_surface/internal/BUILD.gn b/chrome/android/features/start_surface/internal/BUILD.gn
index cdecdd8..a8852c9 100644
--- a/chrome/android/features/start_surface/internal/BUILD.gn
+++ b/chrome/android/features/start_surface/internal/BUILD.gn
@@ -81,6 +81,7 @@
     "//chrome/browser/ui/android/layouts:java",
     "//chrome/browser/ui/android/layouts/third_party/float_property:java",
     "//chrome/browser/ui/android/omnibox:java",
+    "//chrome/browser/ui/android/toolbar:java",
     "//chrome/browser/ui/messages/android:java",
     "//chrome/browser/util:java",
     "//chrome/browser/version:java",
diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/ExploreSurfaceCoordinator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/ExploreSurfaceCoordinator.java
index b707469..628ec96 100644
--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/ExploreSurfaceCoordinator.java
+++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/ExploreSurfaceCoordinator.java
@@ -28,6 +28,7 @@
 import org.chromium.chrome.browser.share.ShareDelegate;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.start_surface.R;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
@@ -76,6 +77,9 @@
      * @param shareDelegateSupplier Supplies the {@link ShareDelegate}.
      * @param windowAndroid The current {@link WindowAndroid}.
      * @param tabModelSelector The current {@link TabModelSelector}.
+     * @param toolbarSupplier Supplies the {@link Toolbar}.
+     * @param feedLaunchReliabilityLoggingState Holds the state for feed surface creation.
+     * @param swipeRefreshLayout The layout to support pull-to-refresg.
      */
     ExploreSurfaceCoordinator(@NonNull Activity activity, @NonNull ViewGroup parentView,
             @NonNull PropertyModel containerPropertyModel, boolean hasHeader,
@@ -85,6 +89,7 @@
             @NonNull SnackbarManager snackbarManager,
             @NonNull Supplier<ShareDelegate> shareDelegateSupplier,
             @NonNull WindowAndroid windowAndroid, @NonNull TabModelSelector tabModelSelector,
+            @NonNull Supplier<Toolbar> toolbarSupplier,
             FeedLaunchReliabilityLoggingState feedLaunchReliabilityLoggingState,
             @Nullable FeedSwipeRefreshLayout swipeRefreshLayout) {
         mActivity = activity;
@@ -103,7 +108,8 @@
                     boolean isPlaceholderShown, @NewTabPageLaunchOrigin int launchOrigin) {
                 return internalCreateFeedSurfaceCoordinator(mHasHeader, isInNightMode,
                         isPlaceholderShown, bottomSheetController, scrollableContainerDelegate,
-                        launchOrigin, feedLaunchReliabilityLoggingState, swipeRefreshLayout);
+                        launchOrigin, toolbarSupplier, feedLaunchReliabilityLoggingState,
+                        swipeRefreshLayout);
             }
         };
     }
@@ -134,7 +140,7 @@
             boolean isInNightMode, boolean isPlaceholderShown,
             BottomSheetController bottomSheetController,
             ScrollableContainerDelegate scrollableContainerDelegate,
-            @NewTabPageLaunchOrigin int launchOrigin,
+            @NewTabPageLaunchOrigin int launchOrigin, @NonNull Supplier<Toolbar> toolbarSupplier,
             FeedLaunchReliabilityLoggingState feedLaunchReliabilityLoggingState,
             FeedSwipeRefreshLayout swipeRefreshLayout) {
         if (mExploreSurfaceNavigationDelegate == null) {
@@ -160,7 +166,7 @@
                 mSnackbarManager, mWindowAndroid, null, null, sectionHeaderView, isInNightMode,
                 this, mExploreSurfaceNavigationDelegate, profile, isPlaceholderShown,
                 bottomSheetController, mShareDelegateSupplier, scrollableContainerDelegate,
-                launchOrigin, PrivacyPreferencesManagerImpl.getInstance(),
+                launchOrigin, PrivacyPreferencesManagerImpl.getInstance(), toolbarSupplier,
                 feedLaunchReliabilityLoggingState, swipeRefreshLayout);
         feedSurfaceCoordinator.getView().setId(R.id.start_surface_explore_view);
         feedSurfaceCoordinator.getRecyclerView().setOverScrollMode(View.OVER_SCROLL_NEVER);
diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
index 2127c1b..7b64754 100644
--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
+++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
@@ -42,6 +42,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabManagementDelegate.TabSwitcherType;
 import org.chromium.chrome.browser.tasks.tab_management.TabManagementModuleProvider;
 import org.chromium.chrome.browser.tasks.tab_management.TabSwitcher;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger.SurfaceType;
 import org.chromium.chrome.start_surface.R;
@@ -87,6 +88,7 @@
     private final TabCreatorManager mTabCreatorManager;
     private final MenuOrKeyboardActionController mMenuOrKeyboardActionController;
     private final MultiWindowModeStateDispatcher mMultiWindowModeStateDispatcher;
+    private final Supplier<Toolbar> mToolbarSupplier;
 
     // Non-null in SurfaceMode.SINGLE_PANE mode.
     @Nullable
@@ -201,6 +203,7 @@
      * @param menuOrKeyboardActionController allows access to menu or keyboard actions.
      * @param multiWindowModeStateDispatcher Gives access to the multi window mode state.
      * @param jankTracker Measures jank while feed or tab switcher are visible.
+     * @param toolbarSupplier Supplies the {@link Toolbar}.
      */
     public StartSurfaceCoordinator(@NonNull Activity activity,
             @NonNull ScrimCoordinator scrimCoordinator,
@@ -221,7 +224,7 @@
             @NonNull TabCreatorManager tabCreatorManager,
             @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
             @NonNull MultiWindowModeStateDispatcher multiWindowModeStateDispatcher,
-            @NonNull JankTracker jankTracker) {
+            @NonNull JankTracker jankTracker, @NonNull Supplier<Toolbar> toolbarSupplier) {
         mFeedLaunchReliabilityLoggingState =
                 new FeedLaunchReliabilityLoggingState(SurfaceType.START_SURFACE, System.nanoTime());
         mActivity = activity;
@@ -244,6 +247,7 @@
         mTabCreatorManager = tabCreatorManager;
         mMenuOrKeyboardActionController = menuOrKeyboardActionController;
         mMultiWindowModeStateDispatcher = multiWindowModeStateDispatcher;
+        mToolbarSupplier = toolbarSupplier;
 
         boolean excludeMVTiles = StartSurfaceConfiguration.START_SURFACE_EXCLUDE_MV_TILES.getValue()
                 || !mIsStartSurfaceEnabled;
@@ -369,12 +373,12 @@
 
         mIsInitializedWithNative = true;
         if (mIsStartSurfaceEnabled) {
-            mExploreSurfaceCoordinator =
-                    new ExploreSurfaceCoordinator(mActivity, mTasksSurface.getBodyViewContainer(),
-                            mPropertyModel, true, mBottomSheetController, mParentTabSupplier,
-                            new ScrollableContainerDelegateImpl(), mSnackbarManager,
-                            mShareDelegateSupplier, mWindowAndroid, mTabModelSelector,
-                            mFeedLaunchReliabilityLoggingState, mSwipeRefreshLayout);
+            mExploreSurfaceCoordinator = new ExploreSurfaceCoordinator(mActivity,
+                    mTasksSurface.getBodyViewContainer(), mPropertyModel, true,
+                    mBottomSheetController, mParentTabSupplier,
+                    new ScrollableContainerDelegateImpl(), mSnackbarManager, mShareDelegateSupplier,
+                    mWindowAndroid, mTabModelSelector, mToolbarSupplier,
+                    mFeedLaunchReliabilityLoggingState, mSwipeRefreshLayout);
         }
         mStartSurfaceMediator.initWithNative(
                 mIsStartSurfaceEnabled ? mOmniboxStubSupplier.get() : null,
diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceDelegate.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceDelegate.java
index f383b32..71132c2 100644
--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceDelegate.java
+++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceDelegate.java
@@ -26,6 +26,7 @@
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
 import org.chromium.components.browser_ui.widget.MenuOrKeyboardActionController;
@@ -61,13 +62,13 @@
             @NonNull TabCreatorManager tabCreatorManager,
             @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
             @NonNull MultiWindowModeStateDispatcher multiWindowModeStateDispatcher,
-            @NonNull JankTracker jankTracker) {
+            @NonNull JankTracker jankTracker, @NonNull Supplier<Toolbar> toolbarSupplier) {
         return new StartSurfaceCoordinator(activity, scrimCoordinator, sheetController,
                 startSurfaceOneshotSupplier, parentTabSupplier, hadWarmStart, windowAndroid,
                 containerView, dynamicResourceLoaderSupplier, tabModelSelector,
                 browserControlsManager, snackbarManager, shareDelegateSupplier, omniboxStubSupplier,
                 tabContentManager, modalDialogManager, chromeActivityNativeDelegate,
                 activityLifecycleDispatcher, tabCreatorManager, menuOrKeyboardActionController,
-                multiWindowModeStateDispatcher, jankTracker);
+                multiWindowModeStateDispatcher, jankTracker, toolbarSupplier);
     }
-}
\ No newline at end of file
+}
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/ExploreSurfaceViewBinderTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/ExploreSurfaceViewBinderTest.java
index 6e1d902..4d32708 100644
--- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/ExploreSurfaceViewBinderTest.java
+++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/ExploreSurfaceViewBinderTest.java
@@ -85,8 +85,9 @@
                     mActivityTestRule.getActivity().getSnackbarManager(),
                     mActivityTestRule.getActivity().getShareDelegateSupplier(),
                     mActivityTestRule.getActivity().getWindowAndroid(),
-                    mActivityTestRule.getActivity().getTabModelSelector(),
-                    new FeedLaunchReliabilityLoggingState(SurfaceType.START_SURFACE, 0L), null);
+                    mActivityTestRule.getActivity().getTabModelSelector(), () -> {
+                        return null;
+                    }, new FeedLaunchReliabilityLoggingState(SurfaceType.START_SURFACE, 0L), null);
             mFeedSurfaceCoordinator =
                     mExploreSurfaceCoordinator.getFeedSurfaceController()
                             .createFeedSurfaceCoordinator(false, /* isPlaceholderShown= */ false,
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java
index fa1f632..28a20fb 100644
--- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java
+++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java
@@ -1089,8 +1089,9 @@
         @Override
         public void check(View view, NoMatchingViewException noMatchException) {
             if (noMatchException != null) throw noMatchException;
-            int tabListPadding =
-                    (int) TabUiThemeProvider.getTabCardPaddingDimension(view.getContext());
+            float tabListPadding = TabUiThemeProvider.getTabCardPaddingDimension(view.getContext());
+            float messageCardMargin =
+                    TabUiThemeProvider.getMessageCardMarginDimension(view.getContext());
 
             assertTrue(view instanceof RecyclerView);
             RecyclerView recyclerView = (RecyclerView) view;
@@ -1103,8 +1104,10 @@
             assertEquals(TabProperties.UiType.MESSAGE, messageItemViewHolder.getItemViewType());
             View messageItemView = messageItemViewHolder.itemView;
 
-            // The message card item width should always be recyclerView width minus padding.
-            assertEquals(recyclerView.getWidth() - 2 * tabListPadding, messageItemView.getWidth());
+            // The message card item width should always be recyclerView width minus padding and
+            // margin.
+            assertEquals(recyclerView.getWidth() - 2 * tabListPadding - 2 * messageCardMargin,
+                    (float) messageItemView.getWidth(), 1.0f);
         }
     }
 
diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn
index f1abf08..3cc7480 100644
--- a/chrome/android/features/tab_ui/BUILD.gn
+++ b/chrome/android/features/tab_ui/BUILD.gn
@@ -41,10 +41,6 @@
     "java/res/drawable/ic_trending_down_blue.xml",
     "java/res/drawable/iph_drag_and_drop_animated_drawable.xml",
     "java/res/drawable/iph_drag_and_drop_drawable.xml",
-    "java/res/drawable/message_card_background.xml",
-    "java/res/drawable/message_card_background_incognito.xml",
-    "java/res/drawable/message_card_background_with_inset.xml",
-    "java/res/drawable/message_card_background_with_inset_incognito.xml",
     "java/res/drawable/price_card_background.xml",
     "java/res/drawable/price_card_scrim.xml",
     "java/res/drawable/selected_tab_background.xml",
diff --git a/chrome/android/features/tab_ui/java/res/drawable/message_card_background.xml b/chrome/android/features/tab_ui/java/res/drawable/message_card_background.xml
deleted file mode 100644
index b5deae2..0000000
--- a/chrome/android/features/tab_ui/java/res/drawable/message_card_background.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2020 The Chromium Authors. All rights reserved.
-     Use of this source code is governed by a BSD-style license that can be
-     found in the LICENSE file. -->
-
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle" >
-    <solid android:color="@color/default_bg_color" />
-    <stroke android:width="@dimen/divider_height" android:color="@color/hairline_stroke_color"/>
-    <corners android:radius="@dimen/tab_list_card_radius" />
-</shape>
diff --git a/chrome/android/features/tab_ui/java/res/drawable/message_card_background_incognito.xml b/chrome/android/features/tab_ui/java/res/drawable/message_card_background_incognito.xml
deleted file mode 100644
index c6f2dd69..0000000
--- a/chrome/android/features/tab_ui/java/res/drawable/message_card_background_incognito.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2020 The Chromium Authors. All rights reserved.
-     Use of this source code is governed by a BSD-style license that can be
-     found in the LICENSE file. -->
-
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle" >
-    <solid android:color="@color/default_bg_color_dark"/>
-    <stroke android:width="@dimen/divider_height" android:color="@color/hairline_stroke_color_dark"/>
-    <corners android:radius="@dimen/tab_list_card_radius" />
-</shape>
diff --git a/chrome/android/features/tab_ui/java/res/drawable/message_card_background_with_inset.xml b/chrome/android/features/tab_ui/java/res/drawable/message_card_background_with_inset.xml
deleted file mode 100644
index a21e3a6f..0000000
--- a/chrome/android/features/tab_ui/java/res/drawable/message_card_background_with_inset.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2020 The Chromium Authors. All rights reserved.
-     Use of this source code is governed by a BSD-style license that can be
-     found in the LICENSE file. -->
-
-<inset
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/message_card_background"
-    android:inset="@dimen/tab_list_selected_inset"/>
diff --git a/chrome/android/features/tab_ui/java/res/drawable/message_card_background_with_inset_incognito.xml b/chrome/android/features/tab_ui/java/res/drawable/message_card_background_with_inset_incognito.xml
deleted file mode 100644
index 5fb529c..0000000
--- a/chrome/android/features/tab_ui/java/res/drawable/message_card_background_with_inset_incognito.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2020 The Chromium Authors. All rights reserved.
-     Use of this source code is governed by a BSD-style license that can be
-     found in the LICENSE file. -->
-
-<inset
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/message_card_background_incognito"
-    android:inset="@dimen/tab_list_selected_inset"/>
diff --git a/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml b/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml
index b409854..3a7796d8 100644
--- a/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml
+++ b/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml
@@ -7,12 +7,13 @@
     android:id="@+id/large_message_card_item"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
-    <FrameLayout
+    <org.chromium.components.browser_ui.widget.MaterialCardViewNoShadow
         android:id="@+id/large_message_card_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:layout_margin="@dimen/tab_list_selected_margin"
         android:layout_gravity="center"
-        android:background="@drawable/message_card_background_with_inset">
+        style="@style/MaterialCardStyle">
         <LinearLayout
             android:id="@+id/large_message_linear_layout"
             android:layout_width="match_parent"
@@ -77,5 +78,5 @@
             android:layout_gravity="end"
             android:contentDescription="@string/close"
             android:tint="@color/default_icon_color" />
-    </FrameLayout>
+    </org.chromium.components.browser_ui.widget.MaterialCardViewNoShadow>
 </org.chromium.chrome.browser.tasks.tab_management.LargeMessageCardView>
diff --git a/chrome/android/features/tab_ui/java/res/layout/tab_grid_message_card_item.xml b/chrome/android/features/tab_ui/java/res/layout/tab_grid_message_card_item.xml
index 55a54be..29efb97 100644
--- a/chrome/android/features/tab_ui/java/res/layout/tab_grid_message_card_item.xml
+++ b/chrome/android/features/tab_ui/java/res/layout/tab_grid_message_card_item.xml
@@ -8,8 +8,9 @@
     android:id="@+id/tab_grid_message_item"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:layout_margin="@dimen/tab_list_selected_margin"
     android:orientation="horizontal"
-    android:background="@drawable/message_card_background_with_inset">
+    android:background="@drawable/card_with_corners_background">
     <org.chromium.ui.widget.ChromeImageView
         android:id="@+id/icon"
         android:layout_width="0dp"
diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/android/features/tab_ui/java/res/values/dimens.xml
index beddece..8849d197 100644
--- a/chrome/android/features/tab_ui/java/res/values/dimens.xml
+++ b/chrome/android/features/tab_ui/java/res/values/dimens.xml
@@ -6,6 +6,7 @@
     <dimen name="tab_grid_favicon_size">18dp</dimen>
     <dimen name="tab_list_selected_inset">7dp</dimen>
     <dimen name="tab_list_selected_inset_low_end">6dp</dimen>
+    <dimen name="tab_list_selected_margin">7dp</dimen>
     <dimen name="tab_list_card_padding">8dp</dimen>
     <dimen name="tab_list_card_radius">4dp</dimen>
     <dimen name="tab_list_card_title_height">32dp</dimen>
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java
index e7d19f9..8ea6c7f 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardView.java
@@ -8,11 +8,13 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
 import android.util.AttributeSet;
 import android.widget.LinearLayout;
 
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.styles.ChromeColors;
 import org.chromium.components.browser_ui.widget.text.TemplatePreservingTextView;
 import org.chromium.ui.widget.ButtonCompat;
 import org.chromium.ui.widget.ChromeImageView;
@@ -152,6 +154,15 @@
      */
     private void setBackground(boolean isIncognito) {
         setBackgroundResource(TabUiThemeProvider.getMessageCardBackgroundResourceId(isIncognito));
+        // Incognito colors should follow baseline.
+        // Use the color defined in drawable.
+        if (isIncognito) {
+            return;
+        }
+        // Set dynamic color.
+        GradientDrawable gradientDrawable = (GradientDrawable) getBackground();
+        gradientDrawable.setColor(
+                ChromeColors.getSurfaceColor(getContext(), R.dimen.default_elevation_1));
     }
 
     /**
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
index e9a40ad..9bd9f37 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
@@ -37,6 +37,7 @@
 import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter;
 import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestions;
 import org.chromium.chrome.browser.theme.ThemeColorProvider;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.features.start_surface.StartSurface;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
@@ -239,6 +240,7 @@
      * @param menuOrKeyboardActionController allows access to menu or keyboard actions.
      * @param multiWindowModeStateDispatcher Gives access to the multi window mode state.
      * @param jankTracker Measures jank while tab switcher is visible.
+     * @param toolbarSupplier Supplies the {@link Toolbar}.
      * @return the {@link StartSurface}
      */
     StartSurface createStartSurface(@NonNull Activity activity,
@@ -260,7 +262,7 @@
             @NonNull TabCreatorManager tabCreatorManager,
             @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
             @NonNull MultiWindowModeStateDispatcher multiWindowModeStateDispatcher,
-            @NonNull JankTracker jankTracker);
+            @NonNull JankTracker jankTracker, @NonNull Supplier<Toolbar> toolbarSupplier);
 
     /**
      * Create a {@link TabGroupModelFilter} for the given {@link TabModel}.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
index 9b5ddc4..b1fc7cf 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
@@ -43,6 +43,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestions;
 import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestionsOrchestrator;
 import org.chromium.chrome.browser.theme.ThemeColorProvider;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.features.start_surface.StartSurface;
 import org.chromium.chrome.features.start_surface.StartSurfaceDelegate;
@@ -179,14 +180,14 @@
             @NonNull TabCreatorManager tabCreatorManager,
             @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
             @NonNull MultiWindowModeStateDispatcher multiWindowModeStateDispatcher,
-            @NonNull JankTracker jankTracker) {
+            @NonNull JankTracker jankTracker, @NonNull Supplier<Toolbar> toolbarSupplier) {
         return StartSurfaceDelegate.createStartSurface(activity, scrimCoordinator, sheetController,
                 startSurfaceOneshotSupplier, parentTabSupplier, hadWarmStart, windowAndroid,
                 containerView, dynamicResourceLoaderSupplier, tabModelSelector,
                 browserControlsManager, snackbarManager, shareDelegateSupplier, omniboxStubSupplier,
                 tabContentManager, modalDialogManager, chromeActivityNativeDelegate,
                 activityLifecycleDispatcher, tabCreatorManager, menuOrKeyboardActionController,
-                multiWindowModeStateDispatcher, jankTracker);
+                multiWindowModeStateDispatcher, jankTracker, toolbarSupplier);
     }
 
     @Override
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider.java
index d457d278..6b35a5d 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider.java
@@ -513,8 +513,7 @@
      * @return The background resource id for message card view.
      */
     public static int getMessageCardBackgroundResourceId(boolean isIncognito) {
-        return isIncognito ? R.drawable.message_card_background_with_inset_incognito
-                           : R.drawable.message_card_background_with_inset;
+        return isIncognito ? R.drawable.incognito_card_bg : R.drawable.card_with_corners_background;
     }
 
     /**
@@ -602,4 +601,13 @@
     static boolean themeRefactorEnabled() {
         return CachedFeatureFlags.isEnabled(ChromeFeatureList.THEME_REFACTOR_ANDROID);
     }
+
+    /**
+     * Return the size represented by dimension for margin around message cards.
+     * @param context {@link Context} to retrieve dimension.
+     * @return The margin around message cards in float number.
+     */
+    public static float getMessageCardMarginDimension(Context context) {
+        return context.getResources().getDimension(R.dimen.tab_list_selected_inset);
+    }
 }
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridIphTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridIphTest.java
index a557ed8c..51410ba 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridIphTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridIphTest.java
@@ -240,6 +240,8 @@
         ActivityTestUtils.rotateActivityToOrientation(cta, Configuration.ORIENTATION_LANDSCAPE);
         CriteriaHelper.pollUiThread(
                 TabSwitcherCoordinator::hasAppendedMessagesForTesting);
+        onView(allOf(withParent(withId(R.id.compositor_view_holder)), withId(R.id.tab_list_view)))
+                .perform(RecyclerViewActions.scrollTo(withId(R.id.tab_grid_message_item)));
         onView(withId(R.id.tab_grid_message_item)).check(matches(isDisplayed()));
 
         mRenderTestRule.render(
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
index 7cb7e2b..6e9bb74 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
@@ -22,6 +22,7 @@
 import android.widget.ScrollView;
 
 import androidx.annotation.IntDef;
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.recyclerview.widget.RecyclerView;
@@ -54,6 +55,7 @@
 import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
 import org.chromium.chrome.browser.share.ShareDelegate;
 import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.user_education.UserEducationHelper;
 import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger;
@@ -149,6 +151,8 @@
     private FeedLaunchReliabilityLogger mLaunchReliabilityLogger;
     private final PrivacyPreferencesManagerImpl mPrivacyPreferencesManager;
 
+    private final Supplier<Toolbar> mToolbarSupplier;
+
     private FeedSwipeRefreshLayout mSwipeRefreshLayout;
 
     @IntDef({StreamTabId.FOR_YOU, StreamTabId.FOLLOWING})
@@ -248,6 +252,10 @@
      * @param bottomSheetController The bottom sheet controller.
      * @param shareDelegateSupplier The supplier for the share delegate used to share articles.
      * @param launchOrigin The origin of what launched the feed.
+     * @param privacyPreferencesManager Manages the privacy preferences.
+     * @param toolbarSupplier Supplies the {@link Toolbar}.
+     * @param FeedLaunchReliabilityLoggingState Holds the state for feed surface creation.
+     * @param swipeRefreshLayout The layout to support pull-to-refresh.
      */
     public FeedSurfaceCoordinator(Activity activity, SnackbarManager snackbarManager,
             WindowAndroid windowAndroid, @Nullable SnapScrollHelper snapScrollHelper,
@@ -259,6 +267,7 @@
             @Nullable ScrollableContainerDelegate externalScrollableContainerDelegate,
             @NewTabPageLaunchOrigin int launchOrigin,
             PrivacyPreferencesManagerImpl privacyPreferencesManager,
+            @NonNull Supplier<Toolbar> toolbarSupplier,
             FeedLaunchReliabilityLoggingState launchReliabilityLoggingState,
             @Nullable FeedSwipeRefreshLayout swipeRefreshLayout) {
         FeedSurfaceTracker.getInstance().initServiceBridge();
@@ -276,6 +285,7 @@
         mScrollableContainerDelegate = externalScrollableContainerDelegate;
         mLaunchReliabilityLoggingState = launchReliabilityLoggingState;
         mPrivacyPreferencesManager = privacyPreferencesManager;
+        mToolbarSupplier = toolbarSupplier;
         mSwipeRefreshLayout = swipeRefreshLayout;
 
         Resources resources = mActivity.getResources();
@@ -328,8 +338,13 @@
     @Override
     public void destroy() {
         if (mSwipeRefreshLayout != null) {
+            if (mSwipeRefreshLayout.isRefreshing()) {
+                mSwipeRefreshLayout.setRefreshing(false);
+                updateReloadButtonVisibility(/*isReloading=*/false);
+            }
             mSwipeRefreshLayout.removeOnRefreshListener(this);
             mSwipeRefreshLayout.disableSwipe();
+            mSwipeRefreshLayout = null;
         }
         stopIph();
         mMediator.destroy();
@@ -384,8 +399,20 @@
 
     @Override
     public void onRefresh() {
+        updateReloadButtonVisibility(/*isReloading=*/true);
         mLaunchReliabilityLogger.logManualRefresh(System.nanoTime());
-        mStream.triggerRefresh((Boolean v) -> { mSwipeRefreshLayout.setRefreshing(false); });
+        mStream.triggerRefresh((Boolean v) -> {
+            if (mSwipeRefreshLayout == null) return;
+            updateReloadButtonVisibility(/*isReloading=*/false);
+            mSwipeRefreshLayout.setRefreshing(false);
+        });
+    }
+
+    void updateReloadButtonVisibility(boolean isReloading) {
+        Toolbar toolbar = mToolbarSupplier.get();
+        if (toolbar != null) {
+            toolbar.updateReloadButtonVisibility(isReloading);
+        }
     }
 
     /**
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
index 462d8b0..ee101f8 100644
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -37,10 +37,6 @@
         <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
     {% endif %}
 
-    <!--
-      TODO(b/183501112): Remove this condition when always building against the S SDK.
-    -->
-    {% if target_sdk_version == 'S' or target_sdk_version|int >= 31 %}
     <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30"/>
     <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/>
     <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_CONNECT"/>
@@ -51,10 +47,6 @@
     -->
     <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_SCAN"
                             android:usesPermissionFlags="neverForLocation"/>
-    {% else %}
-    <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
-    <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
-    {% endif %}
 
     <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
     <uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index d40d5f3..b28f56b0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -665,7 +665,8 @@
                             /* chromeActivityNativeDelegate= */ this, getLifecycleDispatcher(),
                             getTabCreatorManagerSupplier().get(),
                             getMenuOrKeyboardActionController(),
-                            getMultiWindowModeStateDispatcher(), mJankTracker);
+                            getMultiWindowModeStateDispatcher(), mJankTracker,
+                            getToolbarManager()::getToolbar);
                 }
             }
 
@@ -1380,6 +1381,8 @@
             final String url = loadUrlParams.getUrl();
             boolean fromLauncherShortcut = IntentUtils.safeGetBooleanExtra(
                     intent, IntentHandler.EXTRA_INVOKED_FROM_SHORTCUT, false);
+            boolean fromAppWidget = IntentUtils.safeGetBooleanExtra(
+                    intent, IntentHandler.EXTRA_INVOKED_FROM_APP_WIDGET, false);
             boolean focus = false;
 
             TabModel tabModel = getCurrentTabModel();
@@ -1487,6 +1490,9 @@
                                     UrlConstants.NTP_URL, TabLaunchType.FROM_LAUNCHER_SHORTCUT);
                             recordLauncherShortcutAction(true);
                             reportNewTabShortcutUsed(true);
+                        } else if (fromAppWidget) {
+                            getTabCreator(true).launchUrl(
+                                    UrlConstants.NTP_URL, TabLaunchType.FROM_APP_WIDGET);
                         } else if (IncognitoTabLauncher.didCreateIntent(intent)) {
                             Tab tab = getTabCreator(true).launchUrl(UrlConstants.NTP_URL,
                                     TabLaunchType.FROM_LAUNCH_NEW_INCOGNITO_TAB);
@@ -1827,7 +1833,7 @@
                     this::getCompositorViewHolder, getModalDialogManagerSupplier(),
                     this::getSnackbarManager, getBrowserControlsManager(), getActivityTabProvider(),
                     getLifecycleDispatcher(), getWindowAndroid(), this::getLastUserInteractionTime,
-                    this::hadWarmStart, mJankTracker);
+                    this::hadWarmStart, mJankTracker, getToolbarManager()::getToolbar);
         }
         return mTabDelegateFactory;
     }
@@ -2239,6 +2245,9 @@
                 if (IntentUtils.safeGetBooleanExtra(
                             intent, IntentHandler.EXTRA_INVOKED_FROM_SHORTCUT, false)) {
                     launchType = TabLaunchType.FROM_LAUNCHER_SHORTCUT;
+                } else if (IntentUtils.safeGetBooleanExtra(
+                                   intent, IntentHandler.EXTRA_INVOKED_FROM_APP_WIDGET, false)) {
+                    launchType = TabLaunchType.FROM_APP_WIDGET;
                 } else if (IncognitoTabLauncher.didCreateIntent(intent)) {
                     launchType = TabLaunchType.FROM_LAUNCH_NEW_INCOGNITO_TAB;
                 } else {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
index baebff6..3b2c327c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -128,6 +128,12 @@
             "com.android.chrome.invoked_from_shortcut";
 
     /**
+     * An extra to indicate that the intent was triggered from am app widget.
+     */
+    public static final String EXTRA_INVOKED_FROM_APP_WIDGET =
+            "com.android.chrome.invoked_from_app_widget";
+
+    /**
      * An extra to indicate that the intent was triggered by the launch new incognito tab feature.
      * See {@link org.chromium.chrome.browser.incognito.IncognitoTabLauncher}.
      */
@@ -1061,7 +1067,11 @@
         // OMNIBOX_FOCUSED_ON_NEW_TAB is enabled, a new Tab with omnibox focused will be shown on
         // Startup.
         final boolean isCanonicalizedNTPUrl = UrlUtilities.isCanonicalizedNTPUrl(intentUrl);
-        return isCanonicalizedNTPUrl && IntentHandler.isTabOpenAsNewTabFromLauncher(intent)
+
+        final boolean isFromShortcutOrWidget = IntentHandler.isTabOpenAsNewTabFromLauncher(intent)
+                || IntentHandler.isTabOpenAsNewTabFromAppWidget(intent);
+
+        return isCanonicalizedNTPUrl && isFromShortcutOrWidget
                 && StartSurfaceConfiguration.OMNIBOX_FOCUSED_ON_NEW_TAB.getValue()
                 && IntentHandler.wasIntentSenderChrome(intent);
     }
@@ -1076,6 +1086,16 @@
                         intent, IntentHandler.EXTRA_INVOKED_FROM_SHORTCUT, false);
     }
 
+    /**
+     * @param intent The {@link Intent} to extract the info from.
+     * @return Whether the Intent specifies to create a new Tab from an app widget.
+     */
+    public static boolean isTabOpenAsNewTabFromAppWidget(Intent intent) {
+        return IntentUtils.safeGetBooleanExtra(intent, Browser.EXTRA_CREATE_NEW_TAB, false)
+                && IntentUtils.safeGetBooleanExtra(
+                        intent, IntentHandler.EXTRA_INVOKED_FROM_APP_WIDGET, false);
+    }
+
     /*
      * The default behavior here is to open in a new tab.  If this is changed, ensure
      * intents with action NDEF_DISCOVERED (links beamed over NFC) are handled properly.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
index 53c53a1..995ebba 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
@@ -30,6 +30,7 @@
 import org.chromium.chrome.browser.tab.TabWebContentsDelegateAndroid;
 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.ui.native_page.NativePage;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
@@ -67,6 +68,7 @@
     private final Supplier<Long> mLastUserInteractionTimeSupplier;
     private final BooleanSupplier mHadWarmStartSupplier;
     private final JankTracker mJankTracker;
+    private final Supplier<Toolbar> mToolbarSupplier;
 
     private NativePageFactory mNativePageFactory;
 
@@ -85,7 +87,7 @@
             BrowserControlsManager browserControlsManager, Supplier<Tab> currentTabSupplier,
             ActivityLifecycleDispatcher lifecycleDispatcher, WindowAndroid windowAndroid,
             Supplier<Long> lastUserInteractionTimeSupplier, BooleanSupplier hadWarmStartSupplier,
-            JankTracker jankTracker) {
+            JankTracker jankTracker, Supplier<Toolbar> toolbarSupplier) {
         mActivity = activity;
         mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate;
         mShareDelegateSupplier = shareDelegateSupplier;
@@ -108,6 +110,7 @@
         mLastUserInteractionTimeSupplier = lastUserInteractionTimeSupplier;
         mHadWarmStartSupplier = hadWarmStartSupplier;
         mJankTracker = jankTracker;
+        mToolbarSupplier = toolbarSupplier;
     }
 
     @Override
@@ -148,7 +151,7 @@
                     mBrowserControlsManager, mCurrentTabSupplier, mSnackbarManagerSupplier,
                     mLifecycleDispatcher, mTabModelSelectorSupplier.get(), mShareDelegateSupplier,
                     mWindowAndroid, mLastUserInteractionTimeSupplier, mHadWarmStartSupplier,
-                    mTabCreatorManager, mJankTracker);
+                    mTabCreatorManager, mJankTracker, mToolbarSupplier);
         }
         return mNativePageFactory.createNativePage(url, candidatePage, tab);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
index 8fb000b..6edc1d2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
@@ -193,7 +193,8 @@
             if (type == TabLaunchType.FROM_RESTORE || type == TabLaunchType.FROM_REPARENTING
                     || type == TabLaunchType.FROM_EXTERNAL_APP
                     || type == TabLaunchType.FROM_LAUNCHER_SHORTCUT
-                    || type == TabLaunchType.FROM_STARTUP) {
+                    || type == TabLaunchType.FROM_STARTUP
+                    || type == TabLaunchType.FROM_APP_WIDGET) {
                 return;
             }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
index a5e552b..d966544 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
@@ -38,6 +38,7 @@
 import org.chromium.chrome.browser.tab.state.CriticalPersistedTabData;
 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.ui.native_page.NativePage;
 import org.chromium.chrome.browser.ui.native_page.NativePage.NativePageType;
@@ -66,6 +67,7 @@
     private final BooleanSupplier mHadWarmStartSupplier;
     private final TabCreatorManager mTabCreatorManager;
     private final JankTracker mJankTracker;
+    private final Supplier<Toolbar> mToolbarSupplier;
     private NewTabPageUma mNewTabPageUma;
 
     private NativePageBuilder mNativePageBuilder;
@@ -81,7 +83,8 @@
             @NonNull WindowAndroid windowAndroid,
             @NonNull Supplier<Long> lastUserInteractionTimeSupplier,
             @NonNull BooleanSupplier hadWarmStartSupplier,
-            @NonNull TabCreatorManager tabCreatorManager, @NonNull JankTracker jankTracker) {
+            @NonNull TabCreatorManager tabCreatorManager, @NonNull JankTracker jankTracker,
+            @NonNull Supplier<Toolbar> toolbarSupplier) {
         mActivity = activity;
         mBottomSheetController = sheetController;
         mBrowserControlsManager = browserControlsManager;
@@ -95,14 +98,16 @@
         mHadWarmStartSupplier = hadWarmStartSupplier;
         mTabCreatorManager = tabCreatorManager;
         mJankTracker = jankTracker;
+        mToolbarSupplier = toolbarSupplier;
     }
 
     private NativePageBuilder getBuilder() {
         if (mNativePageBuilder == null) {
-            mNativePageBuilder = new NativePageBuilder(mActivity, this::getNewTabPageUma,
-                    mBottomSheetController, mBrowserControlsManager, mCurrentTabSupplier,
-                    mSnackbarManagerSupplier, mLifecycleDispatcher, mTabModelSelector,
-                    mShareDelegateSupplier, mWindowAndroid, mTabCreatorManager, mJankTracker);
+            mNativePageBuilder =
+                    new NativePageBuilder(mActivity, this::getNewTabPageUma, mBottomSheetController,
+                            mBrowserControlsManager, mCurrentTabSupplier, mSnackbarManagerSupplier,
+                            mLifecycleDispatcher, mTabModelSelector, mShareDelegateSupplier,
+                            mWindowAndroid, mTabCreatorManager, mJankTracker, mToolbarSupplier);
         }
         return mNativePageBuilder;
     }
@@ -130,6 +135,7 @@
         private final WindowAndroid mWindowAndroid;
         private final TabCreatorManager mTabCreatorManager;
         private final JankTracker mJankTracker;
+        private final Supplier<Toolbar> mToolbarSupplier;
 
         public NativePageBuilder(Activity activity, Supplier<NewTabPageUma> uma,
                 BottomSheetController sheetController,
@@ -137,7 +143,8 @@
                 Supplier<SnackbarManager> snackbarManagerSupplier,
                 ActivityLifecycleDispatcher lifecycleDispatcher, TabModelSelector tabModelSelector,
                 Supplier<ShareDelegate> shareDelegateSupplier, WindowAndroid windowAndroid,
-                TabCreatorManager tabCreatorManager, JankTracker jankTracker) {
+                TabCreatorManager tabCreatorManager, JankTracker jankTracker,
+                Supplier<Toolbar> toolbarSupplier) {
             mActivity = activity;
             mUma = uma;
             mBottomSheetController = sheetController;
@@ -150,6 +157,7 @@
             mWindowAndroid = windowAndroid;
             mTabCreatorManager = tabCreatorManager;
             mJankTracker = jankTracker;
+            mToolbarSupplier = toolbarSupplier;
         }
 
         protected NativePage buildNewTabPage(Tab tab, String url) {
@@ -161,7 +169,8 @@
                     mSnackbarManagerSupplier.get(), mLifecycleDispatcher, mTabModelSelector,
                     DeviceFormFactor.isWindowOnTablet(mWindowAndroid), mUma.get(),
                     ColorUtils.inNightMode(mActivity), nativePageHost, tab, url,
-                    mBottomSheetController, mShareDelegateSupplier, mWindowAndroid, mJankTracker);
+                    mBottomSheetController, mShareDelegateSupplier, mWindowAndroid, mJankTracker,
+                    mToolbarSupplier);
         }
 
         protected NativePage buildBookmarksPage(Tab tab) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
index cf19605..3d4691e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
@@ -70,6 +70,7 @@
 import org.chromium.chrome.browser.tab.TabObserver;
 import org.chromium.chrome.browser.tab.TabSelectionType;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.toolbar.top.Toolbar;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.ui.native_page.NativePage;
 import org.chromium.chrome.browser.ui.native_page.NativePageHost;
@@ -141,6 +142,8 @@
 
     private final int mTabStripAndToolbarHeight;
 
+    private final Supplier<Toolbar> mToolbarSupplier;
+
     @Override
     public void onControlsOffsetChanged(int topOffset, int topControlsMinHeightOffset,
             int bottomOffset, int bottomControlsMinHeightOffset, boolean needsAnimate) {
@@ -302,6 +305,7 @@
      * @param shareDelegateSupplier Supplies the Delegate used to open SharingHub.
      * @param windowAndroid The containing window of this page.
      * @param jankTracker {@link JankTracker} object to measure jankiness while NTP is visible.
+     * @param toolbarSupplier Supplies the {@link Toolbar}.
      */
     public NewTabPage(Activity activity, BrowserControlsStateProvider browserControlsStateProvider,
             Supplier<Tab> activityTabProvider, SnackbarManager snackbarManager,
@@ -310,7 +314,7 @@
             NativePageHost nativePageHost, Tab tab, String url,
             BottomSheetController bottomSheetController,
             Supplier<ShareDelegate> shareDelegateSupplier, WindowAndroid windowAndroid,
-            JankTracker jankTracker) {
+            JankTracker jankTracker, Supplier<Toolbar> toolbarSupplier) {
         mConstructedTimeNs = System.nanoTime();
         TraceEvent.begin(TAG);
 
@@ -319,6 +323,7 @@
         mTab = tab;
         mNewTabPageUma = uma;
         mJankTracker = jankTracker;
+        mToolbarSupplier = toolbarSupplier;
         mMostVisitedTileClickObservers = new ObserverList<>();
         Profile profile = Profile.fromWebContents(mTab.getWebContents());
 
@@ -461,7 +466,7 @@
                 /* isPlaceholderShownInitially= */ false, bottomSheetController,
                 shareDelegateSupplier, /* externalScrollableContainerDelegate= */ null,
                 NewTabPageUtils.decodeOriginFromNtpUrl(url),
-                PrivacyPreferencesManagerImpl.getInstance(),
+                PrivacyPreferencesManagerImpl.getInstance(), mToolbarSupplier,
                 new FeedLaunchReliabilityLoggingState(SurfaceType.NEW_TAB_PAGE, mConstructedTimeNs),
                 FeedSwipeRefreshLayout.create(activity));
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java
index e3c98c4..46d475b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider.java
@@ -14,6 +14,7 @@
 
 import org.chromium.base.ContextUtils;
 import org.chromium.base.ThreadUtils;
+import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.ui.quickactionsearchwidget.QuickActionSearchWidgetProviderDelegate;
 import org.chromium.chrome.browser.ui.quickactionsearchwidget.QuickActionSearchWidgetType;
@@ -82,8 +83,9 @@
             ComponentName widgetReceiverComponent =
                     new ComponentName(context, QuickActionSearchWidgetReceiver.class);
 
-            mDelegate = new QuickActionSearchWidgetProviderDelegate(
-                    widgetType, widgetReceiverComponent);
+            mDelegate = new QuickActionSearchWidgetProviderDelegate(widgetType,
+                    widgetReceiverComponent,
+                    IntentHandler.createTrustedOpenNewTabIntent(context, /*incognito=*/true));
         }
         return mDelegate;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java
index d357a97..e322827 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java
@@ -46,7 +46,6 @@
 import org.chromium.components.messages.MessageBannerProperties;
 import org.chromium.components.messages.MessageDispatcher;
 import org.chromium.components.messages.MessageIdentifier;
-import org.chromium.components.messages.MessageScopeType;
 import org.chromium.ui.modelutil.PropertyModel;
 import org.chromium.url.GURL;
 
@@ -254,8 +253,7 @@
                                     this::recordSurveyPromptMetrics)
                             .build();
 
-            mMessageDispatcher.enqueueMessage(
-                    message, tab.getWebContents(), MessageScopeType.WINDOW, false);
+            mMessageDispatcher.enqueueWindowScopedMessage(message, false);
         } else {
             InfoBarContainer.get(tab).addAnimationListener(this);
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
index d5ed0fd3..5f782070 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -463,6 +463,7 @@
             case TabLaunchType.FROM_STARTUP:
             case TabLaunchType.FROM_LAUNCHER_SHORTCUT:
             case TabLaunchType.FROM_LAUNCH_NEW_INCOGNITO_TAB:
+            case TabLaunchType.FROM_APP_WIDGET:
                 transition = PageTransition.AUTO_TOPLEVEL;
                 break;
             case TabLaunchType.FROM_LONGPRESS_FOREGROUND:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/TasksUma.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/TasksUma.java
index 7096fc7..94556dae 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/TasksUma.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/TasksUma.java
@@ -76,7 +76,8 @@
             if (tabLaunchType == TabLaunchType.FROM_CHROME_UI
                     || tabLaunchType == TabLaunchType.FROM_START_SURFACE
                     || tabLaunchType == TabLaunchType.FROM_LONGPRESS_BACKGROUND
-                    || tabLaunchType == TabLaunchType.FROM_LAUNCHER_SHORTCUT) {
+                    || tabLaunchType == TabLaunchType.FROM_LAUNCHER_SHORTCUT
+                    || tabLaunchType == TabLaunchType.FROM_APP_WIDGET) {
                 manuallyCreatedCount++;
             } else if (tabLaunchType == TabLaunchType.FROM_LONGPRESS_FOREGROUND) {
                 targetBlankCreatedCount++;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
index b927bc6..b17b4f1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -515,7 +515,7 @@
             mMessageDispatcher = MessagesFactory.createMessageDispatcher(container,
                     mMessageContainerCoordinator::getMessageMaxTranslation,
                     new ChromeMessageAutodismissDurationProvider(),
-                    mWindowAndroid::startAnimationOverContent);
+                    mWindowAndroid::startAnimationOverContent, mActivity.getWindowAndroid());
             mMessageQueueMediator = new ChromeMessageQueueMediator(mBrowserControlsManager,
                     mMessageContainerCoordinator, mActivityTabProvider,
                     mLayoutStateProviderOneShotSupplier, mActivity.getModalDialogManagerSupplier(),
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBaseTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBaseTest.java
index 5c562f8..49777ae 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBaseTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBaseTest.java
@@ -9,6 +9,7 @@
 import android.view.ViewGroup;
 
 import androidx.annotation.Nullable;
+import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 
 import org.junit.After;
@@ -281,7 +282,7 @@
      * Tests that a panel is only maximized when desired height is far above the max.
      */
     @Test
-    @MediumTest
+    @LargeTest
     @Feature({"OverlayPanelBase"})
     @UiThreadTest
     public void testLargeDesiredHeightIsMaximized() {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java
index 8588740..73d5211 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java
@@ -9,6 +9,7 @@
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
 
+import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 
 import org.junit.After;
@@ -180,7 +181,7 @@
     }
 
     @Test
-    @MediumTest
+    @LargeTest
     @Feature({"OverlayPanel"})
     @UiThreadTest
     public void testPanelClosed() {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabUmaTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabUmaTest.java
index dbff47b..6250df30 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabUmaTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabUmaTest.java
@@ -88,7 +88,8 @@
                 cta.getModalDialogManagerSupplier(), cta::getSnackbarManager,
                 cta.getBrowserControlsManager(), cta.getActivityTabProvider(),
                 cta.getLifecycleDispatcher(), cta.getWindowAndroid(),
-                cta::getLastUserInteractionTime, cta::hadWarmStart, new DummyJankTracker());
+                cta::getLastUserInteractionTime, cta::hadWarmStart, new DummyJankTracker(),
+                rootUiCoordinator.getToolbarManager()::getToolbar);
         // clang-format on
     }
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinatorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinatorTest.java
index 6542f30..0e590679 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinatorTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinatorTest.java
@@ -351,6 +351,8 @@
                 null, mSectionHeaderView, false, new TestSurfaceDelegate(), mPageNavigationDelegate,
                 mProfileMock, false, mBottomSheetController, mShareDelegateSupplier, null,
                 NewTabPageLaunchOrigin.UNKNOWN, mPrivacyPreferencesManager,
+                ()
+                        -> { return null; },
                 new FeedLaunchReliabilityLoggingState(SURFACE_TYPE, SURFACE_CREATION_TIME_NS),
                 null);
     }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java
index 4a316bb..3e9a285 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java
@@ -94,7 +94,7 @@
     private static class MockNativePageBuilder extends NativePageFactory.NativePageBuilder {
         private MockNativePageBuilder() {
             super(null, null, null, null, null, null, null, null, null, null, null,
-                    new DummyJankTracker());
+                    new DummyJankTracker(), null);
         }
 
         @Override
@@ -121,7 +121,7 @@
     @Before
     public void setUp() {
         mNativePageFactory = new NativePageFactory(null, null, null, null, null, null, null, null,
-                null, null, null, null, new DummyJankTracker());
+                null, null, null, null, new DummyJankTracker(), null);
         mNativePageFactory.setNativePageBuilderForTesting(new MockNativePageBuilder());
     }
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerFlowTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerFlowTest.java
index eb2020a..6b39dca 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerFlowTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerFlowTest.java
@@ -57,7 +57,6 @@
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
 import org.chromium.components.messages.MessageDispatcher;
-import org.chromium.components.messages.MessageScopeType;
 import org.chromium.content_public.browser.WebContents;
 
 import java.util.HashMap;
@@ -349,8 +348,7 @@
         Assert.assertNotNull(mMessageDispatcher);
         mTestSurveyController.onDownloadSuccessRunnable.run();
         assertSurveyInfoBarShown(false);
-        verify(mMessageDispatcher)
-                .enqueueMessage(any(), eq(mMockWebContent), eq(MessageScopeType.WINDOW), eq(false));
+        verify(mMessageDispatcher).enqueueWindowScopedMessage(any(), eq(false));
     }
 
     @Test
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 59902b4..1a6051c0 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -7264,6 +7264,9 @@
       <message name="IDS_TAB_SEARCH_TAB_COUNT" desc="Plural form of a message indicating the presence of a number of tabs greater than one.">
         <ph name="NUM">$1<ex>2</ex></ph> Tabs
       </message>
+      <message name="IDS_TAB_SEARCH_EXPAND_RECENTLY_CLOSED_ENTRIES" desc="The label for the button that toggles showing the recently closed entries list section.">
+        Toggle Recently Closed Entries
+      </message>
 
       <!-- Strings for Window Titles in Menus -->
       <if expr="not use_titlecase">
@@ -7839,6 +7842,9 @@
       <message name="IDS_SHARING_HUB_SHARE_LABEL" desc="The Label for the Third Party Targets in the Sharing Hub dialog.">
         Share link to
       </message>
+      <message name="IDS_SHARING_HUB_SHARE_LABEL_ACCESSIBILITY" desc="The acccessibility label spoken by screen readers when the label for a Third Party Sharing Target gets focus but not visually rendered.">
+        Share link to <ph name="SHARE_TARGET">$1<ex>Facebook</ex></ph>
+      </message>
 
       <!-- Desktop screenshot -->
       <message name="IDS_BROWSER_SHARING_SCREENSHOT_POST_CAPTURE_TITLE"
diff --git a/chrome/app/generated_resources_grd/IDS_SHARING_HUB_SHARE_LABEL_ACCESSIBILITY.png.sha1 b/chrome/app/generated_resources_grd/IDS_SHARING_HUB_SHARE_LABEL_ACCESSIBILITY.png.sha1
new file mode 100644
index 0000000..3b6baa7
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_SHARING_HUB_SHARE_LABEL_ACCESSIBILITY.png.sha1
@@ -0,0 +1 @@
+8f382708069e7656254c8ab0a726277a92bb72a0
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TAB_SEARCH_EXPAND_RECENTLY_CLOSED_ENTRIES.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAB_SEARCH_EXPAND_RECENTLY_CLOSED_ENTRIES.png.sha1
new file mode 100644
index 0000000..16b89b4b
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_TAB_SEARCH_EXPAND_RECENTLY_CLOSED_ENTRIES.png.sha1
@@ -0,0 +1 @@
+8bfc1266f52f663c0263de37e7b336e97f963b96
\ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index dbf5814..db9c9fb8 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1600,6 +1600,7 @@
     {ntp_features::kNtpChromeCartModuleAbandonedCartDiscountParam, "true"}};
 const FeatureEntry::FeatureParam kNtpChromeCartModuleAbandonedCartDiscount[] = {
     {ntp_features::kNtpChromeCartModuleAbandonedCartDiscountParam, "true"},
+    {ntp_features::NtpChromeCartModuleAbandonedCartDiscountUseUtmParam, "true"},
     {"partner-merchant-pattern",
      "(electronicexpress.com|zazzle.com|wish.com|homesquare.com)"}};
 const FeatureEntry::FeatureParam kNtpChromeCartModuleHeuristicsImprovement[] = {
@@ -7717,6 +7718,11 @@
     {"enable-drdc", flag_descriptions::kEnableDrDcName,
      flag_descriptions::kEnableDrDcDescription, kOsAll,
      FEATURE_VALUE_TYPE(features::kEnableDrDc)},
+    {"autofill-fill-merchant-promo-code-fields",
+     flag_descriptions::kAutofillFillMerchantPromoCodeFieldsName,
+     flag_descriptions::kAutofillFillMerchantPromoCodeFieldsDescription, kOsAll,
+     FEATURE_VALUE_TYPE(
+         autofill::features::kAutofillFillMerchantPromoCodeFields)},
 
     // NOTE: Adding a new flag requires adding a corresponding entry to enum
     // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
diff --git a/chrome/browser/android/cookies/cookies_fetcher_util.cc b/chrome/browser/android/cookies/cookies_fetcher_util.cc
index 9437a37..2a0b94b 100644
--- a/chrome/browser/android/cookies/cookies_fetcher_util.cc
+++ b/chrome/browser/android/cookies/cookies_fetcher_util.cc
@@ -13,6 +13,7 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/common/content_switches.h"
+#include "net/cookies/cookie_partition_key.h"
 #include "net/cookies/cookie_util.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 
@@ -41,8 +42,8 @@
 
   int index = 0;
   for (auto i = cookies.cbegin(); i != cookies.cend(); ++i) {
-    std::string pk = net::kEmptyCookiePartitionKey;
-    if (!i->SerializePartitionKey(pk))
+    std::string pk;
+    if (!net::CookiePartitionKey::Serialize(i->PartitionKey(), pk))
       continue;
     ScopedJavaLocalRef<jobject> java_cookie = Java_CookiesFetcher_createCookie(
         env, base::android::ConvertUTF8ToJavaString(env, i->Name()),
@@ -104,8 +105,8 @@
   std::string domain_str(base::android::ConvertJavaStringToUTF8(env, domain));
   std::string path_str(base::android::ConvertJavaStringToUTF8(env, path));
 
-  absl::optional<net::SchemefulSite> pk;
-  if (!net::CanonicalCookie::DeserializePartitionKey(
+  absl::optional<net::CookiePartitionKey> pk;
+  if (!net::CookiePartitionKey::Deserialize(
           base::android::ConvertJavaStringToUTF8(env, partition_key), pk)) {
     return;
   }
diff --git a/chrome/browser/android/send_tab_to_self/android_notification_handler.cc b/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
index 88d1bb5..882d9a2 100644
--- a/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
+++ b/chrome/browser/android/send_tab_to_self/android_notification_handler.cc
@@ -59,6 +59,10 @@
     const std::vector<const SendTabToSelfEntry*>& new_entries) {
   for (const SendTabToSelfEntry* entry : new_entries) {
     if (base::FeatureList::IsEnabled(send_tab_to_self::kSendTabToSelfV2)) {
+      // Only enqueue a single message at a time.
+      if (message_ != nullptr)
+        return;
+
       content::WebContents* web_contents = GetWebContentsForProfile(profile_);
 
       message_ = std::make_unique<messages::MessageWrapper>(
@@ -80,8 +84,8 @@
           ResourceMapper::MapToJavaDrawableId(IDR_SEND_TAB_TO_SELF));
 
       // TODO(crbug.com/1220129): A valid WebContents shouldn't be needed here.
-      messages::MessageDispatcherBridge::Get()->EnqueueMessage(
-          message_.get(), web_contents, messages::MessageScopeType::WINDOW,
+      messages::MessageDispatcherBridge::Get()->EnqueueWindowScopedMessage(
+          message_.get(), web_contents->GetTopLevelNativeWindow(),
           messages::MessagePriority::kNormal);
     } else {
       JNIEnv* env = AttachCurrentThread();
@@ -121,6 +125,7 @@
                                 ui::PAGE_TRANSITION_AUTO_TOPLEVEL, false);
   params.should_replace_current_entry = false;
   GetWebContentsForProfile(profile_)->OpenURL(params);
+  message_.reset();
 }
 
 void AndroidNotificationHandler::OnMessageDismissed(
diff --git a/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc b/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc
index 7ba2e0b..d175c9a 100644
--- a/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc
+++ b/chrome/browser/ash/child_accounts/family_user_parental_control_metrics_unittest.cc
@@ -375,6 +375,12 @@
       /*sample=*/
       SupervisedUserURLFilter::ManagedSiteList::kEmpty,
       /*expected_count=*/1);
+  histogram_tester_.ExpectUniqueSample(
+      SupervisedUserURLFilter::GetApprovedSitesCountHistogramNameForTest(),
+      /*sample=*/0, /*expected_count=*/1);
+  histogram_tester_.ExpectUniqueSample(
+      SupervisedUserURLFilter::GetBlockedSitesCountHistogramNameForTest(),
+      /*sample=*/0, /*expected_count=*/1);
 
   // Blocks `kExampleHost0`.
   {
@@ -389,6 +395,12 @@
       /*sample=*/
       SupervisedUserURLFilter::ManagedSiteList::kBlockedListOnly,
       /*expected_count=*/1);
+  histogram_tester_.ExpectBucketCount(
+      SupervisedUserURLFilter::GetApprovedSitesCountHistogramNameForTest(),
+      /*sample=*/0, /*expected_count=*/2);
+  histogram_tester_.ExpectBucketCount(
+      SupervisedUserURLFilter::GetBlockedSitesCountHistogramNameForTest(),
+      /*sample=*/1, /*expected_count=*/1);
 
   // Approves `kExampleHost0`.
   {
@@ -403,6 +415,12 @@
       /*sample=*/
       SupervisedUserURLFilter::ManagedSiteList::kApprovedListOnly,
       /*expected_count=*/1);
+  histogram_tester_.ExpectBucketCount(
+      SupervisedUserURLFilter::GetApprovedSitesCountHistogramNameForTest(),
+      /*sample=*/1, /*expected_count=*/1);
+  histogram_tester_.ExpectBucketCount(
+      SupervisedUserURLFilter::GetBlockedSitesCountHistogramNameForTest(),
+      /*sample=*/0, /*expected_count=*/2);
 
   // Blocks `kExampleURL1`.
   {
@@ -417,10 +435,22 @@
       /*sample=*/
       SupervisedUserURLFilter::ManagedSiteList::kBoth,
       /*expected_count=*/1);
+  histogram_tester_.ExpectBucketCount(
+      SupervisedUserURLFilter::GetApprovedSitesCountHistogramNameForTest(),
+      /*sample=*/1, /*expected_count=*/2);
+  histogram_tester_.ExpectBucketCount(
+      SupervisedUserURLFilter::GetBlockedSitesCountHistogramNameForTest(),
+      /*sample=*/1, /*expected_count=*/2);
 
   histogram_tester_.ExpectTotalCount(
       SupervisedUserURLFilter::GetManagedSiteListHistogramNameForTest(),
       /*expected_count=*/4);
+  histogram_tester_.ExpectTotalCount(
+      SupervisedUserURLFilter::GetApprovedSitesCountHistogramNameForTest(),
+      /*expected_count=*/4);
+  histogram_tester_.ExpectTotalCount(
+      SupervisedUserURLFilter::GetBlockedSitesCountHistogramNameForTest(),
+      /*expected_count=*/4);
 }
 
 }  // namespace ash
diff --git a/chrome/browser/ash/crosapi/browser_manager.cc b/chrome/browser/ash/crosapi/browser_manager.cc
index 401f298..f8fc0e5 100644
--- a/chrome/browser/ash/crosapi/browser_manager.cc
+++ b/chrome/browser/ash/crosapi/browser_manager.cc
@@ -783,8 +783,10 @@
     std::move(load_complete_callback_).Run(success);
   }
 
-  if (state_ == State::STOPPED && GetLaunchOnLoginPref())
+  if (state_ == State::STOPPED &&
+      (browser_util::IsLacrosPrimaryBrowser() || GetLaunchOnLoginPref())) {
     Start(mojom::InitialBrowserAction::kUseStartupPreference);
+  }
 }
 
 void BrowserManager::PrepareLacrosPolicies() {
diff --git a/chrome/browser/ash/crosapi/download_controller_ash.cc b/chrome/browser/ash/crosapi/download_controller_ash.cc
index 2b9a598..0212e638 100644
--- a/chrome/browser/ash/crosapi/download_controller_ash.cc
+++ b/chrome/browser/ash/crosapi/download_controller_ash.cc
@@ -20,21 +20,21 @@
 }
 
 void DownloadControllerAsh::OnDownloadCreated(
-    crosapi::mojom::DownloadEventPtr event) {
+    crosapi::mojom::DownloadItemPtr download) {
   for (auto& observer : observers_)
-    observer.OnLacrosDownloadCreated(*event);
+    observer.OnLacrosDownloadCreated(*download);
 }
 
 void DownloadControllerAsh::OnDownloadUpdated(
-    crosapi::mojom::DownloadEventPtr event) {
+    crosapi::mojom::DownloadItemPtr download) {
   for (auto& observer : observers_)
-    observer.OnLacrosDownloadUpdated(*event);
+    observer.OnLacrosDownloadUpdated(*download);
 }
 
 void DownloadControllerAsh::OnDownloadDestroyed(
-    crosapi::mojom::DownloadEventPtr event) {
+    crosapi::mojom::DownloadItemPtr download) {
   for (auto& observer : observers_)
-    observer.OnLacrosDownloadDestroyed(*event);
+    observer.OnLacrosDownloadDestroyed(*download);
 }
 
 void DownloadControllerAsh::AddObserver(DownloadControllerObserver* observer) {
diff --git a/chrome/browser/ash/crosapi/download_controller_ash.h b/chrome/browser/ash/crosapi/download_controller_ash.h
index b128a74..506885d 100644
--- a/chrome/browser/ash/crosapi/download_controller_ash.h
+++ b/chrome/browser/ash/crosapi/download_controller_ash.h
@@ -23,9 +23,9 @@
   // Allows ash classes to observe download events.
   class DownloadControllerObserver : public base::CheckedObserver {
    public:
-    virtual void OnLacrosDownloadCreated(const mojom::DownloadEvent& event) {}
-    virtual void OnLacrosDownloadUpdated(const mojom::DownloadEvent& event) {}
-    virtual void OnLacrosDownloadDestroyed(const mojom::DownloadEvent& event) {}
+    virtual void OnLacrosDownloadCreated(const mojom::DownloadItem&) {}
+    virtual void OnLacrosDownloadUpdated(const mojom::DownloadItem&) {}
+    virtual void OnLacrosDownloadDestroyed(const mojom::DownloadItem&) {}
   };
 
   DownloadControllerAsh();
@@ -40,9 +40,9 @@
   // mojom::DownloadController:
   void BindClient(
       mojo::PendingRemote<mojom::DownloadControllerClient> client) override;
-  void OnDownloadCreated(mojom::DownloadEventPtr event) override;
-  void OnDownloadUpdated(mojom::DownloadEventPtr event) override;
-  void OnDownloadDestroyed(mojom::DownloadEventPtr event) override;
+  void OnDownloadCreated(mojom::DownloadItemPtr download) override;
+  void OnDownloadUpdated(mojom::DownloadItemPtr download) override;
+  void OnDownloadDestroyed(mojom::DownloadItemPtr download) override;
 
   // Required for the below `base::ObserverList`:
   void AddObserver(DownloadControllerObserver* observer);
diff --git a/chrome/browser/ash/file_manager/file_tasks_browsertest.cc b/chrome/browser/ash/file_manager/file_tasks_browsertest.cc
index b19c3fa..5cc0bbc 100644
--- a/chrome/browser/ash/file_manager/file_tasks_browsertest.cc
+++ b/chrome/browser/ash/file_manager/file_tasks_browsertest.cc
@@ -341,7 +341,7 @@
 // The Media App will be preferred over a chrome app with a specific extension,
 // unless that app is set default via prefs.
 IN_PROC_BROWSER_TEST_P(FileTasksBrowserTest, MediaAppPreferredOverChromeApps) {
-  if (GetParam() == TestProfileType::kGuest) {
+  if (profile_type() == TestProfileType::kGuest) {
     // The provided file system can't install in guest mode. Just check that
     // MediaApp handles tiff.
     TestExpectationsAgainstDefaultTasks({{"tiff", kMediaAppId}});
@@ -355,7 +355,7 @@
       profile->GetPrefs(),
       TaskDescriptor(extension->id(), StringToTaskType("app"), "tiffAction"),
       {"tiff"}, {"image/tiff"});
-  if (GetParam() == TestProfileType::kIncognito) {
+  if (profile_type() == TestProfileType::kIncognito) {
     // In incognito, the provided file system can exist, but the file handler
     // preference can't be changed.
     TestExpectationsAgainstDefaultTasks({{"tiff", kMediaAppId}});
@@ -366,7 +366,7 @@
 
 // Test expectations for files coming from provided file systems.
 IN_PROC_BROWSER_TEST_P(FileTasksBrowserTest, ProvidedFileSystemFileSource) {
-  if (GetParam() == TestProfileType::kGuest) {
+  if (profile_type() == TestProfileType::kGuest) {
     // Provided file systems don't exist in guest. This test seems to work OK in
     // incognito mode though.
     return;
@@ -415,19 +415,11 @@
   EXPECT_EQ(remaining_expectations, 0);
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         FileTasksBrowserTest,
-                         ::testing::Values(TestProfileType::kRegular,
-                                           TestProfileType::kIncognito,
-                                           TestProfileType::kGuest),
-                         TestProfileTypeToString);
+INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_ALL_PROFILE_TYPES_P(
+    FileTasksBrowserTest);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         FileTasksBrowserTestWithPdf,
-                         ::testing::Values(TestProfileType::kRegular,
-                                           TestProfileType::kIncognito,
-                                           TestProfileType::kGuest),
-                         TestProfileTypeToString);
+INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_ALL_PROFILE_TYPES_P(
+    FileTasksBrowserTestWithPdf);
 
 }  // namespace file_tasks
 }  // namespace file_manager
diff --git a/chrome/browser/ash/full_restore/full_restore_app_launch_handler_browsertest.cc b/chrome/browser/ash/full_restore/full_restore_app_launch_handler_browsertest.cc
index ea2bd5c..429072ba 100644
--- a/chrome/browser/ash/full_restore/full_restore_app_launch_handler_browsertest.cc
+++ b/chrome/browser/ash/full_restore/full_restore_app_launch_handler_browsertest.cc
@@ -15,6 +15,7 @@
 #include "ash/shell.h"
 #include "ash/wm/window_state.h"
 #include "ash/wm/wm_event.h"
+#include "base/feature_list.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/timer/timer.h"
@@ -24,6 +25,7 @@
 #include "chrome/browser/apps/platform_apps/app_browsertest_util.h"
 #include "chrome/browser/ash/arc/arc_util.h"
 #include "chrome/browser/ash/arc/session/arc_session_manager.h"
+#include "chrome/browser/ash/crosapi/browser_util.h"
 #include "chrome/browser/ash/full_restore/arc_app_launch_handler.h"
 #include "chrome/browser/ash/full_restore/full_restore_arc_task_handler.h"
 #include "chrome/browser/ash/full_restore/full_restore_service.h"
@@ -40,6 +42,7 @@
 #include "chrome/browser/web_applications/components/web_app_id.h"
 #include "chrome/browser/web_applications/components/web_application_info.h"
 #include "chrome/browser/web_applications/test/web_app_install_test_utils.h"
+#include "chrome/common/chrome_features.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "components/arc/arc_service_manager.h"
 #include "components/arc/mojom/app.mojom.h"
@@ -2325,16 +2328,22 @@
   }
 
   void ModifyAppReadiness(apps::mojom::Readiness readiness) {
+    apps::mojom::AppType app_type = apps::mojom::AppType::kWeb;
+    if (crosapi::browser_util::IsLacrosEnabled() &&
+        base::FeatureList::IsEnabled(features::kWebAppsCrosapi)) {
+      app_type = apps::mojom::AppType::kSystemWeb;
+    }
+
     auto* proxy = apps::AppServiceProxyFactory::GetForProfile(profile());
     std::vector<apps::mojom::AppPtr> deltas;
     apps::AppRegistryCache& cache = proxy->AppRegistryCache();
     apps::mojom::AppPtr app = apps::mojom::App::New();
     app->app_id =
         *GetManager().GetAppIdForSystemApp(web_app::SystemAppType::HELP);
-    app->app_type = apps::mojom::AppType::kWeb;
+    app->app_type = app_type;
     app->readiness = readiness;
     deltas.push_back(std::move(app));
-    cache.OnApps(std::move(deltas), apps::mojom::AppType::kWeb,
+    cache.OnApps(std::move(deltas), app_type,
                  false /* should_notify_initialized */);
   }
 
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 be44fe6..ddade7e 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
@@ -1438,8 +1438,16 @@
   EXPECT_TRUE(tester.HistoryContainsURL(kOrigin2));
 }
 
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_RemoveMultipleTypesHistoryProhibited \
+  DISABLED_RemoveMultipleTypesHistoryProhibited
+#else
+#define MAYBE_RemoveMultipleTypesHistoryProhibited \
+  RemoveMultipleTypesHistoryProhibited
+#endif
 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
-       RemoveMultipleTypesHistoryProhibited) {
+       MAYBE_RemoveMultipleTypesHistoryProhibited) {
   PrefService* prefs = GetProfile()->GetPrefs();
   prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
 
@@ -1994,7 +2002,13 @@
       content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS, false);
 }
 
-TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordStatistics) {
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_RemovePasswordStatistics DISABLED_RemovePasswordStatistics
+#else
+#define MAYBE_RemovePasswordStatistics RemovePasswordStatistics
+#endif
+TEST_F(ChromeBrowsingDataRemoverDelegateTest, MAYBE_RemovePasswordStatistics) {
   RemovePasswordsTester tester(GetProfile());
   base::RepeatingCallback<bool(const GURL&)> empty_filter;
 
@@ -2047,7 +2061,13 @@
                               constants::DATA_TYPE_HISTORY, std::move(builder));
 }
 
-TEST_F(ChromeBrowsingDataRemoverDelegateTest, RemovePasswordsByTimeOnly) {
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_RemovePasswordsByTimeOnly DISABLED_RemovePasswordsByTimeOnly
+#else
+#define MAYBE_RemovePasswordsByTimeOnly RemovePasswordsByTimeOnly
+#endif
+TEST_F(ChromeBrowsingDataRemoverDelegateTest, MAYBE_RemovePasswordsByTimeOnly) {
   RemovePasswordsTester tester(GetProfile());
 
   ExpectRemoveLoginsByURLAndTime(tester.profile_store());
@@ -2072,6 +2092,12 @@
                               std::move(builder));
 }
 
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_DisableAutoSignIn DISABLED_DisableAutoSignIn
+#else
+#define MAYBE_DisableAutoSignIn DisableAutoSignIn
+#endif
 TEST_F(ChromeBrowsingDataRemoverDelegateTest, DisableAutoSignIn) {
   RemovePasswordsTester tester(GetProfile());
   base::RepeatingCallback<bool(const GURL&)> empty_filter =
@@ -2089,8 +2115,16 @@
                                 false);
 }
 
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_DisableAutoSignInAfterRemovingPasswords \
+  DISABLED_DisableAutoSignInAfterRemovingPasswords
+#else
+#define MAYBE_DisableAutoSignInAfterRemovingPasswords \
+  DisableAutoSignInAfterRemovingPasswords
+#endif
 TEST_F(ChromeBrowsingDataRemoverDelegateTest,
-       DisableAutoSignInAfterRemovingPasswords) {
+       MAYBE_DisableAutoSignInAfterRemovingPasswords) {
   RemovePasswordsTester tester(GetProfile());
   base::RepeatingCallback<bool(const GURL&)> empty_filter =
       BrowsingDataFilterBuilder::BuildNoopFilter();
@@ -3135,8 +3169,16 @@
   }
 };
 
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_RemovePasswordsByTimeOnly_WithAccountStore \
+  DISABLED_RemovePasswordsByTimeOnly_WithAccountStore
+#else
+#define MAYBE_RemovePasswordsByTimeOnly_WithAccountStore \
+  RemovePasswordsByTimeOnly_WithAccountStore
+#endif
 TEST_F(ChromeBrowsingDataRemoverDelegateEnabledPasswordsTest,
-       RemovePasswordsByTimeOnly_WithAccountStore) {
+       MAYBE_RemovePasswordsByTimeOnly_WithAccountStore) {
   RemovePasswordsTester tester(GetProfile());
 
   ExpectRemoveLoginsByURLAndTime(tester.profile_store());
@@ -3147,8 +3189,16 @@
                                 constants::DATA_TYPE_PASSWORDS, false);
 }
 
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_RemoveAccountPasswordsByTimeOnly_WithAccountStore \
+  DISABLED_RemoveAccountPasswordsByTimeOnly_WithAccountStore
+#else
+#define MAYBE_RemoveAccountPasswordsByTimeOnly_WithAccountStore \
+  RemoveAccountPasswordsByTimeOnly_WithAccountStore
+#endif
 TEST_F(ChromeBrowsingDataRemoverDelegateEnabledPasswordsTest,
-       RemoveAccountPasswordsByTimeOnly_WithAccountStore) {
+       MAYBE_RemoveAccountPasswordsByTimeOnly_WithAccountStore) {
   RemovePasswordsTester tester(GetProfile());
 
   EXPECT_CALL(*tester.profile_store(), RemoveLoginsByURLAndTime).Times(0);
@@ -3158,8 +3208,16 @@
                                 constants::DATA_TYPE_ACCOUNT_PASSWORDS, false);
 }
 
+// TODO(crbug.com/1234803): Crashes on linux-ubsan-vptr
+#if defined(UNDEFINED_SANITIZER)
+#define MAYBE_RemoveAccountPasswordsByTimeOnly_WithAccountStore_Failure \
+  DISABLED_RemoveAccountPasswordsByTimeOnly_WithAccountStore_Failure
+#else
+#define MAYBE_RemoveAccountPasswordsByTimeOnly_WithAccountStore_Failure \
+  RemoveAccountPasswordsByTimeOnly_WithAccountStore_Failure
+#endif
 TEST_F(ChromeBrowsingDataRemoverDelegateEnabledPasswordsTest,
-       RemoveAccountPasswordsByTimeOnly_WithAccountStore_Failure) {
+       MAYBE_RemoveAccountPasswordsByTimeOnly_WithAccountStore_Failure) {
   RemovePasswordsTester tester(GetProfile());
 
   EXPECT_CALL(*tester.profile_store(), RemoveLoginsByURLAndTime).Times(0);
diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
index 7a67afe..dbaf599 100644
--- a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
+++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
@@ -396,6 +396,15 @@
         render_frame_host);
     return true;
   }
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+  if (interface_name == extensions::mojom::LocalFrameHost::Name_) {
+    extensions::ExtensionWebContentsObserver::BindLocalFrameHost(
+        mojo::PendingAssociatedReceiver<extensions::mojom::LocalFrameHost>(
+            std::move(*handle)),
+        render_frame_host);
+    return true;
+  }
+#endif
   if (interface_name == lite_video::mojom::LiteVideoService::Name_) {
     LiteVideoObserver::BindLiteVideoService(
         mojo::PendingAssociatedReceiver<lite_video::mojom::LiteVideoService>(
diff --git a/chrome/browser/chromeos/eche_app/eche_app_manager_factory.cc b/chrome/browser/chromeos/eche_app/eche_app_manager_factory.cc
index b30569a..9eaa736b 100644
--- a/chrome/browser/chromeos/eche_app/eche_app_manager_factory.cc
+++ b/chrome/browser/chromeos/eche_app/eche_app_manager_factory.cc
@@ -86,10 +86,9 @@
                                    params);
 }
 
-// TODO(b/195070217): Convert |package_name| to const reference type.
 void LaunchEcheApp(Profile* profile,
                    int64_t notification_id,
-                   std::string package_name) {
+                   const std::string& package_name) {
   LaunchSystemWebApp(profile, package_name, notification_id);
   base::UmaHistogramEnumeration("Eche.NotificationClicked",
                                 NotificationInteraction::kOpenAppStreaming);
diff --git a/chrome/browser/download/download_browsertest.cc b/chrome/browser/download/download_browsertest.cc
index cec6e12..9752c3f4 100644
--- a/chrome/browser/download/download_browsertest.cc
+++ b/chrome/browser/download/download_browsertest.cc
@@ -124,6 +124,7 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/download_test_observer.h"
+#include "content/public/test/prerender_test_util.h"
 #include "content/public/test/slow_download_http_response.h"
 #include "content/public/test/test_download_http_response.h"
 #include "content/public/test/test_file_error_injector.h"
@@ -1278,6 +1279,34 @@
         network::mojom::ReferrerPolicy::kSameOrigin,
         network::mojom::ReferrerPolicy::kStrictOrigin));
 
+class PrerenderDownloadTest : public DownloadTest {
+ public:
+  PrerenderDownloadTest()
+      : prerender_helper_(
+            base::BindRepeating(&PrerenderDownloadTest::GetWebContents,
+                                base::Unretained(this))) {}
+  ~PrerenderDownloadTest() override = default;
+
+  void SetUpOnMainThread() override {
+    DownloadTest::SetUpOnMainThread();
+    prerender_helper_.SetUpOnMainThread(embedded_test_server());
+    ASSERT_TRUE(test_server_handle_ =
+                    embedded_test_server()->StartAndReturnHandle());
+  }
+
+  content::WebContents* GetWebContents() {
+    return browser()->tab_strip_model()->GetActiveWebContents();
+  }
+
+  content::test::PrerenderTestHelper* prerender_helper() {
+    return &prerender_helper_;
+  }
+
+ private:
+  content::test::PrerenderTestHelper prerender_helper_;
+  net::test_server::EmbeddedTestServerHandle test_server_handle_;
+};
+
 namespace {
 
 class FakeDownloadProtectionService
@@ -1693,6 +1722,49 @@
   EXPECT_TRUE(base::PathExists(file_path2));
 }
 
+// Verify that non-active main frame downloads (e.g. prerendering) don't affect
+// the DownloadRequestLimiter state of the WebContents.
+IN_PROC_BROWSER_TEST_F(PrerenderDownloadTest,
+                       DownloadRequestLimiterIsUnaffectedByPrerendering) {
+  const GURL kInitialUrl = embedded_test_server()->GetURL("/empty.html");
+  const GURL kPrerenderingUrl =
+      embedded_test_server()->GetURL("/download_script.html");
+
+  ui_test_utils::NavigateToURL(browser(), kInitialUrl);
+
+  // Check the initial DownloadRequestLimiter state.
+  auto* web_contents = GetWebContents();
+  const DownloadRequestLimiter::TabDownloadState* tab_download_state =
+      g_browser_process->download_request_limiter()->GetDownloadState(
+          web_contents, true);
+  ASSERT_TRUE(tab_download_state);
+  EXPECT_EQ(tab_download_state->download_status(),
+            DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD);
+
+  // Create a prerendered page.
+  int host_id = prerender_helper()->AddPrerender(kPrerenderingUrl);
+  ASSERT_NE(host_id, content::RenderFrameHost::kNoFrameTreeNodeId);
+  content::test::PrerenderHostObserver host_observer(*web_contents, host_id);
+
+  // Try to start the download via Javascript in the prerendered page.
+  ASSERT_EQ(true, content::EvalJs(
+                      prerender_helper()->GetPrerenderedMainFrameHost(host_id),
+                      "startDownload();"));
+
+  // Navigations aren't allowed on prerendered pages.
+  host_observer.WaitForDestroyed();
+
+  // Check that the DownloadRequestLimiter state wasn't modified.
+  const DownloadRequestLimiter::TabDownloadState* new_tab_download_state =
+      g_browser_process->download_request_limiter()->GetDownloadState(
+          web_contents, false);
+  ASSERT_EQ(tab_download_state, new_tab_download_state);
+  EXPECT_EQ(new_tab_download_state->download_status(),
+            DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD);
+
+  EXPECT_TRUE(VerifyNoDownloads());
+}
+
 // Download a 0-size file with a content-disposition header, verify that the
 // download tab opened and the file exists as the filename specified in the
 // header.  This also ensures we properly handle empty file downloads.
diff --git a/chrome/browser/download/download_request_limiter.cc b/chrome/browser/download/download_request_limiter.cc
index e10a14e..4de3285 100644
--- a/chrome/browser/download/download_request_limiter.cc
+++ b/chrome/browser/download/download_request_limiter.cc
@@ -127,9 +127,6 @@
 
 void DownloadRequestLimiter::TabDownloadState::DidStartNavigation(
     content::NavigationHandle* navigation_handle) {
-  // TODO(https://crbug.com/1218946): With MPArch there may be multiple main
-  // frames. This caller was converted automatically to the primary main frame
-  // to preserve its semantics. Follow up to confirm correctness.
   if (!navigation_handle->IsInPrimaryMainFrame())
     return;
 
@@ -177,9 +174,6 @@
 
 void DownloadRequestLimiter::TabDownloadState::DidFinishNavigation(
     content::NavigationHandle* navigation_handle) {
-  // TODO(https://crbug.com/1218946): With MPArch there may be multiple main
-  // frames. This caller was converted automatically to the primary main frame
-  // to preserve its semantics. Follow up to confirm correctness.
   if (!navigation_handle->IsInPrimaryMainFrame())
     return;
 
@@ -241,8 +235,12 @@
   permissions::PermissionRequestManager* permission_request_manager =
       permissions::PermissionRequestManager::FromWebContents(web_contents_);
   if (permission_request_manager) {
-    // TODO(https://crbug.com/1061899): We should pass the frame which initiated
-    // the action instead of assuming that it was the current main frame.
+    // The RFH is used to scope the lifetime of the request and scoping it to
+    // the initiator doesn't make sense for downloads as download navigation
+    // requests are never committed and don't update the omnibox url.
+    // Download requests should only be granted by checking `request_origin`,
+    // so we use the primary main RenderFrameHost here, to avoid discarding the
+    // request in the case that the initiator RFH is already gone.
     permission_request_manager->AddRequest(
         web_contents_->GetMainFrame(),
         new DownloadPermissionRequest(factory_.GetWeakPtr(), request_origin));
diff --git a/chrome/browser/download/download_request_limiter.h b/chrome/browser/download/download_request_limiter.h
index 9dfbe476..44999af6 100644
--- a/chrome/browser/download/download_request_limiter.h
+++ b/chrome/browser/download/download_request_limiter.h
@@ -260,6 +260,8 @@
   FRIEND_TEST_ALL_PREFIXES(ContentSettingBubbleControllerTest, Init);
   FRIEND_TEST_ALL_PREFIXES(ContentSettingImageModelBrowserTest,
                            CreateBubbleModel);
+  FRIEND_TEST_ALL_PREFIXES(PrerenderDownloadTest,
+                           DownloadRequestLimiterIsUnaffectedByPrerendering);
   friend class base::RefCountedThreadSafe<DownloadRequestLimiter>;
   friend class BackgroundFetchBrowserTest;
   friend class ContentSettingBubbleDialogTest;
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index 39c6c89..26d14bbd 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -377,8 +377,6 @@
     "api/system_indicator/system_indicator_manager_factory.h",
     "api/system_private/system_private_api.cc",
     "api/system_private/system_private_api.h",
-    "api/tab_capture/offscreen_tabs_owner.cc",
-    "api/tab_capture/offscreen_tabs_owner.h",
     "api/tab_capture/tab_capture_api.cc",
     "api/tab_capture/tab_capture_api.h",
     "api/tab_capture/tab_capture_registry.cc",
diff --git a/chrome/browser/extensions/api/automation/automation_apitest.cc b/chrome/browser/extensions/api/automation/automation_apitest.cc
index a11fcc5..b3a0471 100644
--- a/chrome/browser/extensions/api/automation/automation_apitest.cc
+++ b/chrome/browser/extensions/api/automation/automation_apitest.cc
@@ -451,7 +451,13 @@
       << message_;
 }
 
-IN_PROC_BROWSER_TEST_F(AutomationApiTest, DesktopHitTestIframe) {
+// TODO(http://crbug.com/1234340): flaky on ChromeOS.
+#if defined(OS_CHROMEOS)
+#define MAYBE_DesktopHitTestIframe DISABLED_DesktopHitTestIframe
+#else
+#define MAYBE_DesktopHitTestIframe DesktopHitTestIframe
+#endif
+IN_PROC_BROWSER_TEST_F(AutomationApiTest, MAYBE_DesktopHitTestIframe) {
   StartEmbeddedTestServer();
   ASSERT_TRUE(RunExtensionTest("automation/tests/desktop",
                                {.page_url = "hit_test_iframe.html"}))
diff --git a/chrome/browser/extensions/api/storage/settings_apitest.cc b/chrome/browser/extensions/api/storage/settings_apitest.cc
index d463a16f..b445271 100644
--- a/chrome/browser/extensions/api/storage/settings_apitest.cc
+++ b/chrome/browser/extensions/api/storage/settings_apitest.cc
@@ -344,9 +344,13 @@
 
 // TODO(crbug.com/1185226): Change parent class to `ExtensionSettingsApiTest`
 // when chrome.storage.session is released in stable.
-// Flaky across multiple platforms: https://crbug.com/1216449.
+// TODO(crbug.com/1229351): Service worker extension listener should receive an
+// event before the callback is made. Current workaround: wait for the event to
+// be received by the extension before checking for it. Potential solution: once
+// browser-side observation of SW lifetime work is finished, check if it fixes
+// this test.
 IN_PROC_BROWSER_TEST_F(ExtensionSettingsTrunkApiTest,
-                       DISABLED_OnChangedNotificationsBetweenBackgroundPages) {
+                       OnChangedNotificationsBetweenBackgroundPages) {
   // We need 2 ResultCatchers because we'll be running the same test in both
   // regular and incognito mode.
   ResultCatcher catcher;
@@ -357,24 +361,37 @@
 
   StorageAreaNamespace storage_areas[2] = {StorageAreaNamespace::kSync,
                                            StorageAreaNamespace::kSession};
-  LoadAndReplyWhenSatisfied(StorageAreaNamespace::kSync,
-                            "assertNoNotifications", "assertNoNotifications",
-                            "split_incognito");
+
   for (const StorageAreaNamespace& storage_area : storage_areas) {
-    ReplyWhenSatisfied(storage_area, "assertNoNotifications",
-                       "assertNoNotifications");
+    // We need to load the extension when it's the first reply.
+    // kSync is the first storage area to run.
+    if (storage_area == StorageAreaNamespace::kSync) {
+      LoadAndReplyWhenSatisfied(StorageAreaNamespace::kSync,
+                                "assertNoNotifications",
+                                "assertNoNotifications", "split_incognito");
+    } else {
+      ReplyWhenSatisfied(storage_area, "assertNoNotifications",
+                         "assertNoNotifications");
+    }
+
     ReplyWhenSatisfied(storage_area, "noop", "setFoo");
     ReplyWhenSatisfied(storage_area, "assertAddFooNotification",
                        "assertAddFooNotification");
     ReplyWhenSatisfied(storage_area, "clearNotifications",
                        "clearNotifications");
     ReplyWhenSatisfied(storage_area, "removeFoo", "noop");
-    ReplyWhenSatisfied(storage_area, "assertDeleteFooNotification",
-                       "assertDeleteFooNotification");
+
+    // We need to end the test with a final reply when it's the last reply.
+    // kSession is the last storage area to run.
+    if (storage_area == StorageAreaNamespace::kSession) {
+      FinalReplyWhenSatisfied(StorageAreaNamespace::kSession,
+                              "assertDeleteFooNotification",
+                              "assertDeleteFooNotification");
+    } else {
+      ReplyWhenSatisfied(storage_area, "assertDeleteFooNotification",
+                         "assertDeleteFooNotification");
+    }
   }
-  FinalReplyWhenSatisfied(StorageAreaNamespace::kSession,
-                          "assertDeleteFooNotification",
-                          "assertDeleteFooNotification");
 
   EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
   EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
@@ -490,9 +507,13 @@
   EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
 }
 
-// https://crbug.com/1216450: Flaky on multiple platforms.
+// TODO(crbug.com/1229351): Service worker extension listener should receive an
+// event before the callback is made. Current workaround: wait for the event to
+// be received by the extension before checking for it. Potential solution: once
+// browser-side observation of SW lifetime work is finished, check if it fixes
+// this test.
 IN_PROC_BROWSER_TEST_F(ExtensionSettingsApiTest,
-                       DISABLED_OnChangedNotificationsFromSync) {
+                       OnChangedNotificationsFromSync) {
   // We need 2 ResultCatchers because we'll be running the same test in both
   // regular and incognito mode.
   ResultCatcher catcher, catcher_incognito;
diff --git a/chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.cc b/chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.cc
deleted file mode 100644
index 4b60389..0000000
--- a/chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.h"
-
-#include <algorithm>
-#include <utility>
-#include <vector>
-
-#include "base/bind.h"
-#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h"
-#include "chrome/browser/profiles/profile.h"
-#include "content/public/browser/web_contents.h"
-#include "extensions/browser/extension_host.h"
-#include "extensions/browser/process_manager.h"
-#include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
-
-using content::WebContents;
-
-namespace {
-
-// Upper limit on the number of simultaneous off-screen tabs per extension
-// instance.
-const int kMaxOffscreenTabsPerExtension = 4;
-
-}  // namespace
-
-namespace extensions {
-
-OffscreenTabsOwner::OffscreenTabsOwner(WebContents* extension_web_contents)
-    : extension_web_contents_(extension_web_contents) {
-  DCHECK(extension_web_contents_);
-}
-
-OffscreenTabsOwner::~OffscreenTabsOwner() {}
-
-// static
-OffscreenTabsOwner* OffscreenTabsOwner::Get(
-    content::WebContents* extension_web_contents) {
-  // CreateForWebContents() really means "create if not exists."
-  CreateForWebContents(extension_web_contents);
-  return FromWebContents(extension_web_contents);
-}
-
-OffscreenTab* OffscreenTabsOwner::OpenNewTab(
-    const GURL& start_url,
-    const gfx::Size& initial_size,
-    const std::string& optional_presentation_id) {
-  if (tabs_.size() >= kMaxOffscreenTabsPerExtension)
-    return nullptr;  // Maximum number of offscreen tabs reached.
-
-  tabs_.emplace_back(std::make_unique<OffscreenTab>(
-      this, extension_web_contents_->GetBrowserContext()));
-  tabs_.back()->Start(start_url, initial_size, optional_presentation_id);
-  return tabs_.back().get();
-}
-
-void OffscreenTabsOwner::RequestMediaAccessPermission(
-    const content::MediaStreamRequest& request,
-    content::MediaResponseCallback callback) {
-  // This method is being called to check whether an extension is permitted to
-  // capture the page.  Verify that the request is being made by the extension
-  // that spawned this OffscreenTab.
-
-  // Find the extension ID associated with the extension background page's
-  // WebContents.
-  content::BrowserContext* const extension_browser_context =
-      extension_web_contents_->GetBrowserContext();
-  const extensions::Extension* const extension =
-      ProcessManager::Get(extension_browser_context)
-          ->GetExtensionForWebContents(extension_web_contents_);
-  const std::string extension_id = extension ? extension->id() : "";
-  LOG_IF(DFATAL, extension_id.empty())
-      << "Extension that started this OffscreenTab was not found.";
-
-  // If verified, allow any tab capture audio/video devices that were requested.
-  extensions::TabCaptureRegistry* const tab_capture_registry =
-      extensions::TabCaptureRegistry::Get(extension_browser_context);
-  blink::MediaStreamDevices devices;
-  if (tab_capture_registry &&
-      tab_capture_registry->VerifyRequest(
-          request.render_process_id, request.render_frame_id, extension_id)) {
-    if (request.audio_type ==
-        blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE) {
-      devices.push_back(blink::MediaStreamDevice(
-          blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE, std::string(),
-          std::string()));
-    }
-    if (request.video_type ==
-        blink::mojom::MediaStreamType::GUM_TAB_VIDEO_CAPTURE) {
-      devices.push_back(blink::MediaStreamDevice(
-          blink::mojom::MediaStreamType::GUM_TAB_VIDEO_CAPTURE, std::string(),
-          std::string()));
-    }
-  }
-
-  DVLOG(2) << "Allowing " << devices.size()
-           << " capture devices for OffscreenTab content.";
-
-  std::move(callback).Run(
-      devices,
-      devices.empty() ? blink::mojom::MediaStreamRequestResult::INVALID_STATE
-                      : blink::mojom::MediaStreamRequestResult::OK,
-      nullptr);
-}
-
-void OffscreenTabsOwner::DestroyTab(OffscreenTab* tab) {
-  for (auto iter = tabs_.begin(); iter != tabs_.end(); ++iter) {
-    if (iter->get() == tab) {
-      tabs_.erase(iter);
-      break;
-    }
-  }
-}
-
-WEB_CONTENTS_USER_DATA_KEY_IMPL(OffscreenTabsOwner)
-
-}  // namespace extensions
diff --git a/chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.h b/chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.h
deleted file mode 100644
index bfa850e..0000000
--- a/chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_EXTENSIONS_API_TAB_CAPTURE_OFFSCREEN_TABS_OWNER_H_
-#define CHROME_BROWSER_EXTENSIONS_API_TAB_CAPTURE_OFFSCREEN_TABS_OWNER_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "base/macros.h"
-#include "chrome/browser/media/offscreen_tab.h"
-#include "content/public/browser/web_contents_user_data.h"
-#include "ui/gfx/geometry/size.h"
-
-class OffscreenTab;
-
-namespace extensions {
-
-// Creates, owns, and manages all OffscreenTab instances created by the same
-// extension background page.  When the extension background page's WebContents
-// is about to be destroyed, its associated OffscreenTabsOwner and all of its
-// OffscreenTab instances are destroyed.
-//
-// Usage:
-//
-//   OffscreenTabsOwner::Get(extension_contents)
-//       ->OpenNewTab(start_url, size, std::string());
-//
-// This class operates exclusively on the UI thread and so is not thread-safe.
-class OffscreenTabsOwner final
-    : public OffscreenTab::Owner,
-      public content::WebContentsUserData<OffscreenTabsOwner> {
- public:
-  ~OffscreenTabsOwner() final;
-
-  // Returns the OffscreenTabsOwner instance associated with the given extension
-  // background page's WebContents.  Never returns nullptr.
-  static OffscreenTabsOwner* Get(content::WebContents* extension_web_contents);
-
-  // Instantiate a new offscreen tab and navigate it to |start_url|.  The new
-  // tab's main frame will start out with the given |initial_size| in DIP
-  // coordinates.  If too many offscreen tabs are already running, nothing
-  // happens and nullptr is returned.
-  //
-  // If |optional_presentation_id| is non-empty, the offscreen tab is registered
-  // for use by the Media Router (chrome/browser/media/router/...) as the
-  // receiving browsing context for the W3C Presentation API.
-  OffscreenTab* OpenNewTab(const GURL& start_url,
-                           const gfx::Size& initial_size,
-                           const std::string& optional_presentation_id);
-
- private:
-  friend class content::WebContentsUserData<OffscreenTabsOwner>;
-
-  explicit OffscreenTabsOwner(content::WebContents* extension_web_contents);
-
-  // OffscreenTab::Owner implementation.
-  void RequestMediaAccessPermission(
-      const content::MediaStreamRequest& request,
-      content::MediaResponseCallback callback) override;
-  void DestroyTab(OffscreenTab* tab) override;
-
-  content::WebContents* const extension_web_contents_;
-  std::vector<std::unique_ptr<OffscreenTab>> tabs_;
-
-  WEB_CONTENTS_USER_DATA_KEY_DECL();
-
-  DISALLOW_COPY_AND_ASSIGN(OffscreenTabsOwner);
-};
-
-}  // namespace extensions
-
-#endif  // CHROME_BROWSER_EXTENSIONS_API_TAB_CAPTURE_OFFSCREEN_TABS_OWNER_H_
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
index 961f6c3..7b27626 100644
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
@@ -17,7 +17,6 @@
 #include "base/cxx17_backports.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
-#include "chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.h"
 #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/media/webrtc/capture_policy_utils.h"
@@ -57,16 +56,6 @@
     "Extension has not been invoked for the current page (see activeTab "
     "permission). Chrome pages cannot be captured.";
 
-const char kNotAllowlistedForOffscreenTabApi[] =
-    "Extension is not allowlisted for use of the unstable, in-development "
-    "chrome.tabCapture.captureOffscreenTab API.";
-const char kInvalidStartUrl[] =
-    "Invalid/Missing/Malformatted starting URL for off-screen tab.";
-const char kTooManyOffscreenTabs[] =
-    "Extension has already started too many off-screen tabs.";
-const char kCapturingSameOffscreenTab[] =
-    "Cannot capture the same off-screen tab more than once.";
-
 const char kInvalidOriginError[] = "Caller tab.url is not a valid URL.";
 const char kInvalidTabIdError[] = "Invalid tab specified.";
 const char kTabUrlNotSecure[] =
@@ -81,10 +70,6 @@
   return (options.audio && *options.audio) || (options.video && *options.video);
 }
 
-bool IsAcceptableOffscreenTabUrl(const GURL& url) {
-  return url.is_valid() && (url.SchemeIsHTTPOrHTTPS() || url.SchemeIs("data"));
-}
-
 DesktopMediaID BuildDesktopMediaID(content::WebContents* target_contents,
                                    TabCapture::CaptureOptions* options) {
   content::RenderFrameHost* const target_frame =
@@ -151,15 +136,6 @@
 
 }  // namespace
 
-// Allowlisted extensions that do not check for a browser action grant because
-// they provide API's. If there are additional extension ids that need
-// allowlisting and are *not* the Media Router extension, add them to a new
-// kAllowlist array.
-const char* const kMediaRouterExtensionIds[] = {
-    "enhhojjnijigcajfphajepfemndkmdlo",  // Dev
-    "pkedcjkdefgpdelpbcmbmeomcjbeemfm",  // Stable
-};
-
 ExtensionFunction::ResponseAction TabCaptureCaptureFunction::Run() {
   std::unique_ptr<api::tab_capture::Capture::Params> params =
       TabCapture::Capture::Params::Create(*args_);
@@ -202,9 +178,7 @@
           sessions::SessionTabHelper::IdForTab(target_contents).id(),
           mojom::APIPermissionID::kTabCaptureForTab) &&
       base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
-          switches::kAllowlistedExtensionID) != extension_id &&
-      !SimpleFeature::IsIdInArray(extension_id, kMediaRouterExtensionIds,
-                                  base::size(kMediaRouterExtensionIds))) {
+          switches::kAllowlistedExtensionID) != extension_id) {
     return RespondNow(Error(kGrantError));
   }
 
@@ -247,113 +221,6 @@
       OneArgument(base::Value::FromUniquePtrValue(std::move(list))));
 }
 
-ExtensionFunction::ResponseAction TabCaptureCaptureOffscreenTabFunction::Run() {
-  std::unique_ptr<TabCapture::CaptureOffscreenTab::Params> params =
-      TabCapture::CaptureOffscreenTab::Params::Create(*args_);
-  EXTENSION_FUNCTION_VALIDATE(params);
-
-  // Make sure the extension is allowlisted for using this API, regardless of
-  // Chrome channel.
-  //
-  // TODO(miu): Use _api_features.json and extensions::Feature library instead.
-  // http://crbug.com/537732
-  const bool is_allowlisted_extension =
-      base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
-          switches::kAllowlistedExtensionID) == extension()->id() ||
-      SimpleFeature::IsIdInArray(extension()->id(), kMediaRouterExtensionIds,
-                                 base::size(kMediaRouterExtensionIds));
-  if (!is_allowlisted_extension)
-    return RespondNow(Error(kNotAllowlistedForOffscreenTabApi));
-
-  const GURL start_url(params->start_url);
-  if (!IsAcceptableOffscreenTabUrl(start_url))
-    return RespondNow(Error(kInvalidStartUrl));
-
-  if (!OptionsSpecifyAudioOrVideo(params->options))
-    return RespondNow(Error(kNoAudioOrVideo));
-
-  content::WebContents* const extension_web_contents = GetSenderWebContents();
-  EXTENSION_FUNCTION_VALIDATE(extension_web_contents);
-  OffscreenTab* const offscreen_tab =
-      OffscreenTabsOwner::Get(extension_web_contents)
-          ->OpenNewTab(
-              start_url, DetermineInitialSize(params->options),
-              (is_allowlisted_extension && params->options.presentation_id)
-                  ? *params->options.presentation_id
-                  : std::string());
-  if (!offscreen_tab)
-    return RespondNow(Error(kTooManyOffscreenTabs));
-
-  content::WebContents* target_contents = offscreen_tab->web_contents();
-  const std::string& extension_id = extension()->id();
-  DesktopMediaID source =
-      BuildDesktopMediaID(target_contents, &params->options);
-  TabCaptureRegistry* registry = TabCaptureRegistry::Get(browser_context());
-  std::string device_id = registry->AddRequest(
-      target_contents, extension_id, true, extension()->url(), source,
-      extension()->name(), extension_web_contents);
-  if (device_id.empty()) {
-    return RespondNow(Error(kCapturingSameOffscreenTab));
-  }
-  AddMediaStreamSourceConstraints(target_contents, &params->options, device_id);
-
-  // At this point, everything is set up in the browser process.  It's now up to
-  // the custom JS bindings in the extension's render process to complete the
-  // request.  See the comment at end of TabCaptureCaptureFunction::RunSync()
-  // for more details.
-  return RespondNow(
-      OneArgument(base::Value::FromUniquePtrValue(params->options.ToValue())));
-}
-
-// static
-gfx::Size TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-    const TabCapture::CaptureOptions& options) {
-  static const int kDefaultWidth = 1280;
-  static const int kDefaultHeight = 720;
-
-  if (!options.video_constraints)
-    return gfx::Size(kDefaultWidth, kDefaultHeight);
-
-  gfx::Size min_size;
-  int width = -1;
-  int height = -1;
-  const base::DictionaryValue& mandatory_properties =
-      options.video_constraints->mandatory.additional_properties;
-  if (mandatory_properties.GetInteger("maxWidth", &width) && width >= 0 &&
-      mandatory_properties.GetInteger("maxHeight", &height) && height >= 0) {
-    return gfx::Size(width, height);
-  }
-  if (mandatory_properties.GetInteger("minWidth", &width) && width >= 0 &&
-      mandatory_properties.GetInteger("minHeight", &height) && height >= 0) {
-    min_size.SetSize(width, height);
-  }
-
-  // Use optional size constraints if no mandatory ones were provided.
-  if (options.video_constraints->optional) {
-    const base::DictionaryValue& optional_properties =
-        options.video_constraints->optional->additional_properties;
-    if (optional_properties.GetInteger("maxWidth", &width) && width >= 0 &&
-        optional_properties.GetInteger("maxHeight", &height) && height >= 0) {
-      if (min_size.IsEmpty()) {
-        return gfx::Size(width, height);
-      } else {
-        return gfx::Size(std::max(width, min_size.width()),
-                         std::max(height, min_size.height()));
-      }
-    }
-    if (min_size.IsEmpty() &&
-        optional_properties.GetInteger("minWidth", &width) && width >= 0 &&
-        optional_properties.GetInteger("minHeight", &height) && height >= 0) {
-      min_size.SetSize(width, height);
-    }
-  }
-
-  // No maximum size was provided, so just return the default size bounded by
-  // the minimum size.
-  return gfx::Size(std::max(kDefaultWidth, min_size.width()),
-                   std::max(kDefaultHeight, min_size.height()));
-}
-
 ExtensionFunction::ResponseAction TabCaptureGetMediaStreamIdFunction::Run() {
   std::unique_ptr<api::tab_capture::GetMediaStreamId::Params> params =
       TabCapture::GetMediaStreamId::Params::Create(*args_);
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_api.h b/chrome/browser/extensions/api/tab_capture/tab_capture_api.h
index a30fcc0..a39e60cd 100644
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_api.h
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_api.h
@@ -14,14 +14,6 @@
 
 namespace extensions {
 
-// Extension ids for stable / beta cast extensions. Included in
-// |kChromecastExtensionIds|.
-extern const char* const kBetaChromecastExtensionId;
-extern const char* const kStableChromecastExtensionId;
-
-// Extension ids for the chromecast.
-extern const char* const kChromecastExtensionIds[6];
-
 class TabCaptureCaptureFunction final : public ExtensionFunction {
  public:
   DECLARE_EXTENSION_FUNCTION("tabCapture.capture", TABCAPTURE_CAPTURE)
@@ -45,23 +37,6 @@
   ResponseAction Run() final;
 };
 
-class TabCaptureCaptureOffscreenTabFunction final : public ExtensionFunction {
- public:
-  DECLARE_EXTENSION_FUNCTION("tabCapture.captureOffscreenTab",
-                             TABCAPTURE_CAPTUREOFFSCREENTAB)
-
-  // Examines the min/max width/height constraints in the |options| to determine
-  // a suitable initial off-screen tab size.
-  static gfx::Size DetermineInitialSize(
-      const extensions::api::tab_capture::CaptureOptions& options);
-
- private:
-  ~TabCaptureCaptureOffscreenTabFunction() final {}
-
-  // ExtensionFunction:
-  ResponseAction Run() final;
-};
-
 class TabCaptureGetMediaStreamIdFunction final : public ExtensionFunction {
  public:
   DECLARE_EXTENSION_FUNCTION("tabCapture.getMediaStreamId",
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc
index 430354e..94bb67c 100644
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc
@@ -81,75 +81,6 @@
   }
 };
 
-// Tests the logic that examines the constraints to determine the starting
-// off-screen tab size.
-TEST(TabCaptureCaptureOffscreenTabTest, DetermineInitialSize) {
-  using extensions::api::tab_capture::CaptureOptions;
-  using extensions::api::tab_capture::MediaStreamConstraint;
-
-  // Empty options --> 1280x720
-  CaptureOptions options;
-  EXPECT_EQ(gfx::Size(1280, 720),
-            TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-                options));
-
-  // Use specified mandatory maximum size.
-  options.video_constraints = std::make_unique<MediaStreamConstraint>();
-  base::DictionaryValue* properties =
-      &options.video_constraints->mandatory.additional_properties;
-  properties->SetInteger("maxWidth", 123);
-  properties->SetInteger("maxHeight", 456);
-  EXPECT_EQ(gfx::Size(123, 456),
-            TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-                options));
-
-  // Use default size if larger than mandatory minimum size.  Else, use
-  // mandatory minimum size.
-  options.video_constraints = std::make_unique<MediaStreamConstraint>();
-  properties = &options.video_constraints->mandatory.additional_properties;
-  properties->SetInteger("minWidth", 123);
-  properties->SetInteger("minHeight", 456);
-  EXPECT_EQ(gfx::Size(1280, 720),
-            TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-                options));
-  properties->SetInteger("minWidth", 2560);
-  properties->SetInteger("minHeight", 1440);
-  EXPECT_EQ(gfx::Size(2560, 1440),
-            TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-                options));
-
-  // Use specified optional maximum size, if no mandatory size was specified.
-  options.video_constraints = std::make_unique<MediaStreamConstraint>();
-  options.video_constraints->optional =
-      std::make_unique<MediaStreamConstraint::Optional>();
-  properties = &options.video_constraints->optional->additional_properties;
-  properties->SetInteger("maxWidth", 456);
-  properties->SetInteger("maxHeight", 123);
-  EXPECT_EQ(gfx::Size(456, 123),
-            TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-                options));
-  // ...unless a mandatory minimum size was specified:
-  options.video_constraints->mandatory.additional_properties.SetInteger(
-      "minWidth", 500);
-  options.video_constraints->mandatory.additional_properties.SetInteger(
-      "minHeight", 600);
-  EXPECT_EQ(gfx::Size(500, 600),
-            TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-                options));
-
-  // Use default size if larger than optional minimum size.  Else, use optional
-  // minimum size.
-  options.video_constraints = std::make_unique<MediaStreamConstraint>();
-  options.video_constraints->optional =
-      std::make_unique<MediaStreamConstraint::Optional>();
-  properties = &options.video_constraints->optional->additional_properties;
-  properties->SetInteger("minWidth", 9999);
-  properties->SetInteger("minHeight", 8888);
-  EXPECT_EQ(gfx::Size(9999, 8888),
-            TabCaptureCaptureOffscreenTabFunction::DetermineInitialSize(
-                options));
-}
-
 // Tests API behaviors, including info queries, and constraints violations.
 IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, ApiTests) {
   AddExtensionToCommandLineAllowlist();
@@ -157,15 +88,6 @@
       << message_;
 }
 
-// Tests that there is a maximum limitation to the number of simultaneous
-// off-screen tabs.
-IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MaxOffscreenTabs) {
-  AddExtensionToCommandLineAllowlist();
-  ASSERT_TRUE(
-      RunExtensionTest("tab_capture", {.page_url = "max_offscreen_tabs.html"}))
-      << message_;
-}
-
 // Tests that tab capture video frames can be received in a VIDEO element.
 // Disabled due to flakes on multiple platforms; see https://crbug.com/1040894.
 IN_PROC_BROWSER_TEST_F(TabCaptureApiPixelTest, EndToEndWithoutRemoting) {
@@ -204,35 +126,6 @@
       << message_;
 }
 
-// Tests that tab capture video frames can be received in a VIDEO element from
-// an off-screen tab.
-IN_PROC_BROWSER_TEST_F(TabCaptureApiPixelTest, OffscreenTabEndToEnd) {
-  if (IsTooIntensiveForThisPlatform()) {
-    LOG(WARNING) << "Skipping this CPU-intensive test on this platform/build.";
-    return;
-  }
-  AddExtensionToCommandLineAllowlist();
-  ASSERT_TRUE(RunExtensionTest("tab_capture",
-                               {.page_url = "offscreen_end_to_end.html"}))
-      << message_;
-  // Verify that offscreen profile has been destroyed.
-  ASSERT_FALSE(profile()->HasPrimaryOTRProfile());
-}
-
-// Tests that off-screen tabs can't do evil things (e.g., access local files).
-IN_PROC_BROWSER_TEST_F(TabCaptureApiPixelTest, OffscreenTabEvilTests) {
-  if (IsTooIntensiveForThisPlatform()) {
-    LOG(WARNING) << "Skipping this CPU-intensive test on this platform/build.";
-    return;
-  }
-  AddExtensionToCommandLineAllowlist();
-  ASSERT_TRUE(RunExtensionTest("tab_capture",
-                               {.page_url = "offscreen_evil_tests.html"}))
-      << message_;
-  // Verify that offscreen profile has been destroyed.
-  ASSERT_FALSE(profile()->HasPrimaryOTRProfile());
-}
-
 // Tests that getUserMedia() is NOT a way to start tab capture.
 IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, GetUserMediaTest) {
   ExtensionTestMessageListener listener("ready", true);
diff --git a/chrome/browser/extensions/content_script_apitest.cc b/chrome/browser/extensions/content_script_apitest.cc
index d320da0..947da68 100644
--- a/chrome/browser/extensions/content_script_apitest.cc
+++ b/chrome/browser/extensions/content_script_apitest.cc
@@ -1167,6 +1167,42 @@
   load_page_and_check_error("inject-script.example");
 }
 
+// Verifies how the storage API works with content scripts with default access
+// level.
+IN_PROC_BROWSER_TEST_F(ContentScriptApiTest, StorageApiDefaultAccessTest) {
+  // The extension verifies expectations in its background context and
+  // initializes state, which will be used by the content script below.
+  ASSERT_TRUE(StartEmbeddedTestServer());
+  ASSERT_TRUE(RunExtensionTest("content_scripts/storage_api_default_access"))
+      << message_;
+
+  // Open a url to run the content script. The content script
+  // then continues the test, so we need a separate ResultCatcher.
+  ResultCatcher catcher;
+  GURL url(embedded_test_server()->GetURL("/extensions/test_file.html"));
+  ui_test_utils::NavigateToURL(browser(), url);
+  ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
+}
+
+// Verifies how the storage API works with content scripts with untrusted access
+// level.
+IN_PROC_BROWSER_TEST_F(ContentScriptApiTest,
+                       StorageApiAllowUntrustedAccessTest) {
+  // The extension verifies expectations in its background context and
+  // initializes state, which will be used by the content script below.
+  ASSERT_TRUE(StartEmbeddedTestServer());
+  ASSERT_TRUE(
+      RunExtensionTest("content_scripts/storage_api_allow_untrusted_access"))
+      << message_;
+
+  // Open a url to run the content script. The content script
+  // then continues the test, so we need a separate ResultCatcher.
+  ResultCatcher catcher;
+  GURL url(embedded_test_server()->GetURL("/extensions/test_file.html"));
+  ui_test_utils::NavigateToURL(browser(), url);
+  ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
+}
+
 // A test suite designed for exercising the behavior of content script
 // injection into opaque URLs (like about:blank).
 class ContentScriptRelatedFrameTest : public ContentScriptApiTest {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 59ae710..14de9fe3 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -382,6 +382,11 @@
     "expiry_milestone": 94
   },
   {
+    "name": "autofill-fill-merchant-promo-code-fields",
+    "owners": [ "jsaul@google.com", "payments-autofill-team@google.com" ],
+    "expiry_milestone": 99
+  },
+  {
     "name": "autofill-fix-offer-in-incognito",
     "owners": [ "siyua" ],
     "expiry_milestone": 97
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 0309ecb..ee55be6 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -338,6 +338,12 @@
     "When enabled, if all requirements are met, Autofill will offer to use "
     "virtual credit cards in form filling.";
 
+const char kAutofillFillMerchantPromoCodeFieldsName[] =
+    "Enable Autofill of promo code fields in forms";
+const char kAutofillFillMerchantPromoCodeFieldsDescription[] =
+    "When enabled, Autofill will attempt to fill merchant promo/coupon/gift "
+    "code fields when data is available.";
+
 const char kAutofillFixOfferInIncognitoName[] =
     "Enable the fix for Autofill offer in Incognito mode";
 const char kAutofillFixOfferInIncognitoDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 5bab29b..caa1e810 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -202,6 +202,9 @@
 extern const char kAutofillEnableVirtualCardName[];
 extern const char kAutofillEnableVirtualCardDescription[];
 
+extern const char kAutofillFillMerchantPromoCodeFieldsName[];
+extern const char kAutofillFillMerchantPromoCodeFieldsDescription[];
+
 extern const char kAutofillFixOfferInIncognitoName[];
 extern const char kAutofillFixOfferInIncognitoDescription[];
 
diff --git a/chrome/browser/lacros/download_controller_client_lacros.cc b/chrome/browser/lacros/download_controller_client_lacros.cc
index 9d71d3c..b644642 100644
--- a/chrome/browser/lacros/download_controller_client_lacros.cc
+++ b/chrome/browser/lacros/download_controller_client_lacros.cc
@@ -16,7 +16,7 @@
 
 namespace {
 
-crosapi::mojom::DownloadState ConvertDownloadState(
+crosapi::mojom::DownloadState ConvertMojoDownloadState(
     download::DownloadItem::DownloadState value) {
   switch (value) {
     case download::DownloadItem::IN_PROGRESS:
@@ -33,26 +33,26 @@
   }
 }
 
-crosapi::mojom::DownloadEventPtr BuildDownloadEvent(
+crosapi::mojom::DownloadItemPtr ConvertToMojoDownloadItem(
     download::DownloadItem* item) {
   auto* profile = Profile::FromBrowserContext(
       content::DownloadItemUtils::GetBrowserContext(item));
 
-  crosapi::mojom::DownloadEventPtr dle = crosapi::mojom::DownloadEvent::New();
-  dle->guid = item->GetGuid();
-  dle->state = ConvertDownloadState(item->GetState());
-  dle->full_path = item->GetFullPath();
-  dle->target_file_path = item->GetTargetFilePath();
-  dle->is_from_incognito_profile = profile->IsIncognitoProfile();
-  dle->is_paused = item->IsPaused();
-  dle->has_is_paused = true;
-  dle->open_when_complete = item->GetOpenWhenComplete();
-  dle->has_open_when_complete = true;
-  dle->received_bytes = item->GetReceivedBytes();
-  dle->has_received_bytes = true;
-  dle->total_bytes = item->GetTotalBytes();
-  dle->has_total_bytes = true;
-  return dle;
+  auto download = crosapi::mojom::DownloadItem::New();
+  download->guid = item->GetGuid();
+  download->state = ConvertMojoDownloadState(item->GetState());
+  download->full_path = item->GetFullPath();
+  download->target_file_path = item->GetTargetFilePath();
+  download->is_from_incognito_profile = profile->IsIncognitoProfile();
+  download->is_paused = item->IsPaused();
+  download->has_is_paused = true;
+  download->open_when_complete = item->GetOpenWhenComplete();
+  download->has_open_when_complete = true;
+  download->received_bytes = item->GetReceivedBytes();
+  download->has_received_bytes = true;
+  download->total_bytes = item->GetTotalBytes();
+  download->has_total_bytes = true;
+  return download;
 }
 
 }  // namespace
@@ -261,7 +261,7 @@
     return;
 
   service->GetRemote<crosapi::mojom::DownloadController>()->OnDownloadCreated(
-      BuildDownloadEvent(item));
+      ConvertToMojoDownloadItem(item));
 }
 
 void DownloadControllerClientLacros::OnDownloadUpdated(
@@ -271,7 +271,7 @@
     return;
 
   service->GetRemote<crosapi::mojom::DownloadController>()->OnDownloadUpdated(
-      BuildDownloadEvent(item));
+      ConvertToMojoDownloadItem(item));
 }
 
 void DownloadControllerClientLacros::OnDownloadDestroyed(
@@ -281,5 +281,5 @@
     return;
 
   service->GetRemote<crosapi::mojom::DownloadController>()->OnDownloadDestroyed(
-      BuildDownloadEvent(item));
+      ConvertToMojoDownloadItem(item));
 }
diff --git a/chrome/browser/media/cast_mirroring_service_host.cc b/chrome/browser/media/cast_mirroring_service_host.cc
index ec1f36f1..0998b005 100644
--- a/chrome/browser/media/cast_mirroring_service_host.cc
+++ b/chrome/browser/media/cast_mirroring_service_host.cc
@@ -465,14 +465,6 @@
 }
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-void CastMirroringServiceHost::RequestMediaAccessPermission(
-    const content::MediaStreamRequest& request,
-    content::MediaResponseCallback callback) {
-  // This should not be called when mirroring an OffscreenTab through the
-  // mirroring service.
-  NOTREACHED();
-}
-
 void CastMirroringServiceHost::DestroyTab(OffscreenTab* tab) {
   if (offscreen_tab_ && (offscreen_tab_.get() == tab))
     offscreen_tab_.reset();
diff --git a/chrome/browser/media/cast_mirroring_service_host.h b/chrome/browser/media/cast_mirroring_service_host.h
index 3748568..bd0ac76 100644
--- a/chrome/browser/media/cast_mirroring_service_host.h
+++ b/chrome/browser/media/cast_mirroring_service_host.h
@@ -127,9 +127,6 @@
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   // OffscreenTab::Owner implementation.
-  void RequestMediaAccessPermission(
-      const content::MediaStreamRequest& request,
-      content::MediaResponseCallback callback) override;
   void DestroyTab(OffscreenTab* tab) override;
 
   // Creates and starts a new OffscreenTab.
diff --git a/chrome/browser/media/offscreen_tab.cc b/chrome/browser/media/offscreen_tab.cc
index 412e6b05..d6295d8 100644
--- a/chrome/browser/media/offscreen_tab.cc
+++ b/chrome/browser/media/offscreen_tab.cc
@@ -17,6 +17,7 @@
 #include "content/public/browser/presentation_receiver_flags.h"
 #include "content/public/browser/render_widget_host_view.h"
 #include "content/public/browser/web_contents.h"
+#include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
 
 #if defined(USE_AURA)
 #include "base/threading/thread_task_runner_handle.h"
@@ -331,18 +332,16 @@
     WebContents* contents,
     const content::MediaStreamRequest& request,
     content::MediaResponseCallback callback) {
-  DCHECK_EQ(offscreen_tab_web_contents_.get(), contents);
-  owner_->RequestMediaAccessPermission(request, std::move(callback));
+  std::move(callback).Run(blink::MediaStreamDevices(),
+                          blink::mojom::MediaStreamRequestResult::NOT_SUPPORTED,
+                          nullptr);
 }
 
 bool OffscreenTab::CheckMediaAccessPermission(
     content::RenderFrameHost* render_frame_host,
     const GURL& security_origin,
     blink::mojom::MediaStreamType type) {
-  DCHECK_EQ(offscreen_tab_web_contents_.get(),
-            content::WebContents::FromRenderFrameHost(render_frame_host));
-  return type == blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE ||
-         type == blink::mojom::MediaStreamType::GUM_TAB_VIDEO_CAPTURE;
+  return false;
 }
 
 void OffscreenTab::DidStartNavigation(
diff --git a/chrome/browser/media/offscreen_tab.h b/chrome/browser/media/offscreen_tab.h
index fb09bf2c..3fd38bcb 100644
--- a/chrome/browser/media/offscreen_tab.h
+++ b/chrome/browser/media/offscreen_tab.h
@@ -47,15 +47,12 @@
                            protected content::WebContentsDelegate,
                            protected content::WebContentsObserver {
  public:
+  // TODO(crbug.com/1234929): Hold the OffscreenTab by a WeakPtr, then Owner can
+  // be deleted.
   class Owner {
    public:
     virtual ~Owner() {}
 
-    // Checks whether capturing the |contents| is permitted.
-    virtual void RequestMediaAccessPermission(
-        const content::MediaStreamRequest& request,
-        content::MediaResponseCallback callback) = 0;
-
     // |tab| is no longer valid after this call.
     virtual void DestroyTab(OffscreenTab* tab) = 0;
   };
diff --git a/chrome/browser/media/router/providers/test/test_media_route_provider.cc b/chrome/browser/media/router/providers/test/test_media_route_provider.cc
index df83bde..21891ac 100644
--- a/chrome/browser/media/router/providers/test/test_media_route_provider.cc
+++ b/chrome/browser/media/router/providers/test/test_media_route_provider.cc
@@ -14,8 +14,6 @@
 #include "base/run_loop.h"
 #include "base/task/task_traits.h"
 #include "base/task/thread_pool.h"
-#include "chrome/browser/extensions/api/tab_capture/offscreen_tabs_owner.h"
-#include "chrome/browser/media/offscreen_tab.h"
 #include "components/media_router/common/media_source.h"
 #include "components/media_router/common/mojom/media_router.mojom.h"
 #include "components/media_router/common/route_request_result.h"
@@ -83,8 +81,8 @@
     std::move(callback).Run(absl::nullopt, nullptr, route_error_message_,
                             RouteRequestResult::ResultCode::UNKNOWN_ERROR);
   } else if (!delay_.is_zero()) {
-    base::ThreadPool::PostDelayedTask(
-        FROM_HERE, {base::TaskPriority::HIGHEST},
+    base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
+        FROM_HERE,
         base::BindOnce(&TestMediaRouteProvider::CreateRouteTimeOut,
                        GetWeakPtr(), std::move(callback)),
         delay_);
@@ -284,8 +282,21 @@
     content::WebContents* web_contents,
     GURL source_urn,
     std::string& presentation_id) {
-  extensions::OffscreenTabsOwner::Get(web_contents)
-      ->OpenNewTab(source_urn, gfx::Size(180, 180), presentation_id);
+  offscreen_tab_ =
+      std::make_unique<OffscreenTab>(this, web_contents->GetBrowserContext());
+  offscreen_tab_->Start(source_urn, gfx::Size(180, 180), presentation_id);
+}
+
+void TestMediaRouteProvider::TearDown() {
+  // An OffscreenTab observes its Profile*, and must be destroyed before
+  // Profiles.
+  if (offscreen_tab_)
+    offscreen_tab_.reset();
+}
+
+void TestMediaRouteProvider::DestroyTab(OffscreenTab* tab) {
+  if (offscreen_tab_ && offscreen_tab_.get() == tab)
+    offscreen_tab_.reset();
 }
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/providers/test/test_media_route_provider.h b/chrome/browser/media/router/providers/test/test_media_route_provider.h
index 5292284..2e15ae26 100644
--- a/chrome/browser/media/router/providers/test/test_media_route_provider.h
+++ b/chrome/browser/media/router/providers/test/test_media_route_provider.h
@@ -12,6 +12,7 @@
 
 #include "base/callback.h"
 #include "base/memory/weak_ptr.h"
+#include "chrome/browser/media/offscreen_tab.h"
 #include "components/media_router/common/media_route.h"
 #include "components/media_router/common/mojom/media_router.mojom.h"
 #include "content/public/test/browser_test_utils.h"
@@ -23,7 +24,8 @@
 namespace media_router {
 
 // The Test MediaRouteProvider class is used for integration browser test.
-class TestMediaRouteProvider : public mojom::MediaRouteProvider {
+class TestMediaRouteProvider : public mojom::MediaRouteProvider,
+                               public OffscreenTab::Owner {
  public:
   static const mojom::MediaRouteProviderId kProviderId;
   TestMediaRouteProvider(
@@ -105,12 +107,16 @@
   void CaptureOffScreenTab(content::WebContents* web_contents,
                            GURL source_urn,
                            std::string& presentation_id);
+  void TearDown();
 
  private:
   base::WeakPtr<TestMediaRouteProvider> GetWeakPtr() {
     return weak_ptr_factory_.GetWeakPtr();
   }
 
+  // OffscreenTab::Owner overrides
+  void DestroyTab(OffscreenTab* tab) override;
+
   std::vector<MediaRoute> GetMediaRoutes();
   void SetSinks();
   void CreateRouteTimeOut(CreateRouteCallback callback);
@@ -128,6 +134,8 @@
   // Mojo remote to the Media Router.
   mojo::Remote<mojom::MediaRouter> media_router_;
 
+  std::unique_ptr<OffscreenTab> offscreen_tab_;
+
   base::WeakPtrFactory<TestMediaRouteProvider> weak_ptr_factory_{this};
 };
 
diff --git a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc
index ab88036..29c1e63 100644
--- a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc
+++ b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.cc
@@ -22,26 +22,41 @@
 
 }  // namespace
 
+// static
+FastInitiationScanner::Factory*
+    FastInitiationScanner::Factory::factory_instance_ = nullptr;
+
+// static
+std::unique_ptr<FastInitiationScanner> FastInitiationScanner::Factory::Create(
+    scoped_refptr<device::BluetoothAdapter> adapter) {
+  if (factory_instance_)
+    return factory_instance_->CreateInstance(adapter);
+
+  return std::make_unique<FastInitiationScanner>(adapter);
+}
+
+// static
+void FastInitiationScanner::Factory::SetFactoryForTesting(
+    FastInitiationScanner::Factory* factory) {
+  factory_instance_ = factory;
+}
+
 FastInitiationScanner::FastInitiationScanner(
-    scoped_refptr<device::BluetoothAdapter> adapter,
-    base::RepeatingClosure device_found_callback,
-    base::RepeatingClosure device_lost_callback,
-    base::OnceClosure scanner_invalidated_callback)
-    : adapter_(adapter),
-      device_found_callback_(std::move(device_found_callback)),
-      device_lost_callback_(std::move(device_lost_callback)),
-      scanner_invalidated_callback_(std::move(scanner_invalidated_callback)) {
+    scoped_refptr<device::BluetoothAdapter> adapter)
+    : adapter_(adapter) {
   DCHECK(adapter_ && adapter_->IsPresent() && adapter_->IsPowered());
-  StartScanning();
 }
 
 FastInitiationScanner::~FastInitiationScanner() {}
 
-bool FastInitiationScanner::AreFastInitiationDevicesDetected() const {
-  return !devices_attempting_to_share_.empty();
-}
+void FastInitiationScanner::StartScanning(
+    base::RepeatingClosure device_found_callback,
+    base::RepeatingClosure device_lost_callback,
+    base::OnceClosure scanner_invalidated_callback) {
+  device_found_callback_ = std::move(device_found_callback);
+  device_lost_callback_ = std::move(device_lost_callback);
+  scanner_invalidated_callback_ = std::move(scanner_invalidated_callback);
 
-void FastInitiationScanner::StartScanning() {
   std::vector<uint8_t> pattern_value;
   // Add the service UUID in reversed byte order.
   pattern_value.insert(pattern_value.begin(),
@@ -71,6 +86,10 @@
       std::move(filter), /*delegate=*/weak_ptr_factory_.GetWeakPtr());
 }
 
+bool FastInitiationScanner::AreFastInitiationDevicesDetected() const {
+  return !devices_attempting_to_share_.empty();
+}
+
 void FastInitiationScanner::OnSessionStarted(
     device::BluetoothLowEnergyScanSession* scan_session,
     absl::optional<device::BluetoothLowEnergyScanSession::ErrorCode>
diff --git a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.h b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.h
index e10927a..ddb10c2 100644
--- a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.h
+++ b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.h
@@ -15,22 +15,48 @@
 #include "device/bluetooth/bluetooth_adapter.h"
 #include "device/bluetooth/bluetooth_low_energy_scan_session.h"
 
+// FastInitiationScanner will scan for BLE advertisements using a
+// BluetoothLowEnergyScanSession. It will filter for advertisements containing
+// the Fast Initiation UUID 0xFE2C and service data 0xFC128E. Remote devices
+// will broacast these advertisements when they are attempting to share (see
+// FastInitiationAdvertiser). We use this as a signal to prompt the user to
+// enable high visibility mode.
 class FastInitiationScanner
     : public device::BluetoothLowEnergyScanSession::Delegate {
  public:
-  FastInitiationScanner(scoped_refptr<device::BluetoothAdapter> adapter,
-                        base::RepeatingClosure device_found_callback,
-                        base::RepeatingClosure device_lost_callback,
-                        base::OnceClosure scanner_invalidated_callback);
+  class Factory {
+   public:
+    Factory() = default;
+    Factory(const Factory&) = delete;
+    Factory& operator=(const Factory&) = delete;
+
+    static std::unique_ptr<FastInitiationScanner> Create(
+        scoped_refptr<device::BluetoothAdapter> adapter);
+
+    static void SetFactoryForTesting(Factory* factory);
+
+   protected:
+    virtual ~Factory() = default;
+    virtual std::unique_ptr<FastInitiationScanner> CreateInstance(
+        scoped_refptr<device::BluetoothAdapter> adapter) = 0;
+
+   private:
+    static Factory* factory_instance_;
+  };
+
+  explicit FastInitiationScanner(
+      scoped_refptr<device::BluetoothAdapter> adapter);
   ~FastInitiationScanner() override;
   FastInitiationScanner(const FastInitiationScanner&) = delete;
   FastInitiationScanner& operator=(const FastInitiationScanner&) = delete;
 
-  bool AreFastInitiationDevicesDetected() const;
+  virtual void StartScanning(base::RepeatingClosure device_found_callback,
+                             base::RepeatingClosure device_lost_callback,
+                             base::OnceClosure scanner_invalidated_callback);
+
+  virtual bool AreFastInitiationDevicesDetected() const;
 
  private:
-  void StartScanning();
-
   // device::BluetoothLowEnergyScanSession::Delegate:
   void OnSessionStarted(
       device::BluetoothLowEnergyScanSession* scan_session,
diff --git a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_unittest.cc b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_unittest.cc
index 89b59848..f4460281 100644
--- a/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_unittest.cc
+++ b/chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner_unittest.cc
@@ -51,8 +51,8 @@
     device::BluetoothAdapterFactory::SetAdapterForTesting(
         mock_bluetooth_adapter_);
 
-    scanner_ = std::make_unique<FastInitiationScanner>(
-        mock_bluetooth_adapter_,
+    scanner_ = FastInitiationScanner::Factory::Create(mock_bluetooth_adapter_);
+    scanner_->StartScanning(
         base::BindRepeating(
             &NearbySharingFastInitiationScannerTest::OnDevicesDetected,
             weak_ptr_factory_.GetWeakPtr()),
diff --git a/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc b/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc
index ac7242d5..b4363bc0 100644
--- a/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc
+++ b/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc
@@ -2174,8 +2174,9 @@
 void NearbySharingServiceImpl::StartFastInitiationScanning() {
   DCHECK(!fast_initiation_scanner_);
   NS_LOG(VERBOSE) << __func__ << ": Starting background scanning.";
-  fast_initiation_scanner_ = std::make_unique<FastInitiationScanner>(
-      bluetooth_adapter_,
+  fast_initiation_scanner_ =
+      FastInitiationScanner::Factory::Create(bluetooth_adapter_);
+  fast_initiation_scanner_->StartScanning(
       base::BindRepeating(
           &NearbySharingServiceImpl::OnFastInitiationDeviceFound,
           weak_ptr_factory_.GetWeakPtr()),
diff --git a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
index 379bd1bb..d866991 100644
--- a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
@@ -39,6 +39,7 @@
 #include "chrome/browser/nearby_sharing/fake_nearby_connection.h"
 #include "chrome/browser/nearby_sharing/fake_nearby_connections_manager.h"
 #include "chrome/browser/nearby_sharing/fast_initiation/fast_initiation_advertiser.h"
+#include "chrome/browser/nearby_sharing/fast_initiation/fast_initiation_scanner.h"
 #include "chrome/browser/nearby_sharing/local_device_data/fake_nearby_share_local_device_data_manager.h"
 #include "chrome/browser/nearby_sharing/local_device_data/nearby_share_local_device_data_manager_impl.h"
 #include "chrome/browser/nearby_sharing/nearby_connections_manager.h"
@@ -81,6 +82,8 @@
 using NearbyProcessShutdownReason =
     chromeos::nearby::NearbyProcessManager::NearbyProcessShutdownReason;
 
+namespace {
+
 class FakeFastInitiationAdvertiser : public FastInitiationAdvertiser {
  public:
   explicit FakeFastInitiationAdvertiser(
@@ -172,6 +175,81 @@
       this};
 };
 
+class FakeFastInitiationScanner : public FastInitiationScanner {
+ public:
+  FakeFastInitiationScanner(scoped_refptr<device::BluetoothAdapter> adapter,
+                            base::OnceClosure destructor_callback)
+      : FastInitiationScanner(adapter),
+        destructor_callback_(std::move(destructor_callback)) {}
+
+  ~FakeFastInitiationScanner() override {
+    std::move(destructor_callback_).Run();
+  }
+
+  void StartScanning(base::RepeatingClosure device_found_callback,
+                     base::RepeatingClosure device_lost_callback,
+                     base::OnceClosure scanner_invalidated_callback) override {
+    ++start_scanning_call_count_;
+    device_found_callback_ = std::move(device_found_callback);
+    device_lost_callback_ = std::move(device_lost_callback);
+    scanner_invalidated_callback_ = std::move(scanner_invalidated_callback);
+  }
+
+  bool AreFastInitiationDevicesDetected() const override {
+    return are_fast_initiation_devices_detected_;
+  }
+
+  void SetAreFastInitiationDevicesDetected(
+      bool are_fast_initiation_devices_detected) {
+    are_fast_initiation_devices_detected_ =
+        are_fast_initiation_devices_detected;
+  }
+
+  void DeviceFound() { device_found_callback_.Run(); }
+
+  void DeviceLost() { device_lost_callback_.Run(); }
+
+  void ScannerInvalidated() { std::move(scanner_invalidated_callback_).Run(); }
+
+ private:
+  base::OnceClosure destructor_callback_;
+  base::RepeatingClosure device_found_callback_;
+  base::RepeatingClosure device_lost_callback_;
+  base::OnceClosure scanner_invalidated_callback_;
+  bool are_fast_initiation_devices_detected_ = false;
+  size_t start_scanning_call_count_ = 0u;
+};
+
+class FakeFastInitiationScannerFactory : public FastInitiationScanner::Factory {
+ public:
+  std::unique_ptr<FastInitiationScanner> CreateInstance(
+      scoped_refptr<device::BluetoothAdapter> adapter) override {
+    ++scanner_created_count_;
+    auto scanner = std::make_unique<FakeFastInitiationScanner>(
+        adapter,
+        base::BindOnce(&FakeFastInitiationScannerFactory::OnScannerDestroyed,
+                       weak_ptr_factory_.GetWeakPtr()));
+    last_fake_fast_initiation_scanner_ = scanner.get();
+    return std::move(scanner);
+  }
+
+  FakeFastInitiationScanner* last_fake_fast_initiation_scanner() {
+    return last_fake_fast_initiation_scanner_;
+  }
+  size_t scanner_created_count() { return scanner_created_count_; }
+  size_t scanner_destroyed_count() { return scanner_destroyed_count_; }
+
+ private:
+  void OnScannerDestroyed() { ++scanner_destroyed_count_; }
+
+  FakeFastInitiationScanner* last_fake_fast_initiation_scanner_ = nullptr;
+  size_t scanner_created_count_ = 0u;
+  size_t scanner_destroyed_count_ = 0u;
+
+  base::WeakPtrFactory<FakeFastInitiationScannerFactory> weak_ptr_factory_{
+      this};
+};
+
 class MockTransferUpdateCallback : public TransferUpdateCallback {
  public:
   ~MockTransferUpdateCallback() override = default;
@@ -209,6 +287,8 @@
   bool callback_called = false;
 };
 
+}  // namespace
+
 namespace NearbySharingServiceUnitTests {
 
 constexpr base::TimeDelta kDelta = base::TimeDelta::FromMilliseconds(100);
@@ -445,6 +525,7 @@
               return mock_reference_ptr;
             });
 
+    SetFakeFastInitiationScannerFactory();
     service_ = CreateService();
     SetFakeFastInitiationAdvertiserFactory(/*should_succeed_on_start=*/true);
 
@@ -529,6 +610,13 @@
         fast_initiation_advertiser_factory_.get());
   }
 
+  void SetFakeFastInitiationScannerFactory() {
+    fast_initiation_scanner_factory_ =
+        std::make_unique<FakeFastInitiationScannerFactory>();
+    FastInitiationScanner::Factory::SetFactoryForTesting(
+        fast_initiation_scanner_factory_.get());
+  }
+
   bool IsBluetoothPresent() { return is_bluetooth_present_; }
   bool IsBluetoothPowered() { return is_bluetooth_powered_; }
 
@@ -1089,6 +1177,8 @@
   std::unique_ptr<base::ScopedDisallowBlocking> disallow_blocking_;
   std::unique_ptr<FakeFastInitiationAdvertiserFactory>
       fast_initiation_advertiser_factory_;
+  std::unique_ptr<FakeFastInitiationScannerFactory>
+      fast_initiation_scanner_factory_;
   std::unique_ptr<FakeArcNearbyShareSession> arc_nearby_share_session_;
   bool is_bluetooth_present_ = true;
   bool is_bluetooth_powered_ = true;
@@ -1183,6 +1273,12 @@
     on_start_advertising_failure_called_ = true;
   }
 
+  void OnFastInitiationDeviceFound() override { device_found_called_ = true; }
+  void OnFastInitiationDeviceLost() override { device_lost_called_ = true; }
+  void OnFastInitiationScanningStopped() override {
+    scanning_stopped_called_ = true;
+  }
+
   void OnShutdown() override {
     shutdown_called_ = true;
     service_->RemoveObserver(this);
@@ -1192,6 +1288,9 @@
   bool shutdown_called_ = false;
   bool process_stopped_called_ = false;
   bool on_start_advertising_failure_called_ = false;
+  bool device_found_called_ = false;
+  bool device_lost_called_ = false;
+  bool scanning_stopped_called_ = false;
   NearbySharingService* service_;
 };
 
@@ -4520,11 +4619,68 @@
   EXPECT_FALSE(IsProcessShutdownTimerRunning());
 }
 
-TEST_F(NearbySharingServiceImplTest, FastInitiationScanningStartAndStop) {
+TEST_F(NearbySharingServiceImplTest, FastInitiationScanning_StartAndStop) {
   SetConnectionType(net::NetworkChangeNotifier::CONNECTION_BLUETOOTH);
-  EXPECT_TRUE(mock_scan_session_);
+  EXPECT_EQ(1u, fast_initiation_scanner_factory_->scanner_created_count());
+  EXPECT_EQ(0u, fast_initiation_scanner_factory_->scanner_destroyed_count());
+
+  // Trigger a call to StopFastInitiationScanning().
   SetBluetoothIsPowered(false);
-  EXPECT_FALSE(mock_scan_session_);
+  EXPECT_EQ(1u, fast_initiation_scanner_factory_->scanner_created_count());
+  EXPECT_EQ(1u, fast_initiation_scanner_factory_->scanner_destroyed_count());
+
+  // Trigger a call to StartFastInitiationScanning().
+  SetBluetoothIsPowered(true);
+  EXPECT_EQ(2u, fast_initiation_scanner_factory_->scanner_created_count());
+  EXPECT_EQ(1u, fast_initiation_scanner_factory_->scanner_destroyed_count());
+}
+
+TEST_F(NearbySharingServiceImplTest,
+       FastInitiationScanning_MultipleReceiveSurfaces) {
+  SetConnectionType(net::NetworkChangeNotifier::CONNECTION_BLUETOOTH);
+  EXPECT_EQ(1u, fast_initiation_scanner_factory_->scanner_created_count());
+  EXPECT_EQ(0u, fast_initiation_scanner_factory_->scanner_destroyed_count());
+
+  // Registering a background receive surface should not create a scanner since
+  // we're already scanning.
+  MockTransferUpdateCallback callback;
+  service_->RegisterReceiveSurface(
+      &callback, NearbySharingService::ReceiveSurfaceState::kBackground);
+  EXPECT_EQ(1u, fast_initiation_scanner_factory_->scanner_created_count());
+  EXPECT_EQ(0u, fast_initiation_scanner_factory_->scanner_destroyed_count());
+}
+
+TEST_F(NearbySharingServiceImplTest, FastInitiationScanning_NotifyObservers) {
+  SetConnectionType(net::NetworkChangeNotifier::CONNECTION_BLUETOOTH);
+  TestObserver observer(service_.get());
+  ASSERT_EQ(1u, fast_initiation_scanner_factory_->scanner_created_count());
+
+  FakeFastInitiationScanner* scanner =
+      fast_initiation_scanner_factory_->last_fake_fast_initiation_scanner();
+  scanner->DeviceFound();
+  EXPECT_TRUE(observer.device_found_called_);
+  scanner->DeviceLost();
+  EXPECT_TRUE(observer.device_lost_called_);
+  scanner->ScannerInvalidated();
+  EXPECT_TRUE(observer.scanning_stopped_called_);
+
+  // Remove the observer before it goes out of scope.
+  service_->RemoveObserver(&observer);
+}
+
+TEST_F(NearbySharingServiceImplTest,
+       FastInitiationScanning_AreDevicesDetected) {
+  SetConnectionType(net::NetworkChangeNotifier::CONNECTION_BLUETOOTH);
+  ASSERT_EQ(1u, fast_initiation_scanner_factory_->scanner_created_count());
+
+  FakeFastInitiationScanner* scanner =
+      fast_initiation_scanner_factory_->last_fake_fast_initiation_scanner();
+  scanner->SetAreFastInitiationDevicesDetected(true);
+  EXPECT_EQ(scanner->AreFastInitiationDevicesDetected(),
+            service_->AreFastInitiationDevicesDetected());
+  scanner->SetAreFastInitiationDevicesDetected(false);
+  EXPECT_EQ(scanner->AreFastInitiationDevicesDetected(),
+            service_->AreFastInitiationDevicesDetected());
 }
 
 }  // namespace NearbySharingServiceUnitTests
diff --git a/chrome/browser/optimization_guide/browser_test_util.cc b/chrome/browser/optimization_guide/browser_test_util.cc
new file mode 100644
index 0000000..a9bf24f
--- /dev/null
+++ b/chrome/browser/optimization_guide/browser_test_util.cc
@@ -0,0 +1,51 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/optimization_guide/browser_test_util.h"
+
+#include "base/run_loop.h"
+#include "base/task/thread_pool/thread_pool_instance.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "components/metrics/content/subprocess_metrics_provider.h"
+#include "content/public/test/browser_test_utils.h"
+
+namespace optimization_guide {
+
+namespace {
+
+// Fetch and calculate the total number of samples from all the bins for
+// |histogram_name|. Note: from some browertests run (such as chromeos) there
+// might be two profiles created, and this will return the total sample count
+// across profiles.
+int GetTotalHistogramSamples(const base::HistogramTester* histogram_tester,
+                             const std::string& histogram_name) {
+  std::vector<base::Bucket> buckets =
+      histogram_tester->GetAllSamples(histogram_name);
+  int total = 0;
+  for (const auto& bucket : buckets)
+    total += bucket.count;
+
+  return total;
+}
+
+}  // namespace
+
+int RetryForHistogramUntilCountReached(
+    const base::HistogramTester* histogram_tester,
+    const std::string& histogram_name,
+    int count) {
+  while (true) {
+    base::ThreadPoolInstance::Get()->FlushForTesting();
+    base::RunLoop().RunUntilIdle();
+
+    content::FetchHistogramsFromChildProcesses();
+    metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
+
+    int total = GetTotalHistogramSamples(histogram_tester, histogram_name);
+    if (total >= count)
+      return total;
+  }
+}
+
+}  // namespace optimization_guide
diff --git a/chrome/browser/optimization_guide/browser_test_util.h b/chrome/browser/optimization_guide/browser_test_util.h
new file mode 100644
index 0000000..284cb58b
--- /dev/null
+++ b/chrome/browser/optimization_guide/browser_test_util.h
@@ -0,0 +1,25 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_OPTIMIZATION_GUIDE_BROWSER_TEST_UTIL_H_
+#define CHROME_BROWSER_OPTIMIZATION_GUIDE_BROWSER_TEST_UTIL_H_
+
+#include <string>
+
+namespace base {
+class HistogramTester;
+}  // namespace base
+
+namespace optimization_guide {
+
+// Retries fetching |histogram_name| until it contains at least |count| samples.
+// Returns the count of samples.
+int RetryForHistogramUntilCountReached(
+    const base::HistogramTester* histogram_tester,
+    const std::string& histogram_name,
+    int count);
+
+}  // namespace optimization_guide
+
+#endif  // CHROME_BROWSER_OPTIMIZATION_GUIDE_BROWSER_TEST_UTIL_H_
diff --git a/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc b/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc
index 843d98c..6a93079 100644
--- a/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc
+++ b/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc
@@ -18,6 +18,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "chrome/browser/optimization_guide/browser_test_util.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -36,6 +37,7 @@
 #include "components/optimization_guide/core/optimization_guide_prefs.h"
 #include "components/optimization_guide/core/optimization_guide_store.h"
 #include "components/optimization_guide/core/optimization_guide_switches.h"
+#include "components/optimization_guide/core/optimization_guide_test_util.h"
 #include "components/optimization_guide/core/optimization_hints_component_update_listener.h"
 #include "components/optimization_guide/core/test_hints_component_creator.h"
 #include "components/optimization_guide/core/top_host_provider.h"
@@ -60,41 +62,6 @@
 
 namespace {
 
-// Fetch and calculate the total number of samples from all the bins for
-// |histogram_name|. Note: from some browertests run (such as chromeos) there
-// might be two profiles created, and this will return the total sample count
-// across profiles.
-int GetTotalHistogramSamples(const base::HistogramTester* histogram_tester,
-                             const std::string& histogram_name) {
-  std::vector<base::Bucket> buckets =
-      histogram_tester->GetAllSamples(histogram_name);
-  int total = 0;
-  for (const auto& bucket : buckets)
-    total += bucket.count;
-
-  return total;
-}
-
-// Retries fetching |histogram_name| until it contains at least |count| samples.
-int RetryForHistogramUntilCountReached(
-    const base::HistogramTester* histogram_tester,
-    const std::string& histogram_name,
-    int count) {
-  int total = 0;
-  while (true) {
-    base::ThreadPoolInstance::Get()->FlushForTesting();
-    base::RunLoop().RunUntilIdle();
-
-    total = GetTotalHistogramSamples(histogram_tester, histogram_name);
-    if (total >= count)
-      return total;
-
-    content::FetchHistogramsFromChildProcesses();
-    metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
-    base::RunLoop().RunUntilIdle();
-  }
-}
-
 enum class HintsFetcherRemoteResponseType {
   kSuccessful = 0,
   kUnsuccessful = 1,
@@ -217,7 +184,7 @@
     optimization_guide::OptimizationHintsComponentUpdateListener::GetInstance()
         ->MaybeUpdateHintsComponent(component_info);
 
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &histogram_tester,
         optimization_guide::kComponentHintsUpdatedResultHistogramString, 1);
   }
@@ -244,7 +211,7 @@
     // histogram) prior to the navigation that tests functionality.
     ui_test_utils::NavigateToURL(browser(), url);
 
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
   }
@@ -488,12 +455,12 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -526,16 +493,16 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HintCount", 1),
             1);
@@ -561,14 +528,14 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
   // Wait until histograms have been updated before performing checks for
   // correct behavior based on the response.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -592,14 +559,14 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
   // Wait until histograms have been updated before performing checks for
   // correct behavior based on the response.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -622,14 +589,14 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
   // Wait until histograms have been updated before performing checks for
   // correct behavior based on the response.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -655,7 +622,7 @@
   ui_test_utils::NavigateToURL(browser(), GURL("https://unsuccessful.com/"));
 
   // We expect that we requested hints for 1 URL.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.UrlCount", 1),
             1);
@@ -691,16 +658,16 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as OnePlatform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HintCount", 1),
             1);
@@ -746,7 +713,7 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as OnePlatform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
@@ -755,7 +722,7 @@
   histogram_tester->ExpectBucketCount(
       "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 2, 1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -801,12 +768,12 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as hints fetching is enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -830,19 +797,19 @@
     // Allowlist NoScript for https_url()'s' host.
     SetUpComponentUpdateHints(https_url());
 
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &histogram_tester,
         optimization_guide::kComponentHintsUpdatedResultHistogramString, 1);
 
     // Expect that the browser initialization will record at least one sample
     // in each of the following histograms as One Platform Hints are enabled.
     EXPECT_GE(
-        RetryForHistogramUntilCountReached(
+        optimization_guide::RetryForHistogramUntilCountReached(
             &histogram_tester,
             "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
         1);
 
-    EXPECT_GE(RetryForHistogramUntilCountReached(
+    EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                   &histogram_tester,
                   "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
               1);
@@ -876,7 +843,7 @@
     ui_test_utils::NavigateToURL(browser(), GURL(host_online));
 
     EXPECT_EQ(1u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
     // Navigate away so metrics are recorded.
@@ -916,7 +883,7 @@
     ui_test_utils::NavigateToURL(browser(), GURL(host_network_offline));
 
     EXPECT_EQ(0u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
 
@@ -966,7 +933,7 @@
     ui_test_utils::NavigateToURL(browser(), GURL(host_3g));
 
     EXPECT_EQ(1u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
 
@@ -1015,7 +982,7 @@
     // With URL-keyed Hints, every unique URL navigated to will result in a
     // hints fetch if racing is enabled and allowed.
     EXPECT_EQ(1u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
     // Navigate away so metrics are recorded.
@@ -1050,18 +1017,18 @@
   // Allowlist NoScript for https_url()'s' host.
   SetUpComponentUpdateHints(https_url());
 
-  RetryForHistogramUntilCountReached(
+  optimization_guide::RetryForHistogramUntilCountReached(
       histogram_tester,
       optimization_guide::kComponentHintsUpdatedResultHistogramString, 1);
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -1088,7 +1055,7 @@
     ui_test_utils::NavigateToURL(browser(), GURL(full_url));
 
     EXPECT_EQ(2u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
     histogram_tester->ExpectUniqueSample(
@@ -1109,7 +1076,7 @@
     // With URL-keyed Hints, every unique URL navigated to will result in a
     // hints fetch if racing is enabled and allowed.
     EXPECT_EQ(2u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         2);
 
@@ -1134,7 +1101,7 @@
     ui_test_utils::NavigateToURL(otr_browser, GURL(full_url));
 
     // Make sure no additional hints requests were received.
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         &incognito_histogram_tester,
         optimization_guide::kLoadedHintLocalHistogramString, 1);
     EXPECT_EQ(2u, count_hints_requests_received());
@@ -1153,18 +1120,18 @@
   // Allowlist NoScript for https_url()'s' host.
   SetUpComponentUpdateHints(https_url());
 
-  RetryForHistogramUntilCountReached(
+  optimization_guide::RetryForHistogramUntilCountReached(
       histogram_tester,
       optimization_guide::kComponentHintsUpdatedResultHistogramString, 1);
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -1192,7 +1159,7 @@
     ui_test_utils::NavigateToURL(browser(), GURL(full_url));
 
     EXPECT_EQ(2u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
     histogram_tester->ExpectUniqueSample(
@@ -1223,7 +1190,7 @@
     // With URL-keyed Hints, every unique URL navigated to will result in a
     // hints fetch if racing is enabled and allowed.
     EXPECT_EQ(3u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         2);
 
@@ -1244,18 +1211,18 @@
   // Allowlist NoScript for https_url()'s' host.
   SetUpComponentUpdateHints(https_url());
 
-  RetryForHistogramUntilCountReached(
+  optimization_guide::RetryForHistogramUntilCountReached(
       histogram_tester,
       optimization_guide::kComponentHintsUpdatedResultHistogramString, 1);
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
@@ -1282,7 +1249,7 @@
     ui_test_utils::NavigateToURL(browser(), GURL(full_url));
 
     EXPECT_EQ(2u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         1);
     histogram_tester->ExpectUniqueSample(
@@ -1311,7 +1278,7 @@
     // With URL-keyed Hints, every unique URL navigated to will result in a
     // hints fetch if racing is enabled and allowed.
     EXPECT_EQ(2u, count_hints_requests_received());
-    RetryForHistogramUntilCountReached(
+    optimization_guide::RetryForHistogramUntilCountReached(
         histogram_tester, optimization_guide::kLoadedHintLocalHistogramString,
         2);
 
@@ -1345,12 +1312,12 @@
 
   // Expect that the browser initialization will record at least one sample
   // in each of the following histograms as One Platform Hints are enabled.
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.HostCount", 1),
             1);
 
-  EXPECT_GE(RetryForHistogramUntilCountReached(
+  EXPECT_GE(optimization_guide::RetryForHistogramUntilCountReached(
                 histogram_tester,
                 "OptimizationGuide.HintsFetcher.GetHintsRequest.Status", 1),
             1);
diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc
index c88ef4b..86965e3 100644
--- a/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc
@@ -7,12 +7,12 @@
 #include "base/base64.h"
 #include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
-#include "base/task/thread_pool/thread_pool_instance.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/optimization_guide/browser_test_util.h"
 #include "chrome/browser/optimization_guide/optimization_guide_hints_manager.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
@@ -26,6 +26,7 @@
 #include "components/optimization_guide/core/optimization_guide_prefs.h"
 #include "components/optimization_guide/core/optimization_guide_store.h"
 #include "components/optimization_guide/core/optimization_guide_switches.h"
+#include "components/optimization_guide/core/optimization_guide_test_util.h"
 #include "components/optimization_guide/core/optimization_hints_component_update_listener.h"
 #include "components/optimization_guide/core/test_hints_component_creator.h"
 #include "components/optimization_guide/proto/hints.pb.h"
@@ -46,37 +47,6 @@
 
 namespace {
 
-// Fetch and calculate the total number of samples from all the bins for
-// |histogram_name|. Note: from some browertests run, there might be two
-// profiles created, and this will return the total sample count across
-// profiles.
-int GetTotalHistogramSamples(const base::HistogramTester& histogram_tester,
-                             const std::string& histogram_name) {
-  std::vector<base::Bucket> buckets =
-      histogram_tester.GetAllSamples(histogram_name);
-  int total = 0;
-  for (const auto& bucket : buckets)
-    total += bucket.count;
-
-  return total;
-}
-
-// Retries fetching |histogram_name| until it contains at least |count| samples.
-int RetryForHistogramUntilCountReached(
-    const base::HistogramTester& histogram_tester,
-    const std::string& histogram_name,
-    int count) {
-  int total = 0;
-  while (true) {
-    base::ThreadPoolInstance::Get()->FlushForTesting();
-    base::RunLoop().RunUntilIdle();
-
-    total = GetTotalHistogramSamples(histogram_tester, histogram_name);
-    if (total >= count)
-      return total;
-  }
-}
-
 // A WebContentsObserver that asks whether an optimization type can be applied.
 class OptimizationGuideConsumerWebContentsObserver
     : public content::WebContentsObserver {
@@ -407,8 +377,8 @@
 
   ui_test_utils::NavigateToURL(browser(), url_with_hints());
 
-  EXPECT_GT(RetryForHistogramUntilCountReached(
-                histogram_tester, "OptimizationGuide.LoadedHint.Result", 1),
+  EXPECT_GT(optimization_guide::RetryForHistogramUntilCountReached(
+                &histogram_tester, "OptimizationGuide.LoadedHint.Result", 1),
             0);
   // There is a hint that matches this URL, so there should be an attempt to
   // load a hint that succeeds.
@@ -445,8 +415,8 @@
 
   ui_test_utils::NavigateToURL(browser(), url_with_hints());
 
-  EXPECT_GT(RetryForHistogramUntilCountReached(
-                histogram_tester, "OptimizationGuide.LoadedHint.Result", 1),
+  EXPECT_GT(optimization_guide::RetryForHistogramUntilCountReached(
+                &histogram_tester, "OptimizationGuide.LoadedHint.Result", 1),
             0);
   // There is a hint that matches this URL, so there should be an attempt to
   // load a hint that succeeds.
@@ -483,8 +453,8 @@
 
   ui_test_utils::NavigateToURL(browser(), url_that_redirects_to_hints());
 
-  EXPECT_EQ(RetryForHistogramUntilCountReached(
-                histogram_tester, "OptimizationGuide.LoadedHint.Result", 2),
+  EXPECT_EQ(optimization_guide::RetryForHistogramUntilCountReached(
+                &histogram_tester, "OptimizationGuide.LoadedHint.Result", 2),
             2);
   // Should attempt and succeed to load a hint once for the initial navigation
   // and redirect.
@@ -504,8 +474,8 @@
 
   ui_test_utils::NavigateToURL(browser(), GURL("https://nohints.com/"));
 
-  EXPECT_EQ(RetryForHistogramUntilCountReached(
-                histogram_tester, "OptimizationGuide.LoadedHint.Result", 1),
+  EXPECT_EQ(optimization_guide::RetryForHistogramUntilCountReached(
+                &histogram_tester, "OptimizationGuide.LoadedHint.Result", 1),
             1);
   // There were no hints that match this URL, but there should still be an
   // attempt to load a hint but still fail.
@@ -535,8 +505,8 @@
         {optimization_guide::proto::FAST_HOST_HINTS});
     // Wait until filter is loaded. This histogram will record twice: once when
     // the config is found and once when the filter is created.
-    RetryForHistogramUntilCountReached(
-        histogram_tester,
+    optimization_guide::RetryForHistogramUntilCountReached(
+        &histogram_tester,
         "OptimizationGuide.OptimizationFilterStatus.FastHostHints", 2);
 
     EXPECT_EQ(optimization_guide::OptimizationGuideDecision::kFalse,
@@ -557,8 +527,8 @@
         {optimization_guide::proto::LITE_PAGE_REDIRECT});
     // Wait until filter is loaded. This histogram will record twice: once when
     // the config is found and once when the filter is created.
-    RetryForHistogramUntilCountReached(
-        histogram_tester,
+    optimization_guide::RetryForHistogramUntilCountReached(
+        &histogram_tester,
         "OptimizationGuide.OptimizationFilterStatus.LitePageRedirect", 2);
 
     // The previously loaded filter should still be loaded and give the same
@@ -643,8 +613,8 @@
   // to have loaded.
   base::HistogramTester histogram_tester;
   ui_test_utils::NavigateToURL(otr_browser, url_with_hints());
-  RetryForHistogramUntilCountReached(histogram_tester,
-                                     "OptimizationGuide.LoadedHint.Result", 1);
+  optimization_guide::RetryForHistogramUntilCountReached(
+      &histogram_tester, "OptimizationGuide.LoadedHint.Result", 1);
 
   EXPECT_EQ(
       optimization_guide::OptimizationGuideDecision::kTrue,
@@ -672,8 +642,8 @@
       {optimization_guide::proto::FAST_HOST_HINTS});
   // Wait until filter is loaded. This histogram will record twice: once when
   // the config is found and once when the filter is created.
-  RetryForHistogramUntilCountReached(
-      histogram_tester,
+  optimization_guide::RetryForHistogramUntilCountReached(
+      &histogram_tester,
       "OptimizationGuide.OptimizationFilterStatus.FastHostHints", 2);
 
   EXPECT_EQ(optimization_guide::OptimizationGuideDecision::kFalse,
diff --git a/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc b/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc
index ad4c9eca..1485ffe 100644
--- a/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc
+++ b/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc
@@ -3,11 +3,11 @@
 // found in the LICENSE file.
 
 #include "base/path_service.h"
-#include "base/task/thread_pool/thread_pool_instance.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "chrome/browser/history/history_service_factory.h"
+#include "chrome/browser/optimization_guide/browser_test_util.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
 #include "chrome/browser/optimization_guide/page_content_annotations_service_factory.h"
@@ -20,47 +20,13 @@
 #include "components/optimization_guide/content/browser/page_content_annotations_service.h"
 #include "components/optimization_guide/core/optimization_guide_enums.h"
 #include "components/optimization_guide/core/optimization_guide_features.h"
+#include "components/optimization_guide/core/optimization_guide_test_util.h"
 #include "components/optimization_guide/core/test_model_info_builder.h"
 #include "components/optimization_guide/machine_learning_tflite_buildflags.h"
 #include "components/optimization_guide/proto/page_topics_model_metadata.pb.h"
 #include "content/public/test/browser_test.h"
 #include "net/dns/mock_host_resolver.h"
 
-namespace {
-
-// Fetch and calculate the total number of samples from all the bins for
-// |histogram_name|. Note: from some browertests run, there might be two
-// profiles created, and this will return the total sample count across
-// profiles.
-int GetTotalHistogramSamples(const base::HistogramTester& histogram_tester,
-                             const std::string& histogram_name) {
-  std::vector<base::Bucket> buckets =
-      histogram_tester.GetAllSamples(histogram_name);
-  int total = 0;
-  for (const auto& bucket : buckets)
-    total += bucket.count;
-
-  return total;
-}
-
-// Retries fetching |histogram_name| until it contains at least |count| samples.
-int RetryForHistogramUntilCountReached(
-    const base::HistogramTester& histogram_tester,
-    const std::string& histogram_name,
-    int count) {
-  int total = 0;
-  while (true) {
-    base::ThreadPoolInstance::Get()->FlushForTesting();
-    base::RunLoop().RunUntilIdle();
-
-    total = GetTotalHistogramSamples(histogram_tester, histogram_name);
-    if (total >= count)
-      return total;
-  }
-}
-
-}  // namespace
-
 namespace optimization_guide {
 
 #if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
@@ -206,7 +172,7 @@
 
     if (expect_model_loaded) {
       RetryForHistogramUntilCountReached(
-          histogram_tester,
+          &histogram_tester,
           "OptimizationGuide.ModelExecutor.ModelLoadingResult.PageTopics", 1);
       histogram_tester.ExpectUniqueSample(
           "OptimizationGuide.ModelExecutor.ModelLoadingResult.PageTopics",
@@ -270,7 +236,7 @@
   int expected_count = 0;
 #endif
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService.ContentAnnotated",
       expected_count);
 
@@ -296,7 +262,7 @@
 
 #if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService."
       "ContentAnnotationsStorageStatus",
       1);
@@ -331,7 +297,7 @@
   service->Annotate(history_visit, "sometext");
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService.ContentAnnotated", 1);
 
   histogram_tester.ExpectUniqueSample(
@@ -339,7 +305,7 @@
       1);
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService."
       "ContentAnnotationsStorageStatus",
       1);
@@ -379,7 +345,7 @@
   ui_test_utils::NavigateToURL(browser(), url);
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService.ContentAnnotated", 1);
 
   histogram_tester.ExpectUniqueSample(
@@ -422,7 +388,7 @@
   ui_test_utils::NavigateToURL(browser(), url);
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.ModelExecutor.ModelLoadingResult.PageTopics", 1);
   histogram_tester.ExpectUniqueSample(
       "OptimizationGuide.ModelExecutor.ModelLoadingResult.PageTopics",
@@ -431,7 +397,7 @@
       "OptimizationGuide.ModelExecutor.ModelLoadingDuration.PageTopics", 1);
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService.ContentAnnotated", 1);
 
   histogram_tester.ExpectTotalCount(
@@ -448,7 +414,7 @@
   EXPECT_EQ(123, *model_version);
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService."
       "ContentAnnotationsStorageStatus",
       1);
@@ -505,7 +471,7 @@
   ui_test_utils::NavigateToURL(browser(), url);
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService.ModelAvailable", 1);
 
   histogram_tester.ExpectUniqueSample(
@@ -519,7 +485,7 @@
   ui_test_utils::NavigateToURL(browser(), url2);
 
   RetryForHistogramUntilCountReached(
-      histogram_tester,
+      &histogram_tester,
       "OptimizationGuide.PageContentAnnotationsService.ModelAvailable", 2);
 
   histogram_tester.ExpectBucketCount(
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
index da0fd29a..708ff5ec 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
@@ -8,7 +8,6 @@
 #include "base/callback_helpers.h"
 #include "base/files/file_util.h"
 #include "base/run_loop.h"
-#include "base/task/thread_pool/thread_pool_instance.h"
 #include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
@@ -16,6 +15,7 @@
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/optimization_guide/browser_test_util.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
 #include "chrome/browser/optimization_guide/prediction/prediction_manager.h"
@@ -47,39 +47,6 @@
 
 namespace {
 
-// Fetch and calculate the total number of samples from all the bins for
-// |histogram_name|. Note: from some browertests run (such as chromeos) there
-// might be two profiles created, and this will return the total sample count
-// across profiles.
-int GetTotalHistogramSamples(const base::HistogramTester* histogram_tester,
-                             const std::string& histogram_name) {
-  std::vector<base::Bucket> buckets =
-      histogram_tester->GetAllSamples(histogram_name);
-  int total = 0;
-  for (const auto& bucket : buckets)
-    total += bucket.count;
-
-  return total;
-}
-
-// Retries fetching |histogram_name| until it contains at least |count| samples.
-void RetryForHistogramUntilCountReached(
-    const base::HistogramTester* histogram_tester,
-    const std::string& histogram_name,
-    int count) {
-  while (true) {
-    base::ThreadPoolInstance::Get()->FlushForTesting();
-    base::RunLoop().RunUntilIdle();
-
-    content::FetchHistogramsFromChildProcesses();
-    metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
-
-    int total = GetTotalHistogramSamples(histogram_tester, histogram_name);
-    if (total >= count)
-      return;
-  }
-}
-
 std::unique_ptr<optimization_guide::proto::PredictionModel>
 GetValidDecisionTreePredictionModel() {
   std::unique_ptr<optimization_guide::proto::PredictionModel> prediction_model =
diff --git a/chrome/browser/policy/test/promotional_tabs_enabled_policy_browsertest.cc b/chrome/browser/policy/test/promotional_tabs_enabled_policy_browsertest.cc
index 9f8c9ff..21b0a49 100644
--- a/chrome/browser/policy/test/promotional_tabs_enabled_policy_browsertest.cc
+++ b/chrome/browser/policy/test/promotional_tabs_enabled_policy_browsertest.cc
@@ -17,6 +17,7 @@
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
+#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/chrome_version.h"
@@ -29,6 +30,7 @@
 #include "components/policy/policy_constants.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/test/browser_test.h"
+#include "net/base/url_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
 
@@ -49,6 +51,12 @@
       const PromotionalTabsEnabledPolicyTest&) = delete;
 
  protected:
+  static std::string GetWhatsNewAutoURL() {
+    GURL url(chrome::kChromeUIWhatsNewURL);
+    return net::AppendQueryParameter(url, "auto", "true")
+        .possibly_invalid_spec();
+  }
+
   PromotionalTabsEnabledPolicyTest() {
     const std::vector<base::Feature> kEnabledFeatures = {
       features::kChromeWhatsNewUI,
@@ -56,6 +64,7 @@
       welcome::kForceEnabled,
 #endif
     };
+    whats_new::g_force_enable_for_tests = true;
     scoped_feature_list_.InitWithFeatures(kEnabledFeatures, {});
   }
   ~PromotionalTabsEnabledPolicyTest() override = default;
@@ -130,7 +139,7 @@
       // One or more onboarding tabs should show.
       EXPECT_NE(url.possibly_invalid_spec(), chrome::kChromeUINewTabURL);
       // Welcome should override What's New.
-      EXPECT_NE(url.possibly_invalid_spec(), chrome::kChromeUIWhatsNewURL);
+      EXPECT_NE(url.possibly_invalid_spec(), GetWhatsNewAutoURL());
       EXPECT_FALSE(search::IsNTPOrRelatedURL(url, browser()->profile())) << url;
       break;
   }
@@ -211,8 +220,8 @@
       break;
     case BooleanPolicy::kNotConfigured:
     case BooleanPolicy::kTrue:
-      // Whats's New should show.
-      EXPECT_EQ(url.possibly_invalid_spec(), chrome::kChromeUIWhatsNewURL);
+      // Whats's New should show with auto=true query param.
+      EXPECT_EQ(url.possibly_invalid_spec(), GetWhatsNewAutoURL());
       break;
   }
 }
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index adff84d..bc25f20 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -251,6 +251,7 @@
 #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h"
 #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h"
 #include "chrome/browser/ui/webui/settings/settings_ui.h"
+#include "chrome/browser/ui/webui/tab_search/tab_search_prefs.h"
 #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
 #include "chrome/browser/upgrade_detector/upgrade_detector.h"
 #include "components/ntp_tiles/custom_links_manager_impl.h"
@@ -1236,6 +1237,7 @@
       registry);
   signin::RegisterProfilePrefs(registry);
   StartupBrowserCreator::RegisterProfilePrefs(registry);
+  tab_search_prefs::RegisterProfilePrefs(registry);
   TaskModuleService::RegisterProfilePrefs(registry);
   UnifiedAutoplayConfig::RegisterProfilePrefs(registry);
   CartService::RegisterProfilePrefs(registry);
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
index 7dd29f4..d27e6fd 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
@@ -3349,8 +3349,8 @@
         .call(doCmd('nextObject'))
         .expectSpeech('Hello')
         .call(doCmd('nextObject'))
-        .expectSpeech('Separator content should be read')
-        .expectBraille('Separator content should be read')
+        .expectSpeech('Separator content should be read', 'Separator')
+        .expectBraille('Separator content should be read seprtr')
         .call(doCmd('nextObject'))
         .expectSpeech('World')
         .replay();
@@ -3629,18 +3629,42 @@
   const mockFeedback = this.createMockFeedback();
   const site = `
     <p>start</p>
-    <div tabindex=0 role="textbox" contenteditable>123</div>
+    <div tabindex=0 role="textbox" contenteditable><p>abc</p><p>123</p></div>
   `;
   this.runWithLoadedTree(site, function(root) {
     const contentEditable = root.find({role: RoleType.TEXT_FIELD});
 
     this.listenOnce(contentEditable, EventType.FOCUS, function() {
       mockFeedback.call(press(KeyCode.RIGHT))
+          .expectSpeech('b')
+          .call(press(KeyCode.RIGHT))
+          .expectSpeech('c')
+          .call(press(KeyCode.RIGHT))
+          .expectSpeech('\n')
+          .call(press(KeyCode.RIGHT))
+          .expectSpeech('1')
+          .call(press(KeyCode.RIGHT))
           .expectSpeech('2')
           .call(press(KeyCode.RIGHT))
           .expectSpeech('3')
           .call(press(KeyCode.RIGHT))
           .expectSpeech('End of text')
+
+          .call(press(KeyCode.LEFT))
+          .expectSpeech('3')
+          .call(press(KeyCode.LEFT))
+          .expectSpeech('2')
+          .call(press(KeyCode.LEFT))
+          .expectSpeech('1')
+          .call(press(KeyCode.LEFT))
+          .expectSpeech('\n')
+          .call(press(KeyCode.LEFT))
+          .expectSpeech('c')
+          .call(press(KeyCode.LEFT))
+          .expectSpeech('b')
+          .call(press(KeyCode.LEFT))
+          .expectSpeech('a')
+
           .replay();
     }.bind(this));
     contentEditable.focus();
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
index 05a5c682..23ea3b1 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
@@ -1768,11 +1768,13 @@
       mockFeedback.call(this.press(KeyCode.DOWN))
           .expectSpeech('Hello')
           .call(this.press(KeyCode.DOWN))
-          .expectSpeech('Separator content should be read')
+          .expectSpeech('Separator content should be read', 'Separator')
           .call(this.press(KeyCode.DOWN))
-          .expectSpeech('World')
+          .expectSpeech('World', 'Exited Separator.')
           .call(this.press(KeyCode.LEFT))
-          .expectSpeech('\n')
+          .expectNextSpeechUtteranceIsNot('\n')
+          .expectSpeech('Separator content should be read', 'Separator')
+
           .replay();
     });
     input.focus();
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js
index 3e416dd..f06a5775 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js
@@ -88,33 +88,50 @@
     switch (intent.textBoundary) {
       case IntentTextBoundaryType.CHARACTER: {
         const text = cur.text.substring(cur.startOffset, cur.startOffset + 1);
-        // Return false if |text| is empty. Do this to give the user more
-        // information than just "new line". For example, if moving by character
-        // moves us to the beginning/end of a separator, we want to include
-        // additional context.
+
+        // First, handle the case where there is no text to the right of the
+        // cursor.
         if (!text) {
+          // Detect cases where |cur| is immediately before an abstractSpan.
+          const nextCursor =
+              cur.end.move(Unit.CHARACTER, Movement.DIRECTIONAL, Dir.FORWARD);
+          const ancestors =
+              AutomationUtil.getUniqueAncestors(nextCursor.node, cur.end.node);
+
+          // Scan up only to a root or the editable root.
+          let ancestor;
+          while ((ancestor = ancestors.pop()) &&
+                 !AutomationPredicate.rootOrEditableRoot(ancestor)) {
+            const roleInfo = Output.ROLE_INFO[ancestor.role];
+            if (roleInfo && roleInfo['inherits'] === 'abstractSpan') {
+              // Let the caller handle this case.
+              return false;
+            }
+          }
+
+          // It is assumed to be a new line otherwise.
           ChromeVox.tts.speak('\n', QueueMode.CATEGORY_FLUSH);
-          return false;
+          return true;
         }
 
-        // Read character to the right of the cursor. It is assumed to be a new
-        // line if empty.
-        // TODO: detect when this is the end of the document; read "end of text"
-        // if so.
-        // Use the Output module for feedback so that we get contextual
-        // information e.g. if we've entered a suggestion, insertion, or
-        // deletion.
+        // Read character to the right of the cursor by building a character
+        // range.
         let prevRange = null;
         if (prev) {
           prevRange = prev.createCharRange();
         }
         const newRange = cur.createCharRange();
+
+        // Use the Output module for feedback so that we get contextual
+        // information e.g. if we've entered a suggestion, insertion, or
+        // deletion.
         new Output()
             .withContextFirst()
             .withRichSpeechAndBraille(
                 newRange, prevRange, OutputEventType.NAVIGATE)
             .go();
 
+        // Handled.
         return true;
       }
       case IntentTextBoundaryType.LINE_END:
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js
index 16f961e..61a926a 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js
@@ -646,10 +646,10 @@
       if (parent.role === RoleType.WINDOW) {
         break;
       }
-      if (Output.ROLE_INFO_[parent.role] &&
-          Output.ROLE_INFO_[parent.role].contextOrder) {
+      if (Output.ROLE_INFO[parent.role] &&
+          Output.ROLE_INFO[parent.role].contextOrder) {
         this.contextOrder_ =
-            Output.ROLE_INFO_[parent.role].contextOrder || this.contextOrder_;
+            Output.ROLE_INFO[parent.role].contextOrder || this.contextOrder_;
         break;
       }
     }
@@ -1195,7 +1195,7 @@
   formatRole_(node, token, buff, options, ruleStr) {
     options.annotation.push(token);
     let msg = node.role;
-    const info = Output.ROLE_INFO_[node.role];
+    const info = Output.ROLE_INFO[node.role];
     if (node.roleDescription) {
       msg = node.roleDescription;
     } else if (info) {
@@ -1709,8 +1709,8 @@
       return;
     }
 
-    if (Output.ROLE_INFO_[node.role] &&
-        Output.ROLE_INFO_[node.role].ignoreAncestry) {
+    if (Output.ROLE_INFO[node.role] &&
+        Output.ROLE_INFO[node.role].ignoreAncestry) {
       return;
     }
 
@@ -1726,7 +1726,7 @@
           contextFirst = [];
           rest = [];
         }
-        if ((Output.ROLE_INFO_[node.role] || {}).contextOrder ===
+        if ((Output.ROLE_INFO[node.role] || {}).contextOrder ===
             OutputContextOrder.FIRST) {
           contextFirst.push(node);
         } else {
@@ -1860,7 +1860,7 @@
 
       const secondaryRole = secondaryFormatNode.role;
       const parentRole =
-          (Output.ROLE_INFO_[secondaryFormatNode.role] || {}).inherits;
+          (Output.ROLE_INFO[secondaryFormatNode.role] || {}).inherits;
       if (secondaryRole && eventBlock[secondaryRole] &&
           eventBlock[secondaryRole][secondaryFormatName]) {
         rule.role = secondaryRole;
@@ -1897,7 +1897,7 @@
         continue;
       }
 
-      const parentRole = (Output.ROLE_INFO_[formatNode.role] || {}).inherits;
+      const parentRole = (Output.ROLE_INFO[formatNode.role] || {}).inherits;
       if (eventBlock[formatNode.role] &&
           eventBlock[formatNode.role][formatName]) {
         rule.role = formatNode.role;
@@ -1963,7 +1963,7 @@
     // Navigate is the default event.
     rule.event = Output.RULES[type] ? type : 'navigate';
     const eventBlock = Output.RULES[rule.event];
-    const parentRole = (Output.ROLE_INFO_[node.role] || {}).inherits || '';
+    const parentRole = (Output.ROLE_INFO[node.role] || {}).inherits || '';
     /**
      * Use Output.RULES for node.role if exists.
      * If not, use Output.RULES for parentRole if exists.
@@ -2451,7 +2451,7 @@
       }
 
       while (earconFinder = ancestors.pop()) {
-        const info = Output.ROLE_INFO_[earconFinder.role];
+        const info = Output.ROLE_INFO[earconFinder.role];
         if (info && info.earconId) {
           return new OutputEarconAction(
               info.earconId, node.location || undefined);
@@ -2540,9 +2540,8 @@
  * inherits: inherits rules from this role.
  * contextOrder: where to place the context output.
  * ignoreAncestry: ignores ancestry (context) output for this role.
- * @private
  */
-Output.ROLE_INFO_ = {
+Output.ROLE_INFO = {
   abbr: {msgId: 'tag_abbr', inherits: 'abstractContainer'},
   alert: {msgId: 'role_alert'},
   alertDialog:
@@ -2706,7 +2705,7 @@
     inherits: 'abstractRange',
     earconId: 'LISTBOX'
   },
-  splitter: {msgId: 'role_separator'},
+  splitter: {msgId: 'role_separator', inherits: 'abstractSpan'},
   status: {msgId: 'role_status', inherits: 'abstractNameFromContents'},
   suggestion: {
     msgId: 'role_suggestion',
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_test.js
index 023bfec..12a46c49 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_test.js
@@ -627,8 +627,8 @@
     'graphicsSymbol',
     'suggestion',
   ]);
-  for (const key in Output.ROLE_INFO_) {
-    const value = Output.ROLE_INFO_[key];
+  for (const key in Output.ROLE_INFO) {
+    const value = Output.ROLE_INFO[key];
     if (value.msgId) {
       Msgs.getMsg(value.msgId);
       if (!kNoBrailleMessageRequired.has(key)) {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/testing/chromevox_next_e2e_test_base.js b/chrome/browser/resources/chromeos/accessibility/chromevox/testing/chromevox_next_e2e_test_base.js
index 19381eb..1e934bf 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/testing/chromevox_next_e2e_test_base.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/testing/chromevox_next_e2e_test_base.js
@@ -29,9 +29,9 @@
     DesktopAutomationHandler.announceActions = true;
 
     this.originalOutputContextValues_ = {};
-    for (const role in Output.ROLE_INFO_) {
+    for (const role in Output.ROLE_INFO) {
       this.originalOutputContextValues_[role] =
-          Output.ROLE_INFO_[role]['contextOrder'];
+          Output.ROLE_INFO[role]['contextOrder'];
     }
   }
 
@@ -126,8 +126,8 @@
    * rebaselining when changing context ordering for a specific role.
    */
   forceContextualLastOutput() {
-    for (const role in Output.ROLE_INFO_) {
-      Output.ROLE_INFO_[role]['contextOrder'] = OutputContextOrder.LAST;
+    for (const role in Output.ROLE_INFO) {
+      Output.ROLE_INFO[role]['contextOrder'] = OutputContextOrder.LAST;
     }
   }
 
@@ -135,15 +135,15 @@
    * Forces output to place context utterances at the beginning of output.
    */
   forceContextualFirstOutput() {
-    for (const role in Output.ROLE_INFO_) {
-      Output.ROLE_INFO_[role]['contextOrder'] = OutputContextOrder.FIRST;
+    for (const role in Output.ROLE_INFO) {
+      Output.ROLE_INFO[role]['contextOrder'] = OutputContextOrder.FIRST;
     }
   }
 
   /** Resets contextual output values to their defaults. */
   resetContextualOutput() {
-    for (const role in Output.ROLE_INFO_) {
-      Output.ROLE_INFO_[role]['contextOrder'] =
+    for (const role in Output.ROLE_INFO) {
+      Output.ROLE_INFO[role]['contextOrder'] =
           this.originalOutputContextValues_[role];
     }
   }
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
index be07226..d10716bf 100644
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -125,9 +125,9 @@
     "extension_control_browser_proxy.js",
     "global_scroll_target_mixin.js",
     "hats_browser_proxy.js",
-    "i18n_setup.js",
+    "i18n_setup.ts",
     "incompatible_applications_page/incompatible_applications_browser_proxy.js",
-    "lazy_load.js",
+    "lazy_load.ts",
     "lifetime_browser_proxy.js",
     "metrics_browser_proxy.js",
     "on_startup_page/on_startup_browser_proxy.js",
@@ -142,14 +142,14 @@
     "prefs/pref_util.js",
     "privacy_page/privacy_page_browser_proxy.js",
     "privacy_page/security_keys_browser_proxy.js",
-    "reset_page/reset_browser_proxy.js",
+    "reset_page/reset_browser_proxy.ts",
     "route.js",
     "router.js",
     "safety_check_page/safety_check_browser_proxy.js",
     "search_engines_page/search_engines_browser_proxy.js",
     "search_settings.js",
-    "setting_id_param_util.js",
-    "settings.js",
+    "setting_id_param_util.ts",
+    "settings.ts",
     "settings_page/main_page_mixin.js",
     "settings_routes.js",
     "site_settings/constants.js",
@@ -236,7 +236,7 @@
     "controls/settings_textarea.js",
     "controls/settings_toggle_button.js",
     "downloads_page/downloads_page.js",
-    "icons.js",
+    "icons.ts",
     "settings_menu/settings_menu.js",
     "on_startup_page/on_startup_page.js",
     "on_startup_page/startup_url_dialog.js",
@@ -264,9 +264,9 @@
     "privacy_page/security_keys_reset_dialog.js",
     "privacy_page/security_keys_set_pin_dialog.js",
     "privacy_page/security_keys_subpage.js",
-    "reset_page/reset_page.js",
-    "reset_page/reset_profile_dialog.js",
-    "reset_page/reset_profile_banner.js",
+    "reset_page/reset_page.ts",
+    "reset_page/reset_profile_dialog.ts",
+    "reset_page/reset_profile_banner.ts",
     "safety_check_page/safety_check_child.js",
     "safety_check_page/safety_check_extensions_child.js",
     "safety_check_page/safety_check_page.js",
@@ -285,9 +285,9 @@
     "settings_page/settings_section.js",
     "settings_page/settings_subpage.js",
     "settings_ui/settings_ui.js",
-    "settings_page_css.js",
-    "settings_shared_css.js",
-    "settings_vars_css.js",
+    "settings_page_css.ts",
+    "settings_shared_css.ts",
+    "settings_vars_css.ts",
     "site_favicon.js",
     "site_settings/add_site_dialog.js",
     "site_settings/all_sites.js",
@@ -382,7 +382,6 @@
     "privacy_page:closure_compile",
     "privacy_page/privacy_review:closure_compile",
     "privacy_sandbox:closure_compile",
-    "reset_page:closure_compile",
     "safety_check_page:closure_compile",
     "search_engines_page:closure_compile",
     "search_page:closure_compile",
@@ -441,6 +440,8 @@
 }
 
 js_library("settings") {
+  sources =
+      [ "$root_gen_dir/chrome/browser/resources/settings/tsc/settings.js" ]
   deps = [
     ":hats_browser_proxy",
     ":lifetime_browser_proxy",
@@ -457,6 +458,7 @@
     "search_engines_page:search_engines_browser_proxy",
     "settings_ui:settings_ui",
   ]
+  extra_deps = [ ":build_ts" ]
 }
 
 js_library("base_mixin") {
@@ -471,7 +473,10 @@
 }
 
 js_library("i18n_setup") {
+  sources =
+      [ "$root_gen_dir/chrome/browser/resources/settings/tsc/i18n_setup.js" ]
   deps = [ "//ui/webui/resources/js:load_time_data.m" ]
+  extra_deps = [ ":build_ts" ]
 }
 
 js_library("global_scroll_target_mixin") {
@@ -487,6 +492,8 @@
 }
 
 js_library("lazy_load") {
+  sources =
+      [ "$root_gen_dir/chrome/browser/resources/settings/tsc/lazy_load.js" ]
   deps = [
     "autofill_page:autofill_section",
     "autofill_page:payments_section",
@@ -511,6 +518,7 @@
       "languages_page:languages_subpage",
     ]
   }
+  extra_deps = [ ":build_ts" ]
 }
 
 js_library("lifetime_browser_proxy") {
@@ -558,10 +566,12 @@
 }
 
 js_library("setting_id_param_util") {
+  sources = [ "$root_gen_dir/chrome/browser/resources/settings/tsc/setting_id_param_util.js" ]
   deps = [
     ":router",
     "//ui/webui/resources/js:load_time_data.m",
   ]
+  extra_deps = [ ":build_ts" ]
 }
 
 js_library("settings_routes") {
@@ -626,10 +636,10 @@
 
 html_to_js("web_components_local") {
   js_files = [
-    "icons.js",
-    "settings_vars_css.js",
-    "settings_page_css.js",
-    "settings_shared_css.js",
+    "icons.ts",
+    "settings_vars_css.ts",
+    "settings_page_css.ts",
+    "settings_shared_css.ts",
     "site_favicon.js",
   ]
 }
@@ -709,9 +719,9 @@
     "extension_control_browser_proxy.js",
     "global_scroll_target_mixin.js",
     "hats_browser_proxy.js",
-    "i18n_setup.js",
-    "icons.js",
-    "lazy_load.js",
+    "i18n_setup.ts",
+    "icons.ts",
+    "lazy_load.ts",
     "lifetime_browser_proxy.js",
     "metrics_browser_proxy.js",
     "on_startup_page/on_startup_browser_proxy.js",
@@ -752,10 +762,10 @@
     "privacy_page/security_keys_set_pin_dialog.js",
     "privacy_page/security_keys_subpage.js",
     "privacy_page/security_page.js",
-    "reset_page/reset_browser_proxy.js",
-    "reset_page/reset_page.js",
-    "reset_page/reset_profile_banner.js",
-    "reset_page/reset_profile_dialog.js",
+    "reset_page/reset_browser_proxy.ts",
+    "reset_page/reset_page.ts",
+    "reset_page/reset_profile_banner.ts",
+    "reset_page/reset_profile_dialog.ts",
     "route.js",
     "router.js",
     "safety_check_page/safety_check_browser_proxy.js",
@@ -774,19 +784,19 @@
     "search_engines_page/search_engines_page.js",
     "search_page/search_page.js",
     "search_settings.js",
-    "setting_id_param_util.js",
-    "settings.js",
+    "setting_id_param_util.ts",
+    "settings.ts",
     "settings_main/settings_main.js",
     "settings_menu/settings_menu.js",
-    "settings_page_css.js",
+    "settings_page_css.ts",
     "settings_page/main_page_mixin.js",
     "settings_page/settings_animated_pages.js",
     "settings_page/settings_section.js",
     "settings_page/settings_subpage.js",
     "settings_routes.js",
-    "settings_shared_css.js",
+    "settings_shared_css.ts",
     "settings_ui/settings_ui.js",
-    "settings_vars_css.js",
+    "settings_vars_css.ts",
     "site_favicon.js",
     "site_settings/add_site_dialog.js",
     "site_settings/all_sites_icons.js",
@@ -877,6 +887,8 @@
         [ "//ui/webui/resources/cr_components/certificate_manager:build_ts" ]
   }
 
+  definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ]
+
   extra_deps = [
     ":preprocess",
     ":preprocess_generated",
diff --git a/chrome/browser/resources/settings/chromeos/BUILD.gn b/chrome/browser/resources/settings/chromeos/BUILD.gn
index 1c08bba..3bcc926 100644
--- a/chrome/browser/resources/settings/chromeos/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/BUILD.gn
@@ -16,6 +16,7 @@
 
 preprocess_v3_manifest = "preprocessed_manifest.json"
 preprocess_gen_v3_manifest = "preprocessed_gen_manifest.json"
+browser_settings_tsc_manifest = "browser_settings_tsc_manifest.json"
 preprocess_external_mojo_manifest = "preprocessed_external_mojo_manifest.json"
 preprocess_mojo_manifest = "preprocessed_mojo_manifest.json"
 
@@ -193,6 +194,7 @@
     ]
   } else {
     deps += [
+      ":copy_browser_settings_tsc",
       ":preprocess_gen_v3",
       ":preprocess_mojo_v3",
       ":preprocess_v3",
@@ -201,6 +203,7 @@
     grdp_files += [ "$root_gen_dir/chrome/browser/resources/nearby_share/shared/nearby_share_resources_v3.grdp" ]
     manifest_files += [
       "$target_gen_dir/$preprocess_gen_v3_manifest",
+      "$target_gen_dir/$browser_settings_tsc_manifest",
       "$target_gen_dir/$preprocess_v3_manifest",
       "$target_gen_dir/$preprocess_mojo_manifest",
     ]
@@ -233,6 +236,7 @@
     "chromeos/os_printing_page/cups_printers_browser_proxy.js",
     "chromeos/os_printing_page/cups_printers_entry_manager.js",
     "chromeos/bluetooth_page/bluetooth_page_browser_proxy.js",
+    "chromeos/os_about_page/device_name_browser_proxy.js",
     "chromeos/os_reset_page/os_reset_browser_proxy.js",
     "chromeos/os_settings.js",
     "chromeos/personalization_page/change_picture_browser_proxy.js",
@@ -241,7 +245,6 @@
     "controls/pref_control_behavior.js",
     "controls/settings_boolean_control_behavior.js",
     "extension_control_browser_proxy.js",
-    "i18n_setup.js",
     "languages_page/languages.js",
     "languages_page/languages_browser_proxy.js",
     "lifetime_browser_proxy.js",
@@ -258,7 +261,25 @@
     "privacy_page/privacy_page_browser_proxy.js",
     "router.js",
     "search_engines_page/search_engines_browser_proxy.js",
+  ]
+}
+
+# Since Browser Settings is migrating to TypeScript (crbug.com/1234307), and
+# some files are still shared with CrOS Settings, need to copy the transpiled
+# JS file from TS compiler's output.
+preprocess_if_expr("copy_browser_settings_tsc") {
+  defines = chrome_grit_defines
+  deps = [ "..:build_ts" ]
+  in_folder = "$root_gen_dir/chrome/browser/resources/settings/tsc"
+  out_folder = "$target_gen_dir/$preprocess_folder_v3"
+  out_manifest = "$target_gen_dir/$browser_settings_tsc_manifest"
+  in_files = [
+    "i18n_setup.js",
+    "icons.js",
     "setting_id_param_util.js",
+    "settings_page_css.js",
+    "settings_shared_css.js",
+    "settings_vars_css.js",
   ]
 }
 
@@ -384,12 +405,11 @@
     "chromeos/os_a11y_page/manage_a11y_page_browser_proxy.m.js",
     "chromeos/os_a11y_page/tts_subpage.m.js",
     "chromeos/os_a11y_page/tts_subpage_browser_proxy.m.js",
-    "chromeos/os_about_page/channel_switcher_dialog.m.js",
-    "chromeos/os_about_page/detailed_build_info.m.js",
-    "chromeos/os_about_page/device_name_browser_proxy.m.js",
-    "chromeos/os_about_page/edit_hostname_dialog.m.js",
-    "chromeos/os_about_page/os_about_page.m.js",
-    "chromeos/os_about_page/update_warning_dialog.m.js",
+    "chromeos/os_about_page/channel_switcher_dialog.js",
+    "chromeos/os_about_page/detailed_build_info.js",
+    "chromeos/os_about_page/edit_hostname_dialog.js",
+    "chromeos/os_about_page/os_about_page.js",
+    "chromeos/os_about_page/update_warning_dialog.js",
     "chromeos/os_apps_page/android_apps_browser_proxy.m.js",
     "chromeos/os_apps_page/android_apps_subpage.m.js",
     "chromeos/os_apps_page/app_notifications_page/app_notifications_subpage.js",
@@ -511,7 +531,6 @@
     "controls/settings_slider.js",
     "controls/settings_textarea.js",
     "controls/settings_toggle_button.js",
-    "icons.js",
     "people_page/signout_dialog.js",
     "people_page/sync_account_control.js",
     "people_page/sync_controls.js",
@@ -523,9 +542,6 @@
     "settings_page/settings_animated_pages.js",
     "settings_page/settings_section.js",
     "settings_page/settings_subpage.js",
-    "settings_page_css.js",
-    "settings_shared_css.js",
-    "settings_vars_css.js",
   ]
 }
 
@@ -708,7 +724,7 @@
     "nearby_share_page:polymer3_elements",
     "os_a11y_page:polymer3_elements",
     "os_a11y_page:web_components",
-    "os_about_page:polymer3_elements",
+    "os_about_page:web_components",
     "os_apps_page:polymer3_elements",
     "os_apps_page/app_management_page:polymer3_elements",
     "os_apps_page/app_management_page/borealis_page:polymer3_elements",
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_about_page/BUILD.gn
index b1b4c16..32c4417 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/BUILD.gn
@@ -3,39 +3,35 @@
 # found in the LICENSE file.
 
 import("//third_party/closure_compiler/compile_js.gni")
-import("//tools/polymer/polymer.gni")
-import("//ui/webui/resources/tools/js_modulizer.gni")
+import("//tools/polymer/html_to_js.gni")
 import("../os_settings.gni")
 
 js_type_check("closure_compile_module") {
   closure_flags = os_settings_closure_flags
   is_polymer3 = true
   deps = [
-    ":channel_switcher_dialog.m",
-    ":detailed_build_info.m",
-    ":device_name_browser_proxy.m",
-    ":edit_hostname_dialog.m",
-    ":os_about_page.m",
-    ":update_warning_dialog.m",
+    ":channel_switcher_dialog",
+    ":detailed_build_info",
+    ":device_name_browser_proxy",
+    ":edit_hostname_dialog",
+    ":os_about_page",
+    ":update_warning_dialog",
   ]
 }
 
-js_library("channel_switcher_dialog.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.m.js" ]
+js_library("channel_switcher_dialog") {
   deps = [
     "../../about_page:about_page_browser_proxy",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/js:assert.m",
     "//ui/webui/resources/js:load_time_data.m",
   ]
-  extra_deps = [ ":channel_switcher_dialog_module" ]
 }
 
-js_library("detailed_build_info.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.m.js" ]
+js_library("detailed_build_info") {
   deps = [
-    ":channel_switcher_dialog.m",
-    ":edit_hostname_dialog.m",
+    ":channel_switcher_dialog",
+    ":edit_hostname_dialog",
     "..:deep_linking_behavior.m",
     "..:os_route.m",
     "../..:router",
@@ -45,31 +41,25 @@
     "//ui/webui/resources/cr_elements/policy:cr_tooltip_icon.m",
     "//ui/webui/resources/js:i18n_behavior.m",
   ]
-  extra_deps = [ ":detailed_build_info_module" ]
 }
 
-js_library("device_name_browser_proxy.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_about_page/device_name_browser_proxy.m.js" ]
+js_library("device_name_browser_proxy") {
   deps = [ "//ui/webui/resources/js:cr.m" ]
   externs_list = [ "$externs_path/chrome_send.js" ]
-  extra_deps = [ ":modulize" ]
 }
 
-js_library("edit_hostname_dialog.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.m.js" ]
+js_library("edit_hostname_dialog") {
   deps = [
     "../../about_page:about_page_browser_proxy",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/js:assert.m",
     "//ui/webui/resources/js:load_time_data.m",
   ]
-  extra_deps = [ ":edit_hostname_dialog_module" ]
 }
 
-js_library("os_about_page.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.m.js" ]
+js_library("os_about_page") {
   deps = [
-    ":device_name_browser_proxy.m",
+    ":device_name_browser_proxy",
     "..:deep_linking_behavior.m",
     "..:os_route.m",
     "../..:i18n_setup",
@@ -83,75 +73,22 @@
     "//ui/webui/resources/js:parse_html_subset.m",
     "//ui/webui/resources/js:web_ui_listener_behavior.m",
   ]
-  extra_deps = [ ":os_about_page_module" ]
 }
 
-js_library("update_warning_dialog.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.m.js" ]
+js_library("update_warning_dialog") {
   deps = [
     "../../about_page:about_page_browser_proxy",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/js:i18n_behavior.m",
   ]
-  extra_deps = [ ":update_warning_dialog_module" ]
 }
 
-group("polymer3_elements") {
-  public_deps = [
-    ":channel_switcher_dialog_module",
-    ":detailed_build_info_module",
-    ":edit_hostname_dialog_module",
-    ":modulize",
-    ":os_about_page_module",
-    ":update_warning_dialog_module",
+html_to_js("web_components") {
+  js_files = [
+    "channel_switcher_dialog.js",
+    "detailed_build_info.js",
+    "edit_hostname_dialog.js",
+    "os_about_page.js",
+    "update_warning_dialog.js",
   ]
 }
-
-polymer_modulizer("channel_switcher_dialog") {
-  js_file = "channel_switcher_dialog.js"
-  html_file = "channel_switcher_dialog.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
-
-polymer_modulizer("detailed_build_info") {
-  js_file = "detailed_build_info.js"
-  html_file = "detailed_build_info.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
-
-polymer_modulizer("edit_hostname_dialog") {
-  js_file = "edit_hostname_dialog.js"
-  html_file = "edit_hostname_dialog.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
-
-polymer_modulizer("os_about_page") {
-  js_file = "os_about_page.js"
-  html_file = "os_about_page.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
-
-polymer_modulizer("update_warning_dialog") {
-  js_file = "update_warning_dialog.js"
-  html_file = "update_warning_dialog.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
-
-js_modulizer("modulize") {
-  input_files = [ "device_name_browser_proxy.js" ]
-}
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.html b/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.html
index 36ccecd55..348b21d 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.html
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.html
@@ -1,73 +1,56 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
-
-<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_radio_button/cr_radio_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_radio_group/cr_radio_group.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-selector/iron-selector.html">
-<link rel="import" href="../../about_page/about_page_browser_proxy.html">
-<link rel="import" href="../../settings_shared_css.html">
-<link rel="import" href="chrome://resources/html/assert.html">
-<link rel="import" href="chrome://resources/html/load_time_data.html">
-
-<dom-module id="settings-channel-switcher-dialog">
-  <template>
-    <style include="settings-shared">
-      #warningSelector > :not(.iron-selected) {
-        display: none;
-      }
-    </style>
-    <cr-dialog id="dialog" close-text="$i18n{close}">
-      <div slot="title">$i18n{aboutChangeChannel}</div>
-      <div slot="body">
-        <!-- TODO(dbeam): this can be policy-controlled. Show this in the UI.
-             https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ChromeOsReleaseChannel
-        -->
-        <cr-radio-group on-selected-changed="onChannelSelectionChanged_">
-          <cr-radio-button name="[[browserChannelEnum_.STABLE]]">
-            $i18n{aboutChannelDialogStable}
-          </cr-radio-button>
-          <cr-radio-button name="[[browserChannelEnum_.BETA]]">
-            $i18n{aboutChannelDialogBeta}
-          </cr-radio-button>
-          <cr-radio-button name="[[browserChannelEnum_.DEV]]">
-            $i18n{aboutChannelDialogDev}
-          </cr-radio-button>
-        </cr-radio-group>
-        <iron-selector id="warningSelector">
-          <div>
-            <h2>$i18n{aboutDelayedWarningTitle}</h2>
-            <div>[[substituteString_(
-                '$i18nPolymer{aboutDelayedWarningMessage}',
-                '$i18nPolymer{aboutOsProductTitle}')]]</div>
-          </div>
-          <div>
-            <h2>$i18n{aboutPowerwashWarningTitle}</h2>
-            <div>$i18n{aboutPowerwashWarningMessage}</div>
-          </div>
-          <div>
-            <h2>$i18n{aboutUnstableWarningTitle}</h2>
-            <div>[[substituteString_(
-                '$i18nPolymer{aboutUnstableWarningMessage}',
-                '$i18nPolymer{aboutOsProductTitle}')]]</div>
-          </div>
-        </iron-selector>
+<style include="settings-shared">
+  #warningSelector > :not(.iron-selected) {
+    display: none;
+  }
+</style>
+<cr-dialog id="dialog" close-text="$i18n{close}">
+  <div slot="title">$i18n{aboutChangeChannel}</div>
+  <div slot="body">
+    <!-- TODO(dbeam): this can be policy-controlled. Show this in the UI.
+         https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ChromeOsReleaseChannel
+    -->
+    <cr-radio-group on-selected-changed="onChannelSelectionChanged_">
+      <cr-radio-button name="[[browserChannelEnum_.STABLE]]">
+        $i18n{aboutChannelDialogStable}
+      </cr-radio-button>
+      <cr-radio-button name="[[browserChannelEnum_.BETA]]">
+        $i18n{aboutChannelDialogBeta}
+      </cr-radio-button>
+      <cr-radio-button name="[[browserChannelEnum_.DEV]]">
+        $i18n{aboutChannelDialogDev}
+      </cr-radio-button>
+    </cr-radio-group>
+    <iron-selector id="warningSelector">
+      <div>
+        <h2>$i18n{aboutDelayedWarningTitle}</h2>
+        <div>[[substituteString_(
+            '$i18nPolymer{aboutDelayedWarningMessage}',
+            '$i18nPolymer{aboutOsProductTitle}')]]</div>
       </div>
-      <div slot="button-container">
-        <cr-button class="cancel-button" on-click="onCancelTap_"
-            id="cancel">$i18n{cancel}</cr-button>
-        <cr-button id="changeChannel" class="action-button"
-            on-click="onChangeChannelTap_"
-            hidden="[[!shouldShowButtons_.changeChannel]]">
-          $i18n{aboutChangeChannel}
-        </cr-button>
-        <cr-button id="changeChannelAndPowerwash" class="action-button"
-            on-click="onChangeChannelAndPowerwashTap_"
-            hidden="[[!shouldShowButtons_.changeChannelAndPowerwash]]">
-          $i18n{aboutChangeChannelAndPowerwash}
-        </cr-button>
+      <div>
+        <h2>$i18n{aboutPowerwashWarningTitle}</h2>
+        <div>$i18n{aboutPowerwashWarningMessage}</div>
       </div>
-    </cr-dialog>
-  </template>
-  <script src="channel_switcher_dialog.js"></script>
-</dom-module>
+      <div>
+        <h2>$i18n{aboutUnstableWarningTitle}</h2>
+        <div>[[substituteString_(
+            '$i18nPolymer{aboutUnstableWarningMessage}',
+            '$i18nPolymer{aboutOsProductTitle}')]]</div>
+      </div>
+    </iron-selector>
+  </div>
+  <div slot="button-container">
+    <cr-button class="cancel-button" on-click="onCancelTap_"
+        id="cancel">$i18n{cancel}</cr-button>
+    <cr-button id="changeChannel" class="action-button"
+        on-click="onChangeChannelTap_"
+        hidden="[[!shouldShowButtons_.changeChannel]]">
+      $i18n{aboutChangeChannel}
+    </cr-button>
+    <cr-button id="changeChannelAndPowerwash" class="action-button"
+        on-click="onChangeChannelAndPowerwashTap_"
+        hidden="[[!shouldShowButtons_.changeChannelAndPowerwash]]">
+      $i18n{aboutChangeChannelAndPowerwash}
+    </cr-button>
+  </div>
+</cr-dialog>
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.js b/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.js
index e39e438..3e30edc5 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.js
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.js
@@ -2,7 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-(function() {
+import '//resources/cr_elements/cr_dialog/cr_dialog.m.js';
+import '//resources/cr_elements/cr_button/cr_button.m.js';
+import '//resources/cr_elements/cr_radio_button/cr_radio_button.m.js';
+import '//resources/cr_elements/cr_radio_group/cr_radio_group.m.js';
+import '//resources/polymer/v3_0/iron-selector/iron-selector.js';
+import '../../settings_shared_css.js';
+
+import {assert, assertNotReached} from '//resources/js/assert.m.js';
+import {loadTimeData} from '//resources/js/load_time_data.m.js';
+import {afterNextRender, flush, html, Polymer, TemplateInstanceBase, Templatizer} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, AboutPageUpdateInfo, BrowserChannel, browserChannelToI18nId, ChannelInfo, isTargetChannelMoreStable, RegulatoryInfo, TPMFirmwareUpdateStatusChangedEvent, UpdateStatus, UpdateStatusChangedEvent, VersionInfo} from '../../about_page/about_page_browser_proxy.js';
+
 
 /**
  */
@@ -20,6 +32,7 @@
  * release channel to notify parents of this dialog.
  */
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'settings-channel-switcher-dialog',
 
   properties: {
@@ -45,12 +58,12 @@
     },
   },
 
-  /** @private {?settings.AboutPageBrowserProxy} */
+  /** @private {?AboutPageBrowserProxy} */
   browserProxy_: null,
 
   /** @override */
   ready() {
-    this.browserProxy_ = settings.AboutPageBrowserProxyImpl.getInstance();
+    this.browserProxy_ = AboutPageBrowserProxyImpl.getInstance();
     this.browserProxy_.getChannelInfo().then(info => {
       this.currentChannel_ = info.currentChannel;
       this.targetChannel_ = info.targetChannel;
@@ -125,8 +138,7 @@
       return;
     }
 
-    if (settings.isTargetChannelMoreStable(
-            this.currentChannel_, selectedChannel)) {
+    if (isTargetChannelMoreStable(this.currentChannel_, selectedChannel)) {
       // More stable channel selected. For non managed devices, notify the user
       // about powerwash.
       if (loadTimeData.getBoolean('aboutEnterpriseManaged')) {
@@ -157,4 +169,3 @@
     return loadTimeData.substituteString(format, replacement);
   },
 });
-})();
\ No newline at end of file
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.html b/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.html
index 8c1d26fe..70c8d24 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.html
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.html
@@ -1,133 +1,108 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
+<style include="settings-shared">
+  cr-policy-indicator {
+    margin-inline-start: var(--cr-controlled-by-spacing);
+  }
 
-<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
-<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_indicator.html">
-<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_indicator_behavior.html">
-<link rel="import" href="chrome://resources/cr_elements/policy/cr_tooltip_icon.html">
-<link rel="import" href="chrome://resources/html/assert.html">
-<link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html">
-<link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="../../about_page/about_page_browser_proxy.html">
-<link rel="import" href="../../i18n_setup.html">
-<link rel="import" href="../../router.html">
-<link rel="import" href="../../settings_shared_css.html">
-<link rel="import" href="../deep_linking_behavior.html">
-<link rel="import" href="../localized_link/localized_link.html">
-<link rel="import" href="../os_route.html">
-<link rel="import" href="channel_switcher_dialog.html">
-<link rel="import" href="device_name_browser_proxy.html">
-<link rel="import" href="edit_hostname_dialog.html">
+  /* The command line string can contain very long substrings that
+   * don't have any spaces, need to force a line break in such cases. */
+  #command-line {
+    overflow-wrap: break-word;
+    width: 100%;
+  }
 
-<dom-module id="settings-detailed-build-info">
-  <template>
-    <style include="settings-shared">
-      cr-policy-indicator {
-        margin-inline-start: var(--cr-controlled-by-spacing);
-      }
-
-      /* The command line string can contain very long substrings that
-       * don't have any spaces, need to force a line break in such cases. */
-      #command-line {
-        overflow-wrap: break-word;
-        width: 100%;
-      }
-
-      #managedEolTooltipIcon {
-        margin-inline-end: 54px;
-      }
-    </style>
-    <div class="settings-box two-line">
-      <div class="start">
-        <div role="heading" aria-level="2">$i18n{aboutChannelLabel}</div>
-        <div id="currentlyOnChannelText" aria-hidden="true" class="secondary">
-          [[currentlyOnChannelText_]]
-        </div>
-      </div>
-      <div class="separator"></div>
-      <cr-button on-click="onChangeChannelTap_"
-          aria-describedby="currentlyOnChannelText"
-          disabled="[[!canChangeChannel_]]"
-          deep-link-focus-id$="[[Setting.kChangeChromeChannel]]">
-        $i18n{aboutChangeChannel}
-      </cr-button>
-      <template is="dom-if" if="[[!canChangeChannel_]]">
-        <cr-policy-indicator
-            indicator-source-name="[[getChangeChannelIndicatorSourceName_(
-                canChangeChannel_)]]"
-            indicator-type="[[getChangeChannelIndicatorType_(
-                canChangeChannel_)]]">
-        </cr-policy-indicator>
-      </template>
-      <template is="dom-if" if="[[showChannelSwitcherDialog_]]" restamp>
-        <settings-channel-switcher-dialog
-            on-close="onChannelSwitcherDialogClosed_">
-        </settings-channel-switcher-dialog>
-      </template>
+  #managedEolTooltipIcon {
+    margin-inline-end: 54px;
+  }
+</style>
+<div class="settings-box two-line">
+  <div class="start">
+    <div role="heading" aria-level="2">$i18n{aboutChannelLabel}</div>
+    <div id="currentlyOnChannelText" aria-hidden="true" class="secondary">
+      [[currentlyOnChannelText_]]
     </div>
-    <div id="endOfLifeSectionContainer"
-        class="settings-box two-line single-column"
-        hidden="[[shouldHideEolInfo_]]">
-      <div role="heading" aria-level="2">$i18n{aboutEndOfLifeTitle}</div>
-      <settings-localized-link class="secondary"
-          localized-string="[[eolMessageWithMonthAndYear]]">
-      </settings-localized-link>
-    </div>
-    <template is="dom-if" if="[[isManaged_]]">
-      <div class="settings-box two-line">
-        <div class="start" aria-hidden="true">
-          <div role="heading">$i18n{aboutEndOfLifeTitle}</div>
-          <div class="secondary">
-            $i18n{aboutManagedEndOfLifeSubtitle}
-          </div>
-        </div>
-        <cr-tooltip-icon
-            id="managedEolTooltipIcon"
-            icon-class="cr20:domain"
-            tooltip-text="$i18n{aboutManagedEndOfLifeSubtitle}"
-            icon-aria-label="$i18n{aboutManagedEndOfLifeSubtitle}"
-            tooltip-position="bottom">
-        </cr-tooltip-icon>
-      </div>
-    </template>
-    <template is="dom-if" if="[[isHostnameSettingEnabled_]]">
-      <div class="settings-box two-line">
-        <div class="start">
-          <div role="heading">$i18n{aboutDeviceName}</div>
-          <div id="deviceName" aria-hidden="true" class="secondary">
-            [[deviceNameText_]]
-          </div>
-        </div>
-        <cr-icon-button class="icon-edit" on-click="onEditHostnameTap_">
-        </cr-icon-button>
-      </div>
-      <template is="dom-if" if="[[showEditHostnameDialog_]]" restamp>
-        <edit-hostname-dialog
-            on-close="onEditHostnameDialogClosed_">
-        </edit-hostname-dialog>
-      </template>
-    </template>
-    <div id="buildDetailsLinkContainer" class="settings-box">
-      <div class="start" id="aboutBuildDetailsTitle">
-        $i18n{aboutBuildDetailsTitle}
-      </div>
-      <cr-icon-button id="copyBuildDetailsButton" class="icon-copy-content"
-          aria-labelledby="copyBuildDetailsButtonToolTip"
-          on-click="onCopyBuildDetailsToClipBoardTap_"
-          disabled="[[!copyToClipBoardEnabled_(versionInfo_, channelInfo_)]]"
-          deep-link-focus-id$="[[Setting.kCopyDetailedBuildInfo]]">
-      </cr-icon-button>
-      <paper-tooltip id="copyBuildDetailsButtonToolTip"
-          for="copyBuildDetailsButton"
-          position="bottom" fit-to-visible-bounds>
-        $i18n{aboutBuildDetailsCopyTooltipLabel}
-      </paper-tooltip>
-      <div class="separator"></div>
-      <cr-icon-button on-click="onVisitBuildDetailsPageTap_"
-          aria-labelledby="aboutBuildDetailsTitle"
-          class="icon-external">
-      </cr-icon-button>
-    </div>
-    <div class="hr"></div>
+  </div>
+  <div class="separator"></div>
+  <cr-button on-click="onChangeChannelTap_"
+      aria-describedby="currentlyOnChannelText"
+      disabled="[[!canChangeChannel_]]"
+      deep-link-focus-id$="[[Setting.kChangeChromeChannel]]">
+    $i18n{aboutChangeChannel}
+  </cr-button>
+  <template is="dom-if" if="[[!canChangeChannel_]]">
+    <cr-policy-indicator
+        indicator-source-name="[[getChangeChannelIndicatorSourceName_(
+            canChangeChannel_)]]"
+        indicator-type="[[getChangeChannelIndicatorType_(
+            canChangeChannel_)]]">
+    </cr-policy-indicator>
   </template>
-  <script src="detailed_build_info.js"></script>
-</dom-module>
+  <template is="dom-if" if="[[showChannelSwitcherDialog_]]" restamp>
+    <settings-channel-switcher-dialog
+        on-close="onChannelSwitcherDialogClosed_">
+    </settings-channel-switcher-dialog>
+  </template>
+</div>
+<div id="endOfLifeSectionContainer"
+    class="settings-box two-line single-column"
+    hidden="[[shouldHideEolInfo_]]">
+  <div role="heading" aria-level="2">$i18n{aboutEndOfLifeTitle}</div>
+  <settings-localized-link class="secondary"
+      localized-string="[[eolMessageWithMonthAndYear]]">
+  </settings-localized-link>
+</div>
+<template is="dom-if" if="[[isManaged_]]">
+  <div class="settings-box two-line">
+    <div class="start" aria-hidden="true">
+      <div role="heading">$i18n{aboutEndOfLifeTitle}</div>
+      <div class="secondary">
+        $i18n{aboutManagedEndOfLifeSubtitle}
+      </div>
+    </div>
+    <cr-tooltip-icon
+        id="managedEolTooltipIcon"
+        icon-class="cr20:domain"
+        tooltip-text="$i18n{aboutManagedEndOfLifeSubtitle}"
+        icon-aria-label="$i18n{aboutManagedEndOfLifeSubtitle}"
+        tooltip-position="bottom">
+    </cr-tooltip-icon>
+  </div>
+</template>
+<template is="dom-if" if="[[isHostnameSettingEnabled_]]">
+  <div class="settings-box two-line">
+    <div class="start">
+      <div role="heading">$i18n{aboutDeviceName}</div>
+      <div id="deviceName" aria-hidden="true" class="secondary">
+        [[deviceNameText_]]
+      </div>
+    </div>
+    <cr-icon-button class="icon-edit" on-click="onEditHostnameTap_">
+    </cr-icon-button>
+  </div>
+  <template is="dom-if" if="[[showEditHostnameDialog_]]" restamp>
+    <edit-hostname-dialog
+        on-close="onEditHostnameDialogClosed_">
+    </edit-hostname-dialog>
+  </template>
+</template>
+<div id="buildDetailsLinkContainer" class="settings-box">
+  <div class="start" id="aboutBuildDetailsTitle">
+    $i18n{aboutBuildDetailsTitle}
+  </div>
+  <cr-icon-button id="copyBuildDetailsButton" class="icon-copy-content"
+      aria-labelledby="copyBuildDetailsButtonToolTip"
+      on-click="onCopyBuildDetailsToClipBoardTap_"
+      disabled="[[!copyToClipBoardEnabled_(versionInfo_, channelInfo_)]]"
+      deep-link-focus-id$="[[Setting.kCopyDetailedBuildInfo]]">
+  </cr-icon-button>
+  <paper-tooltip id="copyBuildDetailsButtonToolTip"
+      for="copyBuildDetailsButton"
+      position="bottom" fit-to-visible-bounds>
+    $i18n{aboutBuildDetailsCopyTooltipLabel}
+  </paper-tooltip>
+  <div class="separator"></div>
+  <cr-icon-button on-click="onVisitBuildDetailsPageTap_"
+      aria-labelledby="aboutBuildDetailsTitle"
+      class="icon-external">
+  </cr-icon-button>
+</div>
+<div class="hr"></div>
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.js b/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.js
index d77ddbd..3da862b 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.js
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.js
@@ -7,13 +7,36 @@
  * information for ChromeOS.
  */
 
+import '//resources/cr_elements/cr_button/cr_button.m.js';
+import '//resources/cr_elements/policy/cr_policy_indicator.m.js';
+import '//resources/cr_elements/policy/cr_tooltip_icon.m.js';
+import '../../settings_shared_css.js';
+import '../localized_link/localized_link.js';
+import './channel_switcher_dialog.js';
+import './edit_hostname_dialog.js';
+
+import {CrPolicyIndicatorType} from '//resources/cr_elements/policy/cr_policy_indicator_behavior.m.js';
+import {assert, assertNotReached} from '//resources/js/assert.m.js';
+import {focusWithoutInk} from '//resources/js/cr/ui/focus_without_ink.m.js';
+import {I18nBehavior} from '//resources/js/i18n_behavior.m.js';
+import {afterNextRender, flush, html, Polymer, TemplateInstanceBase, Templatizer} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, AboutPageUpdateInfo, BrowserChannel, browserChannelToI18nId, ChannelInfo, isTargetChannelMoreStable, RegulatoryInfo, TPMFirmwareUpdateStatusChangedEvent, UpdateStatus, UpdateStatusChangedEvent, VersionInfo} from '../../about_page/about_page_browser_proxy.js';
+import {loadTimeData} from '../../i18n_setup.js';
+import {Route, RouteObserverBehavior, Router} from '../../router.js';
+import {DeepLinkingBehavior} from '../deep_linking_behavior.m.js';
+import {routes} from '../os_route.m.js';
+
+import {DeviceNameBrowserProxy, DeviceNameBrowserProxyImpl} from './device_name_browser_proxy.js';
+
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'settings-detailed-build-info',
 
   behaviors: [
     DeepLinkingBehavior,
     I18nBehavior,
-    settings.RouteObserverBehavior,
+    RouteObserverBehavior,
   ],
 
   properties: {
@@ -86,7 +109,7 @@
 
   /** @override */
   ready() {
-    const browserProxy = settings.AboutPageBrowserProxyImpl.getInstance();
+    const browserProxy = AboutPageBrowserProxyImpl.getInstance();
     browserProxy.pageReady();
 
     browserProxy.getVersionInfo().then(versionInfo => {
@@ -101,12 +124,12 @@
   },
 
   /**
-   * @param {!settings.Route} route
-   * @param {!settings.Route} oldRoute
+   * @param {!Route} route
+   * @param {!Route} oldRoute
    */
   currentRouteChanged(route, oldRoute) {
     // Does not apply to this page.
-    if (route !== settings.routes.DETAILED_BUILD_INFO) {
+    if (route !== routes.DETAILED_BUILD_INFO) {
       return;
     }
 
@@ -123,7 +146,7 @@
 
   /** @private */
   updateChannelInfo_() {
-    const browserProxy = settings.AboutPageBrowserProxyImpl.getInstance();
+    const browserProxy = AboutPageBrowserProxyImpl.getInstance();
 
     // canChangeChannel() call is expected to be low-latency, so fetch this
     // value by itself to ensure UI consistency (see https://crbug.com/848750).
@@ -138,8 +161,7 @@
       // Display the target channel for the 'Currently on' message.
       this.currentlyOnChannelText_ = this.i18n(
           'aboutCurrentlyOnChannel',
-          this.i18n(
-              settings.browserChannelToI18nId(info.targetChannel, info.isLts)));
+          this.i18n(browserChannelToI18nId(info.targetChannel, info.isLts)));
     });
   },
 
@@ -238,14 +260,14 @@
   /** @private */
   onChannelSwitcherDialogClosed_() {
     this.showChannelSwitcherDialog_ = false;
-    cr.ui.focusWithoutInk(assert(this.$$('cr-button')));
+    focusWithoutInk(assert(this.$$('cr-button')));
     this.updateChannelInfo_();
   },
 
   /** @private */
   onEditHostnameDialogClosed_() {
     this.showEditHostnameDialog_ = false;
-    cr.ui.focusWithoutInk(assert(this.$$('cr-button')));
+    focusWithoutInk(assert(this.$$('cr-button')));
     // TODO(jhawkins): Verify hostname property updated at this point.
   },
 });
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/device_name_browser_proxy.js b/chrome/browser/resources/settings/chromeos/os_about_page/device_name_browser_proxy.js
index df0e1f1..f8cfff17 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/device_name_browser_proxy.js
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/device_name_browser_proxy.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {addSingletonGetter, sendWithPromise} from 'chrome://resources/js/cr.m.js';
+import {addSingletonGetter, sendWithPromise} from 'chrome://resources/js/cr.m.js';
 // clang-format on
 
 /**
@@ -11,10 +11,10 @@
  *   deviceName: string,
  * }}
  */
-/* #export */ let DeviceNameMetadata;
+export let DeviceNameMetadata;
 
 /** @interface */
-/* #export */ class DeviceNameBrowserProxy {
+export class DeviceNameBrowserProxy {
   /**
    * Queries the system for metadata about the device name.
    * @return {!Promise<!DeviceNameMetadata>}
@@ -25,13 +25,13 @@
 /**
  * @implements {DeviceNameBrowserProxy}
  */
-/* #export */ class DeviceNameBrowserProxyImpl {
+export class DeviceNameBrowserProxyImpl {
   /** @override */
   getDeviceNameMetadata() {
-    return cr.sendWithPromise('getDeviceNameMetadata');
+    return sendWithPromise('getDeviceNameMetadata');
   }
 }
 
 // The singleton instance_ is replaced with a test version of this wrapper
 // during testing.
-cr.addSingletonGetter(DeviceNameBrowserProxyImpl);
+addSingletonGetter(DeviceNameBrowserProxyImpl);
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.html b/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.html
index 8a64870..251350654 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.html
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.html
@@ -1,50 +1,32 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
+<style include="settings-shared">
+  cr-input {
+    --cr-input-error-display: none;
+  }
 
-<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_input/cr_input.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_radio_button/cr_radio_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_radio_group/cr_radio_group.html">
-<link rel="import" href="chrome://resources/html/assert.html">
-<link rel="import" href="chrome://resources/html/load_time_data.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-selector/iron-selector.html">
-<link rel="import" href="../../about_page/about_page_browser_proxy.html">
-<link rel="import" href="../../settings_shared_css.html">
+  #input-subtext {
+    display: flex;
+  }
 
-<dom-module id="edit-hostname-dialog">
-  <template>
-    <style include="settings-shared">
-      cr-input {
-        --cr-input-error-display: none;
-      }
-
-      #input-subtext {
-        display: flex;
-      }
-
-      #input-subtext span:last-child {
-        margin-inline-start: auto;
-      }
-    </style>
-    <cr-dialog id="dialog" show-on-attach>
-      <div slot="title">$i18n{aboutEditDeviceName}</div>
-      <div slot="body">
-        <div>$i18n{aboutDeviceNameInfo}</div>
-        <cr-input></cr-input>
-        <div id="input-subtext">
-          <span>$i18n{aboutDeviceNameConstraints}</span>
-          <span>1/15</span>
-        </div>
-      </div>
-      <div slot="button-container">
-        <cr-button class="cancel-button" on-click="onCancelTap_">
-          $i18n{cancel}
-        </cr-button>
-        <cr-button class="action-button" on-click="onDoneTap_">
-          $i18n{done}
-        </cr-button>
-      </div>
-    </cr-dialog>
-  </template>
-  <script src="edit_hostname_dialog.js"></script>
-</dom-module>
+  #input-subtext span:last-child {
+    margin-inline-start: auto;
+  }
+</style>
+<cr-dialog id="dialog" show-on-attach>
+  <div slot="title">$i18n{aboutEditDeviceName}</div>
+  <div slot="body">
+    <div>$i18n{aboutDeviceNameInfo}</div>
+    <cr-input></cr-input>
+    <div id="input-subtext">
+      <span>$i18n{aboutDeviceNameConstraints}</span>
+      <span>1/15</span>
+    </div>
+  </div>
+  <div slot="button-container">
+    <cr-button class="cancel-button" on-click="onCancelTap_">
+      $i18n{cancel}
+    </cr-button>
+    <cr-button class="action-button" on-click="onDoneTap_">
+      $i18n{done}
+    </cr-button>
+  </div>
+</cr-dialog>
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.js b/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.js
index fa76e09..d27796e0 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.js
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.js
@@ -6,7 +6,22 @@
  * @fileoverview 'edit-hostname-dialog' is a component allowing the
  * user to edit the device hostname.
  */
+import '//resources/cr_elements/cr_button/cr_button.m.js';
+import '//resources/cr_elements/cr_dialog/cr_dialog.m.js';
+import '//resources/cr_elements/cr_input/cr_input.m.js';
+import '//resources/cr_elements/cr_radio_button/cr_radio_button.m.js';
+import '//resources/cr_elements/cr_radio_group/cr_radio_group.m.js';
+import '//resources/polymer/v3_0/iron-selector/iron-selector.js';
+import '../../settings_shared_css.js';
+
+import {assert, assertNotReached} from '//resources/js/assert.m.js';
+import {loadTimeData} from '//resources/js/load_time_data.m.js';
+import {afterNextRender, flush, html, Polymer, TemplateInstanceBase, Templatizer} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, AboutPageUpdateInfo, BrowserChannel, browserChannelToI18nId, ChannelInfo, isTargetChannelMoreStable, RegulatoryInfo, TPMFirmwareUpdateStatusChangedEvent, UpdateStatus, UpdateStatusChangedEvent, VersionInfo} from '../../about_page/about_page_browser_proxy.js';
+
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'edit-hostname-dialog',
 
   /** @private */
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.html b/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.html
index ea71d9f..e29a1478 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.html
@@ -1,260 +1,224 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
+<style include="settings-shared settings-page-styles">
+  :host {
+    --about-page-image-space: 10px;
+  }
 
-<link rel="import" href="chrome://resources/html/parse_html_subset.html">
-<link rel="import" href="../../about_page/about_page_browser_proxy.html">
-<link rel="import" href="../../i18n_setup.html">
-<link rel="import" href="../../icons.html">
-<link rel="import" href="../../lifetime_browser_proxy.html">
-<link rel="import" href="../../prefs/prefs.html">
-<link rel="import" href="../os_settings_page/main_page_behavior.html">
-<link rel="import" href="../../settings_page/settings_animated_pages.html">
-<link rel="import" href="../../settings_page/settings_section.html">
-<link rel="import" href="../../settings_page/settings_subpage.html">
-<link rel="import" href="../../settings_page_css.html">
-<link rel="import" href="../../settings_shared_css.html">
-<link rel="import" href="../deep_linking_behavior.html">
-<link rel="import" href="../metrics_recorder.html">
-<link rel="import" href="../os_icons.html">
-<link rel="import" href="../os_route.html">
-<link rel="import" href="../../router.html">
-<link rel="import" href="../os_reset_page/os_powerwash_dialog.html">
-<link rel="import" href="../localized_link/localized_link.html">
-<link rel="import" href="detailed_build_info.html">
-<link rel="import" href="update_warning_dialog.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html">
-<link rel="import" href="chrome://resources/cr_elements/icons.html">
-<link rel="import" href="chrome://resources/html/assert.html">
-<link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+  .info-section {
+    margin-bottom: 12px;
+  }
 
-<dom-module id="os-settings-about-page">
-  <template>
-    <style include="settings-shared settings-page-styles">
-      :host {
-        --about-page-image-space: 10px;
-      }
+  .padded {
+    padding-bottom: 10px;
+    padding-top: 10px;
+  }
 
-      .info-section {
-        margin-bottom: 12px;
-      }
+  .product-title {
+    font-size: 153.85%;  /* 20px / 13px */
+    font-weight: 400;
+    margin-bottom: auto;
+    margin-top: auto;
+  }
 
-      .padded {
-        padding-bottom: 10px;
-        padding-top: 10px;
-      }
+  img {
+    margin-inline-end: var(--about-page-image-space);
+  }
 
-      .product-title {
-        font-size: 153.85%;  /* 20px / 13px */
-        font-weight: 400;
-        margin-bottom: auto;
-        margin-top: auto;
-      }
+  .icon-container {
+    margin-inline-end: var(--about-page-image-space);
+    min-width: 32px;  /* The width of the product-logo img. */
+    text-align: center;
+  }
 
-      img {
-        margin-inline-end: var(--about-page-image-space);
-      }
+  /* TODO(crbug.com/986596): Don't use browser icons here. Fork them. */
+  iron-icon[icon='settings:check-circle'] {
+    fill: var(--cros-icon-color-prominent);
+  }
 
-      .icon-container {
-        margin-inline-end: var(--about-page-image-space);
-        min-width: 32px;  /* The width of the product-logo img. */
-        text-align: center;
-      }
+  iron-icon[icon='cr:error-outline'] {
+    fill: var(--cros-text-color-alert);
+  }
 
-      /* TODO(crbug.com/986596): Don't use browser icons here. Fork them. */
-      iron-icon[icon='settings:check-circle'] {
-        fill: var(--cros-icon-color-prominent);
-      }
+  .settings-box .start {
+    overflow-x: auto;
+  }
 
-      iron-icon[icon='cr:error-outline'] {
-        fill: var(--cros-text-color-alert);
-      }
+  cr-button {
+    white-space: nowrap;
+  }
 
-      .settings-box .start {
-        overflow-x: auto;
-      }
-
-      cr-button {
-        white-space: nowrap;
-      }
-
-      #regulatoryInfo img {
-        width: 330px;
-      }
-    </style>
-    <settings-section page-title="$i18n{aboutOsPageTitle}" section="about">
-      <settings-animated-pages id="pages" section="about"
-          focus-config="[[focusConfig_]]">
-        <div route-path="default">
-          <div class="settings-box two-line first">
-            <img id="product-logo" on-click="onProductLogoClick_"
-                srcset="chrome://theme/current-channel-logo@1x 1x,
-                        chrome://theme/current-channel-logo@2x 2x"
-                alt="$i18n{aboutProductLogoAlt}"
-                role="presentation">
-            <h1 class="product-title">$i18n{aboutOsProductTitle}</h1>
-          </div>
-          <div class="settings-box two-line">
-            <!-- Set the icon from the iconset (when it's obsolete/EOL and
-              when update is done) or set the src (when it's updating). -->
-            <div class="icon-container"
-                hidden="[[!shouldShowIcons_(showUpdateStatus_)]]">
-              <!-- TODO(crbug.com/986596): Don't use browser icons here. Fork them. -->
-              <iron-icon
-                  icon$="[[getUpdateStatusIcon_(
-                      hasEndOfLife_, currentUpdateStatusEvent_)]]"
-                  src="[[getThrobberSrcIfUpdating_(
-                      hasEndOfLife_, currentUpdateStatusEvent_)]]">
-              </iron-icon>
-            </div>
-            <div class="start padded">
-              <div id="updateStatusMessage" hidden="[[!showUpdateStatus_]]">
-                <div
-                    inner-h-t-m-l="[[getUpdateStatusMessage_(
-                        currentUpdateStatusEvent_, targetChannel_)]]"></div>
-                <a hidden$="[[!shouldShowLearnMoreLink_(
-                    currentUpdateStatusEvent_)]]" target="_blank"
-                    href="https://support.google.com/chrome?p=update_error">
-                  $i18n{learnMore}
-                </a>
-              </div>
-              <settings-localized-link
-                  id="endOfLifeMessageContainer" hidden="[[!hasEndOfLife_]]"
-                  localized-string="$i18n{endOfLifeMessage}">
-              </settings-localized-link>
-              <div class="secondary">$i18n{aboutBrowserVersion}</div>
-            </div>
-            <div class="separator" hidden="[[!showButtonContainer_]]"></div>
-            <span id="buttonContainer" hidden="[[!showButtonContainer_]]">
-              <cr-button id="relaunch" hidden$="[[!showRelaunch_]]"
-                         on-click="onRelaunchClick_">
-                  [[getRelaunchButtonText_(
-                                  currentUpdateStatusEvent_)]]
-              </cr-button>
-              <cr-button id="checkForUpdates" hidden="[[!showCheckUpdates_]]"
-                  on-click="onCheckUpdatesClick_"
-                  deep-link-focus-id$="[[Setting.kCheckForOsUpdate]]">
-                $i18n{aboutCheckForUpdates}
-              </cr-button>
-            </span>
-          </div>
-          <cr-link-row
-              id="aboutTPMFirmwareUpdate"
-              class="hr"
-              hidden$="[[!showTPMFirmwareUpdateLineItem_]]"
-              label="$i18n{aboutTPMFirmwareUpdateTitle}"
-              on-click="onTPMFirmwareUpdateClick_">
-            <div slot="sub-label">
-              $i18n{aboutTPMFirmwareUpdateDescription}
-              <a href="$i18n{aboutTPMFirmwareUpdateLearnMoreURL}"
-                  target="_blank" on-click="onLearnMoreClick_">
-                $i18n{learnMore}
-              </a>
-            </div>
-          </cr-link-row>
-          <template is="dom-if" if="[[hasInternetConnection_]]">
-            <cr-link-row class="hr" id="releaseNotesOnline"
-                on-click="onReleaseNotesTap_"
-                label="$i18n{aboutShowReleaseNotes}" external
-                deep-link-focus-id$="[[Setting.kSeeWhatsNew]]">
-            </cr-link-row>
-          </template>
-          <template is="dom-if" if="[[!hasInternetConnection_]]">
-            <cr-link-row class="hr" id="releaseNotesOffline"
-                on-click="onReleaseNotesTap_"
-                label="$i18n{aboutShowReleaseNotes}"
-                title="$i18n{aboutReleaseNotesOffline}" external
-                deep-link-focus-id$="[[Setting.kSeeWhatsNew]]">
-            </cr-link-row>
-          </template>
-          <cr-link-row class="hr" id="help" on-click="onHelpClick_"
-              label="$i18n{aboutGetHelpUsingChromeOs}" external
-              deep-link-focus-id$="[[Setting.kGetHelpWithChromeOs]]">
-          </cr-link-row>
-<if expr="_google_chrome">
-          <cr-link-row class="hr" id="reportIssue"
-              on-click="onReportIssueClick_"
-              hidden="[[!prefs.feedback_allowed.value]]"
-              label="$i18n{aboutReportAnIssue}" external
-              deep-link-focus-id$="[[Setting.kReportAnIssue]]">
-          </cr-link-row>
-</if>
-          <cr-link-row class="hr" id="diagnostics"
-              on-click="onDiagnosticsClick_"
-              hidden$="[[!showDiagnosticsApp_]]"
-              label="$i18n{aboutDiagnostics}" external
-              deep-link-focus-id$="[[Setting.kDiagnostics]]">
-          </cr-link-row>
-          <cr-link-row class="hr" id="detailed-build-info-trigger"
-              on-click="onDetailedBuildInfoClick_"
-              label="$i18n{aboutDetailedBuildInfo}"
-              role-description="$i18n{subpageArrowRoleDescription}">
-          </cr-link-row>
-          <cr-link-row class="hr" on-click="onManagementPageClick_"
-              start-icon="cr:domain" label="$i18n{managementPage}"
-              hidden$="[[!isManaged_]]" external>
-          </cr-link-row>
+  #regulatoryInfo img {
+    width: 330px;
+  }
+</style>
+<settings-section page-title="$i18n{aboutOsPageTitle}" section="about">
+  <settings-animated-pages id="pages" section="about"
+      focus-config="[[focusConfig_]]">
+    <div route-path="default">
+      <div class="settings-box two-line first">
+        <img id="product-logo" on-click="onProductLogoClick_"
+            srcset="chrome://theme/current-channel-logo@1x 1x,
+                    chrome://theme/current-channel-logo@2x 2x"
+            alt="$i18n{aboutProductLogoAlt}"
+            role="presentation">
+        <h1 class="product-title">$i18n{aboutOsProductTitle}</h1>
+      </div>
+      <div class="settings-box two-line">
+        <!-- Set the icon from the iconset (when it's obsolete/EOL and
+          when update is done) or set the src (when it's updating). -->
+        <div class="icon-container"
+            hidden="[[!shouldShowIcons_(showUpdateStatus_)]]">
+          <!-- TODO(crbug.com/986596): Don't use browser icons here. Fork
+            them. -->
+          <iron-icon
+              icon$="[[getUpdateStatusIcon_(
+                  hasEndOfLife_, currentUpdateStatusEvent_)]]"
+              src="[[getThrobberSrcIfUpdating_(
+                  hasEndOfLife_, currentUpdateStatusEvent_)]]">
+          </iron-icon>
         </div>
-        <template is="dom-if" route-path="/help/details">
-          <settings-subpage page-title="$i18n{aboutDetailedBuildInfo}">
-            <settings-detailed-build-info
-                eol-message-with-month-and-year=
-                    "[[eolMessageWithMonthAndYear_]]">
-            </settings-detailed-build-info>
-          </settings-subpage>
-        </template>
-      </settings-animated-pages>
-    </settings-section>
-
-    <settings-section>
-      <div class="settings-box padded block first">
-        <div class="info-section">
-          <div class="secondary">$i18n{aboutOsProductTitle}</div>
-          <div class="secondary">$i18n{aboutProductCopyright}</div>
-        </div>
-
-        <div class="info-section">
-          <div class="secondary">$i18nRaw{aboutProductLicense}</div>
-          <div class="secondary"
-              inner-h-t-m-l="[[getAboutProductOsLicense_(
-                  showCrostiniLicense_)]]">
+        <div class="start padded">
+          <div id="updateStatusMessage" hidden="[[!showUpdateStatus_]]">
+            <div
+                inner-h-t-m-l="[[getUpdateStatusMessage_(
+                    currentUpdateStatusEvent_, targetChannel_)]]"></div>
+            <a hidden$="[[!shouldShowLearnMoreLink_(
+                currentUpdateStatusEvent_)]]" target="_blank"
+                href="https://support.google.com/chrome?p=update_error">
+              $i18n{learnMore}
+            </a>
           </div>
+          <settings-localized-link
+              id="endOfLifeMessageContainer" hidden="[[!hasEndOfLife_]]"
+              localized-string="$i18n{endOfLifeMessage}">
+          </settings-localized-link>
+          <div class="secondary">$i18n{aboutBrowserVersion}</div>
         </div>
-<if expr="_google_chrome">
-        <div class="secondary">
-          <a id="aboutProductTos" href="$i18n{aboutTermsURL}" target="_blank"
-              deep-link-focus-id$="[[Setting.kTermsOfService]]">
-            $i18n{aboutProductTos}
+        <div class="separator" hidden="[[!showButtonContainer_]]"></div>
+        <span id="buttonContainer" hidden="[[!showButtonContainer_]]">
+          <cr-button id="relaunch" hidden$="[[!showRelaunch_]]"
+                     on-click="onRelaunchClick_">
+              [[getRelaunchButtonText_(
+                              currentUpdateStatusEvent_)]]
+          </cr-button>
+          <cr-button id="checkForUpdates" hidden="[[!showCheckUpdates_]]"
+              on-click="onCheckUpdatesClick_"
+              deep-link-focus-id$="[[Setting.kCheckForOsUpdate]]">
+            $i18n{aboutCheckForUpdates}
+          </cr-button>
+        </span>
+      </div>
+      <cr-link-row
+          id="aboutTPMFirmwareUpdate"
+          class="hr"
+          hidden$="[[!showTPMFirmwareUpdateLineItem_]]"
+          label="$i18n{aboutTPMFirmwareUpdateTitle}"
+          on-click="onTPMFirmwareUpdateClick_">
+        <div slot="sub-label">
+          $i18n{aboutTPMFirmwareUpdateDescription}
+          <a href="$i18n{aboutTPMFirmwareUpdateLearnMoreURL}"
+              target="_blank" on-click="onLearnMoreClick_">
+            $i18n{learnMore}
           </a>
         </div>
-</if>
-      </div>
-      <div class="settings-box padded block" id="regulatoryInfo"
-          hidden$="[[!shouldShowRegulatoryOrSafetyInfo_(regulatoryInfo_)]]">
+      </cr-link-row>
+      <template is="dom-if" if="[[hasInternetConnection_]]">
+        <cr-link-row class="hr" id="releaseNotesOnline"
+            on-click="onReleaseNotesTap_"
+            label="$i18n{aboutShowReleaseNotes}" external
+            deep-link-focus-id$="[[Setting.kSeeWhatsNew]]">
+        </cr-link-row>
+      </template>
+      <template is="dom-if" if="[[!hasInternetConnection_]]">
+        <cr-link-row class="hr" id="releaseNotesOffline"
+            on-click="onReleaseNotesTap_"
+            label="$i18n{aboutShowReleaseNotes}"
+            title="$i18n{aboutReleaseNotesOffline}" external
+            deep-link-focus-id$="[[Setting.kSeeWhatsNew]]">
+        </cr-link-row>
+      </template>
+      <cr-link-row class="hr" id="help" on-click="onHelpClick_"
+          label="$i18n{aboutGetHelpUsingChromeOs}" external
+          deep-link-focus-id$="[[Setting.kGetHelpWithChromeOs]]">
+      </cr-link-row>
 <if expr="_google_chrome">
-        <div class="secondary" hidden$="[[!shouldShowSafetyInfo_()]]">
-          <a target="_blank" href="$i18n{aboutProductSafetyURL}">
-            $i18nRaw{aboutProductSafety}
-          </a>
-        </div>
+      <cr-link-row class="hr" id="reportIssue"
+          on-click="onReportIssueClick_"
+          hidden="[[!prefs.feedback_allowed.value]]"
+          label="$i18n{aboutReportAnIssue}" external
+          deep-link-focus-id$="[[Setting.kReportAnIssue]]">
+      </cr-link-row>
 </if>
-        <img src="[[regulatoryInfo_.url]]" alt="[[regulatoryInfo_.text]]"
-            hidden$="[[!shouldShowRegulatoryInfo_(regulatoryInfo_)]]">
+      <cr-link-row class="hr" id="diagnostics"
+          on-click="onDiagnosticsClick_"
+          hidden$="[[!showDiagnosticsApp_]]"
+          label="$i18n{aboutDiagnostics}" external
+          deep-link-focus-id$="[[Setting.kDiagnostics]]">
+      </cr-link-row>
+      <cr-link-row class="hr" id="detailed-build-info-trigger"
+          on-click="onDetailedBuildInfoClick_"
+          label="$i18n{aboutDetailedBuildInfo}"
+          role-description="$i18n{subpageArrowRoleDescription}">
+      </cr-link-row>
+      <cr-link-row class="hr" on-click="onManagementPageClick_"
+          start-icon="cr:domain" label="$i18n{managementPage}"
+          hidden$="[[!isManaged_]]" external>
+      </cr-link-row>
+    </div>
+    <template is="dom-if" route-path="/help/details">
+      <settings-subpage page-title="$i18n{aboutDetailedBuildInfo}">
+        <settings-detailed-build-info
+            eol-message-with-month-and-year=
+                "[[eolMessageWithMonthAndYear_]]">
+        </settings-detailed-build-info>
+      </settings-subpage>
+    </template>
+  </settings-animated-pages>
+</settings-section>
+
+<settings-section>
+  <div class="settings-box padded block first">
+    <div class="info-section">
+      <div class="secondary">$i18n{aboutOsProductTitle}</div>
+      <div class="secondary">$i18n{aboutProductCopyright}</div>
+    </div>
+
+    <div class="info-section">
+      <div class="secondary">$i18nRaw{aboutProductLicense}</div>
+      <div class="secondary"
+          inner-h-t-m-l="[[getAboutProductOsLicense_(
+              showCrostiniLicense_)]]">
       </div>
-    </settings-section>
-    <template is="dom-if" if="[[showUpdateWarningDialog_]]" restamp>
-      <settings-update-warning-dialog update-info="[[updateInfo_]]"
-          on-close="onUpdateWarningDialogClose_">
-      </settings-update-warning-dialog>
-    </template>
-    <template is="dom-if" if="[[showTPMFirmwareUpdateDialog_]]"
-        restamp>
-      <os-settings-powerwash-dialog request-tpm-firmware-update
-          on-close="onPowerwashDialogClose_">
-      </os-settings-powerwash-dialog>
-    </template>
-  </template>
-  <script src="os_about_page.js"></script>
-</dom-module>
+    </div>
+<if expr="_google_chrome">
+    <div class="secondary">
+      <a id="aboutProductTos" href="$i18n{aboutTermsURL}" target="_blank"
+          deep-link-focus-id$="[[Setting.kTermsOfService]]">
+        $i18n{aboutProductTos}
+      </a>
+    </div>
+</if>
+  </div>
+  <div class="settings-box padded block" id="regulatoryInfo"
+      hidden$="[[!shouldShowRegulatoryOrSafetyInfo_(regulatoryInfo_)]]">
+<if expr="_google_chrome">
+    <div class="secondary" hidden$="[[!shouldShowSafetyInfo_()]]">
+      <a target="_blank" href="$i18n{aboutProductSafetyURL}">
+        $i18nRaw{aboutProductSafety}
+      </a>
+    </div>
+</if>
+    <img src="[[regulatoryInfo_.url]]" alt="[[regulatoryInfo_.text]]"
+        hidden$="[[!shouldShowRegulatoryInfo_(regulatoryInfo_)]]">
+  </div>
+</settings-section>
+<template is="dom-if" if="[[showUpdateWarningDialog_]]" restamp>
+  <settings-update-warning-dialog update-info="[[updateInfo_]]"
+      on-close="onUpdateWarningDialogClose_">
+  </settings-update-warning-dialog>
+</template>
+<template is="dom-if" if="[[showTPMFirmwareUpdateDialog_]]"
+    restamp>
+  <os-settings-powerwash-dialog request-tpm-firmware-update
+      on-close="onPowerwashDialogClose_">
+  </os-settings-powerwash-dialog>
+</template>
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.js b/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.js
index 3363fd3..a20cf221 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.js
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.js
@@ -7,14 +7,48 @@
  * information.
  */
 
+import '../../icons.js';
+import '../../prefs/prefs.js';
+import '../../settings_page/settings_animated_pages.js';
+import '../../settings_page/settings_section.js';
+import '../../settings_page/settings_subpage.js';
+import '../../settings_page_css.js';
+import '../../settings_shared_css.js';
+import '../os_icons.m.js';
+import '../os_reset_page/os_powerwash_dialog.js';
+import '../localized_link/localized_link.js';
+import './detailed_build_info.js';
+import './update_warning_dialog.js';
+import '//resources/cr_elements/cr_button/cr_button.m.js';
+import '//resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
+import '//resources/cr_elements/cr_link_row/cr_link_row.js';
+import '//resources/cr_elements/icons.m.js';
+import '//resources/polymer/v3_0/iron-icon/iron-icon.js';
+
+import {assert, assertNotReached} from '//resources/js/assert.m.js';
+import {I18nBehavior} from '//resources/js/i18n_behavior.m.js';
+import {parseHtmlSubset} from '//resources/js/parse_html_subset.m.js';
+import {WebUIListenerBehavior} from '//resources/js/web_ui_listener_behavior.m.js';
+import {afterNextRender, flush, html, Polymer, TemplateInstanceBase, Templatizer} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, AboutPageUpdateInfo, BrowserChannel, browserChannelToI18nId, ChannelInfo, isTargetChannelMoreStable, RegulatoryInfo, TPMFirmwareUpdateStatusChangedEvent, UpdateStatus, UpdateStatusChangedEvent, VersionInfo} from '../../about_page/about_page_browser_proxy.js';
+import {loadTimeData} from '../../i18n_setup.js';
+import {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../../lifetime_browser_proxy.js';
+import {Route, RouteObserverBehavior, Router} from '../../router.js';
+import {DeepLinkingBehavior} from '../deep_linking_behavior.m.js';
+import {recordClick, recordNavigation, recordPageBlur, recordPageFocus, recordSearch, recordSettingChange, setUserActionRecorderForTesting} from '../metrics_recorder.m.js';
+import {routes} from '../os_route.m.js';
+import {MainPageBehavior} from '../os_settings_page/main_page_behavior.m.js';
+
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'os-settings-about-page',
 
   behaviors: [
     DeepLinkingBehavior,
     WebUIListenerBehavior,
-    settings.MainPageBehavior,
-    settings.RouteObserverBehavior,
+    MainPageBehavior,
+    RouteObserverBehavior,
     I18nBehavior,
   ],
 
@@ -127,10 +161,9 @@
       type: Object,
       value() {
         const map = new Map();
-        if (settings.routes.DETAILED_BUILD_INFO) {
+        if (routes.DETAILED_BUILD_INFO) {
           map.set(
-              settings.routes.DETAILED_BUILD_INFO.path,
-              '#detailed-build-info-trigger');
+              routes.DETAILED_BUILD_INFO.path, '#detailed-build-info-trigger');
         }
         return map;
       },
@@ -190,19 +223,18 @@
     'handleCrostiniEnabledChanged_(prefs.crostini.enabled.value)',
   ],
 
-  /** @private {?settings.AboutPageBrowserProxy} */
+  /** @private {?AboutPageBrowserProxy} */
   aboutBrowserProxy_: null,
 
-  /** @private {?settings.LifetimeBrowserProxy} */
+  /** @private {?LifetimeBrowserProxy} */
   lifetimeBrowserProxy_: null,
 
   /** @override */
   attached() {
-    this.aboutBrowserProxy_ = settings.AboutPageBrowserProxyImpl.getInstance();
+    this.aboutBrowserProxy_ = AboutPageBrowserProxyImpl.getInstance();
     this.aboutBrowserProxy_.pageReady();
 
-    this.lifetimeBrowserProxy_ =
-        settings.LifetimeBrowserProxyImpl.getInstance();
+    this.lifetimeBrowserProxy_ = LifetimeBrowserProxyImpl.getInstance();
 
     this.addEventListener('target-channel-changed', e => {
       this.targetChannel_ = e.detail;
@@ -228,22 +260,21 @@
       this.hasInternetConnection_ = result;
     });
 
-    if (settings.Router.getInstance().getQueryParameters().get(
-            'checkForUpdate') === 'true') {
+    if (Router.getInstance().getQueryParameters().get('checkForUpdate') ===
+        'true') {
       this.onCheckUpdatesClick_();
     }
   },
 
   /**
-   * @param {!settings.Route} newRoute
-   * @param {settings.Route} oldRoute
+   * @param {!Route} newRoute
+   * @param {Route} oldRoute
    */
   currentRouteChanged(newRoute, oldRoute) {
-    settings.MainPageBehavior.currentRouteChanged.call(
-        this, newRoute, oldRoute);
+    MainPageBehavior.currentRouteChanged.call(this, newRoute, oldRoute);
 
     // Does not apply to this page.
-    if (newRoute !== settings.routes.ABOUT_ABOUT) {
+    if (newRoute !== routes.ABOUT_ABOUT) {
       return;
     }
 
@@ -259,9 +290,9 @@
     });
   },
 
-  // Override settings.MainPageBehavior method.
+  // Override MainPageBehavior method.
   containsRoute(route) {
-    return !route || settings.routes.ABOUT.contains(route);
+    return !route || routes.ABOUT.contains(route);
   },
 
   /** @private */
@@ -313,12 +344,12 @@
   onDiagnosticsClick_() {
     assert(this.showDiagnosticsApp_);
     this.aboutBrowserProxy_.openDiagnostics();
-    settings.recordSettingChange(chromeos.settings.mojom.Setting.kDiagnostics);
+    recordSettingChange(chromeos.settings.mojom.Setting.kDiagnostics);
   },
 
   /** @private */
   onRelaunchClick_() {
-    settings.recordSettingChange();
+    recordSettingChange();
     this.lifetimeBrowserProxy_.relaunch();
   },
 
@@ -409,8 +440,8 @@
         if (this.currentChannel_ !== this.targetChannel_) {
           return this.i18nAdvanced('aboutUpgradeUpdatingChannelSwitch', {
             substitutions: [
-              this.i18nAdvanced(settings.browserChannelToI18nId(
-                  this.targetChannel_, this.isLts_)),
+              this.i18nAdvanced(
+                  browserChannelToI18nId(this.targetChannel_, this.isLts_)),
               progressPercent
             ]
           });
@@ -524,8 +555,7 @@
 
   /** @private */
   onDetailedBuildInfoClick_() {
-    settings.Router.getInstance().navigateTo(
-        settings.routes.DETAILED_BUILD_INFO);
+    Router.getInstance().navigateTo(routes.DETAILED_BUILD_INFO);
   },
 
   /**
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.html b/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.html
index 3080573a..bcb0f7d9 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.html
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.html
@@ -1,28 +1,15 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
-
-<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
-<link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="../../about_page/about_page_browser_proxy.html">
-<link rel="import" href="../../settings_shared_css.html">
-
-<dom-module id="settings-update-warning-dialog">
-  <template>
-    <style include="settings-shared"></style>
-    <cr-dialog id="dialog" close-text="$i18n{close}">
-      <div slot="title">$i18n{aboutUpdateWarningTitle}</div>
-      <div slot="body">
-        <div id="update-warning-message"></div>
-      </div>
-      <div slot="button-container">
-        <cr-button id="cancel" class="cancel-button"
-            on-click="onCancelTap_">$i18n{cancel}</cr-button>
-        <cr-button id="continue" class="action-button"
-            on-click="onContinueTap_">
-          $i18n{continue}
-        </cr-button>
-      </div>
-    </cr-dialog>
-  </template>
-  <script src="update_warning_dialog.js"></script>
-</dom-module>
+<style include="settings-shared"></style>
+<cr-dialog id="dialog" close-text="$i18n{close}">
+  <div slot="title">$i18n{aboutUpdateWarningTitle}</div>
+  <div slot="body">
+    <div id="update-warning-message"></div>
+  </div>
+  <div slot="button-container">
+    <cr-button id="cancel" class="cancel-button"
+        on-click="onCancelTap_">$i18n{cancel}</cr-button>
+    <cr-button id="continue" class="action-button"
+        on-click="onContinueTap_">
+      $i18n{continue}
+    </cr-button>
+  </div>
+</cr-dialog>
diff --git a/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.js b/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.js
index e679770..e0e90a3 100644
--- a/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.js
+++ b/chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.js
@@ -7,7 +7,17 @@
  * user about update over mobile data. By clicking 'Continue', the user
  * agrees to download update using mobile data.
  */
+import '//resources/cr_elements/cr_button/cr_button.m.js';
+import '//resources/cr_elements/cr_dialog/cr_dialog.m.js';
+import '../../settings_shared_css.js';
+
+import {I18nBehavior} from '//resources/js/i18n_behavior.m.js';
+import {afterNextRender, flush, html, Polymer, TemplateInstanceBase, Templatizer} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, AboutPageUpdateInfo, BrowserChannel, browserChannelToI18nId, ChannelInfo, isTargetChannelMoreStable, RegulatoryInfo, TPMFirmwareUpdateStatusChangedEvent, UpdateStatus, UpdateStatusChangedEvent, VersionInfo} from '../../about_page/about_page_browser_proxy.js';
+
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'settings-update-warning-dialog',
 
   behaviors: [I18nBehavior],
@@ -20,12 +30,12 @@
     },
   },
 
-  /** @private {?settings.AboutPageBrowserProxy} */
+  /** @private {?AboutPageBrowserProxy} */
   browserProxy_: null,
 
   /** @override */
   ready() {
-    this.browserProxy_ = settings.AboutPageBrowserProxyImpl.getInstance();
+    this.browserProxy_ = AboutPageBrowserProxyImpl.getInstance();
   },
 
   /** @override */
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.gni b/chrome/browser/resources/settings/chromeos/os_settings.gni
index 7366cba..814c999 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings.gni
+++ b/chrome/browser/resources/settings/chromeos/os_settings.gni
@@ -332,6 +332,12 @@
                                  "chrome/browser/resources/settings/chromeos/internet_page/tether_connection_dialog.html",
                                  "chrome/browser/resources/settings/chromeos/localized_link/localized_link.html",
                                  "chrome/browser/resources/settings/chromeos/on_startup_page/on_startup_page.html",
+                                 "chrome/browser/resources/settings/chromeos/os_about_page/channel_switcher_dialog.html",
+                                 "chrome/browser/resources/settings/chromeos/os_about_page/detailed_build_info.html",
+                                 "chrome/browser/resources/settings/chromeos/os_about_page/device_name_browser_proxy.html",
+                                 "chrome/browser/resources/settings/chromeos/os_about_page/edit_hostname_dialog.html",
+                                 "chrome/browser/resources/settings/chromeos/os_about_page/os_about_page.html",
+                                 "chrome/browser/resources/settings/chromeos/os_about_page/update_warning_dialog.html",
                                  "chrome/browser/resources/settings/chromeos/os_a11y_page/change_dictation_locale_dialog.html",
                                  "chrome/browser/resources/settings/chromeos/os_apps_page/app_notifications_page/app_notifications_subpage.html",
                                  "chrome/browser/resources/settings/chromeos/os_bluetooth_page/os_bluetooth_page.html",
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.js b/chrome/browser/resources/settings/chromeos/os_settings.js
index 8bbeb4c..a4749294 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings.js
+++ b/chrome/browser/resources/settings/chromeos/os_settings.js
@@ -43,10 +43,10 @@
 import './personalization_page/dark_mode_subpage.m.js';
 import './personalization_page/personalization_page.m.js';
 import './os_a11y_page/change_dictation_locale_dialog.js';
-import './os_about_page/channel_switcher_dialog.m.js';
-import './os_about_page/detailed_build_info.m.js';
-import './os_about_page/os_about_page.m.js';
-import './os_about_page/update_warning_dialog.m.js';
+import './os_about_page/channel_switcher_dialog.js';
+import './os_about_page/detailed_build_info.js';
+import './os_about_page/os_about_page.js';
+import './os_about_page/update_warning_dialog.js';
 import './os_apps_page/android_apps_subpage.m.js';
 import './os_apps_page/app_notifications_page/app_notifications_subpage.js';
 import './os_apps_page/app_management_page/app_item.m.js';
@@ -121,7 +121,7 @@
 export {OsA11yPageBrowserProxy, OsA11yPageBrowserProxyImpl} from './os_a11y_page/os_a11y_page_browser_proxy.m.js';
 export {SwitchAccessSubpageBrowserProxy, SwitchAccessSubpageBrowserProxyImpl} from './os_a11y_page/switch_access_subpage_browser_proxy.m.js';
 export {TtsSubpageBrowserProxy, TtsSubpageBrowserProxyImpl} from './os_a11y_page/tts_subpage_browser_proxy.m.js';
-export {DeviceNameBrowserProxy, DeviceNameBrowserProxyImpl} from './os_about_page/device_name_browser_proxy.m.js';
+export {DeviceNameBrowserProxy, DeviceNameBrowserProxyImpl} from './os_about_page/device_name_browser_proxy.js';
 export {AndroidAppsBrowserProxyImpl} from './os_apps_page/android_apps_browser_proxy.m.js';
 export {addApp, changeApp, removeApp, updateSelectedAppId} from './os_apps_page/app_management_page/actions.m.js';
 export {BrowserProxy} from './os_apps_page/app_management_page/browser_proxy.m.js';
diff --git a/chrome/browser/resources/settings/i18n_setup.js b/chrome/browser/resources/settings/i18n_setup.ts
similarity index 100%
rename from chrome/browser/resources/settings/i18n_setup.js
rename to chrome/browser/resources/settings/i18n_setup.ts
diff --git a/chrome/browser/resources/settings/icons.js b/chrome/browser/resources/settings/icons.ts
similarity index 100%
rename from chrome/browser/resources/settings/icons.js
rename to chrome/browser/resources/settings/icons.ts
diff --git a/chrome/browser/resources/settings/lazy_load.js b/chrome/browser/resources/settings/lazy_load.ts
similarity index 100%
rename from chrome/browser/resources/settings/lazy_load.js
rename to chrome/browser/resources/settings/lazy_load.ts
diff --git a/chrome/browser/resources/settings/reset_page/BUILD.gn b/chrome/browser/resources/settings/reset_page/BUILD.gn
index ee5edd89..c1c9d9c 100644
--- a/chrome/browser/resources/settings/reset_page/BUILD.gn
+++ b/chrome/browser/resources/settings/reset_page/BUILD.gn
@@ -2,62 +2,12 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//third_party/closure_compiler/compile_js.gni")
 import("//tools/polymer/html_to_js.gni")
-import("../settings.gni")
-
-js_type_check("closure_compile") {
-  is_polymer3 = true
-  closure_flags = settings_closure_flags
-  deps = [
-    ":reset_browser_proxy",
-    ":reset_page",
-    ":reset_profile_banner",
-    ":reset_profile_dialog",
-  ]
-}
-
-js_library("reset_browser_proxy") {
-  deps = [ "//ui/webui/resources/js:cr.m" ]
-}
-
-js_library("reset_page") {
-  deps = [
-    ":reset_profile_dialog",
-    "..:route",
-    "..:router",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/cr_elements/cr_lazy_render:cr_lazy_render.m",
-    "//ui/webui/resources/js:assert",
-    "//ui/webui/resources/js:load_time_data.m",
-  ]
-}
-
-js_library("reset_profile_banner") {
-  deps = [
-    ":reset_browser_proxy",
-    "..:route",
-    "..:router",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/cr_elements/cr_dialog:cr_dialog.m",
-  ]
-}
-
-js_library("reset_profile_dialog") {
-  deps = [
-    ":reset_browser_proxy",
-    "..:route",
-    "..:router",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/js:i18n_behavior.m",
-    "//ui/webui/resources/js:load_time_data.m",
-  ]
-}
 
 html_to_js("web_components") {
   js_files = [
-    "reset_page.js",
-    "reset_profile_banner.js",
-    "reset_profile_dialog.js",
+    "reset_page.ts",
+    "reset_profile_banner.ts",
+    "reset_profile_dialog.ts",
   ]
 }
diff --git a/chrome/browser/resources/settings/reset_page/reset_browser_proxy.js b/chrome/browser/resources/settings/reset_page/reset_browser_proxy.js
deleted file mode 100644
index 839f5514..0000000
--- a/chrome/browser/resources/settings/reset_page/reset_browser_proxy.js
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// clang-format off
-import {addSingletonGetter, sendWithPromise} from 'chrome://resources/js/cr.m.js';
-// clang-format on
-
-/** @interface */
-export class ResetBrowserProxy {
-  /**
-   * @param {boolean} sendSettings Whether the user gave consent to upload
-   *     broken settings to Google for analysis.
-   * @param {string} requestOrigin The origin of the reset request.
-   * @return {!Promise} A promise firing once resetting has completed.
-   */
-  performResetProfileSettings(sendSettings, requestOrigin) {}
-
-  /**
-   * A method to be called when the reset profile dialog is hidden.
-   */
-  onHideResetProfileDialog() {}
-
-  /**
-   * A method to be called when the reset profile banner is hidden.
-   */
-  onHideResetProfileBanner() {}
-
-  /**
-   * A method to be called when the reset profile dialog is shown.
-   */
-  onShowResetProfileDialog() {}
-
-  /**
-   * Shows the settings that are about to be reset and which will be reported
-   * to Google for analysis, in a new tab.
-   */
-  showReportedSettings() {}
-
-  /**
-   * Retrieves the triggered reset tool name.
-   * @return {!Promise<string>} A promise firing with the tool name, once it
-   *     has been retrieved.
-   */
-  getTriggeredResetToolName() {}
-}
-
-/**
- * @implements {ResetBrowserProxy}
- */
-export class ResetBrowserProxyImpl {
-  /** @override */
-  performResetProfileSettings(sendSettings, requestOrigin) {
-    return sendWithPromise(
-        'performResetProfileSettings', sendSettings, requestOrigin);
-  }
-
-  /** @override */
-  onHideResetProfileDialog() {
-    chrome.send('onHideResetProfileDialog');
-  }
-
-  /** @override */
-  onHideResetProfileBanner() {
-    chrome.send('onHideResetProfileBanner');
-  }
-
-  /** @override */
-  onShowResetProfileDialog() {
-    chrome.send('onShowResetProfileDialog');
-  }
-
-  /** @override */
-  showReportedSettings() {
-    sendWithPromise('getReportedSettings').then(function(settings) {
-      const output = settings.map(function(entry) {
-        return entry.key + ': ' + entry.value.replace(/\n/g, ', ');
-      });
-      const win = window.open('about:blank');
-      const div = win.document.createElement('div');
-      div.textContent = output.join('\n');
-      div.style.whiteSpace = 'pre';
-      win.document.body.appendChild(div);
-    });
-  }
-
-  /** @override */
-  getTriggeredResetToolName() {
-    return sendWithPromise('getTriggeredResetToolName');
-  }
-}
-
-addSingletonGetter(ResetBrowserProxyImpl);
diff --git a/chrome/browser/resources/settings/reset_page/reset_browser_proxy.ts b/chrome/browser/resources/settings/reset_page/reset_browser_proxy.ts
new file mode 100644
index 0000000..dd2c6d4
--- /dev/null
+++ b/chrome/browser/resources/settings/reset_page/reset_browser_proxy.ts
@@ -0,0 +1,92 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// clang-format off
+import {sendWithPromise} from 'chrome://resources/js/cr.m.js';
+// clang-format on
+
+export interface ResetBrowserProxy {
+  /**
+   * @param sendSettings Whether the user gave consent to upload broken settings
+   *     to Google for analysis.
+   * @param requestOrigin The origin of the reset request.
+   * @return A promise firing once resetting has completed.
+   */
+  performResetProfileSettings(sendSettings: boolean, requestOrigin: string):
+      Promise<void>;
+
+  /**
+   * A method to be called when the reset profile dialog is hidden.
+   */
+  onHideResetProfileDialog(): void;
+
+  /**
+   * A method to be called when the reset profile banner is hidden.
+   */
+  onHideResetProfileBanner(): void;
+
+  /**
+   * A method to be called when the reset profile dialog is shown.
+   */
+  onShowResetProfileDialog(): void;
+
+  /**
+   * Shows the settings that are about to be reset and which will be reported
+   * to Google for analysis, in a new tab.
+   */
+  showReportedSettings(): void;
+
+  /**
+   * Retrieves the triggered reset tool name.
+   * @return A promise firing with the tool name, once it has been retrieved.
+   */
+  getTriggeredResetToolName(): Promise<string>;
+}
+
+export class ResetBrowserProxyImpl implements ResetBrowserProxy {
+  performResetProfileSettings(sendSettings: boolean, requestOrigin: string) {
+    return sendWithPromise(
+        'performResetProfileSettings', sendSettings, requestOrigin);
+  }
+
+  onHideResetProfileDialog() {
+    chrome.send('onHideResetProfileDialog');
+  }
+
+  onHideResetProfileBanner() {
+    chrome.send('onHideResetProfileBanner');
+  }
+
+  onShowResetProfileDialog() {
+    chrome.send('onShowResetProfileDialog');
+  }
+
+  showReportedSettings() {
+    sendWithPromise('getReportedSettings')
+        .then(function(settings: Array<{key: string, value: string}>) {
+          const output = settings.map(function(entry) {
+            return entry.key + ': ' + entry.value.replace(/\n/g, ', ');
+          });
+          const win = window.open('about:blank')!;
+          const div = win.document.createElement('div');
+          div.textContent = output.join('\n');
+          div.style.whiteSpace = 'pre';
+          win.document.body.appendChild(div);
+        });
+  }
+
+  getTriggeredResetToolName(): Promise<string> {
+    return sendWithPromise('getTriggeredResetToolName');
+  }
+
+  static getInstance(): ResetBrowserProxy {
+    return instance || (instance = new ResetBrowserProxyImpl());
+  }
+
+  static setInstance(obj: ResetBrowserProxy) {
+    instance = obj;
+  }
+}
+
+let instance: ResetBrowserProxy|null = null;
diff --git a/chrome/browser/resources/settings/reset_page/reset_page.js b/chrome/browser/resources/settings/reset_page/reset_page.ts
similarity index 77%
rename from chrome/browser/resources/settings/reset_page/reset_page.js
rename to chrome/browser/resources/settings/reset_page/reset_page.ts
index 7f37e97a..ea1e826c 100644
--- a/chrome/browser/resources/settings/reset_page/reset_page.js
+++ b/chrome/browser/resources/settings/reset_page/reset_page.ts
@@ -10,12 +10,14 @@
 import 'chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.m.js';
 import '../settings_page/settings_animated_pages.js';
 import '../settings_shared_css.js';
+import './reset_profile_dialog.js';
 
 // <if expr="_google_chrome and is_win">
 import '../chrome_cleanup_page/chrome_cleanup_page.js';
 import '../incompatible_applications_page/incompatible_applications_page.js';
 // </if>
 
+import {CrLazyRenderElement} from 'chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.m.js';
 import {assert} from 'chrome://resources/js/assert.m.js';
 import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
 import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -26,13 +28,15 @@
 
 import {SettingsResetProfileDialogElement} from './reset_profile_dialog.js';
 
+interface SettingsResetPageElement {
+  $: {
+    resetProfileDialog: CrLazyRenderElement<SettingsResetProfileDialogElement>,
+    resetProfile: HTMLElement,
+  };
+}
 
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {RouteObserverMixinInterface}
- */
-const SettingsResetPageElementBase = RouteObserverMixin(PolymerElement);
+const SettingsResetPageElementBase = RouteObserverMixin(PolymerElement) as
+    {new (): PolymerElement & RouteObserverMixinInterface};
 
 /** @polymer */
 class SettingsResetPageElement extends SettingsResetPageElementBase {
@@ -65,43 +69,36 @@
    * RouteObserverMixin
    * @override
    */
-  currentRouteChanged(route) {
-    const lazyRender =
-        /** @type {!CrLazyRenderElement} */ (this.$.resetProfileDialog);
+  currentRouteChanged(route: Route) {
+    const lazyRender = this.$.resetProfileDialog;
 
     if (route === routes.TRIGGERED_RESET_DIALOG ||
         route === routes.RESET_DIALOG) {
-      /** @type {!SettingsResetProfileDialogElement} */ (lazyRender.get())
-          .show();
+      lazyRender.get().show();
     } else {
-      const dialog = /** @type {?SettingsResetProfileDialogElement} */ (
-          lazyRender.getIfExists());
+      const dialog = lazyRender.getIfExists();
       if (dialog) {
         dialog.cancel();
       }
     }
   }
 
-  /** @private */
-  onShowResetProfileDialog_() {
+  private onShowResetProfileDialog_() {
     Router.getInstance().navigateTo(
         routes.RESET_DIALOG, new URLSearchParams('origin=userclick'));
   }
 
-  /** @private */
-  onResetProfileDialogClose_() {
+  private onResetProfileDialogClose_() {
     Router.getInstance().navigateToPreviousRoute();
     focusWithoutInk(assert(this.$.resetProfile));
   }
 
   // <if expr="_google_chrome and is_win">
-  /** @private */
-  onChromeCleanupTap_() {
+  private onChromeCleanupTap_() {
     Router.getInstance().navigateTo(routes.CHROME_CLEANUP);
   }
 
-  /** @private */
-  onIncompatibleApplicationsTap_() {
+  private onIncompatibleApplicationsTap_() {
     Router.getInstance().navigateTo(routes.INCOMPATIBLE_APPLICATIONS);
   }
   // </if>
diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_banner.js b/chrome/browser/resources/settings/reset_page/reset_profile_banner.ts
similarity index 79%
rename from chrome/browser/resources/settings/reset_page/reset_profile_banner.js
rename to chrome/browser/resources/settings/reset_page/reset_profile_banner.ts
index bf91555..f786d9e 100644
--- a/chrome/browser/resources/settings/reset_page/reset_profile_banner.js
+++ b/chrome/browser/resources/settings/reset_page/reset_profile_banner.ts
@@ -10,6 +10,7 @@
 import 'chrome://resources/cr_elements/cr_button/cr_button.m.js';
 import 'chrome://resources/cr_elements/cr_dialog/cr_dialog.m.js';
 
+import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.m.js';
 import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {routes} from '../route.js';
@@ -17,6 +18,12 @@
 
 import {ResetBrowserProxyImpl} from './reset_browser_proxy.js';
 
+interface SettingsResetProfileBannerElement {
+  $: {
+    dialog: CrDialogElement,
+  };
+}
+
 /** @polymer */
 class SettingsResetProfileBannerElement extends PolymerElement {
   static get is() {
@@ -27,25 +34,21 @@
     return html`{__html_template__}`;
   }
 
-  /** @override */
   connectedCallback() {
     super.connectedCallback();
 
-    /** @type {!CrDialogElement} */ (this.$.dialog).showModal();
+    this.$.dialog.showModal();
   }
 
-  /** @private */
-  onOkTap_() {
-    /** @type {!CrDialogElement} */ (this.$.dialog).cancel();
+  private onOkTap_() {
+    this.$.dialog.cancel();
   }
 
-  /** @private */
-  onCancel_() {
+  private onCancel_() {
     ResetBrowserProxyImpl.getInstance().onHideResetProfileBanner();
   }
 
-  /** @private */
-  onResetTap_() {
+  private onResetTap_() {
     this.$.dialog.close();
     Router.getInstance().navigateTo(routes.RESET_DIALOG);
   }
diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.js b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.ts
similarity index 80%
rename from chrome/browser/resources/settings/reset_page/reset_profile_dialog.js
rename to chrome/browser/resources/settings/reset_page/reset_profile_dialog.ts
index a9dd583..d32bff6 100644
--- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.js
+++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.ts
@@ -18,7 +18,9 @@
 import 'chrome://resources/polymer/v3_0/paper-spinner/paper-spinner-lite.js';
 import '../settings_shared_css.js';
 
-import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
+import {CrCheckboxElement} from 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.m.js';
+import {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.m.js';
+import {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
 import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {loadTimeData} from '../i18n_setup.js';
@@ -27,14 +29,16 @@
 
 import {ResetBrowserProxy, ResetBrowserProxyImpl} from './reset_browser_proxy.js';
 
+export interface SettingsResetProfileDialogElement {
+  $: {
+    dialog: CrDialogElement,
+    sendSettings: CrCheckboxElement,
+  };
+}
 
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- */
 const SettingsResetProfileDialogElementBase =
-    mixinBehaviors([I18nBehavior], PolymerElement);
+    mixinBehaviors([I18nBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior};
 
 /** @polymer */
 export class SettingsResetProfileDialogElement extends
@@ -52,22 +56,18 @@
       // TODO(dpapad): Evaluate whether this needs to be synced across different
       // settings tabs.
 
-      /** @private */
       isTriggered_: {
         type: Boolean,
         value: false,
       },
 
-      /** @private */
       triggeredResetToolName_: {
         type: String,
         value: '',
       },
 
-      /** @private */
       resetRequestOrigin_: String,
 
-      /** @private */
       clearingInProgress_: {
         type: Boolean,
         value: false,
@@ -75,18 +75,14 @@
     };
   }
 
-  constructor() {
-    super();
+  private isTriggered_: boolean;
+  private triggeredResetToolName_: string;
+  private resetRequestOrigin_: string;
+  private clearingInProgress_: boolean;
+  private browserProxy_: ResetBrowserProxy =
+      ResetBrowserProxyImpl.getInstance();
 
-    /** @private {!ResetBrowserProxy} */
-    this.browserProxy_ = ResetBrowserProxyImpl.getInstance();
-  }
-
-  /**
-   * @private
-   * @return {string}
-   */
-  getExplanationText_() {
+  private getExplanationText_(): string {
     if (this.isTriggered_) {
       return loadTimeData.getStringF(
           'triggeredResetPageExplanation', this.triggeredResetToolName_);
@@ -94,6 +90,7 @@
 
     if (loadTimeData.getBoolean('showExplanationWithBulletPoints')) {
       return this.i18nAdvanced('resetPageExplanationBulletPoints', {
+        attrs: [],
         substitutions: [],
         tags: ['LINE_BREAKS', 'LINE_BREAK'],
       });
@@ -102,11 +99,7 @@
     return loadTimeData.getStringF('resetPageExplanation');
   }
 
-  /**
-   * @private
-   * @return {string}
-   */
-  getPageTitle_() {
+  private getPageTitle_(): string {
     if (this.isTriggered_) {
       return loadTimeData.getStringF(
           'triggeredResetPageTitle', this.triggeredResetToolName_);
@@ -114,7 +107,6 @@
     return loadTimeData.getStringF('resetDialogTitle');
   }
 
-  /** @override */
   ready() {
     super.ready();
 
@@ -122,12 +114,11 @@
       this.browserProxy_.onHideResetProfileDialog();
     });
 
-    this.shadowRoot.querySelector('cr-checkbox a')
-        .addEventListener('click', this.onShowReportedSettingsTap_.bind(this));
+    this.shadowRoot!.querySelector('cr-checkbox a')!.addEventListener(
+        'click', this.onShowReportedSettingsTap_.bind(this));
   }
 
-  /** @private */
-  showDialog_() {
+  private showDialog_() {
     if (!this.$.dialog.open) {
       this.$.dialog.showModal();
     }
@@ -155,8 +146,7 @@
     }
   }
 
-  /** @private */
-  onCancelTap_() {
+  private onCancelTap_() {
     this.cancel();
   }
 
@@ -166,8 +156,7 @@
     }
   }
 
-  /** @private */
-  onResetTap_() {
+  private onResetTap_() {
     this.clearingInProgress_ = true;
     this.browserProxy_
         .performResetProfileSettings(
@@ -184,10 +173,8 @@
 
   /**
    * Displays the settings that will be reported in a new tab.
-   * @param {!Event} e
-   * @private
    */
-  onShowReportedSettingsTap_(e) {
+  private onShowReportedSettingsTap_(e: Event) {
     this.browserProxy_.showReportedSettings();
     e.stopPropagation();
   }
diff --git a/chrome/browser/resources/settings/router.js b/chrome/browser/resources/settings/router.js
index da457105..c74c0621 100644
--- a/chrome/browser/resources/settings/router.js
+++ b/chrome/browser/resources/settings/router.js
@@ -431,4 +431,10 @@
   }
 
   /** @interface */
-  export const RouteObserverMixinInterface = RouteObserverBehaviorInterface;
+  export class RouteObserverMixinInterface {
+    /**
+     * @param {!Route} newRoute
+     * @param {!Route=} opt_oldRoute
+     */
+    currentRouteChanged(newRoute, opt_oldRoute) {}
+  }
diff --git a/chrome/browser/resources/settings/setting_id_param_util.js b/chrome/browser/resources/settings/setting_id_param_util.ts
similarity index 85%
rename from chrome/browser/resources/settings/setting_id_param_util.js
rename to chrome/browser/resources/settings/setting_id_param_util.ts
index dc5930b..e4acc90 100644
--- a/chrome/browser/resources/settings/setting_id_param_util.js
+++ b/chrome/browser/resources/settings/setting_id_param_util.ts
@@ -10,15 +10,13 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {Router} from './router.js';
 
-/** @type {string} */
-const SETTING_ID_URL_PARAM_NAME = 'settingId';
+const SETTING_ID_URL_PARAM_NAME: string = 'settingId';
 
 /**
  * Retrieves the setting ID saved in the URL's query parameter. Returns null if
  * setting ID is unavailable.
- * @return {?string}
  */
-export function getSettingIdParameter() {
+export function getSettingIdParameter(): string|null {
   // This flag must be enabled for the setting ID to be available.
   if (!loadTimeData.valueExists('isDeepLinkingEnabled') ||
       !loadTimeData.getBoolean('isDeepLinkingEnabled')) {
diff --git a/chrome/browser/resources/settings/settings.gni b/chrome/browser/resources/settings/settings.gni
index 9dcf9e0..e79fef2 100644
--- a/chrome/browser/resources/settings/settings.gni
+++ b/chrome/browser/resources/settings/settings.gni
@@ -8,4 +8,5 @@
     default_closure_args + [
       "js_module_root=../../chrome/browser/resources/settings/",
       "js_module_root=./gen/chrome/browser/resources/settings/",
+      "js_module_root=./gen/chrome/browser/resources/settings/tsc/",
     ]
diff --git a/chrome/browser/resources/settings/settings.js b/chrome/browser/resources/settings/settings.ts
similarity index 100%
rename from chrome/browser/resources/settings/settings.js
rename to chrome/browser/resources/settings/settings.ts
diff --git a/chrome/browser/resources/settings/settings_page_css.js b/chrome/browser/resources/settings/settings_page_css.ts
similarity index 100%
rename from chrome/browser/resources/settings/settings_page_css.js
rename to chrome/browser/resources/settings/settings_page_css.ts
diff --git a/chrome/browser/resources/settings/settings_shared_css.js b/chrome/browser/resources/settings/settings_shared_css.ts
similarity index 100%
rename from chrome/browser/resources/settings/settings_shared_css.js
rename to chrome/browser/resources/settings/settings_shared_css.ts
diff --git a/chrome/browser/resources/settings/settings_vars_css.js b/chrome/browser/resources/settings/settings_vars_css.ts
similarity index 100%
rename from chrome/browser/resources/settings/settings_vars_css.js
rename to chrome/browser/resources/settings/settings_vars_css.ts
diff --git a/chrome/browser/resources/tab_search/BUILD.gn b/chrome/browser/resources/tab_search/BUILD.gn
index 20a9d52..eb2bbc2 100644
--- a/chrome/browser/resources/tab_search/BUILD.gn
+++ b/chrome/browser/resources/tab_search/BUILD.gn
@@ -192,6 +192,7 @@
     ":title_item",
     "//third_party/polymer/v3_0/components-chromium/iron-a11y-announcer",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+    "//ui/webui/resources/cr_elements/cr_expand_button:cr_expand_button.m",
     "//ui/webui/resources/js:cr.m",
     "//ui/webui/resources/js:load_time_data.m",
     "//ui/webui/resources/js:util.m",
diff --git a/chrome/browser/resources/tab_search/app.html b/chrome/browser/resources/tab_search/app.html
index a0bbb21..3185012 100644
--- a/chrome/browser/resources/tab_search/app.html
+++ b/chrome/browser/resources/tab_search/app.html
@@ -43,13 +43,23 @@
     color: var(--cr-secondary-text-color);
     display: flex;
     font-size: var(--mwb-list-section-title-font-size);
+    font-weight: bolder;
     height: var(--mwb-list-section-title-height);
-    padding-inline-start: 8px;
+    padding-inline-end: 24px;
+    padding-inline-start: 16px;
     position: sticky;
     text-transform: uppercase;
     top: 0;
+    user-select: none;
     z-index: 1000;
   }
+
+  cr-expand-button {
+    --cr-expand-button-size: 28px;
+    --cr-expand-button-icon-size: 16px;
+    --cr-section-vertical-padding: 0;
+    flex-grow: 1;
+  }
 </style>
 <tab-search-search-field id="searchField" autofocus
     clear-label="$i18n{clearSearch}" label="$i18n{searchTabs}"
@@ -61,7 +71,16 @@
   <infinite-list id="tabsList" max-height="[[listMaxHeight_(availableHeight_)]]"
       items="[[filteredItems_]]">
     <template data-type="TitleItem">
-      <div class="list-section-title">[[item.title]]</div>
+      <div class="list-section-title">
+        <div>[[item.title]]</div>
+        <template is="dom-if" if="[[item.expandable]]">
+          <cr-expand-button aria-label="$i18n{recentlyClosedExpandA11yLabel}"
+              expand-icon="cr:arrow-drop-down" collapse-icon="cr:arrow-drop-up"
+              expanded="[[item.expanded]]"
+              on-expanded-changed="onTitleExpandChanged_" no-hover>
+          </cr-expand-button>
+        </template>
+      </div>
     </template>
     <template data-type="TabData" data-selectable>
       <tab-search-item id="[[item.tab.tabId]]" aria-label="[[ariaLabel_(item)]]"
diff --git a/chrome/browser/resources/tab_search/app.js b/chrome/browser/resources/tab_search/app.js
index fc655cdc..7ace13d 100644
--- a/chrome/browser/resources/tab_search/app.js
+++ b/chrome/browser/resources/tab_search/app.js
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.m.js';
 import 'chrome://resources/cr_elements/shared_vars_css.m.js';
 import 'chrome://resources/cr_elements/mwb_shared_style.js';
 import 'chrome://resources/cr_elements/mwb_shared_vars.js';
@@ -11,6 +12,7 @@
 import './tab_search_group_item.js';
 import './tab_search_item.js';
 import './tab_search_search_field.js';
+import './title_item.js';
 import './strings.m.js';
 
 import {assert} from 'chrome://resources/js/assert.m.js';
@@ -141,8 +143,9 @@
     this.openTabsTitleItem_ = new TitleItem(loadTimeData.getString('openTabs'));
 
     /** @private {!TitleItem} */
-    this.recentlyClosedTitleItem_ =
-        new TitleItem(loadTimeData.getString('recentlyClosed'));
+    this.recentlyClosedTitleItem_ = new TitleItem(
+        loadTimeData.getString('recentlyClosed'), true /*expandable*/,
+        true /*expanded*/);
   }
 
   /** @override */
@@ -233,8 +236,7 @@
 
   /** @private */
   onDocumentHidden_() {
-    this.$.tabsList.scrollTop = 0;
-    this.$.tabsList.selected = NO_SELECTION;
+    this.filteredItems_ = [];
 
     this.$.searchField.setValue('');
     this.$.searchField.getSearchInput().focus();
@@ -456,6 +458,8 @@
               loadTimeData.getString('a11yRecentlyClosedTabGroup');
           return tabGroupData;
         });
+    this.recentlyClosedTitleItem_.expanded =
+        profileData.recentlyClosedSectionExpanded;
 
     this.updateFilteredTabs_();
 
@@ -479,6 +483,25 @@
         /** @type {number} */ (e.model.index);
   }
 
+  /**
+   * @param {CustomEvent} e
+   * @private
+   */
+  onTitleExpandChanged_(e) {
+    // Instead of relying on two-way binding to update the `expanded` property,
+    // we update the value directly as the `expanded-changed` event takes place
+    // before a two way bound property update and we need the TitleItem
+    // instance to reflect the updated state prior to calling the
+    // updateFilteredTabs_ function.
+    const expanded = e.detail.value;
+    const titleItem = /** @type {TitleItem} */ (e.model.item);
+    titleItem.expanded = expanded;
+    this.apiProxy_.saveRecentlyClosedExpandedPref(expanded);
+
+    this.updateFilteredTabs_();
+    e.stopPropagation();
+  }
+
   /** @private */
   onSearchFocus_() {
     const tabsList = /** @type {!InfiniteList} */ (this.$.tabsList);
@@ -654,7 +677,11 @@
       [this.recentlyClosedTitleItem_, filteredRecentlyClosedItems],
     ].reduce((acc, [sectionTitle, sectionItems]) => {
       if (sectionItems.length !== 0) {
-        acc.push(sectionTitle, ...sectionItems);
+        acc.push(sectionTitle);
+        if (!sectionTitle.expandable ||
+            sectionTitle.expandable && sectionTitle.expanded) {
+          acc.push(...sectionItems);
+        }
       }
       return acc;
     }, []);
diff --git a/chrome/browser/resources/tab_search/tab_search_api_proxy.js b/chrome/browser/resources/tab_search/tab_search_api_proxy.js
index f22e7ff..5afe9093 100644
--- a/chrome/browser/resources/tab_search/tab_search_api_proxy.js
+++ b/chrome/browser/resources/tab_search/tab_search_api_proxy.js
@@ -55,6 +55,9 @@
   /** @return {!PageCallbackRouter} */
   getCallbackRouter() {}
 
+  /** @param {boolean} expanded */
+  saveRecentlyClosedExpandedPref(expanded) {}
+
   showUI() {}
 }
 
@@ -120,6 +123,11 @@
   }
 
   /** @override */
+  saveRecentlyClosedExpandedPref(expanded) {
+    this.handler.saveRecentlyClosedExpandedPref(expanded);
+  }
+
+  /** @override */
   showUI() {
     this.handler.showUI();
   }
diff --git a/chrome/browser/resources/tab_search/title_item.js b/chrome/browser/resources/tab_search/title_item.js
index 2dd9c05..cc34631 100644
--- a/chrome/browser/resources/tab_search/title_item.js
+++ b/chrome/browser/resources/tab_search/title_item.js
@@ -3,9 +3,19 @@
 // found in the LICENSE file.
 
 export class TitleItem {
-  /** @param {string} title */
-  constructor(title) {
+  /**
+   * @param {string} title
+   * @param {boolean} expandable
+   * @param {boolean} expanded
+   */
+  constructor(title, expandable = false, expanded = false) {
     /** @type {string} */
     this.title = title;
+
+    /** @type {boolean} */
+    this.expandable = expandable;
+
+    /** @type {boolean} */
+    this.expanded = expanded;
   }
 }
diff --git a/chrome/browser/resources/whats_new/whats_new_app.html b/chrome/browser/resources/whats_new/whats_new_app.html
index 8da8c54..729dd10 100644
--- a/chrome/browser/resources/whats_new/whats_new_app.html
+++ b/chrome/browser/resources/whats_new/whats_new_app.html
@@ -1,4 +1,12 @@
-<style include="cr-hidden-style"></style>
-<template is="dom-if" if="[[loadFailed_]]">
+<style include="cr-hidden-style">
+  #content {
+    height: 100%;
+    width: 100%;
+  }
+</style>
+<template is="dom-if" if="[[showErrorPage_]]">
   <whats-new-error-page></whats-new-error-page>
 </template>
+<template is="dom-if" if="[[url_]]">
+  <iframe id="content" src="[[url_]]"></iframe>
+</template>
diff --git a/chrome/browser/resources/whats_new/whats_new_app.ts b/chrome/browser/resources/whats_new/whats_new_app.ts
index 6e76fe14..bffd70e 100644
--- a/chrome/browser/resources/whats_new/whats_new_app.ts
+++ b/chrome/browser/resources/whats_new/whats_new_app.ts
@@ -6,7 +6,9 @@
 import './whats_new_error_page.js';
 import './strings.m.js';
 
-import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {sendWithPromise} from 'chrome://resources/js/cr.m.js';
+import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
+import {html, microTask, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 export class WhatsNewAppElement extends PolymerElement {
   static get is() {
@@ -15,12 +17,28 @@
 
   static get properties() {
     return {
-      loadFailed_: Boolean,
+      showErrorPage_: Boolean,
+      url_: String,
     };
   }
 
-  // Temporarily default to true while there's no other content.
-  private loadFailed_: boolean = true;
+  private showErrorPage_: boolean = false;
+  private url_: string = '';
+
+  connectedCallback() {
+    super.connectedCallback();
+
+    const queryParams = new URLSearchParams(window.location.search);
+    const isAutoOpen = queryParams.has('auto');
+    sendWithPromise('initialize', isAutoOpen).then(url => {
+      if (!url) {
+        this.showErrorPage_ = true;
+        return;
+      }
+
+      this.url_ = isAutoOpen ? url.concat('?latest=true') : url;
+    });
+  }
 
   static get template() {
     return html`{__html_template__}`;
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.cc b/chrome/browser/supervised_user/supervised_user_url_filter.cc
index 1a7e292..7ade8cb 100644
--- a/chrome/browser/supervised_user/supervised_user_url_filter.cc
+++ b/chrome/browser/supervised_user/supervised_user_url_filter.cc
@@ -137,6 +137,18 @@
 // Reports ManualSiteListType which indicates approved list and blocked list
 // usage for current Family Link user on Chrome OS.
 constexpr char kManagedSiteListHistogramName[] = "FamilyUser.ManagedSiteList";
+
+// UMA histogram FamilyUser.ManagedSiteListCount.Approved
+// Reports the number of approved urls and domains for current Family Link user
+// on Chrome OS.
+constexpr char kApprovedSitesCountHistogramName[] =
+    "FamilyUser.ManagedSiteListCount.Approved";
+
+// UMA histogram FamilyUser.ManagedSiteListCount.Blocked
+// Reports the number of blocked urls and domains for current Family Link user
+// on Chrome OS.
+constexpr char kBlockedSitesCountHistogramName[] =
+    "FamilyUser.ManagedSiteListCount.Blocked";
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 // This class encapsulates all the state that is required during construction of
@@ -266,6 +278,18 @@
   return kManagedSiteListHistogramName;
 }
 
+// static
+const char*
+SupervisedUserURLFilter::GetApprovedSitesCountHistogramNameForTest() {
+  return kApprovedSitesCountHistogramName;
+}
+
+// static
+const char*
+SupervisedUserURLFilter::GetBlockedSitesCountHistogramNameForTest() {
+  return kBlockedSitesCountHistogramName;
+}
+
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 // static
@@ -737,40 +761,42 @@
   if (url_map_.empty() && host_map_.empty()) {
     base::UmaHistogramEnumeration(kManagedSiteListHistogramName,
                                   ManagedSiteList::kEmpty);
+    base::UmaHistogramCounts1000(kApprovedSitesCountHistogramName, 0);
+    base::UmaHistogramCounts1000(kBlockedSitesCountHistogramName, 0);
     return;
   }
 
   ManagedSiteList managed_site_list = ManagedSiteList::kMaxValue;
-  bool approved_list = false;
-  bool blocked_list = false;
+  int approved_count = 0;
+  int blocked_count = 0;
   for (const auto& it : url_map_) {
-    if (approved_list && blocked_list)
-      break;
     if (it.second) {
-      approved_list = true;
+      approved_count++;
     } else {
-      blocked_list = true;
+      blocked_count++;
     }
   }
 
   for (const auto& it : host_map_) {
-    if (approved_list && blocked_list)
-      break;
     if (it.second) {
-      approved_list = true;
+      approved_count++;
     } else {
-      blocked_list = true;
+      blocked_count++;
     }
   }
 
-  if (approved_list && blocked_list) {
+  if (approved_count > 0 && blocked_count > 0) {
     managed_site_list = ManagedSiteList::kBoth;
-  } else if (approved_list) {
+  } else if (approved_count > 0) {
     managed_site_list = ManagedSiteList::kApprovedListOnly;
   } else {
     managed_site_list = ManagedSiteList::kBlockedListOnly;
   }
 
+  base::UmaHistogramCounts1000(kApprovedSitesCountHistogramName,
+                               approved_count);
+  base::UmaHistogramCounts1000(kBlockedSitesCountHistogramName, blocked_count);
+
   base::UmaHistogramEnumeration(kManagedSiteListHistogramName,
                                 managed_site_list);
 }
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.h b/chrome/browser/supervised_user/supervised_user_url_filter.h
index eb7bdf8..73e4d85 100644
--- a/chrome/browser/supervised_user/supervised_user_url_filter.h
+++ b/chrome/browser/supervised_user/supervised_user_url_filter.h
@@ -131,6 +131,8 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   static const char* GetWebFilterTypeHistogramNameForTest();
   static const char* GetManagedSiteListHistogramNameForTest();
+  static const char* GetApprovedSitesCountHistogramNameForTest();
+  static const char* GetBlockedSitesCountHistogramNameForTest();
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
   // Returns true if the parental allowlist/blocklist should be skipped in
diff --git a/chrome/browser/sync/test/integration/enable_disable_test.cc b/chrome/browser/sync/test/integration/enable_disable_test.cc
index dde89a5..3f7369b 100644
--- a/chrome/browser/sync/test/integration/enable_disable_test.cc
+++ b/chrome/browser/sync/test/integration/enable_disable_test.cc
@@ -127,7 +127,13 @@
   DISALLOW_COPY_AND_ASSIGN(EnableDisableSingleClientTest);
 };
 
-IN_PROC_BROWSER_TEST_F(EnableDisableSingleClientTest, EnableOneAtATime) {
+// TODO(crbug.com/1235713): Possibly fails/flaky on Linux. 
+#if defined(OS_LINUX)
+#define MAYBE_EnableOneAtATime DISABLED_EnableOneAtATime
+#else
+#define MAYBE_EnableOneAtATime EnableOneAtATime
+#endif
+IN_PROC_BROWSER_TEST_F(EnableDisableSingleClientTest, MAYBE_EnableOneAtATime) {
   // Setup sync with no enabled types.
   SetupTest(/*all_types_enabled=*/false);
 
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java
index e1e45159..cdb4a89 100644
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java
@@ -281,6 +281,8 @@
                 return TabLaunchType.FROM_TAB_GROUP_UI;
             case FROM_LONGPRESS_BACKGROUND_IN_GROUP:
                 return TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP;
+            case FROM_APP_WIDGET:
+                return TabLaunchType.FROM_APP_WIDGET;
             case SIZE:
                 return TabLaunchType.SIZE;
             default:
@@ -331,6 +333,8 @@
             case TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP:
                 return CriticalPersistedTabDataProto.LaunchTypeAtCreation
                         .FROM_LONGPRESS_BACKGROUND_IN_GROUP;
+            case TabLaunchType.FROM_APP_WIDGET:
+                return CriticalPersistedTabDataProto.LaunchTypeAtCreation.FROM_APP_WIDGET;
             case TabLaunchType.SIZE:
                 return CriticalPersistedTabDataProto.LaunchTypeAtCreation.SIZE;
             default:
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/critical_persisted_tab_data.proto b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/critical_persisted_tab_data.proto
index ebc21375..1b3d2d0 100644
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/critical_persisted_tab_data.proto
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/proto/critical_persisted_tab_data.proto
@@ -48,8 +48,9 @@
     FROM_START_SURFACE = 12;
     FROM_TAB_GROUP_UI = 13;
     FROM_LONGPRESS_BACKGROUND_IN_GROUP = 14;
-    SIZE = 15;
-    UNKNOWN = 16;
+    FROM_APP_WIDGET = 15;
+    SIZE = 16;
+    UNKNOWN = 17;
   }
   optional LaunchTypeAtCreation launch_type_at_creation = 8;
 }
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index f975bd3c..7566fd8 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1569,6 +1569,8 @@
       "webui/system_info_ui.h",
       "webui/tab_search/tab_search_page_handler.cc",
       "webui/tab_search/tab_search_page_handler.h",
+      "webui/tab_search/tab_search_prefs.cc",
+      "webui/tab_search/tab_search_prefs.h",
       "webui/tab_search/tab_search_ui.cc",
       "webui/tab_search/tab_search_ui.h",
       "webui/theme_handler.cc",
@@ -1581,8 +1583,12 @@
       "webui/web_app_internals/web_app_internals_source.h",
       "webui/web_footer_experiment_ui.cc",
       "webui/web_footer_experiment_ui.h",
+      "webui/whats_new/whats_new_handler.cc",
+      "webui/whats_new/whats_new_handler.h",
       "webui/whats_new/whats_new_ui.cc",
       "webui/whats_new/whats_new_ui.h",
+      "webui/whats_new/whats_new_util.cc",
+      "webui/whats_new/whats_new_util.h",
       "window_sizer/window_sizer.cc",
       "window_sizer/window_sizer.h",
       "zoom/chrome_zoom_level_otr_delegate.cc",
diff --git a/chrome/browser/ui/android/layouts/test/java/src/org/chromium/chrome/browser/layouts/LayoutTestUtils.java b/chrome/browser/ui/android/layouts/test/java/src/org/chromium/chrome/browser/layouts/LayoutTestUtils.java
index 58bc024..a7bf7b3 100644
--- a/chrome/browser/ui/android/layouts/test/java/src/org/chromium/chrome/browser/layouts/LayoutTestUtils.java
+++ b/chrome/browser/ui/android/layouts/test/java/src/org/chromium/chrome/browser/layouts/LayoutTestUtils.java
@@ -21,8 +21,6 @@
      */
     public static void waitForLayout(LayoutManager layoutManager, @LayoutType int type)
             throws TimeoutException {
-        if (layoutManager.isLayoutVisible(type)) return;
-
         CallbackHelper finishedShowingCallbackHelper = new CallbackHelper();
         LayoutStateObserver observer = new LayoutStateObserver() {
             @Override
@@ -30,7 +28,13 @@
                 finishedShowingCallbackHelper.notifyCalled();
             }
         };
-        TestThreadUtils.runOnUiThreadBlocking(() -> layoutManager.addObserver(observer));
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            if (layoutManager.isLayoutVisible(type)) {
+                finishedShowingCallbackHelper.notifyCalled();
+                return;
+            }
+            layoutManager.addObserver(observer);
+        });
 
         finishedShowingCallbackHelper.waitForFirst();
         TestThreadUtils.runOnUiThreadBlocking(() -> layoutManager.removeObserver(observer));
diff --git a/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn b/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn
index 3b68c53..47a32aa 100644
--- a/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn
+++ b/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn
@@ -42,6 +42,7 @@
     "//chrome/android:chrome_java",
     "//chrome/browser/flags:java",
     "//chrome/browser/tab:java",
+    "//chrome/browser/tabmodel:java",
     "//chrome/browser/ui/android/searchactivityutils:java",
     "//chrome/test/android:chrome_java_test_support",
     "//components/embedder_support/android:util_java",
diff --git a/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegate.java b/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegate.java
index 72b0e11d..921bd33 100644
--- a/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegate.java
+++ b/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegate.java
@@ -21,6 +21,7 @@
 public class QuickActionSearchWidgetProviderDelegate {
     private final @QuickActionSearchWidgetType int mWidgetType;
     private final ComponentName mWidgetReceiverComponent;
+    private final Intent mStartIncognitoTabIntent;
 
     /**
      * Constructor for the {@link QuickActionSearchWidgetProviderDelegate}
@@ -30,11 +31,15 @@
      *         android.content.BroadcastReceiver} that will receive the intents that are broadcast
      *         when the user interacts with the widget. Generally this component is {@link
      *         QuickActionSearchWidgetReceiver}.
+     * @param startIncognitoIntent A trusted intent starting a new Incognito tab.
      */
-    public QuickActionSearchWidgetProviderDelegate(
-            @QuickActionSearchWidgetType int widgetType, ComponentName widgetReceiverComponent) {
+    public QuickActionSearchWidgetProviderDelegate(@QuickActionSearchWidgetType int widgetType,
+            ComponentName widgetReceiverComponent, Intent startIncognitoTabIntent) {
         mWidgetType = widgetType;
         mWidgetReceiverComponent = widgetReceiverComponent;
+        mStartIncognitoTabIntent = startIncognitoTabIntent;
+        mStartIncognitoTabIntent.addFlags(
+                Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
     }
 
     /**
@@ -95,33 +100,39 @@
 
         // Search Bar Intent
         PendingIntent textSearchPendingIntent = createPendingIntentForAction(
-                QuickActionSearchWidgetReceiverDelegate.ACTION_START_TEXT_QUERY, context);
+                context, QuickActionSearchWidgetReceiverDelegate.ACTION_START_TEXT_QUERY);
         remoteViews.setOnClickPendingIntent(
                 R.id.quick_action_search_widget_search_bar_container, textSearchPendingIntent);
 
         // Voice Search Intent
         PendingIntent voiceSearchPendingIntent = createPendingIntentForAction(
-                QuickActionSearchWidgetReceiverDelegate.ACTION_START_VOICE_QUERY, context);
+                context, QuickActionSearchWidgetReceiverDelegate.ACTION_START_VOICE_QUERY);
         remoteViews.setOnClickPendingIntent(
                 R.id.voice_search_quick_action_button, voiceSearchPendingIntent);
 
+        // Incognito Tab Intent
+        PendingIntent incognitoTabPendingIntent =
+                createPendingIntent(context, mStartIncognitoTabIntent);
+        remoteViews.setOnClickPendingIntent(
+                R.id.incognito_quick_action_button, incognitoTabPendingIntent);
+
         // Dino Game intent
         PendingIntent dinoGamePendingIntent = createPendingIntentForAction(
-                QuickActionSearchWidgetReceiverDelegate.ACTION_START_DINO_GAME, context);
+                context, QuickActionSearchWidgetReceiverDelegate.ACTION_START_DINO_GAME);
         remoteViews.setOnClickPendingIntent(R.id.dino_quick_action_button, dinoGamePendingIntent);
 
         return remoteViews;
     }
 
     /**
-     * Creates a {@link PendingIntent} that will broadcast a trusted intent for a specified action.
+     * Creates a {@link PendingIntent} that will send a trusted intent with a specified action.
      *
      * @param context The Context from which the PendingIntent will perform the broadcast.
      * @param action A String specifying the action for the intent.
      * @return A {@link PendingIntent} that will broadcast a trusted intent for the specified
      *         action.
      */
-    private PendingIntent createPendingIntentForAction(final String action, final Context context) {
+    private PendingIntent createPendingIntentForAction(final Context context, final String action) {
         Intent intent = createTrustedIntentForAction(action);
         return PendingIntent.getBroadcast(context, /*requestCode=*/0, intent,
                 PendingIntent.FLAG_UPDATE_CURRENT
@@ -129,6 +140,20 @@
     }
 
     /**
+     * Creates a {@link PendingIntent} that will send a trusted intent with a specified action.
+     *
+     * @param context The Context from which the PendingIntent will perform the broadcast.
+     * @param intent An intent to execute.
+     * @return A {@link PendingIntent} that will broadcast a trusted intent for the specified
+     *         action.
+     */
+    private PendingIntent createPendingIntent(final Context context, final Intent intent) {
+        return PendingIntent.getActivity(context, /*requestCode=*/0, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT
+                        | IntentUtils.getPendingIntentMutabilityFlag(false));
+    }
+
+    /**
      * Creates a trusted intent corresponding to a specified action.
      *
      * @param action a String specifying the action for the trusted intent.
@@ -167,4 +192,4 @@
                 return R.layout.quick_action_search_widget_small_layout;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegateTest.java b/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegateTest.java
index dd1a5f3..a331b2c7 100644
--- a/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegateTest.java
+++ b/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegateTest.java
@@ -7,6 +7,7 @@
 import android.app.Activity;
 import android.appwidget.AppWidgetManager;
 import android.content.ComponentName;
+import android.content.Intent;
 import android.support.test.InstrumentationRegistry;
 import android.view.View;
 import android.widget.FrameLayout;
@@ -25,6 +26,7 @@
 import org.chromium.base.test.util.ApplicationTestUtils;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.DisabledTest;
+import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetReceiver;
@@ -52,8 +54,8 @@
 
     private static final class TestDelegate extends QuickActionSearchWidgetProviderDelegate {
         public TestDelegate(@QuickActionSearchWidgetType int widgetType,
-                ComponentName widgetReceiverComponent) {
-            super(widgetType, widgetReceiverComponent);
+                ComponentName widgetReceiverComponent, Intent startIncognitoTab) {
+            super(widgetType, widgetReceiverComponent, startIncognitoTab);
         }
 
         public final List<RemoteViews> mRemoteViews = new ArrayList<>();
@@ -87,7 +89,9 @@
 
         ComponentName widgetReceiverComponent =
                 new ComponentName(mContext, QuickActionSearchWidgetReceiver.class);
-        mDelegate = new TestDelegate(QuickActionSearchWidgetType.SMALL, widgetReceiverComponent);
+
+        mDelegate = new TestDelegate(QuickActionSearchWidgetType.SMALL, widgetReceiverComponent,
+                IntentHandler.createTrustedOpenNewTabIntent(mContext, /*incognito=*/true));
 
         setUpViews();
     }
@@ -114,6 +118,19 @@
 
     @Test
     @SmallTest
+    public void testIncognitoTabClick() throws Exception {
+        for (View view : mWidgetViews) {
+            QuickActionSearchWidgetTestUtils.assertIncognitoModeLaunchedAfterAction(
+                    mActivityTestRule, () -> {
+                        QuickActionSearchWidgetTestUtils.clickOnView(
+                                view, R.id.incognito_quick_action_button);
+                    });
+            ApplicationTestUtils.finishActivity(mActivityTestRule.getActivity());
+        }
+    }
+
+    @Test
+    @SmallTest
     public void testVoiceButtonClick() throws Exception {
         for (View view : mWidgetViews) {
             // clang-format off
diff --git a/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetTestUtils.java b/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetTestUtils.java
index 4455a98..3c178b0 100644
--- a/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetTestUtils.java
+++ b/chrome/browser/ui/android/quickactionsearchwidget/java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetTestUtils.java
@@ -6,6 +6,7 @@
 
 import android.app.Activity;
 import android.content.Intent;
+import android.support.test.InstrumentationRegistry;
 import android.support.test.runner.lifecycle.Stage;
 import android.view.View;
 
@@ -32,6 +33,7 @@
      * Asserts that {@link SearchActivity} is launched in the correct mode after a given {@link
      * Runnable} is ran.
      *
+     * @param testRule BaseActivityTestRule used to start an action and monitor for changes.
      * @param action The runnable such that after it is ran, {@link SearchActivity} is expected to
      *         be launched.
      * @param shouldActivityLaunchVoiceMode Whether the search activity is expected to launched in
@@ -50,6 +52,7 @@
      * Asserts that {@link ChromeTabbedActivity} is launched with the URL chrome://dino after a
      * given {@link Runnable} is ran.
      *
+     * @param testRule BaseActivityTestRule used to start an action and monitor for changes.
      * @param action the runnable such that after running {@link ChromeTabbedActivity} is expected
      *         to be launched.
      */
@@ -86,4 +89,28 @@
                 intent, SearchActivityConstants.EXTRA_SHOULD_START_VOICE_SEARCH, false);
         Assert.assertEquals(shouldActivityLaunchVoiceMode, isVoiceMode);
     }
+
+    /**
+     * Asserts that {@link ChromeTabbedActivity} is launched in an incognito mode after a
+     * given {@link Runnable} is ran.
+     *
+     * @param testRule BaseActivityTestRule used to start an action and monitor for changes.
+     * @param action the runnable such that after running {@link ChromeTabbedActivity} is expected
+     *         to be launched.
+     */
+    public static void assertIncognitoModeLaunchedAfterAction(
+            BaseActivityTestRule<Activity> testRule, Runnable action) {
+        ChromeTabbedActivity activity = ApplicationTestUtils.waitForActivityWithClass(
+                ChromeTabbedActivity.class, Stage.CREATED, action);
+        testRule.setActivity(activity);
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+        CriteriaHelper.pollUiThread(() -> {
+            Tab activityTab = activity.getActivityTab();
+            Assert.assertTrue(activity.getTabModelSelector().isIncognitoSelected());
+            Criteria.checkThat(activityTab, Matchers.notNullValue());
+            Criteria.checkThat(
+                    activityTab.getUrl().getSpec(), Matchers.startsWith(UrlConstants.NTP_URL));
+        });
+    }
 }
diff --git a/chrome/browser/ui/android/tab_model/tab_model.h b/chrome/browser/ui/android/tab_model/tab_model.h
index d866b05..baf7b29 100644
--- a/chrome/browser/ui/android/tab_model/tab_model.h
+++ b/chrome/browser/ui/android/tab_model/tab_model.h
@@ -94,6 +94,8 @@
     // Open from the long press context menu item 'Open in new tab in group'.
     // Will not be brought to the foreground.
     FROM_LONGPRESS_BACKGROUND_IN_GROUP,
+    // Opened from an app widget.
+    FROM_APP_WIDGET,
     // Must be last.
     SIZE
   };
diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn
index 593f012..5485ecb2 100644
--- a/chrome/browser/ui/android/toolbar/BUILD.gn
+++ b/chrome/browser/ui/android/toolbar/BUILD.gn
@@ -264,6 +264,7 @@
     "java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonControllerTest.java",
     "java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictorTest.java",
     "java/src/org/chromium/chrome/browser/toolbar/adaptive/OptionalNewTabButtonControllerUnitTest.java",
+    "java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragmentUnitTest.java",
     "java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinatorTest.java",
     "java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediatorTest.java",
     "java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonTest.java",
@@ -304,8 +305,11 @@
     "//third_party/android_deps:guava_android_java",
     "//third_party/android_deps:robolectric_all_java",
     "//third_party/android_support_test_runner:runner_java",
+    "//third_party/androidx:androidx_fragment_fragment_java",
+    "//third_party/androidx:androidx_recyclerview_recyclerview_java",
     "//third_party/androidx:androidx_test_core_java",
     "//third_party/androidx:androidx_test_runner_java",
+    "//third_party/androidx:androidx_viewpager2_viewpager2_java",
     "//third_party/hamcrest:hamcrest_library_java",
     "//third_party/junit",
     "//third_party/mockito:mockito_java",
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragment.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragment.java
index da0c083d..fb378ed 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragment.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragment.java
@@ -85,6 +85,6 @@
 
     @VisibleForTesting
     /*package*/ void setCanUseVoiceSearchForTesting(boolean canUseVoiceSearch) {
-        mRadioButtonGroup.setCanUseVoiceSearch(false);
+        mRadioButtonGroup.setCanUseVoiceSearch(canUseVoiceSearch);
     }
 }
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragmentUnitTest.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragmentUnitTest.java
new file mode 100644
index 0000000..8da9cefe
--- /dev/null
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/AdaptiveToolbarPreferenceFragmentUnitTest.java
@@ -0,0 +1,124 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.toolbar.adaptive.settings;
+
+import static org.junit.Assert.assertEquals;
+
+import android.os.Looper;
+import android.util.Pair;
+import android.view.View;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
+import androidx.viewpager2.widget.ViewPager2;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
+
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarFeatures;
+import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarFeatures.AdaptiveToolbarButtonVariant;
+import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarStatePredictor;
+import org.chromium.chrome.test.util.browser.Features;
+import org.chromium.chrome.test.util.browser.Features.DisableFeatures;
+import org.chromium.chrome.test.util.browser.Features.EnableFeatures;
+import org.chromium.components.browser_ui.widget.RadioButtonWithDescription;
+
+/**
+ * Unit tests for {@link AdaptiveToolbarPreferenceFragment} and {@link
+ * RadioButtonGroupAdaptiveToolbarPreference}.
+ */
+@RunWith(BaseRobolectricTestRunner.class)
+@Config(manifest = Config.NONE)
+@LooperMode(LooperMode.Mode.PAUSED)
+public class AdaptiveToolbarPreferenceFragmentUnitTest {
+    @Rule
+    public TestRule mProcessor = new Features.JUnitProcessor();
+
+    private FragmentActivity mTestActivity;
+    private AdaptiveToolbarPreferenceFragment mFragment;
+
+    private static class TestFragmentAdapter extends FragmentStateAdapter {
+        private AdaptiveToolbarPreferenceFragment mLastFragment;
+
+        public TestFragmentAdapter(FragmentActivity fragmentActivity) {
+            super(fragmentActivity);
+        }
+
+        @Override
+        public Fragment createFragment(int i) {
+            mLastFragment = new AdaptiveToolbarPreferenceFragment();
+            return mLastFragment;
+        }
+
+        public AdaptiveToolbarPreferenceFragment getLastFragment() {
+            return mLastFragment;
+        }
+
+        @Override
+        public int getItemCount() {
+            return 1;
+        }
+    }
+
+    @Before
+    public void setUp() {
+        AdaptiveToolbarStatePredictor.setSegmentationResultsForTesting(
+                new Pair<>(true, AdaptiveToolbarButtonVariant.NEW_TAB));
+
+        mTestActivity = Robolectric.setupActivity(FragmentActivity.class);
+        ViewPager2 view = new ViewPager2(mTestActivity);
+        mTestActivity.setContentView(view);
+
+        TestFragmentAdapter adapter = new TestFragmentAdapter(mTestActivity);
+        view.setAdapter(adapter);
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+        mFragment = adapter.getLastFragment();
+    }
+
+    @After
+    public void tearDown() {
+        AdaptiveToolbarStatePredictor.setSegmentationResultsForTesting(null);
+        AdaptiveToolbarFeatures.clearParsedParamsForTesting();
+    }
+
+    @Test
+    @EnableFeatures({ChromeFeatureList.ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION})
+    @DisableFeatures({ChromeFeatureList.VOICE_SEARCH_AUDIO_CAPTURE_POLICY})
+    public void testCanUseVoiceSearch_enabled() {
+        mFragment.setCanUseVoiceSearchForTesting(true);
+
+        RadioButtonGroupAdaptiveToolbarPreference radioButtonGroup = mFragment.findPreference(
+                AdaptiveToolbarPreferenceFragment.PREF_ADAPTIVE_RADIO_GROUP);
+        RadioButtonWithDescription voiceButton =
+                radioButtonGroup.getButton(AdaptiveToolbarButtonVariant.VOICE);
+
+        assertEquals(View.VISIBLE, voiceButton.getVisibility());
+    }
+
+    @Test
+    @EnableFeatures({ChromeFeatureList.ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION})
+    @DisableFeatures({ChromeFeatureList.VOICE_SEARCH_AUDIO_CAPTURE_POLICY})
+    public void testCanUseVoiceSearch_disabled() {
+        mFragment.setCanUseVoiceSearchForTesting(false);
+
+        RadioButtonGroupAdaptiveToolbarPreference radioButtonGroup = mFragment.findPreference(
+                AdaptiveToolbarPreferenceFragment.PREF_ADAPTIVE_RADIO_GROUP);
+        RadioButtonWithDescription voiceButton =
+                radioButtonGroup.getButton(AdaptiveToolbarButtonVariant.VOICE);
+
+        assertEquals(View.GONE, voiceButton.getVisibility());
+    }
+}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/Toolbar.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/Toolbar.java
index 058290e..38ea0b8 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/Toolbar.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/Toolbar.java
@@ -86,4 +86,10 @@
      * @return The primary color to use for the background drawable.
      */
     int getPrimaryColor();
+
+    /**
+     * Updates the visibility of the reload button.
+     * @param isReloading Whether or not the page is loading.
+     */
+    void updateReloadButtonVisibility(boolean isReloading);
 }
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java
index 5af4182..201262e 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java
@@ -398,11 +398,7 @@
         mToolbarLayout.updateForwardButtonVisibility(canGoForward);
     }
 
-    /**
-     * Gives inheriting classes the chance to update the visibility of the
-     * reload button.
-     * @param isReloading Whether or not the current tab is loading.
-     */
+    @Override
     public void updateReloadButtonVisibility(boolean isReloading) {
         mToolbarLayout.updateReloadButtonVisibility(isReloading);
     }
diff --git a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc
index 1c11f47..335a975 100644
--- a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc
+++ b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.cc
@@ -70,6 +70,10 @@
 void FakeAccessibilityController::ToggleDictationFromSource(
     ash::DictationToggleSource source) {}
 
+void FakeAccessibilityController::ShowDictationLanguageUpgradedNudge(
+    const std::string& dictation_locale,
+    const std::string& application_locale) {}
+
 void FakeAccessibilityController::HandleAutoclickScrollableBoundsFound(
     gfx::Rect& bounds_in_screen) {}
 
diff --git a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h
index d6d2160..c162abb 100644
--- a/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h
+++ b/chrome/browser/ui/ash/accessibility/fake_accessibility_controller.h
@@ -45,6 +45,9 @@
   void SetPointScanSpeedDipsPerSecond(
       int point_scan_speed_dips_per_second) override;
   void ToggleDictationFromSource(ash::DictationToggleSource source) override;
+  void ShowDictationLanguageUpgradedNudge(
+      const std::string& dictation_locale,
+      const std::string& application_locale) override;
   void HandleAutoclickScrollableBoundsFound(
       gfx::Rect& bounds_in_screen) override;
   std::u16string GetBatteryDescription() const override;
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc b/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc
index 0a4982c..cd07126 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc
+++ b/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.cc
@@ -30,8 +30,8 @@
 
 // Helpers ---------------------------------------------------------------------
 
-// Returns a download event state converted from the specified item `state`.
-crosapi::mojom::DownloadState ConvertToDownloadEventState(
+// Returns a mojo download state converted from the specified item `state`.
+crosapi::mojom::DownloadState ConvertToMojoDownloadState(
     download::DownloadItem::DownloadState state) {
   switch (state) {
     case download::DownloadItem::IN_PROGRESS:
@@ -47,41 +47,42 @@
   }
 }
 
-// Returns a download event converted from the specified `item`.
-crosapi::mojom::DownloadEventPtr ConvertToDownloadEvent(
+// Returns a mojo download item converted from the specified `item`.
+crosapi::mojom::DownloadItemPtr ConvertToMojoDownloadItem(
     const download::DownloadItem* item) {
-  auto download_event = crosapi::mojom::DownloadEvent::New();
-  download_event->guid = item->GetGuid();
-  download_event->state = ConvertToDownloadEventState(item->GetState());
-  download_event->target_file_path = item->GetTargetFilePath();
-  download_event->full_path = item->GetFullPath();
-  download_event->is_paused = item->IsPaused();
-  download_event->has_is_paused = true;
-  download_event->open_when_complete = item->GetOpenWhenComplete();
-  download_event->has_open_when_complete = true;
-  download_event->received_bytes = item->GetReceivedBytes();
-  download_event->has_received_bytes = true;
-  download_event->total_bytes = item->GetTotalBytes();
-  download_event->has_total_bytes = true;
+  auto mojo_download_item = crosapi::mojom::DownloadItem::New();
+  mojo_download_item->guid = item->GetGuid();
+  mojo_download_item->state = ConvertToMojoDownloadState(item->GetState());
+  mojo_download_item->target_file_path = item->GetTargetFilePath();
+  mojo_download_item->full_path = item->GetFullPath();
+  mojo_download_item->is_paused = item->IsPaused();
+  mojo_download_item->has_is_paused = true;
+  mojo_download_item->open_when_complete = item->GetOpenWhenComplete();
+  mojo_download_item->has_open_when_complete = true;
+  mojo_download_item->received_bytes = item->GetReceivedBytes();
+  mojo_download_item->has_received_bytes = true;
+  mojo_download_item->total_bytes = item->GetTotalBytes();
+  mojo_download_item->has_total_bytes = true;
 
   // NOTE: `browser_context` may be `nullptr` in tests.
   auto* browser_context = content::DownloadItemUtils::GetBrowserContext(item);
-  download_event->is_from_incognito_profile =
+  mojo_download_item->is_from_incognito_profile =
       browser_context
           ? Profile::FromBrowserContext(browser_context)->IsIncognitoProfile()
           : false;
 
-  return download_event;
+  return mojo_download_item;
 }
 
-// Returns whether the underlying download for the given `event` is complete.
-bool IsComplete(const crosapi::mojom::DownloadEvent* event) {
-  return event->state == crosapi::mojom::DownloadState::kComplete;
+// Returns whether the specified `mojo_download_item` is complete.
+bool IsComplete(const crosapi::mojom::DownloadItem* mojo_download_item) {
+  return mojo_download_item->state == crosapi::mojom::DownloadState::kComplete;
 }
 
-// Returns whether the underlying download for the given `event` is in progress.
-bool IsInProgress(const crosapi::mojom::DownloadEvent* event) {
-  return event->state == crosapi::mojom::DownloadState::kInProgress;
+// Returns whether the specified `mojo_download_item` is in progress.
+bool IsInProgress(const crosapi::mojom::DownloadItem* mojo_download_item) {
+  return mojo_download_item->state ==
+         crosapi::mojom::DownloadState::kInProgress;
 }
 
 // Returns whether the specified `download_item` is in progress.
@@ -93,19 +94,20 @@
 
 // HoldingSpaceDownloadsDelegate::InProgressDownload ---------------------------
 
-// A wrapper around an in-progress `crosapi::mojom::DownloadEvent` which
-// notifies its associated `delegate_` of changes in download state. Each
-// in-progress download is associated with a single in-progress holding space
-// item once the target file path for the in-progress download has been set.
-// NOTE: Instances of this class are immediately destroyed when the underlying
-// download is no longer in-progress or when the associated in-progress holding
-// space item is removed from the model.
+// A wrapper around an in-progress `crosapi::mojom::DownloadItem` which notifies
+// its associated `delegate_` of changes in download state. Each in-progress
+// download is associated with a single in-progress holding space item once the
+// target file path for the in-progress download has been set. NOTE: Instances
+// of this class are immediately destroyed when the underlying download is no
+// longer in-progress or when the associated in-progress holding space item is
+// removed from the model.
 class HoldingSpaceDownloadsDelegate::InProgressDownload {
  public:
   InProgressDownload(HoldingSpaceDownloadsDelegate* delegate,
-                     crosapi::mojom::DownloadEventPtr download_event)
-      : delegate_(delegate), download_event_(std::move(download_event)) {
-    DCHECK(IsInProgress(download_event_.get()));
+                     crosapi::mojom::DownloadItemPtr mojo_download_item)
+      : delegate_(delegate),
+        mojo_download_item_(std::move(mojo_download_item)) {
+    DCHECK(IsInProgress(mojo_download_item_.get()));
   }
 
   InProgressDownload(const InProgressDownload&) = delete;
@@ -128,23 +130,25 @@
   virtual void OpenWhenComplete() = 0;
 
   // Returns the number of bytes received for the underlying download.
-  int64_t GetReceivedBytes() const { return download_event_->received_bytes; }
+  int64_t GetReceivedBytes() const {
+    return mojo_download_item_->received_bytes;
+  }
 
   // Returns the file path associated with the underlying download.
   // NOTE: The file path may be empty before a target file path has been picked.
   base::FilePath GetFilePath() const {
-    return download_event_->full_path.value_or(base::FilePath());
+    return mojo_download_item_->full_path.value_or(base::FilePath());
   }
 
   // Returns the target file path associated with the underlying download.
   // NOTE: Returned path may be empty before a target file path has been picked.
   const base::FilePath& GetTargetFilePath() const {
-    return download_event_->target_file_path;
+    return mojo_download_item_->target_file_path;
   }
 
   // Returns the current progress of the underlying download.
   HoldingSpaceProgress GetProgress() const {
-    if (IsComplete(download_event_.get()))
+    if (IsComplete(mojo_download_item_.get()))
       return HoldingSpaceProgress();
     return HoldingSpaceProgress(GetReceivedBytes(), GetTotalBytes(),
                                 /*complete=*/false);
@@ -153,12 +157,12 @@
   // Returns the number of total bytes for the underlying download.
   // NOTE: The total number of bytes will be absent if unknown.
   absl::optional<int64_t> GetTotalBytes() const {
-    const int64_t total_bytes = download_event_->total_bytes;
+    const int64_t total_bytes = mojo_download_item_->total_bytes;
     return total_bytes >= 0 ? absl::make_optional(total_bytes) : absl::nullopt;
   }
 
   // Returns whether the underlying download is paused.
-  bool IsPaused() const { return download_event_->is_paused; }
+  bool IsPaused() const { return mojo_download_item_->is_paused; }
 
   // Associates this in-progress download with the specified in-progress
   // `holding_space_item`. NOTE: This association may be performed only once.
@@ -187,7 +191,7 @@
           return HoldingSpaceImage::CreateDefaultPlaceholderImageSkiaResolver()
               .Run(in_progress_download &&
                            IsInProgress(
-                               in_progress_download->download_event_.get())
+                               in_progress_download->mojo_download_item_.get())
                        ? in_progress_download->GetTargetFilePath()
                        : file_path,
                    size, dark_background, is_folder);
@@ -200,20 +204,20 @@
     // Only in-progress download items override primary text. In other cases,
     // the primary text will fall back to the lossy display name of the backing
     // file and be automatically updated in response to file system changes.
-    if (!IsInProgress(download_event_.get()))
+    if (!IsInProgress(mojo_download_item_.get()))
       return absl::nullopt;
-    return download_event_->target_file_path.BaseName().LossyDisplayName();
+    return mojo_download_item_->target_file_path.BaseName().LossyDisplayName();
   }
 
   // Returns the secondary text to display for the underlying download.
   absl::optional<std::u16string> GetSecondaryText() const {
     // Only in-progress download items have secondary text.
-    if (!IsInProgress(download_event_.get()))
+    if (!IsInProgress(mojo_download_item_.get()))
       return absl::nullopt;
 
     // In-progress download items which are marked to be opened when complete
     // have a special secondary text treatment.
-    if (download_event_->open_when_complete) {
+    if (mojo_download_item_->open_when_complete) {
       return l10n_util::GetStringUTF16(
           IDS_ASH_HOLDING_SPACE_IN_PROGRESS_DOWNLOAD_OPEN_WHEN_COMPLETE);
     }
@@ -238,7 +242,7 @@
       secondary_text = ui::FormatBytes(received_bytes);
     }
 
-    if (download_event_->is_paused) {
+    if (mojo_download_item_->is_paused) {
       // If the `item` is paused, prepend "Paused, " to the `secondary_text`
       // such that the string is of the form "Paused, 10/100 MB" or "Paused, 10
       // MB", depending on whether or not `total_bytes` is known.
@@ -251,18 +255,19 @@
   }
 
  protected:
-  // Updates the `download_event_` associated with this in-progress download,
-  // notifying `delegate_` of the change in state. Note that invoking this
-  // method may result in the destruction of `this`.
-  void UpdateDownloadEvent(crosapi::mojom::DownloadEventPtr download_event) {
-    download_event_ = std::move(download_event);
+  // Updates the `mojo_download_item_` associated with this in-progress
+  // download, notifying `delegate_` of the change in state. Note that invoking
+  // this method may result in the destruction of `this`.
+  void UpdateMojoDownloadItem(
+      crosapi::mojom::DownloadItemPtr mojo_download_item) {
+    mojo_download_item_ = std::move(mojo_download_item);
 
-    if (!download_event_) {
+    if (!mojo_download_item_) {
       delegate_->OnDownloadFailed(this);  // NOTE: Destroys `this`.
       return;
     }
 
-    switch (download_event_->state) {
+    switch (mojo_download_item_->state) {
       case crosapi::mojom::DownloadState::kInProgress:
         delegate_->OnDownloadUpdated(this);
         break;
@@ -281,7 +286,7 @@
 
  private:
   HoldingSpaceDownloadsDelegate* const delegate_;  // NOTE: Owns `this`.
-  crosapi::mojom::DownloadEventPtr download_event_;
+  crosapi::mojom::DownloadItemPtr mojo_download_item_;
 
   // The in-progress holding space item associated with this in-progress
   // download. NOTE: This may be `nullptr` until the target file path for the
@@ -304,7 +309,7 @@
  public:
   InProgressAshDownload(HoldingSpaceDownloadsDelegate* delegate,
                         download::DownloadItem* download_item)
-      : InProgressDownload(delegate, ConvertToDownloadEvent(download_item)),
+      : InProgressDownload(delegate, ConvertToMojoDownloadItem(download_item)),
         download_item_(download_item) {
     download_item_observation_.Observe(download_item);
   }
@@ -327,11 +332,11 @@
   void OnDownloadUpdated(download::DownloadItem* download_item) override {
     // NOTE: This method invocation may result in destruction of `this`,
     // depending on the state of the underlying download.
-    UpdateDownloadEvent(ConvertToDownloadEvent(download_item));
+    UpdateMojoDownloadItem(ConvertToMojoDownloadItem(download_item));
   }
 
   void OnDownloadDestroyed(download::DownloadItem* download_item) override {
-    UpdateDownloadEvent(nullptr);  // NOTE: Destroys `this`.
+    UpdateMojoDownloadItem(nullptr);  // NOTE: Destroys `this`.
   }
 
   download::DownloadItem* const download_item_;
@@ -524,15 +529,15 @@
 
 // TODO(crbug.com/1184438): Support in-progress downloads.
 void HoldingSpaceDownloadsDelegate::OnLacrosDownloadUpdated(
-    const crosapi::mojom::DownloadEvent& event) {
-  if (event.is_from_incognito_profile &&
+    const crosapi::mojom::DownloadItem& mojo_download_item) {
+  if (mojo_download_item.is_from_incognito_profile &&
       !features::IsHoldingSpaceIncognitoProfileIntegrationEnabled()) {
     return;
   }
 
-  if (event.state == crosapi::mojom::DownloadState::kComplete) {
+  if (mojo_download_item.state == crosapi::mojom::DownloadState::kComplete) {
     service()->AddDownload(ash::HoldingSpaceItem::Type::kLacrosDownload,
-                           event.target_file_path);
+                           mojo_download_item.target_file_path);
   }
 }
 
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.h b/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.h
index 638ace53..a4cf08f 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.h
+++ b/chrome/browser/ui/ash/holding_space/holding_space_downloads_delegate.h
@@ -75,7 +75,7 @@
 
   // crosapi::DownloadControllerAsh::DownloadControllerObserver:
   void OnLacrosDownloadUpdated(
-      const crosapi::mojom::DownloadEvent& event) override;
+      const crosapi::mojom::DownloadItem& download) override;
 
   // Invoked when the specified `in_progress_download` is updated.
   void OnDownloadUpdated(InProgressDownload* in_progress_download);
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc
index 16cb82b..ef3d27f1 100644
--- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc
+++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_browsertest.cc
@@ -805,9 +805,14 @@
   }
 
   bool FromIncognitoProfile() const { return std::get<1>(GetParam()); }
-
   bool IncognitoDownloadsEnabled() const { return std::get<2>(GetParam()); }
 
+  crosapi::DownloadControllerAsh* download_controller() {
+    return crosapi::CrosapiManager::Get()
+        ->crosapi_ash()
+        ->download_controller_ash();
+  }
+
  private:
   base::test::ScopedFeatureList scoped_feature_list;
 };
@@ -831,13 +836,10 @@
   // Create a test downloaded file.
   auto file_path = CreateTextFile(GetTestMountPoint(), "foo.txt");
 
-  // Create a corresponding `crosapi::mojom::DownloadEvent`.
-  crosapi::mojom::DownloadEventPtr dle = crosapi::mojom::DownloadEvent::New();
-  dle->target_file_path = file_path;
-  dle->is_from_incognito_profile = FromIncognitoProfile();
-
-  auto* download_controller =
-      crosapi::CrosapiManager::Get()->crosapi_ash()->download_controller_ash();
+  // Create a corresponding `crosapi::mojom::DownloadItem`.
+  auto download = crosapi::mojom::DownloadItem::New();
+  download->target_file_path = file_path;
+  download->is_from_incognito_profile = FromIncognitoProfile();
 
   // Only `crosapi::mojom::DownloadState::kComplete` events should currently do
   // anything. The rest should all be ignored.
@@ -846,13 +848,13 @@
        state <= static_cast<int>(DownloadState::kMaxValue); ++state) {
     if (state == static_cast<int>(crosapi::mojom::DownloadState::kComplete))
       continue;
-    dle->state = static_cast<DownloadState>(state);
-    download_controller->OnDownloadUpdated(dle.Clone());
+    download->state = static_cast<DownloadState>(state);
+    download_controller()->OnDownloadUpdated(download.Clone());
     ASSERT_EQ(0u, model->items().size());
   }
 
-  dle->state = crosapi::mojom::DownloadState::kComplete;
-  download_controller->OnDownloadUpdated(dle.Clone());
+  download->state = crosapi::mojom::DownloadState::kComplete;
+  download_controller()->OnDownloadUpdated(download.Clone());
   // Holding space should ignore a completed download from an incognito profile
   // if the feature flag is not enabled.
   if (FromIncognitoProfile() && !IncognitoDownloadsEnabled()) {
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu.cc
index 8e5f2fc..5b8e11a5 100644
--- a/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu.cc
+++ b/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu.cc
@@ -325,7 +325,8 @@
     return;
   }
 
-  if (app_type_ == apps::mojom::AppType::kWeb) {
+  if (app_type_ == apps::mojom::AppType::kWeb ||
+      app_type_ == apps::mojom::AppType::kSystemWeb) {
     BuildAppShortcutsMenu(std::move(menu_items), std::move(menu_model),
                           std::move(callback), shortcut_index);
     return;
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
index 65a44e2..1838ba3 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
@@ -52,7 +52,7 @@
 #include "chrome/browser/ui/startup/startup_tab_provider.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/webui/welcome/helpers.h"
-#include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
+#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
 #include "chrome/browser/web_applications/web_app_provider.h"
 #include "chrome/browser/web_applications/web_app_provider_factory.h"
 #include "chrome/common/chrome_switches.h"
@@ -385,7 +385,7 @@
 #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
 
   const bool whats_new_enabled =
-      promotional_tabs_enabled && WhatsNewUI::ShouldShowForState(local_state);
+      promotional_tabs_enabled && whats_new::ShouldShowForState(local_state);
 
   StartupTabs tabs = DetermineStartupTabs(
       StartupTabProviderImpl(), cmd_line_tabs, process_startup,
@@ -524,7 +524,7 @@
     } else {
       // Record the current version so that What's New will not be shown until
       // after the next major version update.
-      WhatsNewUI::SetLastVersion(g_browser_process->local_state());
+      whats_new::SetLastVersion(g_browser_process->local_state());
     }
   }
 
diff --git a/chrome/browser/ui/startup/startup_tab_provider.cc b/chrome/browser/ui/startup/startup_tab_provider.cc
index f632578..bc8310e 100644
--- a/chrome/browser/ui/startup/startup_tab_provider.cc
+++ b/chrome/browser/ui/startup/startup_tab_provider.cc
@@ -252,7 +252,8 @@
     bool whats_new_enabled) {
   StartupTabs tabs;
   if (whats_new_enabled) {
-    tabs.emplace_back(GURL(chrome::kChromeUIWhatsNewURL), false);
+    GURL url(chrome::kChromeUIWhatsNewURL);
+    tabs.emplace_back(net::AppendQueryParameter(url, "auto", "true"), false);
   }
   return tabs;
 }
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
index b620703b..3742073 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
@@ -45,9 +45,11 @@
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos.h"
+#include "chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
 #include "chrome/browser/ui/views/frame/immersive_mode_controller_chromeos.h"
+#include "chrome/browser/ui/views/frame/immersive_mode_tester.h"
 #include "chrome/browser/ui/views/frame/tab_strip_region_view.h"
 #include "chrome/browser/ui/views/frame/webui_tab_strip_container_view.h"
 #include "chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.h"
@@ -109,179 +111,6 @@
 #include "ui/views/window/caption_button_layout_constants.h"
 #include "ui/views/window/frame_caption_button.h"
 
-namespace {
-
-// Toggles fullscreen mode and waits for the notification.
-void ToggleFullscreenModeAndWait(Browser* browser) {
-  FullscreenNotificationObserver waiter(browser);
-  chrome::ToggleFullscreenMode(browser);
-  waiter.Wait();
-}
-
-// Enters fullscreen mode for tab and waits for the notification.
-void EnterFullscreenModeForTabAndWait(Browser* browser,
-                                      content::WebContents* web_contents) {
-  FullscreenNotificationObserver waiter(browser);
-  static_cast<content::WebContentsDelegate*>(browser)
-      ->EnterFullscreenModeForTab(web_contents->GetMainFrame(), {});
-  waiter.Wait();
-}
-
-// Exits fullscreen mode for tab and waits for the notification.
-void ExitFullscreenModeForTabAndWait(Browser* browser,
-                                     content::WebContents* web_contents) {
-  FullscreenNotificationObserver waiter(browser);
-  browser->exclusive_access_manager()
-      ->fullscreen_controller()
-      ->ExitFullscreenModeForTab(web_contents);
-  waiter.Wait();
-}
-
-void StartOverview() {
-  ash::Shell::Get()->overview_controller()->StartOverview(
-      ash::OverviewStartAction::kTests);
-}
-
-void EndOverview() {
-  ash::Shell::Get()->overview_controller()->EndOverview(
-      ash::OverviewEndAction::kTests);
-}
-
-bool IsShelfVisible() {
-  return ash::ShelfTestApi().IsVisible();
-}
-
-BrowserNonClientFrameViewChromeOS* GetFrameViewAsh(BrowserView* browser_view) {
-  // We know we're using Ash, so static cast.
-  auto* frame_view = static_cast<BrowserNonClientFrameViewChromeOS*>(
-      browser_view->GetWidget()->non_client_view()->frame_view());
-  DCHECK(frame_view);
-  return frame_view;
-}
-
-// Template to be used as a base class for touch-optimized UI parameterized test
-// fixtures.
-template <class BaseTest>
-class TopChromeMdParamTest : public BaseTest,
-                             public ::testing::WithParamInterface<bool> {
- public:
-  TopChromeMdParamTest() : touch_ui_scoper_(GetParam()) {}
-  ~TopChromeMdParamTest() override = default;
-
- private:
-  ui::TouchUiController::TouchUiScoperForTesting touch_ui_scoper_;
-};
-
-// Template used as a base class for touch-optimized UI test fixtures.
-template <class BaseTest>
-class TopChromeTouchTest : public BaseTest {
- public:
-  TopChromeTouchTest() : touch_ui_scoper_(true) {}
-  ~TopChromeTouchTest() override = default;
-
- private:
-  ui::TouchUiController::TouchUiScoperForTesting touch_ui_scoper_;
-};
-
-// Template to be used when a test does not work with the webUI tabstrip.
-template <bool kEnabled, class BaseTest>
-class WebUiTabStripOverrideTest : public BaseTest {
- public:
-  WebUiTabStripOverrideTest() {
-    if (kEnabled)
-      feature_override_.InitAndEnableFeature(features::kWebUITabStrip);
-    else
-      feature_override_.InitAndDisableFeature(features::kWebUITabStrip);
-  }
-  ~WebUiTabStripOverrideTest() override = default;
-
- private:
-  base::test::ScopedFeatureList feature_override_;
-};
-
-// A helper class for immersive mode tests.
-class ImmersiveModeTester : public ImmersiveModeController::Observer {
- public:
-  explicit ImmersiveModeTester(Browser* browser) : browser_(browser) {
-    scoped_observation_.Observe(GetBrowserView()->immersive_mode_controller());
-  }
-  ~ImmersiveModeTester() override = default;
-
-  BrowserView* GetBrowserView() {
-    return BrowserView::GetBrowserViewForBrowser(browser_);
-  }
-
-  // Runs the given command, verifies that a reveal happens and the expected tab
-  // is active.
-  void RunCommand(int command, int expected_index) {
-    reveal_started_ = reveal_ended_ = false;
-    browser_->command_controller()->ExecuteCommand(command);
-    VerifyTabIndexAfterReveal(expected_index);
-  }
-
-  // Verifies a reveal has happened and the expected tab is active.
-  void VerifyTabIndexAfterReveal(int expected_index) {
-    if (!reveal_ended_) {
-      reveal_loop_ = std::make_unique<base::RunLoop>();
-      reveal_loop_->Run();
-    }
-    EXPECT_TRUE(reveal_ended_);
-    EXPECT_EQ(expected_index, browser_->tab_strip_model()->active_index());
-  }
-
-  // Waits for the immersive fullscreen to end (or returns immediately if
-  // immersive fullscreen already ended).
-  void WaitForFullscreenToExit() {
-    if (GetBrowserView()->immersive_mode_controller()->IsEnabled()) {
-      fullscreen_loop_ = std::make_unique<base::RunLoop>();
-      fullscreen_loop_->Run();
-    }
-    ASSERT_FALSE(GetBrowserView()->immersive_mode_controller()->IsEnabled());
-  }
-
-  // ImmersiveModeController::Observer:
-  void OnImmersiveRevealStarted() override {
-    EXPECT_FALSE(reveal_started_);
-    EXPECT_FALSE(reveal_ended_);
-    reveal_started_ = true;
-    EXPECT_TRUE(GetBrowserView()->immersive_mode_controller()->IsRevealed());
-  }
-
-  void OnImmersiveRevealEnded() override {
-    EXPECT_TRUE(reveal_started_);
-    EXPECT_FALSE(reveal_ended_);
-    reveal_started_ = false;
-    reveal_ended_ = true;
-    EXPECT_FALSE(GetBrowserView()->immersive_mode_controller()->IsRevealed());
-    if (reveal_loop_ && reveal_loop_->running())
-      reveal_loop_->Quit();
-  }
-
-  void OnImmersiveModeControllerDestroyed() override {
-    DCHECK(scoped_observation_.IsObserving());
-    scoped_observation_.Reset();
-  }
-
-  void OnImmersiveFullscreenExited() override {
-    if (fullscreen_loop_ && fullscreen_loop_->running())
-      fullscreen_loop_->Quit();
-  }
-
- private:
-  Browser* browser_ = nullptr;
-  base::ScopedObservation<ImmersiveModeController,
-                          ImmersiveModeController::Observer>
-      scoped_observation_{this};
-  bool reveal_started_ = false;
-  bool reveal_ended_ = false;
-  std::unique_ptr<base::RunLoop> reveal_loop_;
-  std::unique_ptr<base::RunLoop> fullscreen_loop_;
-
-  DISALLOW_COPY_AND_ASSIGN(ImmersiveModeTester);
-};
-
-}  // namespace
-
 using views::Widget;
 
 using BrowserNonClientFrameViewChromeOSTest =
@@ -301,7 +130,8 @@
                        NonClientHitTest) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
   Widget* widget = browser_view->GetWidget();
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
 
   // Click on the top edge of a restored window hits the top edge resize handle.
   const int kWindowWidth = 300;
@@ -325,7 +155,8 @@
     BrowserNonClientFrameViewChromeOSTouchTestWithWebUiTabStrip,
     TabletSplitViewNonClientHitTest) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
   EXPECT_EQ(0, frame_view->GetBoundsForClientView().y());
 
   Widget* widget = browser_view->GetWidget();
@@ -343,7 +174,8 @@
     BrowserNonClientFrameViewChromeOSTouchTestWithWebUiTabStrip,
     TabletSplitViewSwipeDownFromEdgeOpensWebUiTabStrip) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
   EXPECT_EQ(0, frame_view->GetBoundsForClientView().y());
 
   Widget* widget = browser_view->GetWidget();
@@ -373,7 +205,8 @@
                        NonImmersiveFullscreen) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
   content::WebContents* web_contents = browser_view->GetActiveWebContents();
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
 
   // Frame paints by default.
   EXPECT_TRUE(frame_view->GetShouldPaint());
@@ -400,7 +233,8 @@
 IN_PROC_BROWSER_TEST_P(BrowserNonClientFrameViewChromeOSTestNoWebUiTabStrip,
                        AvatarDisplayOnTeleportedWindow) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
   aura::Window* window = browser()->window()->GetNativeWindow();
 
   EXPECT_FALSE(MultiUserWindowManagerHelper::ShouldShowAvatar(window));
@@ -437,10 +271,10 @@
       BrowserView::GetBrowserViewForBrowser(browser());
 
   StartOverview();
-  EXPECT_EQ(0, GetFrameViewAsh(browser_view)->GetTopInset(false));
+  EXPECT_EQ(0, GetFrameViewChromeOS(browser_view)->GetTopInset(false));
 
   EndOverview();
-  EXPECT_EQ(0, GetFrameViewAsh(browser_view)->GetTopInset(false));
+  EXPECT_EQ(0, GetFrameViewChromeOS(browser_view)->GetTopInset(false));
 }
 
 IN_PROC_BROWSER_TEST_P(BrowserNonClientFrameViewChromeOSTest,
@@ -455,7 +289,8 @@
 IN_PROC_BROWSER_TEST_P(BrowserNonClientFrameViewChromeOSTest,
                        FrameMinSizeIsUpdated) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
 
   BookmarkBarView* bookmark_bar = browser_view->GetBookmarkBarView();
   EXPECT_FALSE(bookmark_bar->GetVisible());
@@ -575,7 +410,8 @@
                        ImmersiveFullscreen) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
   content::WebContents* web_contents = browser_view->GetActiveWebContents();
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
 
   ImmersiveModeController* immersive_mode_controller =
       browser_view->immersive_mode_controller();
@@ -954,7 +790,7 @@
 
     browser_view_ = BrowserView::GetBrowserViewForBrowser(app_browser_);
     BrowserNonClientFrameViewChromeOS* frame_view =
-        GetFrameViewAsh(browser_view_);
+        GetFrameViewChromeOS(browser_view_);
     frame_header_ = static_cast<chromeos::DefaultFrameHeader*>(
         frame_view->frame_header_.get());
 
@@ -1082,7 +918,7 @@
 // height of the caption buttons.
 IN_PROC_BROWSER_TEST_P(WebAppNonClientFrameViewAshTest, FrameSize) {
   SetUpWebApp();
-  const int inset = GetFrameViewAsh(browser_view_)->GetTopInset(false);
+  const int inset = GetFrameViewChromeOS(browser_view_)->GetTopInset(false);
   EXPECT_EQ(inset, views::GetCaptionButtonLayoutSize(
                        views::CaptionButtonLayoutSize::kNonBrowserCaption)
                        .height());
@@ -1296,7 +1132,7 @@
                        ActiveStateOfButtonMatchesWidget) {
   SetUpWebApp();
   chromeos::FrameCaptionButtonContainerView::TestApi test(
-      GetFrameViewAsh(browser_view_)->caption_button_container_);
+      GetFrameViewChromeOS(browser_view_)->caption_button_container_);
   EXPECT_TRUE(test.size_button()->GetPaintAsActive());
   EXPECT_TRUE(GetPaintingAsActive());
 
@@ -1321,7 +1157,8 @@
   Browser* popup_browser = BrowserList::GetInstance()->GetLastActive();
   BrowserView* browser_view =
       BrowserView::GetBrowserViewForBrowser(popup_browser);
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
   EXPECT_FALSE(frame_view->web_app_frame_toolbar_for_testing());
 }
 
@@ -1360,7 +1197,8 @@
                        BrowserHeaderVisibilityInTabletModeTest) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
   Widget* widget = browser_view->GetWidget();
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
 
   widget->GetNativeWindow()->SetProperty(
       aura::client::kResizeBehaviorKey,
@@ -1399,7 +1237,7 @@
   BrowserView* browser_view2 = BrowserView::GetBrowserViewForBrowser(browser2);
   Widget* widget2 = browser_view2->GetWidget();
   BrowserNonClientFrameViewChromeOS* frame_view2 =
-      GetFrameViewAsh(browser_view2);
+      GetFrameViewChromeOS(browser_view2);
   widget2->GetNativeWindow()->SetProperty(
       aura::client::kResizeBehaviorKey,
       aura::client::kResizeBehaviorCanMaximize |
@@ -1513,7 +1351,8 @@
 IN_PROC_BROWSER_TEST_P(HomeLauncherBrowserNonClientFrameViewChromeOSTest,
                        TabletModeBrowserCaptionButtonVisibility) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
 
   EXPECT_TRUE(frame_view->caption_button_container_->GetVisible());
   ASSERT_NO_FATAL_FAILURE(
@@ -1539,8 +1378,8 @@
                        CaptionButtonVisibilityForBrowserLaunchedInTabletMode) {
   ASSERT_NO_FATAL_FAILURE(
       ash::ShellTestApi().SetTabletModeEnabledForTest(true));
-  EXPECT_FALSE(GetFrameViewAsh(BrowserView::GetBrowserViewForBrowser(
-                                   CreateBrowser(browser()->profile())))
+  EXPECT_FALSE(GetFrameViewChromeOS(BrowserView::GetBrowserViewForBrowser(
+                                        CreateBrowser(browser()->profile())))
                    ->caption_button_container_->GetVisible());
 }
 
@@ -1558,7 +1397,8 @@
   browser->window()->Show();
 
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
   EXPECT_TRUE(frame_view->caption_button_container_->GetVisible());
 
   // Tablet mode doesn't affect app's caption button's visibility.
@@ -1604,7 +1444,8 @@
 IN_PROC_BROWSER_TEST_P(TabSearchFrameCaptionButtonTest,
                        TabSearchBubbleHostTest) {
   BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
-  BrowserNonClientFrameViewChromeOS* frame_view = GetFrameViewAsh(browser_view);
+  BrowserNonClientFrameViewChromeOS* frame_view =
+      GetFrameViewChromeOS(browser_view);
   ASSERT_TRUE(browser()->is_type_normal());
 
   chromeos::FrameCaptionButtonContainerView::TestApi test(
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.cc
new file mode 100644
index 0000000..dec3173
--- /dev/null
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.cc
@@ -0,0 +1,74 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.h"
+
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_commands.h"
+#include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h"
+#include "chrome/browser/ui/exclusive_access/exclusive_access_test.h"
+#include "chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_contents_delegate.h"
+#include "third_party/blink/public/mojom/frame/fullscreen.mojom.h"
+#include "ui/views/widget/widget.h"
+#include "ui/views/window/non_client_view.h"
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "ash/public/cpp/shelf_test_api.h"
+#include "ash/shell.h"
+#include "ash/wm/overview/overview_controller.h"
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+
+// Toggles fullscreen mode and waits for the notification.
+void ToggleFullscreenModeAndWait(Browser* browser) {
+  FullscreenNotificationObserver waiter(browser);
+  chrome::ToggleFullscreenMode(browser);
+  waiter.Wait();
+}
+
+// Enters fullscreen mode for tab and waits for the notification.
+void EnterFullscreenModeForTabAndWait(Browser* browser,
+                                      content::WebContents* web_contents) {
+  FullscreenNotificationObserver waiter(browser);
+  static_cast<content::WebContentsDelegate*>(browser)
+      ->EnterFullscreenModeForTab(web_contents->GetMainFrame(), {});
+  waiter.Wait();
+}
+
+// Exits fullscreen mode for tab and waits for the notification.
+void ExitFullscreenModeForTabAndWait(Browser* browser,
+                                     content::WebContents* web_contents) {
+  FullscreenNotificationObserver waiter(browser);
+  browser->exclusive_access_manager()
+      ->fullscreen_controller()
+      ->ExitFullscreenModeForTab(web_contents);
+  waiter.Wait();
+}
+
+BrowserNonClientFrameViewChromeOS* GetFrameViewChromeOS(
+    BrowserView* browser_view) {
+  // We know we're using ChromeOS, so static cast.
+  auto* frame_view = static_cast<BrowserNonClientFrameViewChromeOS*>(
+      browser_view->GetWidget()->non_client_view()->frame_view());
+  DCHECK(frame_view);
+  return frame_view;
+}
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+void StartOverview() {
+  ash::Shell::Get()->overview_controller()->StartOverview(
+      ash::OverviewStartAction::kTests);
+}
+
+void EndOverview() {
+  ash::Shell::Get()->overview_controller()->EndOverview(
+      ash::OverviewEndAction::kTests);
+}
+
+bool IsShelfVisible() {
+  return ash::ShelfTestApi().IsVisible();
+}
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.h
new file mode 100644
index 0000000..40d27938
--- /dev/null
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.h
@@ -0,0 +1,44 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_NON_CLIENT_FRAME_VIEW_CHROMEOS_TEST_UTILS_H_
+#define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_NON_CLIENT_FRAME_VIEW_CHROMEOS_TEST_UTILS_H_
+
+#include "build/chromeos_buildflags.h"
+
+class Browser;
+class BrowserView;
+class BrowserNonClientFrameViewChromeOS;
+
+namespace content {
+class WebContents;
+}
+
+// Toggles fullscreen mode and waits for the notification.
+void ToggleFullscreenModeAndWait(Browser* browser);
+
+// Enters fullscreen mode for tab and waits for the notification.
+void EnterFullscreenModeForTabAndWait(Browser* browser,
+                                      content::WebContents* web_contents);
+
+// Exits fullscreen mode for tab and waits for the notification.
+void ExitFullscreenModeForTabAndWait(Browser* browser,
+                                     content::WebContents* web_contents);
+
+// Returns the non client frame view for |browser_view|.
+BrowserNonClientFrameViewChromeOS* GetFrameViewChromeOS(
+    BrowserView* browser_view);
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+// Starts overview session which displays an overview of all windows.
+void StartOverview();
+
+// Ends overview session.
+void EndOverview();
+
+// Returns true if the shelf is visible (e.g. not auto-hidden).
+bool IsShelfVisible();
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+
+#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_NON_CLIENT_FRAME_VIEW_CHROMEOS_TEST_UTILS_H_
diff --git a/chrome/browser/ui/views/frame/immersive_mode_tester.cc b/chrome/browser/ui/views/frame/immersive_mode_tester.cc
new file mode 100644
index 0000000..a16f21e
--- /dev/null
+++ b/chrome/browser/ui/views/frame/immersive_mode_tester.cc
@@ -0,0 +1,70 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/frame/immersive_mode_tester.h"
+
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_command_controller.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
+
+ImmersiveModeTester::ImmersiveModeTester(Browser* browser) : browser_(browser) {
+  scoped_observation_.Observe(GetBrowserView()->immersive_mode_controller());
+}
+
+ImmersiveModeTester::~ImmersiveModeTester() = default;
+
+BrowserView* ImmersiveModeTester::GetBrowserView() {
+  return BrowserView::GetBrowserViewForBrowser(browser_);
+}
+
+void ImmersiveModeTester::RunCommand(int command, int expected_index) {
+  reveal_started_ = reveal_ended_ = false;
+  browser_->command_controller()->ExecuteCommand(command);
+  VerifyTabIndexAfterReveal(expected_index);
+}
+
+void ImmersiveModeTester::VerifyTabIndexAfterReveal(int expected_index) {
+  if (!reveal_ended_) {
+    reveal_loop_ = std::make_unique<base::RunLoop>();
+    reveal_loop_->Run();
+  }
+  EXPECT_TRUE(reveal_ended_);
+  EXPECT_EQ(expected_index, browser_->tab_strip_model()->active_index());
+}
+
+void ImmersiveModeTester::WaitForFullscreenToExit() {
+  if (GetBrowserView()->immersive_mode_controller()->IsEnabled()) {
+    fullscreen_loop_ = std::make_unique<base::RunLoop>();
+    fullscreen_loop_->Run();
+  }
+  ASSERT_FALSE(GetBrowserView()->immersive_mode_controller()->IsEnabled());
+}
+
+void ImmersiveModeTester::OnImmersiveRevealStarted() {
+  EXPECT_FALSE(reveal_started_);
+  EXPECT_FALSE(reveal_ended_);
+  reveal_started_ = true;
+  EXPECT_TRUE(GetBrowserView()->immersive_mode_controller()->IsRevealed());
+}
+
+void ImmersiveModeTester::OnImmersiveRevealEnded() {
+  EXPECT_TRUE(reveal_started_);
+  EXPECT_FALSE(reveal_ended_);
+  reveal_started_ = false;
+  reveal_ended_ = true;
+  EXPECT_FALSE(GetBrowserView()->immersive_mode_controller()->IsRevealed());
+  if (reveal_loop_ && reveal_loop_->running())
+    reveal_loop_->Quit();
+}
+
+void ImmersiveModeTester::OnImmersiveModeControllerDestroyed() {
+  DCHECK(scoped_observation_.IsObserving());
+  scoped_observation_.Reset();
+}
+
+void ImmersiveModeTester::OnImmersiveFullscreenExited() {
+  if (fullscreen_loop_ && fullscreen_loop_->running())
+    fullscreen_loop_->Quit();
+}
diff --git a/chrome/browser/ui/views/frame/immersive_mode_tester.h b/chrome/browser/ui/views/frame/immersive_mode_tester.h
new file mode 100644
index 0000000..e6c52ede
--- /dev/null
+++ b/chrome/browser/ui/views/frame/immersive_mode_tester.h
@@ -0,0 +1,99 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_TESTER_H_
+#define CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_TESTER_H_
+
+#include <memory>
+
+#include "base/run_loop.h"
+#include "base/scoped_observation.h"
+#include "base/test/scoped_feature_list.h"
+#include "chrome/browser/ui/ui_features.h"
+#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/pointer/touch_ui_controller.h"
+
+class BrowserView;
+class Browser;
+
+// Template to be used as a base class for touch-optimized UI parameterized test
+// fixtures.
+template <class BaseTest>
+class TopChromeMdParamTest : public BaseTest,
+                             public ::testing::WithParamInterface<bool> {
+ public:
+  TopChromeMdParamTest() : touch_ui_scoper_(GetParam()) {}
+  ~TopChromeMdParamTest() override = default;
+
+ private:
+  ui::TouchUiController::TouchUiScoperForTesting touch_ui_scoper_;
+};
+
+// Template used as a base class for touch-optimized UI test fixtures.
+template <class BaseTest>
+class TopChromeTouchTest : public BaseTest {
+ public:
+  TopChromeTouchTest() : touch_ui_scoper_(true) {}
+  ~TopChromeTouchTest() override = default;
+
+ private:
+  ui::TouchUiController::TouchUiScoperForTesting touch_ui_scoper_;
+};
+
+// Template to be used when a test does not work with the webUI tabstrip.
+template <bool kEnabled, class BaseTest>
+class WebUiTabStripOverrideTest : public BaseTest {
+ public:
+  WebUiTabStripOverrideTest() {
+    if (kEnabled)
+      feature_override_.InitAndEnableFeature(features::kWebUITabStrip);
+    else
+      feature_override_.InitAndDisableFeature(features::kWebUITabStrip);
+  }
+  ~WebUiTabStripOverrideTest() override = default;
+
+ private:
+  base::test::ScopedFeatureList feature_override_;
+};
+
+// A helper class for immersive mode tests.
+class ImmersiveModeTester : public ImmersiveModeController::Observer {
+ public:
+  explicit ImmersiveModeTester(Browser* browser);
+  ImmersiveModeTester(const ImmersiveModeTester&) = delete;
+  ImmersiveModeTester& operator=(const ImmersiveModeTester&) = delete;
+  ~ImmersiveModeTester() override;
+
+  BrowserView* GetBrowserView();
+
+  // Runs the given command, verifies that a reveal happens and the expected tab
+  // is active.
+  void RunCommand(int command, int expected_index);
+
+  // Verifies a reveal has happened and the expected tab is active.
+  void VerifyTabIndexAfterReveal(int expected_index);
+
+  // Waits for the immersive fullscreen to end (or returns immediately if
+  // immersive fullscreen already ended).
+  void WaitForFullscreenToExit();
+
+  // ImmersiveModeController::Observer:
+  void OnImmersiveRevealStarted() override;
+  void OnImmersiveRevealEnded() override;
+  void OnImmersiveModeControllerDestroyed() override;
+  void OnImmersiveFullscreenExited() override;
+
+ private:
+  Browser* const browser_;
+  base::ScopedObservation<ImmersiveModeController,
+                          ImmersiveModeController::Observer>
+      scoped_observation_{this};
+  bool reveal_started_ = false;
+  bool reveal_ended_ = false;
+  std::unique_ptr<base::RunLoop> reveal_loop_;
+  std::unique_ptr<base::RunLoop> fullscreen_loop_;
+};
+
+#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_TESTER_H_
diff --git a/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc b/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc
index be0ce19..2d27f37 100644
--- a/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc
+++ b/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc
@@ -8,6 +8,7 @@
 #include "chrome/browser/sharing_hub/sharing_hub_model.h"
 #include "chrome/browser/ui/views/hover_button.h"
 #include "chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_view_impl.h"
+#include "chrome/grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/metadata/metadata_impl_macros.h"
 #include "ui/base/models/image_model.h"
@@ -58,6 +59,10 @@
       action_is_first_party_(action_info.is_first_party),
       action_name_for_metrics_(action_info.feature_name_for_metrics) {
   SetEnabled(true);
+  if (!action_is_first_party_) {
+    SetAccessibleName(l10n_util::GetStringFUTF16(
+        IDS_SHARING_HUB_SHARE_LABEL_ACCESSIBILITY, action_info.title));
+  }
 }
 
 SharingHubBubbleActionButton::~SharingHubBubbleActionButton() = default;
diff --git a/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.cc b/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.cc
index 6863af1..d4cb775d 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.cc
+++ b/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.cc
@@ -6,13 +6,18 @@
 
 #include <memory>
 
+#include "base/bind.h"
 #include "chrome/browser/ui/views/user_education/feature_promo_bubble_view.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 FeaturePromoBubbleTimeout::FeaturePromoBubbleTimeout(
     base::TimeDelta delay_no_interaction,
-    base::TimeDelta delay_after_interaction)
+    base::TimeDelta delay_after_interaction,
+    base::RepeatingClosure timeout_callback)
     : delay_no_interaction_(delay_no_interaction),
-      delay_after_interaction_(delay_after_interaction) {}
+      delay_after_interaction_(delay_after_interaction),
+      timeout_callback_(timeout_callback) {}
+FeaturePromoBubbleTimeout::~FeaturePromoBubbleTimeout() = default;
 
 void FeaturePromoBubbleTimeout::OnBubbleShown(
     FeaturePromoBubbleView* feature_promo_bubble_view) {
@@ -38,6 +43,12 @@
 
 void FeaturePromoBubbleTimeout::StartAutoCloseTimer(
     base::TimeDelta auto_close_duration) {
-  timer_.Start(FROM_HERE, auto_close_duration, feature_promo_bubble_view_,
-               &FeaturePromoBubbleView::CloseBubble);
+  timer_.Start(FROM_HERE, auto_close_duration, this,
+               &FeaturePromoBubbleTimeout::OnTimeout);
+}
+
+void FeaturePromoBubbleTimeout::OnTimeout() {
+  if (timeout_callback_)
+    timeout_callback_.Run();
+  feature_promo_bubble_view_->CloseBubble();
 }
diff --git a/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.h b/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.h
index 57686c31..2780206 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.h
+++ b/chrome/browser/ui/views/user_education/feature_promo_bubble_timeout.h
@@ -5,8 +5,10 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_PROMO_BUBBLE_TIMEOUT_H_
 #define CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_PROMO_BUBBLE_TIMEOUT_H_
 
+#include "base/bind.h"
 #include "base/macros.h"
 #include "base/timer/timer.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 class FeaturePromoBubbleView;
 
@@ -15,15 +17,21 @@
 class FeaturePromoBubbleTimeout {
  public:
   FeaturePromoBubbleTimeout(base::TimeDelta delay_no_interaction,
-                            base::TimeDelta delay_after_interaction);
+                            base::TimeDelta delay_after_interaction,
+                            base::RepeatingClosure timeout_callback);
+  ~FeaturePromoBubbleTimeout();
 
   void OnBubbleShown(FeaturePromoBubbleView* feature_promo_bubble_view);
   void OnMouseEntered();
   void OnMouseExited();
 
+  // Initiates callback on timeout of the timer and closes the bubble.
+  void OnTimeout();
+
  private:
   // Starts a timer to close the promo bubble.
   void StartAutoCloseTimer(base::TimeDelta auto_close_duration);
+
   // Timer used to auto close the bubble.
   base::OneShotTimer timer_;
 
@@ -32,6 +40,8 @@
   const base::TimeDelta delay_no_interaction_;
   const base::TimeDelta delay_after_interaction_;
 
+  base::RepeatingClosure timeout_callback_;
+
   DISALLOW_COPY_AND_ASSIGN(FeaturePromoBubbleTimeout);
 };
 
diff --git a/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc b/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc
index 6b3aa17..314e9d9 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc
+++ b/chrome/browser/ui/views/user_education/feature_promo_bubble_view.cc
@@ -195,7 +195,8 @@
         params.timeout_no_interaction ? *params.timeout_no_interaction
                                       : kDelayDefault,
         params.timeout_after_interaction ? *params.timeout_after_interaction
-                                         : kDelayShort);
+                                         : kDelayShort,
+        params.timeout_callback);
   }
 
   const std::u16string body_text = std::move(params.body_text);
@@ -368,6 +369,10 @@
   return new FeaturePromoBubbleView(std::move(params));
 }
 
+FeaturePromoBubbleTimeout* FeaturePromoBubbleView::GetTimeoutForTesting() {
+  return feature_promo_bubble_timeout_.get();
+}
+
 void FeaturePromoBubbleView::CloseBubble() {
   GetWidget()->Close();
 }
diff --git a/chrome/browser/ui/views/user_education/feature_promo_bubble_view.h b/chrome/browser/ui/views/user_education/feature_promo_bubble_view.h
index f07cc9db..fd0c952 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_bubble_view.h
+++ b/chrome/browser/ui/views/user_education/feature_promo_bubble_view.h
@@ -74,9 +74,12 @@
     absl::optional<int> tutorial_progress_current;
     absl::optional<int> tutorial_progress_max;
 
-    // Changes the bubble timeout. Intended for tests, avoid use.
+    // Changes the bubble timeout.
     absl::optional<base::TimeDelta> timeout_no_interaction;
     absl::optional<base::TimeDelta> timeout_after_interaction;
+
+    // Used to call feature specific logic on timeout.
+    base::RepeatingClosure timeout_callback;
   };
 
   // NOTE: Please read comment above class. This method shouldn't be
@@ -91,6 +94,8 @@
 
   views::Button* GetButtonForTesting(int index) const;
 
+  FeaturePromoBubbleTimeout* GetTimeoutForTesting();
+
  private:
   explicit FeaturePromoBubbleView(CreateParams params);
 
diff --git a/chrome/browser/ui/views/user_education/feature_promo_bubble_view_interactive_uitest.cc b/chrome/browser/ui/views/user_education/feature_promo_bubble_view_interactive_uitest.cc
index cfb9e241..3940808 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_bubble_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/user_education/feature_promo_bubble_view_interactive_uitest.cc
@@ -11,6 +11,7 @@
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/interactive_test_utils.h"
 #include "content/public/test/browser_test.h"
+#include "ui/events/base_event_utils.h"
 #include "ui/views/focus/focus_manager.h"
 #include "ui/views/test/widget_test.h"
 
@@ -69,3 +70,38 @@
   // Browser view should lose activation.
   EXPECT_FALSE(browser_view->GetWidget()->IsActive());
 }
+
+namespace {
+struct MockTimeoutTarget {
+  int count = 0;
+
+  void OnTimeout() { count++; }
+};
+}  // namespace
+
+IN_PROC_BROWSER_TEST_F(FeaturePromoBubbleViewInteractiveTest,
+                       FeaturePromoBubbleTimeout) {
+  auto params = GetBubbleParams();
+
+  base::TimeDelta interaction_time = base::TimeDelta::FromMilliseconds(1);
+  params.timeout_no_interaction = interaction_time;
+  params.timeout_after_interaction = interaction_time;
+
+  MockTimeoutTarget timeout_target;
+  params.timeout_callback = base::BindRepeating(
+      &MockTimeoutTarget::OnTimeout, base::Unretained(&timeout_target));
+
+  auto* const bubble = FeaturePromoBubbleView::Create(std::move(params));
+  views::test::WidgetVisibleWaiter(bubble->GetWidget()).Wait();
+
+  // Check that the timeout exists in the bubble.
+  FeaturePromoBubbleTimeout* timeout = bubble->GetTimeoutForTesting();
+  EXPECT_NE(nullptr, timeout);
+  EXPECT_EQ(0, timeout_target.count);
+
+  // Force the timeout codepath to be called
+  timeout->OnTimeout();
+
+  // Check that the timeout has occurred
+  EXPECT_EQ(1, timeout_target.count);
+}
diff --git a/chrome/browser/ui/views/user_education/feature_promo_controller_views.cc b/chrome/browser/ui/views/user_education/feature_promo_controller_views.cc
index b29ef020..5e7e3d60 100644
--- a/chrome/browser/ui/views/user_education/feature_promo_controller_views.cc
+++ b/chrome/browser/ui/views/user_education/feature_promo_controller_views.cc
@@ -331,6 +331,11 @@
         weak_ptr_factory_.GetWeakPtr(), *current_iph_feature_);
     create_params.buttons.push_back(std::move(dismiss_button));
 
+    // Snooze should dismiss the feature promo if it times out.
+    create_params.timeout_callback = base::BindRepeating(
+        &FeaturePromoControllerViews::OnUserDismiss,
+        weak_ptr_factory_.GetWeakPtr(), *current_iph_feature_);
+
     if (views::PlatformStyle::kIsOkButtonLeading)
       std::swap(create_params.buttons[0], create_params.buttons[1]);
   }
diff --git a/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc b/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc
index 6454b61..ed5e7ca7 100644
--- a/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc
+++ b/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc
@@ -63,6 +63,10 @@
     AddItem(IDC_BOOKMARK_BAR_REMOVE);
     AddSeparator(ui::NORMAL_SEPARATOR);
 
+    AddItem(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK);
+    AddItem(IDC_BOOKMARK_BAR_NEW_FOLDER);
+    AddSeparator(ui::NORMAL_SEPARATOR);
+
     AddItem(IDC_BOOKMARK_MANAGER);
   }
   ~BookmarkContextMenu() override = default;
diff --git a/chrome/browser/ui/webui/tab_search/tab_search.mojom b/chrome/browser/ui/webui/tab_search/tab_search.mojom
index 5e901da..f0cd6ac8 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search.mojom
+++ b/chrome/browser/ui/webui/tab_search/tab_search.mojom
@@ -9,12 +9,13 @@
 import "mojo/public/mojom/base/token.mojom";
 import "url/mojom/url.mojom";
 
-// Collection of window details associated with a profile.
+// Collection of tab searching details associated with a profile.
 struct ProfileData {
   array<Window> windows;
   array<TabGroup> tab_groups;
   array<RecentlyClosedTab> recently_closed_tabs;
   array<RecentlyClosedTabGroup> recently_closed_tab_groups;
+  bool recently_closed_section_expanded;
 };
 
 // Properties and tabs associated with a window.
@@ -163,6 +164,10 @@
   // Open a recently closed tab or tab group.
   OpenRecentlyClosedEntry(int32 session_id);
 
+  // Save a user's preference for the state of the expandable 'Recently Closed'
+  // list section.
+  SaveRecentlyClosedExpandedPref(bool expanded);
+
   // Notify the backend that the UI is ready to be shown.
   ShowUI();
 };
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
index 3896533..ebcf759 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
+++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
@@ -30,6 +30,7 @@
 #include "chrome/browser/ui/tabs/tab_renderer_data.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
 #include "chrome/browser/ui/ui_features.h"
+#include "chrome/browser/ui/webui/tab_search/tab_search_prefs.h"
 #include "chrome/browser/ui/webui/util/image_util.h"
 #include "chrome/common/webui_url_constants.h"
 #include "ui/base/l10n/time_format.h"
@@ -188,6 +189,11 @@
       WindowOpenDisposition::NEW_FOREGROUND_TAB);
 }
 
+void TabSearchPageHandler::SaveRecentlyClosedExpandedPref(bool expanded) {
+  Profile::FromWebUI(web_ui_)->GetPrefs()->SetBoolean(
+      tab_search_prefs::kTabSearchRecentlyClosedSectionExpanded, expanded);
+}
+
 void TabSearchPageHandler::ShowUI() {
   auto embedder = webui_controller_->embedder();
   if (embedder)
@@ -245,6 +251,10 @@
                            tab_group_ids, profile_data->tab_groups,
                            tab_dedup_keys);
   DCHECK(features::kTabSearchRecentlyClosedTabCountThreshold.Get() >= 0);
+
+  profile_data->recently_closed_section_expanded =
+      Profile::FromWebUI(web_ui_)->GetPrefs()->GetBoolean(
+          tab_search_prefs::kTabSearchRecentlyClosedSectionExpanded);
   return profile_data;
 }
 
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h
index 1ec80987..c9994b45 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h
+++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h
@@ -50,6 +50,7 @@
   void SwitchToTab(
       tab_search::mojom::SwitchToTabInfoPtr switch_to_tab_info) override;
   void OpenRecentlyClosedEntry(int32_t session_id) override;
+  void SaveRecentlyClosedExpandedPref(bool expanded) override;
   void ShowUI() override;
 
   // TabStripModelObserver:
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc b/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc
index 7d0baf8..522904f 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc
+++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc
@@ -742,4 +742,40 @@
   handler()->GetProfileData(std::move(callback1));
 }
 
+TEST_F(TabSearchPageHandlerTest, RecentlyClosedSectionExpandedUserPref) {
+  TabRestoreServiceFactory::GetInstance()->SetTestingFactory(
+      profile(),
+      base::BindRepeating(&TabSearchPageHandlerTest::GetTabRestoreService));
+
+  AddTabWithTitle(browser1(), GURL(kTabUrl1), kTabName1);
+  AddTabWithTitle(browser1(), GURL(kTabUrl2), kTabName2);
+
+  int tab_id = extensions::ExtensionTabUtil::GetTabId(
+      browser1()->tab_strip_model()->GetWebContentsAt(0));
+  handler()->CloseTab(tab_id);
+
+  EXPECT_CALL(page_, TabsRemoved(_)).Times(2);
+  EXPECT_CALL(page_, TabUpdated(_)).Times(1);
+
+  tab_search::mojom::PageHandler::GetProfileDataCallback callback1 =
+      base::BindLambdaForTesting(
+          [&](tab_search::mojom::ProfileDataPtr profile_tabs) {
+            auto& tabs = profile_tabs->windows[0]->tabs;
+            ASSERT_EQ(1u, tabs.size());
+            ExpectNewTab(tabs[0].get(), kTabUrl1, kTabName1, 0);
+            auto& recently_closed_tabs = profile_tabs->recently_closed_tabs;
+            ASSERT_EQ(1u, recently_closed_tabs.size());
+            ASSERT_TRUE(profile_tabs->recently_closed_section_expanded);
+          });
+  handler()->GetProfileData(std::move(callback1));
+
+  handler()->SaveRecentlyClosedExpandedPref(false);
+  tab_search::mojom::PageHandler::GetProfileDataCallback callback2 =
+      base::BindLambdaForTesting(
+          [&](tab_search::mojom::ProfileDataPtr profile_tabs) {
+            ASSERT_FALSE(profile_tabs->recently_closed_section_expanded);
+          });
+  handler()->GetProfileData(std::move(callback2));
+}
+
 }  // namespace
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_prefs.cc b/chrome/browser/ui/webui/tab_search/tab_search_prefs.cc
new file mode 100644
index 0000000..3b38561
--- /dev/null
+++ b/chrome/browser/ui/webui/tab_search/tab_search_prefs.cc
@@ -0,0 +1,20 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/tab_search/tab_search_prefs.h"
+#include "components/pref_registry/pref_registry_syncable.h"
+#include "components/prefs/pref_registry_simple.h"
+
+namespace tab_search_prefs {
+
+// Boolean pref indicating whether the Tab Search recently closed section is in
+// an expanded state.
+const char kTabSearchRecentlyClosedSectionExpanded[] =
+    "tab_search.recently_closed_expanded";
+
+void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+  registry->RegisterBooleanPref(kTabSearchRecentlyClosedSectionExpanded, true);
+}
+
+}  // namespace tab_search_prefs
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_prefs.h b/chrome/browser/ui/webui/tab_search/tab_search_prefs.h
new file mode 100644
index 0000000..f10e60b
--- /dev/null
+++ b/chrome/browser/ui/webui/tab_search/tab_search_prefs.h
@@ -0,0 +1,22 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_TAB_SEARCH_TAB_SEARCH_PREFS_H_
+#define CHROME_BROWSER_UI_WEBUI_TAB_SEARCH_TAB_SEARCH_PREFS_H_
+
+namespace user_prefs {
+
+class PrefRegistrySyncable;
+
+}  // namespace user_prefs
+
+namespace tab_search_prefs {
+
+extern const char kTabSearchRecentlyClosedSectionExpanded[];
+
+void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
+
+}  // namespace tab_search_prefs
+
+#endif  // CHROME_BROWSER_UI_WEBUI_TAB_SEARCH_TAB_SEARCH_PREFS_H_
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_ui.cc b/chrome/browser/ui/webui/tab_search/tab_search_ui.cc
index 90422806..0bc5e549 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search_ui.cc
+++ b/chrome/browser/ui/webui/tab_search/tab_search_ui.cc
@@ -51,6 +51,8 @@
       {"oneTab", IDS_TAB_SEARCH_ONE_TAB},
       {"tabCount", IDS_TAB_SEARCH_TAB_COUNT},
       {"recentlyClosed", IDS_TAB_SEARCH_RECENTLY_CLOSED},
+      {"recentlyClosedExpandA11yLabel",
+       IDS_TAB_SEARCH_EXPAND_RECENTLY_CLOSED_ENTRIES},
   };
   source->AddLocalizedStrings(kStrings);
   source->AddBoolean("useRipples", views::PlatformStyle::kUseRipples);
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_handler.cc b/chrome/browser/ui/webui/whats_new/whats_new_handler.cc
new file mode 100644
index 0000000..978671ad
--- /dev/null
+++ b/chrome/browser/ui/webui/whats_new/whats_new_handler.cc
@@ -0,0 +1,141 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/whats_new/whats_new_handler.h"
+
+#include "base/bind.h"
+#include "base/values.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
+#include "chrome/common/chrome_version.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/common/webui_url_constants.h"
+#include "components/bookmarks/common/bookmark_pref_names.h"
+#include "components/prefs/pref_change_registrar.h"
+#include "components/prefs/pref_service.h"
+#include "content/public/browser/storage_partition.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/cpp/simple_url_loader.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
+#include "url/gurl.h"
+
+const int64_t kMaxDownloadBytes = 1024 * 1024;
+
+WhatsNewHandler::WhatsNewHandler() = default;
+
+WhatsNewHandler::~WhatsNewHandler() = default;
+
+void WhatsNewHandler::RegisterMessages() {
+  web_ui()->RegisterMessageCallback(
+      "initialize", base::BindRepeating(&WhatsNewHandler::HandleInitialize,
+                                        base::Unretained(this)));
+}
+
+void WhatsNewHandler::OnJavascriptAllowed() {}
+
+void WhatsNewHandler::OnJavascriptDisallowed() {
+  weak_ptr_factory_.InvalidateWeakPtrs();
+}
+
+void WhatsNewHandler::HandleInitialize(const base::ListValue* args) {
+  CHECK_EQ(2U, args->GetSize());
+  std::string callback_id;
+  CHECK(args->GetString(0, &callback_id));
+  bool is_auto;
+  CHECK(args->GetBoolean(1, &is_auto));
+
+  AllowJavascript();
+  if (whats_new::g_force_enable_for_tests) {
+    // Just resolve with failure. This shows the error page which is all local
+    // content, so that we don't trigger potentially flaky network requests in
+    // tests.
+    ResolveJavascriptCallback(base::Value(callback_id), base::Value());
+    return;
+  }
+
+  Fetch(GURL(whats_new::kChromeWhatsNewURL),
+        base::BindOnce(&WhatsNewHandler::OnFetchResult,
+                       weak_ptr_factory_.GetWeakPtr(), callback_id, is_auto));
+}
+
+void WhatsNewHandler::Fetch(const GURL& url, OnFetchResultCallback on_result) {
+  auto traffic_annotation =
+      net::DefineNetworkTrafficAnnotation("whats_new_handler", R"(
+        semantics {
+          sender: "What's New Page"
+          description: "Attempts to fetch the content for the What's New page "
+            "to ensure it loads successfully."
+          trigger:
+            "Restarting Chrome after an update. Desktop only."
+          data:
+            "No data sent, other than URL of What's New. "
+            "Data does not contain PII."
+          destination: GOOGLE_OWNED_SERVICE
+        }
+        policy {
+          cookies_allowed: NO
+          setting:
+            "None"
+          chrome_policy {
+            PromotionalTabsEnabled {
+              PromotionalTabsEnabled: false
+            }
+          }
+        })");
+  Profile* profile = Profile::FromWebUI(web_ui());
+  auto url_loader_factory = profile->GetDefaultStoragePartition()
+                                ->GetURLLoaderFactoryForBrowserProcess();
+  auto request = std::make_unique<network::ResourceRequest>();
+  request->url = url;
+  auto loader =
+      network::SimpleURLLoader::Create(std::move(request), traffic_annotation);
+  loader->DownloadToString(url_loader_factory.get(),
+                           base::BindOnce(&WhatsNewHandler::OnResponseLoaded,
+                                          weak_ptr_factory_.GetWeakPtr(),
+                                          loader.get(), std::move(on_result)),
+                           kMaxDownloadBytes);
+  loader_map_.insert({loader.get(), std::move(loader)});
+}
+
+void WhatsNewHandler::OnResponseLoaded(const network::SimpleURLLoader* loader,
+                                       OnFetchResultCallback on_result,
+                                       std::unique_ptr<std::string> body) {
+  bool success = loader->NetError() == net::OK && loader->ResponseInfo() &&
+                 loader->ResponseInfo()->headers &&
+                 loader->ResponseInfo()->headers->response_code() >= 200 &&
+                 loader->ResponseInfo()->headers->response_code() <= 299 &&
+                 body;
+  std::move(on_result).Run(success, std::move(body));
+  loader_map_.erase(loader);
+}
+
+void WhatsNewHandler::OnFetchResult(const std::string& callback_id,
+                                    bool is_auto,
+                                    bool success,
+                                    std::unique_ptr<std::string> body) {
+  if (!success && is_auto) {
+    // Open NTP if the page wasn't retrieved and What's New was opened
+    // automatically.
+    Browser* browser = chrome::FindLastActive();
+    if (!browser)
+      return;
+
+    content::OpenURLParams params(GURL(chrome::kChromeUINewTabPageURL),
+                                  content::Referrer(),
+                                  WindowOpenDisposition::CURRENT_TAB,
+                                  ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
+    browser->OpenURL(params);
+  } else {
+    // Update pref if successfully shown automatically.
+    if (success && is_auto) {
+      whats_new::SetLastVersion(g_browser_process->local_state());
+    }
+    ResolveJavascriptCallback(
+        base::Value(callback_id),
+        success ? base::Value(whats_new::kChromeWhatsNewURL) : base::Value());
+  }
+}
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_handler.h b/chrome/browser/ui/webui/whats_new/whats_new_handler.h
new file mode 100644
index 0000000..41f5cf14
--- /dev/null
+++ b/chrome/browser/ui/webui/whats_new/whats_new_handler.h
@@ -0,0 +1,54 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_WHATS_NEW_WHATS_NEW_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_WHATS_NEW_WHATS_NEW_HANDLER_H_
+
+#include <unordered_map>
+
+#include "base/memory/weak_ptr.h"
+#include "content/public/browser/web_ui_message_handler.h"
+
+namespace base {
+class ListValue;
+}
+
+namespace network {
+class SimpleURLLoader;
+}
+
+// Page handler for chrome://whats-new.
+class WhatsNewHandler : public content::WebUIMessageHandler {
+ public:
+  WhatsNewHandler();
+  ~WhatsNewHandler() override;
+  WhatsNewHandler(const WhatsNewHandler&) = delete;
+  WhatsNewHandler& operator=(const WhatsNewHandler&) = delete;
+
+ private:
+  void HandleInitialize(const base::ListValue* args);
+  typedef base::OnceCallback<void(bool success,
+                                  std::unique_ptr<std::string> body)>
+      OnFetchResultCallback;
+  void Fetch(const GURL& url, OnFetchResultCallback on_result);
+  void OnResponseLoaded(const network::SimpleURLLoader* loader,
+                        OnFetchResultCallback on_result,
+                        std::unique_ptr<std::string> body);
+  void OnFetchResult(const std::string& callback_id,
+                     bool is_auto,
+                     bool success,
+                     std::unique_ptr<std::string> body);
+
+  // content::WebUIMessageHandler:
+  void RegisterMessages() override;
+  void OnJavascriptAllowed() override;
+  void OnJavascriptDisallowed() override;
+
+  std::unordered_map<const network::SimpleURLLoader*,
+                     std::unique_ptr<network::SimpleURLLoader>>
+      loader_map_;
+  base::WeakPtrFactory<WhatsNewHandler> weak_ptr_factory_{this};
+};
+
+#endif  // CHROME_BROWSER_UI_WEBUI_WHATS_NEW_WHATS_NEW_HANDLER_H_
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_ui.cc b/chrome/browser/ui/webui/whats_new/whats_new_ui.cc
index adfab6d..ca27e4f 100644
--- a/chrome/browser/ui/webui/whats_new/whats_new_ui.cc
+++ b/chrome/browser/ui/webui/whats_new/whats_new_ui.cc
@@ -5,11 +5,13 @@
 #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
 
 #include "base/feature_list.h"
+#include "base/strings/stringprintf.h"
 #include "base/version.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/webui/webui_util.h"
-#include "chrome/common/chrome_version.h"
+#include "chrome/browser/ui/webui/whats_new/whats_new_handler.h"
+#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/grit/generated_resources.h"
@@ -19,6 +21,7 @@
 #include "components/prefs/pref_service.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "services/network/public/mojom/content_security_policy.mojom.h"
 #include "ui/base/webui/web_ui_util.h"
 
 namespace {
@@ -36,7 +39,11 @@
       {"reloadButton", IDS_RELOAD},
   };
   source->AddLocalizedStrings(kStrings);
-
+  // Allow embedding of iframe from chrome.com
+  source->OverrideContentSecurityPolicy(
+      network::mojom::CSPDirectiveName::ChildSrc,
+      base::StringPrintf("child-src https: %s;",
+                         whats_new::kChromeWhatsNewURLShort));
   return source;
 }
 
@@ -47,34 +54,11 @@
   registry->RegisterIntegerPref(prefs::kLastWhatsNewVersion, 0);
 }
 
-// static
-bool WhatsNewUI::ShouldShowForState(PrefService* local_state) {
-  if (!local_state)
-    return false;
-
-  if (!base::FeatureList::IsEnabled(features::kChromeWhatsNewUI))
-    return false;
-
-  int last_version = local_state->GetInteger(prefs::kLastWhatsNewVersion);
-  return CHROME_VERSION_MAJOR > last_version;
-}
-
-// static
-void WhatsNewUI::SetLastVersion(PrefService* local_state) {
-  if (!local_state) {
-    return;
-  }
-
-  local_state->SetInteger(prefs::kLastWhatsNewVersion, CHROME_VERSION_MAJOR);
-}
-
 WhatsNewUI::WhatsNewUI(content::WebUI* web_ui) : WebUIController(web_ui) {
   content::WebUIDataSource* source =
       CreateWhatsNewUIHtmlSource(Profile::FromWebUI(web_ui));
   content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), source);
-
-  // TODO(rbpotter): Once we have a way to detect that the content has loaded
-  // successfully, update the kLastWhatsNewVersion pref.
+  web_ui->AddMessageHandler(std::make_unique<WhatsNewHandler>());
 }
 
 WhatsNewUI::~WhatsNewUI() = default;
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_ui.h b/chrome/browser/ui/webui/whats_new/whats_new_ui.h
index 24da7f1..f1af727 100644
--- a/chrome/browser/ui/webui/whats_new/whats_new_ui.h
+++ b/chrome/browser/ui/webui/whats_new/whats_new_ui.h
@@ -13,7 +13,6 @@
 }
 
 class PrefRegistrySimple;
-class PrefService;
 
 // The Web UI controller for the chrome://whats-new page.
 class WhatsNewUI : public content::WebUIController {
@@ -22,8 +21,6 @@
   ~WhatsNewUI() override;
 
   static void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
-  static bool ShouldShowForState(PrefService* local_state);
-  static void SetLastVersion(PrefService* local_state);
 
   WhatsNewUI(const WhatsNewUI&) = delete;
   WhatsNewUI& operator=(const WhatsNewUI&) = delete;
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_util.cc b/chrome/browser/ui/webui/whats_new/whats_new_util.cc
new file mode 100644
index 0000000..ebfc546
--- /dev/null
+++ b/chrome/browser/ui/webui/whats_new/whats_new_util.cc
@@ -0,0 +1,36 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
+#include "base/feature_list.h"
+#include "chrome/browser/ui/ui_features.h"
+#include "chrome/common/chrome_version.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/pref_service.h"
+
+namespace whats_new {
+const char kChromeWhatsNewURL[] = "https://www.google.com/chrome/whatsnew/";
+const char kChromeWhatsNewURLShort[] = "google.com/chrome/whatsnew/";
+
+bool g_force_enable_for_tests = false;
+
+bool ShouldShowForState(PrefService* local_state) {
+  if (!local_state)
+    return false;
+
+  if (!base::FeatureList::IsEnabled(features::kChromeWhatsNewUI))
+    return false;
+
+  int last_version = local_state->GetInteger(prefs::kLastWhatsNewVersion);
+  return CHROME_VERSION_MAJOR > last_version;
+}
+
+void SetLastVersion(PrefService* local_state) {
+  if (!local_state) {
+    return;
+  }
+
+  local_state->SetInteger(prefs::kLastWhatsNewVersion, CHROME_VERSION_MAJOR);
+}
+}  // namespace whats_new
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_util.h b/chrome/browser/ui/webui/whats_new/whats_new_util.h
new file mode 100644
index 0000000..47c6820
--- /dev/null
+++ b/chrome/browser/ui/webui/whats_new/whats_new_util.h
@@ -0,0 +1,22 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_WHATS_NEW_WHATS_NEW_UTIL_H_
+#define CHROME_BROWSER_UI_WEBUI_WHATS_NEW_WHATS_NEW_UTIL_H_
+
+class PrefService;
+
+namespace whats_new {
+extern const char kChromeWhatsNewURL[];
+extern const char kChromeWhatsNewURLShort[];
+
+// Allows tests to force What's New to stay open even if loading remote content
+// doesn't succeed, since this does not work in tests.
+extern bool g_force_enable_for_tests;
+
+bool ShouldShowForState(PrefService* local_state);
+void SetLastVersion(PrefService* local_state);
+}  // namespace whats_new
+
+#endif  // CHROME_BROWSER_UI_WEBUI_WHATS_NEW_WHATS_NEW_UTIL_H_
diff --git a/chrome/browser/ui/window_sizer/window_sizer.cc b/chrome/browser/ui/window_sizer/window_sizer.cc
index bbfa686..17262e7 100644
--- a/chrome/browser/ui/window_sizer/window_sizer.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer.cc
@@ -7,8 +7,8 @@
 #include <utility>
 
 #include "base/command_line.h"
-#include "base/cxx17_backports.h"
 #include "base/macros.h"
+#include "base/numerics/ranges.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
@@ -312,10 +312,12 @@
       !work_area.Contains(*bounds)) {
     bounds->set_width(std::min(bounds->width(), work_area.width()));
     bounds->set_height(std::min(bounds->height(), work_area.height()));
-    bounds->set_x(base::clamp(bounds->x(), work_area.x(),
-                              work_area.right() - bounds->width()));
-    bounds->set_y(base::clamp(bounds->y(), work_area.y(),
-                              work_area.bottom() - bounds->height()));
+    // TODO(crbug.com/1235666): Make sure these use correct ranges (lo <= hi)
+    // and migrate to base::clamp().
+    bounds->set_x(base::BrokenClampThatShouldNotBeUsed(
+        bounds->x(), work_area.x(), work_area.right() - bounds->width()));
+    bounds->set_y(base::BrokenClampThatShouldNotBeUsed(
+        bounds->y(), work_area.y(), work_area.bottom() - bounds->height()));
   }
 
 #if defined(OS_MAC)
@@ -343,8 +345,12 @@
   const int min_x = work_area.x() + kMinVisibleWidth - bounds->width();
   const int max_y = work_area.bottom() - kMinVisibleHeight;
   const int max_x = work_area.right() - kMinVisibleWidth;
-  bounds->set_y(base::clamp(bounds->y(), min_y, max_y));
-  bounds->set_x(base::clamp(bounds->x(), min_x, max_x));
+  // TODO(crbug.com/1235666): Make sure these use correct ranges (lo <= hi)
+  // and migrate to base::clamp().
+  bounds->set_y(
+      base::BrokenClampThatShouldNotBeUsed(bounds->y(), min_y, max_y));
+  bounds->set_x(
+      base::BrokenClampThatShouldNotBeUsed(bounds->x(), min_x, max_x));
 #endif  // defined(OS_MAC)
 }
 
diff --git a/chrome/browser/usb/web_usb_detector.cc b/chrome/browser/usb/web_usb_detector.cc
index b35d1d1a..340754c 100644
--- a/chrome/browser/usb/web_usb_detector.cc
+++ b/chrome/browser/usb/web_usb_detector.cc
@@ -184,14 +184,6 @@
 WebUsbDetector::~WebUsbDetector() = default;
 
 void WebUsbDetector::Initialize() {
-#if defined(OS_WIN)
-  // The WebUSB device detector is disabled on Windows due to jank and hangs
-  // caused by enumerating devices. The new USB backend is designed to resolve
-  // these issues so enable it for testing. https://crbug.com/656702
-  if (!base::FeatureList::IsEnabled(device::kNewUsbBackend))
-    return;
-#endif  // defined(OS_WIN)
-
   // Tests may set a fake manager.
   if (!device_manager_) {
     // Receive mojo::Remote<UsbDeviceManager> from DeviceService.
diff --git a/chrome/browser/web_applications/app_service/web_apps_chromeos_browsertest.cc b/chrome/browser/web_applications/app_service/web_apps_chromeos_browsertest.cc
index 994c48a..0ee8c660 100644
--- a/chrome/browser/web_applications/app_service/web_apps_chromeos_browsertest.cc
+++ b/chrome/browser/web_applications/app_service/web_apps_chromeos_browsertest.cc
@@ -18,6 +18,8 @@
 #include "chrome/browser/ui/web_applications/web_app_controller_browsertest.h"
 #include "chrome/browser/web_applications/components/web_app_id.h"
 #include "chrome/common/chrome_features.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/notification_service.h"
 #include "content/public/test/browser_test.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -25,6 +27,7 @@
 #include "ui/base/models/image_model.h"
 #include "ui/base/models/simple_menu_model.h"
 #include "ui/display/display.h"
+#include "ui/events/event_constants.h"
 #include "ui/gfx/image/image.h"
 #include "url/gurl.h"
 
@@ -82,7 +85,7 @@
   apps::AppServiceProxyFactory::GetForProfile(profile())
       ->FlushMojoCallsForTesting();
 
-  std::unique_ptr<ui::SimpleMenuModel> result;
+  std::unique_ptr<ui::SimpleMenuModel> menu_model;
   {
     ash::ShelfModel* const shelf_model = ash::ShelfModel::Get();
     shelf_model->PinAppWithID(app_id);
@@ -92,8 +95,9 @@
     delegate->GetContextMenu(
         display::Display::GetDefaultDisplay().id(),
         base::BindLambdaForTesting(
-            [&run_loop, &result](std::unique_ptr<ui::SimpleMenuModel> model) {
-              result = std::move(model);
+            [&run_loop,
+             &menu_model](std::unique_ptr<ui::SimpleMenuModel> model) {
+              menu_model = std::move(model);
               run_loop.Quit();
             }));
     run_loop.Run();
@@ -101,24 +105,32 @@
 
   // Shortcuts appear last in the context menu.
   // See /web_app_shortcuts/shortcuts.json for shortcut icon definitions.
-  int index = result->GetItemCount() - 11;
+  int index = menu_model->GetItemCount() - 11;
 
   // Purpose |any| by default.
-  CheckShortcut(*result, index++, 0, u"One", SK_ColorGREEN);
-  CheckSeparator(*result, index++);
+  CheckShortcut(*menu_model, index++, 0, u"One", SK_ColorGREEN);
+  CheckSeparator(*menu_model, index++);
   // Purpose |maskable| takes precedence over |any|.
-  CheckShortcut(*result, index++, 1, u"Two", SK_ColorBLUE);
-  CheckSeparator(*result, index++);
+  CheckShortcut(*menu_model, index++, 1, u"Two", SK_ColorBLUE);
+  CheckSeparator(*menu_model, index++);
   // Purpose |any|.
-  CheckShortcut(*result, index++, 2, u"Three", SK_ColorYELLOW);
-  CheckSeparator(*result, index++);
+  CheckShortcut(*menu_model, index++, 2, u"Three", SK_ColorYELLOW);
+  CheckSeparator(*menu_model, index++);
   // Purpose |any| and |maskable|.
-  CheckShortcut(*result, index++, 3, u"Four", SK_ColorCYAN);
-  CheckSeparator(*result, index++);
+  CheckShortcut(*menu_model, index++, 3, u"Four", SK_ColorCYAN);
+  CheckSeparator(*menu_model, index++);
   // Purpose |maskable|.
-  CheckShortcut(*result, index++, 4, u"Five", SK_ColorMAGENTA);
-  CheckSeparator(*result, index++);
+  CheckShortcut(*menu_model, index++, 4, u"Five", SK_ColorMAGENTA);
+  CheckSeparator(*menu_model, index++);
   // No icons.
-  CheckShortcut(*result, index++, 5, u"Six", absl::nullopt);
-  EXPECT_EQ(index, result->GetItemCount());
+  CheckShortcut(*menu_model, index++, 5, u"Six", absl::nullopt);
+  EXPECT_EQ(index, menu_model->GetItemCount());
+
+  const int command_id = ash::LAUNCH_APP_SHORTCUT_FIRST + 3;
+  ui_test_utils::UrlLoadObserver url_observer(
+      https_server()->GetURL("/web_app_shortcuts/shortcuts.html#four"),
+      content::NotificationService::AllSources());
+  menu_model->ActivatedAt(menu_model->GetIndexOfCommandId(command_id),
+                          ui::EF_LEFT_MOUSE_BUTTON);
+  url_observer.Wait();
 }
diff --git a/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.cc b/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.cc
index 8a0885eb..e76bd9ad 100644
--- a/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.cc
+++ b/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.cc
@@ -132,42 +132,11 @@
 
 SystemWebAppManagerBrowserTest::SystemWebAppManagerBrowserTest(
     bool install_mock)
-    : SystemWebAppBrowserTestBase(install_mock) {
+    : TestProfileTypeMixin<SystemWebAppBrowserTestBase>(install_mock) {
   if (install_mock) {
     maybe_installation_ =
         TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp();
   }
 }
 
-void SystemWebAppManagerBrowserTest::SetUpCommandLine(
-    base::CommandLine* command_line) {
-  SystemWebAppBrowserTestBase::SetUpCommandLine(command_line);
-  if (profile_type() == TestProfileType::kGuest) {
-    ConfigureCommandLineForGuestMode(command_line);
-  } else if (profile_type() == TestProfileType::kIncognito) {
-    command_line->AppendSwitch(::switches::kIncognito);
-  }
-}
-
-std::string SystemWebAppManagerTestParamsToString(
-    const ::testing::TestParamInfo<SystemWebAppManagerTestParams>& param_info) {
-  std::string output;
-
-  switch (std::get<0>(param_info.param)) {
-    case TestProfileType::kRegular:
-      break;
-    case TestProfileType::kIncognito:
-      output.append("_Incognito");
-      break;
-    case TestProfileType::kGuest:
-      output.append("_Guest");
-      break;
-  }
-  // The framework doesn't accept a blank param
-  if (output.empty()) {
-    output = "_Default";
-  }
-  return output;
-}
-
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.h b/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.h
index 4865def..15db816 100644
--- a/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.h
+++ b/chrome/browser/web_applications/system_web_apps/test/system_web_app_browsertest_base.h
@@ -106,47 +106,13 @@
 
 enum class InstallationType { kManifestInstall, kWebAppInfoInstall };
 
-using SystemWebAppManagerTestParams = std::tuple<TestProfileType>;
-
 class SystemWebAppManagerBrowserTest
-    : public SystemWebAppBrowserTestBase,
-      public ::testing::WithParamInterface<SystemWebAppManagerTestParams> {
+    : public TestProfileTypeMixin<SystemWebAppBrowserTestBase> {
  public:
   explicit SystemWebAppManagerBrowserTest(bool install_mock = true);
   ~SystemWebAppManagerBrowserTest() override = default;
-
-  TestProfileType profile_type() const { return std::get<0>(GetParam()); }
-
-  // InProcessBrowserTest:
-  void SetUpCommandLine(base::CommandLine* command_line) override;
 };
 
-std::string SystemWebAppManagerTestParamsToString(
-    const ::testing::TestParamInfo<SystemWebAppManagerTestParams>& param_info);
-
 }  // namespace web_app
 
-#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(SUITE, PARAMS) \
-  INSTANTIATE_TEST_SUITE_P(All, SUITE, PARAMS,                         \
-                           web_app::SystemWebAppManagerTestParamsToString)
-
-// Instantiates 3 versions of each test in |SUITE| to ensure coverage of
-// Guest and Incognito profiles, as well as regular profiles. This is currently
-// only used on ChromeOS. Other platforms will likely need a differently defined
-// macro because there is no such thing as Guest mode.
-#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_ALL_PROFILE_TYPES_P( \
-    SUITE)                                                                 \
-  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                         \
-      SUITE,                                                               \
-      ::testing::Values(TestProfileType::kRegular,                         \
-                        TestProfileType::kIncognito, TestProfileType::kGuest))
-
-#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_REGULAR_PROFILE_P(SUITE) \
-  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                             \
-      SUITE, ::testing::Values(TestProfileType::kRegular))
-
-#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_GUEST_SESSION_P(SUITE) \
-  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                           \
-      SUITE, ::testing::Values(TestProfileType::kGuest))
-
 #endif  // CHROME_BROWSER_WEB_APPLICATIONS_SYSTEM_WEB_APPS_TEST_SYSTEM_WEB_APP_BROWSERTEST_BASE_H_
diff --git a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc
index e76c8ef0..f85710ea 100644
--- a/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc
+++ b/chrome/browser/web_applications/system_web_apps/test/system_web_app_manager_browsertest.cc
@@ -238,15 +238,15 @@
 // EvalJs because of some quirks surrounding origin trials and content security
 // policies.
 class SystemWebAppManagerFileHandlingBrowserTestBase
-    : public SystemWebAppBrowserTestBase,
-      public ::testing::WithParamInterface<SystemWebAppManagerTestParams> {
+    : public TestProfileTypeMixin<SystemWebAppBrowserTestBase> {
  public:
   using IncludeLaunchDirectory =
       TestSystemWebAppInstallation::IncludeLaunchDirectory;
 
   explicit SystemWebAppManagerFileHandlingBrowserTestBase(
       IncludeLaunchDirectory include_launch_directory)
-      : SystemWebAppBrowserTestBase(/*install_mock=*/false) {
+      : TestProfileTypeMixin<SystemWebAppBrowserTestBase>(
+            /*install_mock=*/false) {
     scoped_feature_blink_api_.InitWithFeatures(
         {blink::features::kFileHandlingAPI}, {});
 
diff --git a/chrome/browser/web_applications/test/profile_test_helper.cc b/chrome/browser/web_applications/test/profile_test_helper.cc
index ce977a73..2c38f48 100644
--- a/chrome/browser/web_applications/test/profile_test_helper.cc
+++ b/chrome/browser/web_applications/test/profile_test_helper.cc
@@ -5,24 +5,39 @@
 #include "chrome/browser/web_applications/test/profile_test_helper.h"
 
 #include "base/notreached.h"
-#include "build/chromeos_buildflags.h"
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "ash/constants/ash_features.h"
 #include "ash/constants/ash_switches.h"
+#include "chrome/common/chrome_features.h"
 #include "components/account_id/account_id.h"
 #include "components/user_manager/user_names.h"
 #endif
 
 std::string TestProfileTypeToString(
-    const ::testing::TestParamInfo<TestProfileType>& info) {
-  switch (info.param) {
+    const ::testing::TestParamInfo<TestProfileParam>& info) {
+  std::string result;
+  switch (info.param.profile_type) {
     case TestProfileType::kRegular:
-      return "Regular";
+      result = "Regular";
+      break;
     case TestProfileType::kIncognito:
-      return "Incognito";
+      result = "Incognito";
+      break;
     case TestProfileType::kGuest:
-      return "Guest";
+      result = "Guest";
+      break;
   }
+
+  if (info.param.crosapi_state == web_app::test::CrosapiParam::kEnabled) {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+    result += "Crosapi";
+#else
+    NOTREACHED();
+#endif
+  }
+
+  return result;
 }
 
 void ConfigureCommandLineForGuestMode(base::CommandLine* command_line) {
@@ -37,3 +52,20 @@
   NOTREACHED();
 #endif
 }
+
+void InitCrosapiFeaturesForParam(
+    web_app::test::CrosapiParam crosapi_state,
+    base::test::ScopedFeatureList* scoped_feature_list) {
+  if (crosapi_state == web_app::test::CrosapiParam::kEnabled) {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+    scoped_feature_list->InitWithFeatures(
+        {chromeos::features::kLacrosSupport, features::kWebAppsCrosapi}, {});
+#else
+    NOTREACHED();
+#endif
+  } else {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+    scoped_feature_list->InitWithFeatures({}, {features::kWebAppsCrosapi});
+#endif
+  }
+}
diff --git a/chrome/browser/web_applications/test/profile_test_helper.h b/chrome/browser/web_applications/test/profile_test_helper.h
index 53106e22..eacb37e 100644
--- a/chrome/browser/web_applications/test/profile_test_helper.h
+++ b/chrome/browser/web_applications/test/profile_test_helper.h
@@ -8,27 +8,43 @@
 #include <string>
 
 #include "base/command_line.h"
+#include "base/test/scoped_feature_list.h"
+#include "build/chromeos_buildflags.h"
+#include "chrome/browser/web_applications/test/with_crosapi_param.h"
 #include "chrome/common/chrome_switches.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 // Profile type to test. Provided to subclasses of TestProfileTypeMixin via
-// GetParam().
+// get_profile().
 enum class TestProfileType {
   kRegular,
   kIncognito,
   kGuest,
 };
 
+// Profile type to test. Provided to subclasses of TestProfileTypeMixin via
+// GetParam().
+struct TestProfileParam {
+  typedef web_app::test::CrosapiParam CrosapiParam;
+
+  TestProfileType profile_type;
+  CrosapiParam crosapi_state = CrosapiParam::kDisabled;
+};
+
 // GTest string formatter for TestProfileType. Appends, e.g. "/Guest" to the end
 // of test names.
 std::string TestProfileTypeToString(
-    const ::testing::TestParamInfo<TestProfileType>& param);
+    const ::testing::TestParamInfo<TestProfileParam>& param);
 
 // Adds the necessary flags to |command_line| to start a browser test in guest
 // mode. Should be invoked in SetUpCommandLine(). Any test can call this: it is
 // not coupled to TestProfileTypeMixin. Should only be invoked on ChromeOS.
 void ConfigureCommandLineForGuestMode(base::CommandLine* command_line);
 
+void InitCrosapiFeaturesForParam(
+    web_app::test::CrosapiParam crosapi_state,
+    base::test::ScopedFeatureList* scoped_feature_list);
+
 // "Mixin" for configuring a test harness to parameterize on different profile
 // types. To use it, inherit from
 //     : public TestProfileTypeMixin<BaseBrowserTest>
@@ -46,16 +62,90 @@
 template <class T>
 class TestProfileTypeMixin
     : public T,
-      public ::testing::WithParamInterface<TestProfileType> {
+      public ::testing::WithParamInterface<TestProfileParam> {
  public:
+  template <class... Args>
+  explicit TestProfileTypeMixin(Args&&... args)
+      : T(std::forward<Args>(args)...) {
+    InitCrosapiFeaturesForParam(GetParam().crosapi_state,
+                                &scoped_feature_list_);
+  }
+
   void SetUpCommandLine(base::CommandLine* command_line) override {
-    if (GetParam() == TestProfileType::kGuest) {
+    if (profile_type() == TestProfileType::kGuest) {
       ConfigureCommandLineForGuestMode(command_line);
-    } else if (GetParam() == TestProfileType::kIncognito) {
+    } else if (profile_type() == TestProfileType::kIncognito) {
       command_line->AppendSwitch(::switches::kIncognito);
     }
     T::SetUpCommandLine(command_line);
   }
+
+  TestProfileType profile_type() const { return GetParam().profile_type; }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(SUITE, PARAMS) \
+  INSTANTIATE_TEST_SUITE_P(All, SUITE, PARAMS, TestProfileTypeToString)
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+// Instantiates 6 versions of each test in |SUITE| to ensure coverage of
+// Guest and Incognito profiles, as well as regular profiles. This is currently
+// only used on ChromeOS. Other platforms will likely need a differently defined
+// macro because there is no such thing as Guest mode.
+#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_ALL_PROFILE_TYPES_P(   \
+    SUITE)                                                                   \
+  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                           \
+      SUITE, ::testing::Values(                                              \
+                 TestProfileParam({TestProfileType::kRegular,                \
+                                   web_app::test::CrosapiParam::kDisabled}), \
+                 TestProfileParam({TestProfileType::kRegular,                \
+                                   web_app::test::CrosapiParam::kEnabled}),  \
+                 TestProfileParam({TestProfileType::kIncognito,              \
+                                   web_app::test::CrosapiParam::kDisabled}), \
+                 TestProfileParam({TestProfileType::kIncognito,              \
+                                   web_app::test::CrosapiParam::kEnabled}),  \
+                 TestProfileParam({TestProfileType::kGuest,                  \
+                                   web_app::test::CrosapiParam::kDisabled}), \
+                 TestProfileParam({TestProfileType::kGuest,                  \
+                                   web_app::test::CrosapiParam::kEnabled})))
+
+#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_REGULAR_PROFILE_P(SUITE) \
+  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                             \
+      SUITE, ::testing::Values(                                                \
+                 TestProfileParam({TestProfileType::kRegular,                  \
+                                   web_app::test::CrosapiParam::kDisabled}),   \
+                 TestProfileParam({TestProfileType::kRegular,                  \
+                                   web_app::test::CrosapiParam::kEnabled})))
+
+#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_GUEST_SESSION_P(SUITE) \
+  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                           \
+      SUITE, ::testing::Values(                                              \
+                 TestProfileParam({TestProfileType::kGuest,                  \
+                                   web_app::test::CrosapiParam::kDisabled}), \
+                 TestProfileParam({TestProfileType::kGuest,                  \
+                                   web_app::test::CrosapiParam::kEnabled})))
+#else
+// Instantiates 3 versions of each test in |SUITE| to ensure coverage of
+// Guest and Incognito profiles, as well as regular profiles. This is currently
+// only used on ChromeOS. Other platforms will likely need a differently defined
+// macro because there is no such thing as Guest mode.
+#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_ALL_PROFILE_TYPES_P( \
+    SUITE)                                                                 \
+  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                         \
+      SUITE,                                                               \
+      ::testing::Values(TestProfileParam({TestProfileType::kRegular}),     \
+                        TestProfileParam({TestProfileType::kIncognito}),   \
+                        TestProfileParam({TestProfileType::kGuest})))
+
+#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_REGULAR_PROFILE_P(SUITE) \
+  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                             \
+      SUITE, ::testing::Values(TestProfileParam({TestProfileType::kRegular})))
+
+#define INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_GUEST_SESSION_P(SUITE) \
+  INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_P(                           \
+      SUITE, ::testing::Values(TestProfileParam({TestProfileType::kGuest})))
+#endif
+
 #endif  // CHROME_BROWSER_WEB_APPLICATIONS_TEST_PROFILE_TEST_HELPER_H_
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index b1fad2a..fa9fb8f 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -101,6 +101,14 @@
 const base::Feature kChangePictureVideoMode{"ChangePictureVideoMode",
                                             base::FEATURE_ENABLED_BY_DEFAULT};
 
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+// Controls whether Chrome Apps are supported. See https://crbug.com/1221251.
+// If the feature is disabled, Chrome Apps continue to work. If enabled, Chrome
+// Apps will not launch and will be marked in the UI as deprecated.
+const base::Feature kChromeAppsDeprecation{"ChromeAppsDeprecation",
+                                           base::FEATURE_DISABLED_BY_DEFAULT};
+#endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+
 #if defined(OS_WIN)
 const base::Feature kChromeCleanupScanCompletedNotification{
     "ChromeCleanupScanCompletedNotification",
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index 1ccfc54..b0b0b8c 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -81,6 +81,11 @@
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kChangePictureVideoMode;
 
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::Feature kChromeAppsDeprecation;
+#endif
+
 #if defined(OS_WIN)
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kChromeCleanupScanCompletedNotification;
diff --git a/chrome/common/extensions/api/tab_capture.idl b/chrome/common/extensions/api/tab_capture.idl
index d0210c06..2b0f422 100644
--- a/chrome/common/extensions/api/tab_capture.idl
+++ b/chrome/common/extensions/api/tab_capture.idl
@@ -102,36 +102,6 @@
     // |callback| : Callback invoked with CaptureInfo[] for captured tabs.
     static void getCapturedTabs(GetCapturedTabsCallback callback);
 
-    // Creates an off-screen tab and navigates it to the given |startUrl|.
-    // Then, capture is started and a MediaStream is returned via |callback|.
-    //
-    // Off-screen tabs are isolated from the user's normal browser experience.
-    // They do not show up in the browser window or tab strip, nor are they
-    // visible to extensions (e.g., via the chrome.tabs.* APIs).
-    //
-    // An off-screen tab remains alive until one of three events occurs: 1. All
-    // MediaStreams providing its captured content are closed; 2. the page
-    // self-closes (e.g., via window.close()); 3. the extension that called
-    // captureOffscreenTab() is unloaded.
-    //
-    // Sandboxing: The off-screen tab does not have any access whatsoever to the
-    // local user profile (including cookies, HTTP auth, etc.).  Instead, it is
-    // provided its own sandboxed profile.  Also, it cannot access any
-    // interactive resources such as keyboard/mouse input, media recording
-    // devices (e.g., web cams), copy/paste to/from the system clipboard, etc.
-    //
-    // Note: This is a new API, currently only available in Canary/Dev channel,
-    // and may change without notice.
-    //
-    // |options| : Constraints for the capture and returned MediaStream.
-    // |callback| : Callback with either the tab capture MediaStream or
-    //   <code>null</code>.  <code>null</code> indicates an error has occurred
-    //   and the client may query $(ref:runtime.lastError) to access the error
-    //   details.
-    static void captureOffscreenTab(DOMString startUrl,
-                                    CaptureOptions options,
-                                    GetTabMediaCallback callback);
-
     // Creates a stream ID to capture the target tab.
     // Similar to chrome.tabCapture.capture() method, but returns a media
     // stream ID, instead of a media stream, to the consumer tab.
diff --git a/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
index f7c691c6..5c96b77 100644
--- a/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
@@ -51,5 +51,4 @@
   }
 
   apiFunctions.setCustomCallback('capture', proxyToGetUserMedia);
-  apiFunctions.setCustomCallback('captureOffscreenTab', proxyToGetUserMedia);
 });
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index bb47bea..b5bf6e80 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -441,6 +441,12 @@
   }
 
   if (is_chromeos) {
+    sources += [
+      "../browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.cc",
+      "../browser/ui/views/frame/browser_non_client_frame_view_chromeos_test_utils.h",
+      "../browser/ui/views/frame/immersive_mode_tester.cc",
+      "../browser/ui/views/frame/immersive_mode_tester.h",
+    ]
     deps += [ "//chromeos/dbus/constants" ]
   }
 
@@ -1625,6 +1631,8 @@
       "../browser/notifications/scheduler/notification_schedule_service_browsertest.cc",
       "../browser/ntp_tiles/ntp_tiles_browsertest.cc",
       "../browser/optimization_guide/blink/blink_optimization_guide_browsertest.cc",
+      "../browser/optimization_guide/browser_test_util.cc",
+      "../browser/optimization_guide/browser_test_util.h",
       "../browser/optimization_guide/hints_fetcher_browsertest.cc",
       "../browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc",
       "../browser/optimization_guide/page_content_annotations_service_browsertest.cc",
diff --git a/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/background.js b/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/background.js
new file mode 100644
index 0000000..15b7fef
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/background.js
@@ -0,0 +1,39 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+async function testSetAndGetValue(area) {
+  const expectedEntry = {background: area};
+  await new Promise((resolve) => {
+    chrome.storage[area].set(expectedEntry, resolve);
+  });
+  const actualEntry = await new Promise((resolve) => {
+    chrome.storage[area].get('background', resolve);
+  });
+  chrome.test.assertEq(expectedEntry, actualEntry);
+}
+
+chrome.test.runTests([
+  function checkDefaultAccessLevel() {
+    // Make sure `setAccessLevel` is only exposed to the `session` storage area.
+    chrome.test.assertFalse(!!chrome.storage.local.setAccessLevel);
+    chrome.test.assertFalse(!!chrome.storage.sync.setAccessLevel);
+    chrome.test.assertFalse(!!chrome.storage.managed.setAccessLevel);
+    chrome.test.assertTrue(!!chrome.storage.session.setAccessLevel);
+    chrome.test.succeed();
+  },
+  async function setValuesInBackgroundPage() {
+    await testSetAndGetValue('session');
+    await testSetAndGetValue('local');
+    await testSetAndGetValue('sync');
+    chrome.test.succeed();
+  },
+  function allowUntrustedAccessToSessionStorage() {
+    // Allow context scripts to access the `session` storage.
+    chrome.storage.session.setAccessLevel(
+        {accessLevel: 'TRUSTED_AND_UNTRUSTED_CONTEXTS'}, () => {
+          chrome.test.assertNoLastError();
+          chrome.test.succeed();
+        });
+  }
+]);
diff --git a/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/content_script.js b/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/content_script.js
new file mode 100644
index 0000000..4f41a570
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/content_script.js
@@ -0,0 +1,90 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Since the extension set the access level to TRUSTED_AND_UNTRUSTED_CONTEXTS,
+// all storage areas are accessible.
+const accessibleStorageAreas = ['sync', 'local', 'session'];
+
+async function testAccessibleStorageAreas(func, param) {
+  // Content scripts can access the storage when the storage area has untrusted
+  // access.
+  for (const area of accessibleStorageAreas) {
+    // If the param exists and to avoid mutating it, insert a copy of the param
+    // to each area params.
+    let areaParams = param ? [param] : [];
+    await new Promise((resolve) => {
+      areaParams.push(() => {
+        chrome.test.assertNoLastError();
+        resolve();
+      })
+      chrome.storage[area][func](...areaParams);
+    })
+  };
+};
+
+async function testGetValueSetByBackgroundPage() {
+  // Content scripts can access values set by the background page when the
+  // storage area has untrusted access. Requires that the background page
+  // previously stored {background: '`area`'} for each respective `area`.
+  for (const area of accessibleStorageAreas) {
+    await new Promise((resolve) => {
+      chrome.storage[area].get('background', (value) => {
+        chrome.test.assertEq({background: area}, value);
+        resolve();
+      });
+    })
+  };
+};
+
+chrome.test.runTests([
+  // This test must run before any other test clears the storage.
+  async function getValueSetByBackgroundPageFromContentScript() {
+    // `sync` and `local` storage areas can always access background page
+    // values. `session` storage area with `TRUSTED_AND_UNTRUSTED_CONTEXTS`
+    // access level can access background page values.
+    await testGetValueSetByBackgroundPage();
+    chrome.test.succeed();
+  },
+
+  async function setValueFromContentScript() {
+    await testAccessibleStorageAreas('set', {foo: 'bar'});
+    chrome.test.succeed();
+  },
+
+  async function getValueFromContentScript() {
+    await testAccessibleStorageAreas('get', 'foo');
+    chrome.test.succeed();
+  },
+
+  async function getBytesInUseFromContentScript() {
+    await testAccessibleStorageAreas('getBytesInUse', null)
+    chrome.test.succeed();
+  },
+
+  async function removeValueFromContentScript() {
+    await testAccessibleStorageAreas('remove', 'foo');
+    chrome.test.succeed();
+  },
+
+  async function clearValuesFromContentScript() {
+    await testAccessibleStorageAreas('clear')
+    chrome.test.succeed();
+  },
+
+  function setAccessLevelFromContentScript() {
+    // `setAccessLevel` is not exposed to `sync` or `local`.
+    chrome.test.assertFalse(!!chrome.storage.sync.setAccessLevel);
+    chrome.test.assertFalse(!!chrome.storage.local.setAccessLevel);
+    // TODO(crbug.com/1227410): `setAccessLevel` is exposed to `session` but
+    // cannot be accessed from a content script. This will change once we
+    // expose only `setAccessLevel` in privileged contexts.
+    chrome.test.assertTrue(!!chrome.storage.session.setAccessLevel);
+    chrome.storage.session.setAccessLevel(
+        {accessLevel: 'TRUSTED_CONTEXTS'}, () => {
+          chrome.test.assertLastError(
+              'Context cannot set the storage access level');
+          chrome.test.succeed();
+        });
+  },
+]);
diff --git a/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/manifest.json b/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/manifest.json
new file mode 100644
index 0000000..d57dd7c
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/content_scripts/storage_api_allow_untrusted_access/manifest.json
@@ -0,0 +1,16 @@
+{
+  "name": "content_script_storage_api_allow_untrusted_access",
+  "version": "1.0",
+  "manifest_version": 3,
+  "description": "Tests the Storage API behavior with untrusted access level from a content script (which means the extension allows storage access to the content script).",
+  "background": {
+    "service_worker": "background.js"
+  },
+  "permissions": ["storage"],
+  "content_scripts": [
+    {
+      "matches": ["http://*/extensions/test_file.html"],
+      "js": ["content_script.js"]
+    }
+  ]
+}
diff --git a/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/background.js b/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/background.js
new file mode 100644
index 0000000..b8f9d03
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/background.js
@@ -0,0 +1,23 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+async function testSetAndGetValue(area) {
+  const expectedEntry = {background: area};
+  await new Promise((resolve) => {
+    chrome.storage[area].set(expectedEntry, resolve);
+  });
+  const actualEntry = await new Promise((resolve) => {
+    chrome.storage[area].get('background', resolve);
+  });
+  chrome.test.assertEq(expectedEntry, actualEntry);
+}
+
+chrome.test.runTests([
+  async function setValuesInBackgroundPage() {
+    await testSetAndGetValue('session');
+    await testSetAndGetValue('local');
+    await testSetAndGetValue('sync');
+    chrome.test.succeed();
+  },
+]);
diff --git a/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/content_script.js b/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/content_script.js
new file mode 100644
index 0000000..cb1116a0
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/content_script.js
@@ -0,0 +1,111 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// `session` doesn't have storage access by default. All other storage areas are
+// accessible.
+const accessibleStorageAreas = ['sync', 'local'];
+const invalidAccessMessage =
+    'Access to storage is not allowed from this context.';
+
+async function testAccessibleStorageAreas(func, param) {
+  // `sync` and `local` storage areas have untrusted access level by default,
+  // thus content scripts can access the storage.
+  for (const area of accessibleStorageAreas) {
+    // If the param exists and to avoid mutating it, insert a copy of the param
+    // to each area params.
+    let areaParams = param ? [param] : [];
+    await new Promise((resolve) => {
+      areaParams.push(() => {
+        chrome.test.assertNoLastError();
+        resolve();
+      })
+      chrome.storage[area][func](...areaParams);
+    })
+  };
+};
+
+async function testInaccessibleStorageAreas(func, param) {
+  // `session` storage area has only trusted access level by default, thus
+  // content scripts cannot access the storage.
+  // If the param exists, insert a copy of the param to the area params.
+  let areaParams = param ? [param] : [];
+  await new Promise((resolve) => {
+    areaParams.push(() => {
+      chrome.test.assertLastError(invalidAccessMessage);
+      resolve();
+    })
+    chrome.storage.session[func](...areaParams);
+  })
+};
+
+async function testGetValueSetByBackgroundPage() {
+  // Content scripts can access values set by the background page when the
+  // storage area has untrusted access.
+  for (const area of accessibleStorageAreas) {
+    await new Promise((resolve) => {
+      chrome.storage[area].get('background', (value) => {
+        chrome.test.assertEq({background: area}, value);
+        resolve();
+      });
+    })
+  };
+};
+
+chrome.test.runTests([
+  // This test must run before any other test clears the storage.
+  async function getValueSetByBackgroundPageFromContentScript() {
+    // `sync` and `local` storage areas can access background page values by
+    // default.
+    await testGetValueSetByBackgroundPage();
+    // `session` storage area cannot access background page values by
+    // default.
+    await testInaccessibleStorageAreas('get', 'background');
+    chrome.test.succeed();
+  },
+
+  async function setValueFromContentScript() {
+    await testAccessibleStorageAreas('set', {foo: 'bar'});
+    await testInaccessibleStorageAreas('set', {foo: 'bar'});
+    chrome.test.succeed();
+  },
+
+  async function getValueFromContentScript() {
+    await testAccessibleStorageAreas('get', 'foo');
+    await testInaccessibleStorageAreas('get', 'foo');
+    chrome.test.succeed();
+  },
+
+  async function getBytesInUseFromContentScript() {
+    await testAccessibleStorageAreas('getBytesInUse', null);
+    await testInaccessibleStorageAreas('getBytesInUse', null);
+    chrome.test.succeed();
+  },
+
+  async function removeValueFromContentScript() {
+    await testAccessibleStorageAreas('remove', 'foo');
+    await testInaccessibleStorageAreas('remove', 'foo');
+    chrome.test.succeed();
+  },
+
+  async function clearValuesFromContentScript() {
+    await testAccessibleStorageAreas('clear');
+    await testInaccessibleStorageAreas('clear');
+    chrome.test.succeed();
+  },
+
+  function setAccessLevelFromContentScript() {
+    // `setAccessLevel` is not exposed to `sync` or `local`.
+    chrome.test.assertFalse(!!chrome.storage.sync.setAccessLevel);
+    chrome.test.assertFalse(!!chrome.storage.local.setAccessLevel);
+    // TODO(crbug.com/1227410): `setAccessLevel` is exposed to `session` but
+    // cannot be accessed from a content script. This will change once we only
+    // expose `setAccessLevel` in unblessed contexts.
+    chrome.test.assertTrue(!!chrome.storage.session.setAccessLevel);
+    chrome.storage.session.setAccessLevel(
+        {accessLevel: 'TRUSTED_CONTEXTS'}, () => {
+          chrome.test.assertLastError(invalidAccessMessage);
+          chrome.test.succeed();
+        });
+  }
+]);
diff --git a/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/manifest.json b/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/manifest.json
new file mode 100644
index 0000000..4b000771
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/content_scripts/storage_api_default_access/manifest.json
@@ -0,0 +1,16 @@
+{
+  "name": "content_script_storage_api_default_access",
+  "version": "1.0",
+  "manifest_version": 3,
+  "description": "Tests the Storage API behavior with default access level (trusted) from a content script.",
+  "background": {
+    "service_worker": "background.js"
+  },
+  "permissions": ["storage"],
+  "content_scripts": [
+    {
+      "matches": ["http://*/extensions/test_file.html"],
+      "js": ["content_script.js"]
+    }
+  ]
+}
diff --git a/chrome/test/data/extensions/api_test/settings/split_incognito/background.js b/chrome/test/data/extensions/api_test/settings/split_incognito/background.js
index 85ba2bf..df340c6 100644
--- a/chrome/test/data/extensions/api_test/settings/split_incognito/background.js
+++ b/chrome/test/data/extensions/api_test/settings/split_incognito/background.js
@@ -2,6 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// Whether we've seen an onChanged event fire since the last modification
+// we're listening for.
+let seenLatestEvent = false;
+// An optional function to invoke when an onChanged event is fired; used
+// to resolve a promise that waits for the event.
+let onEventSeen;
+
 ['sync', 'local', 'session'].forEach(function(namespace) {
   chrome.storage[namespace].notifications = {};
   chrome.storage.onChanged.addListener(function(changes, event_namespace) {
@@ -10,10 +17,28 @@
       Object.keys(changes).forEach(function(key) {
         notifications[key] = changes[key];
       });
+      seenLatestEvent = true;
+      if (onEventSeen)
+        onEventSeen();
     }
   });
 });
 
+function waitForEvent() {
+  return new Promise((resolve) => {
+    // If the event was already seen, resolve immediately.
+    if (seenLatestEvent) {
+      resolve();
+      return;
+    }
+    // Otherwise, wait for it to come in and then resolve.
+    onEventSeen = () => {
+      onEventSeen = undefined;
+      resolve();
+    };
+  })
+}
+
 // The test from C++ runs "actions", where each action is defined here.
 // This allows the test to be tightly controlled between incognito and
 // non-incognito modes.
@@ -36,9 +61,11 @@
     });
   },
   setFoo: function(callback) {
+    seenLatestEvent = false;
     this.set({foo: "bar"}, callback);
   },
   removeFoo: function(callback) {
+    seenLatestEvent = false;
     this.remove("foo", callback);
   },
   clear: function(callback) {
@@ -52,11 +79,19 @@
     this.notifications = {};
     callback();
   },
-  assertAddFooNotification: function(callback) {
+  assertAddFooNotification: async function(callback) {
+    // Wait for event to be dispatched before checking it was disptached.
+    // Workaround while we wait for https://crbug.com/1216449 fix.
+    await waitForEvent(this);
+    seenLatestEvent = false;
     chrome.test.assertEq({ foo: { newValue: 'bar' } }, this.notifications);
     callback();
   },
-  assertDeleteFooNotification: function(callback) {
+  assertDeleteFooNotification: async function(callback) {
+    // Wait for event to be dispatched before checking it was disptached.
+    // Workaround while we wait for https://crbug.com/1216449 fix.
+    await waitForEvent(this);
+    seenLatestEvent = false;
     chrome.test.assertEq({ foo: { oldValue: 'bar' } }, this.notifications);
     callback();
   }
diff --git a/chrome/test/data/extensions/api_test/tab_capture/api_tests.js b/chrome/test/data/extensions/api_test/tab_capture/api_tests.js
index e0ebd33..c354ab6 100644
--- a/chrome/test/data/extensions/api_test/tab_capture/api_tests.js
+++ b/chrome/test/data/extensions/api_test/tab_capture/api_tests.js
@@ -209,38 +209,6 @@
     });
   },
 
-  function offscreenTabsDoNotShowUpAsCapturedTabs() {
-    tabCapture.getCapturedTabs(function(tab_list_before) {
-      tabCapture.captureOffscreenTab(
-          helloWorldPageUri,
-          {video: true},
-          function(stream) {
-            chrome.test.assertTrue(!!stream);
-            tabCapture.getCapturedTabs(function(tab_list_after) {
-              assertIsSameSetOfTabs(tab_list_before, tab_list_after, 'tabId');
-              stream.getVideoTracks()[0].stop();
-              succeedOnCaptureStopped();
-            });
-          });
-    });
-  },
-
-  function offscreenTabsDoNotShowUpInTabsQuery() {
-    chrome.tabs.query({/* all tabs */}, function(tab_list_before) {
-      tabCapture.captureOffscreenTab(
-          helloWorldPageUri,
-          {video: true},
-          function(stream) {
-            chrome.test.assertTrue(!!stream);
-            chrome.tabs.query({/* all tabs */}, function(tab_list_after) {
-              assertIsSameSetOfTabs(tab_list_before, tab_list_after, 'id');
-              stream.getVideoTracks()[0].stop();
-              succeedOnCaptureStopped();
-            });
-          });
-    });
-  },
-
   function getMediaStreamIdWithCallerTab() {
     chrome.tabs.getCurrent(function(tab) {
       tabCapture.getMediaStreamId({consumerTabId: tab.id}, function(streamId) {
diff --git a/chrome/test/data/extensions/api_test/tab_capture/max_offscreen_tabs.html b/chrome/test/data/extensions/api_test/tab_capture/max_offscreen_tabs.html
deleted file mode 100644
index fe9dcf9c..0000000
--- a/chrome/test/data/extensions/api_test/tab_capture/max_offscreen_tabs.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<html>
-<body>
-</body>
-<script src="max_offscreen_tabs.js"></script>
-</html>
diff --git a/chrome/test/data/extensions/api_test/tab_capture/max_offscreen_tabs.js b/chrome/test/data/extensions/api_test/tab_capture/max_offscreen_tabs.js
deleted file mode 100644
index 9750c2f7..0000000
--- a/chrome/test/data/extensions/api_test/tab_capture/max_offscreen_tabs.js
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-var tabCapture = chrome.tabCapture;
-
-const helloWorldPageUri =
-    'data:text/html;charset=UTF-8,' +
-    encodeURIComponent(
-        '<html><body>Hello world!</body></html>' +
-        '<script>setTimeout(() => { window.close(); }, 3000);</script>');
-
-chrome.test.runTests([
- function canOpenUpToThreeOffscreenTabs() {
-   function stopAllStreams(streams) {
-     // Off-screen tabs remain alive until either all MediaStreams are closed,
-     // the page self-closes, or the extension that called captureOffscreenTab
-     // is unloaded.
-     for (var i = 0, end = streams.length; i < end; ++i) {
-       streams[i].getVideoTracks()[0].stop();
-
-       audio_track = streams[i].getAudioTracks()[0];
-       if (audio_track) {
-         audio_track.stop();
-       }
-     }
-   }
-
-   function launchTabsUntilLimitReached(streamsSoFar) {
-     tabCapture.captureOffscreenTab(
-         helloWorldPageUri,
-         {video: true},
-         function(stream) {
-           if (streamsSoFar.length == 4) {
-             // 5th off-screen tab capture should fail.
-             chrome.test.assertLastError(
-                 'Extension has already started too many off-screen tabs.');
-             chrome.test.assertFalse(!!stream);
-             stopAllStreams(streamsSoFar);
-             chrome.test.succeed();
-           } else if (stream) {
-             streamsSoFar.push(stream);
-             setTimeout(
-                 function() {
-                   launchTabsUntilLimitReached(streamsSoFar);
-                 }, 0);
-           } else {
-             console.error("Failed to capture stream, iter #" +
-                 streamsSoFar.length);
-             stopAllStreams(streamsSoFar);
-             chrome.test.fail();
-           }
-         });
-   }
-
-   launchTabsUntilLimitReached([]);
- }
-]);
diff --git a/chrome/test/data/extensions/api_test/tab_capture/offscreen_end_to_end.html b/chrome/test/data/extensions/api_test/tab_capture/offscreen_end_to_end.html
deleted file mode 100644
index c51ddbf..0000000
--- a/chrome/test/data/extensions/api_test/tab_capture/offscreen_end_to_end.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<body style="background-color: #224; width:100%; height:100%">
-<video id="video" autoplay style="position: absolute; top:0; bottom:0; left:0; right:0; margin:auto; border:none;"></video>
-</body>
-<script src="offscreen_test_harness.js"></script>
-<script src="offscreen_end_to_end.js"></script>
-</html>
diff --git a/chrome/test/data/extensions/api_test/tab_capture/offscreen_end_to_end.js b/chrome/test/data/extensions/api_test/tab_capture/offscreen_end_to_end.js
deleted file mode 100644
index 4d3f132..0000000
--- a/chrome/test/data/extensions/api_test/tab_capture/offscreen_end_to_end.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Returs a full HTML test document for the off-screen tab that renders rotating
-// color fills of red, then green, then blue.
-function makeRotatingColorTestDocument() {
-  return makeOffscreenTabTestDocument('\
-// The test pattern cycles as a color fill of red, then green, then blue.\n\
-var colors = [redColor, greenColor, blueColor];\n\
-\n\
-function colorRotationLoop() {\n\
-  if (!this.iterCount) {\n\
-    this.iterCount = 1;\n\
-  } else {\n\
-    ++this.iterCount;\n\
-  }\n\
-  if (!this.stepTimeMillis) {\n\
-    this.stepTimeMillis = 100;\n\
-  }\n\
-  var idx = this.iterCount % colors.length;\n\
-  if (idx == 0) {  // Completed a cycle.\n\
-    // Increase the wait time between switching test patterns for\n\
-    // overloaded bots that are not capturing all the frames of video.\n\
-    this.stepTimeMillis *= 1.25;\n\
-  }\n\
-  setFillColor(colors[idx]);\n\
-  setTimeout(colorRotationLoop, this.stepTimeMillis);\n\
-}\n\
-colorRotationLoop();');
-}
-
-// Observer side of this end-to-end test.  |stream| is monitored for each of the
-// three fill colors to be generated by the off-screen tab.  Once all three have
-// been observed, the test ends successfully.
-function waitForExpectedColorsAndEndTest(stream) {
-  // Elements from this array are removed as each color is observed.  When it
-  // becomes empty, the test succeeds.
-  var remainingColors = [[255, 0, 0], [0, 255, 0], [0, 0, 255]];
-
-  // Note: The range of acceptable colors is quite large because there's no way
-  // to know whether software compositing is being used for screen capture; and,
-  // if software compositing is being used, there is no color space management
-  // and color values can be off by a lot. That said, color accuracy is being
-  // tested by a suite of content_browsertests.
-  var colorDeviation = 50;
-
-  function onMatchedNextColor(idx) {
-    chrome.test.assertTrue(idx < remainingColors.length);
-    remainingColors.splice(idx, 1);
-    if (remainingColors.length == 0) {
-      stopAllTracks(stream);
-      chrome.test.succeed();
-    } else {
-      waitForAnExpectedColor(stream, remainingColors, colorDeviation,
-                             onMatchedNextColor);
-    }
-  }
-  waitForAnExpectedColor(stream, remainingColors, colorDeviation,
-                         onMatchedNextColor);
-}
-
-chrome.test.runTests([
-  function offscreenTabTest() {
-    chrome.tabCapture.captureOffscreenTab(
-        makeDataUriFromDocument(makeRotatingColorTestDocument()),
-        getCaptureOptions(),
-        waitForExpectedColorsAndEndTest);
-  }
-]);
diff --git a/chrome/test/data/extensions/api_test/tab_capture/offscreen_evil_tests.html b/chrome/test/data/extensions/api_test/tab_capture/offscreen_evil_tests.html
deleted file mode 100644
index b924b14..0000000
--- a/chrome/test/data/extensions/api_test/tab_capture/offscreen_evil_tests.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<body style="background-color: #224; width:100%; height:100%">
-<video id="video" autoplay style="position: absolute; top:0; bottom:0; left:0; right:0; margin:auto; border:none;"></video>
-</body>
-<script src="offscreen_test_harness.js"></script>
-<script src="offscreen_evil_tests.js"></script>
-</html>
diff --git a/chrome/test/data/extensions/api_test/tab_capture/offscreen_evil_tests.js b/chrome/test/data/extensions/api_test/tab_capture/offscreen_evil_tests.js
deleted file mode 100644
index 258ba4f..0000000
--- a/chrome/test/data/extensions/api_test/tab_capture/offscreen_evil_tests.js
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Waits until content sampled from |stream| indicates a success or fail status
-// from an off-screen tab page that renders a green (success) or red (fail)
-// color fill.
-function waitForGreenOrRedTestResultAndEndTest(stream) {
-  waitForAnExpectedColor(stream, [[255, 0, 0], [0, 255, 0]], 64,
-      function (result) {
-        stopAllTracks(stream);
-        if (result == 1) {
-          chrome.test.succeed();
-        } else {
-          // Fail after 3 seconds to allow examining the debug error message.
-          setTimeout(function () { chrome.test.fail(); }, 3000);
-        }
-      }
-  );
-}
-
-function waitForTabToCloseAndEndTest(stream) {
-  let check = () => {
-    if (!stream.getTracks().find(track => track.readyState != 'ended')) {
-      chrome.test.succeed();
-    }
-  };
-  check();
-  stream.getTracks().forEach(track => {
-    track.onended = check;
-  });
-}
-
-chrome.test.runTests([
-  function cannotAccessLocalResources() {
-    chrome.tabCapture.captureOffscreenTab(
-      makeDataUriFromDocument(makeOffscreenTabTestDocument(
-          'function failIfIsLoadable(url, runNextTest) {\n' +
-          '  var request = new XMLHttpRequest();\n' +
-          '  request.open("GET", url);\n' +
-          '  request.addEventListener("load", function () {\n' +
-          '    setDebugMessage(url);\n' +
-          '    setFillColor(redColor);\n' +
-          '  });\n' +
-          '  request.addEventListener("error", function () {\n' +
-          '    setTimeout(runNextTest, 0);\n' +
-          '  });' +
-          '  request.send();\n' +
-          '}\n' +
-          '\n' +
-          'failIfIsLoadable("file://something", function () {\n' +
-          '  failIfIsLoadable("chrome-extension://' + chrome.runtime.id +
-                             '/offscreen_evil_tests.js", function() {\n' +
-          '    setFillColor(greenColor);\n' +
-          '  });\n' +
-          '});')),
-      getCaptureOptions(),
-      waitForGreenOrRedTestResultAndEndTest);
-  },
-
-  function cannotOpenNewTabsOrDialogs() {
-    chrome.tabCapture.captureOffscreenTab(
-      makeDataUriFromDocument(makeOffscreenTabTestDocument(
-          'var wnd = window.open("data:text/html;charset=UTF-8,NOT SEEN");\n' +
-          'if (wnd) {\n' +
-          '  setDebugMessage("window.open() succeeded");\n' +
-          '  setFillColor(redColor);\n' +
-          '} else {\n' +
-          '  var result = window.confirm("Can you see me?");\n' +
-          '  if (result) {\n' +
-          '    setDebugMessage("positive confirm result");\n' +
-          '    setFillColor(redColor);\n' +
-          '  } else {\n' +
-          '    setFillColor(greenColor);\n' +
-          '  }\n' +
-          '}')),
-      getCaptureOptions(),
-      waitForGreenOrRedTestResultAndEndTest);
-  },
-
-  function cannotNavigateWhenPresenting() {
-    const captureOptions = getCaptureOptions();
-    captureOptions.presentationId = 'presentation_id';
-    chrome.tabCapture.captureOffscreenTab(
-      makeDataUriFromDocument(
-        '<html><script>' +
-        'window.location = "http://example.com/some_url.html";' +
-        '</script></html>'),
-      captureOptions,
-      waitForTabToCloseAndEndTest);
-    // NOTE: If this test times out, it means that one of the following did not
-    // happen:
-    // 1. page loaded
-    // 2. tab capture began
-    // 3. page attempted to navigate
-    // 4. page was closed by offscreen_tab.cc
-    // 5. MediaStreamTracks were ended
-  },
-
-  // NOTE: Before adding any more tests, the maximum off-screen tab limit would
-  // have to be increased (or a design issue resolved).  This is because
-  // off-screen tabs are not closed the instant the LocalMediaStream is stopped,
-  // but approximately 1 second later.
-]);
diff --git a/chrome/test/data/extensions/api_test/tab_capture/offscreen_test_harness.js b/chrome/test/data/extensions/api_test/tab_capture/offscreen_test_harness.js
deleted file mode 100644
index 95af5ee..0000000
--- a/chrome/test/data/extensions/api_test/tab_capture/offscreen_test_harness.js
+++ /dev/null
@@ -1,188 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This file contains a test harness for testing the behavior of pages running
-// inside off-screen tabs:
-//
-//   1. It provides a simple way to formulate a data URI containing a full HTML
-//      document that executes arbitrary script.  The arbitrary script running
-//      in the off-screen tab calls setFillColor() to expose its current state
-//      by rendering a color fill.  In addition, the off-screen tab continuously
-//      paints changes that force the tab capture implementation to continuously
-//      capture new video frames.
-//
-//   2. In the extension's JavaScript context, a waitAnForExpectedColor()
-//      function is provided to sample the video frames of the captured
-//      off-screen tab until the center pixel contains one of the colors in a
-//      set of expected colors.
-
-// Width/Height of off-screen tab, rendered content, and captured content.
-var width = 160;
-var height = 120;
-
-// Capture frame rate.
-var frameRate = 8;
-
-// Return a full HTML document that executes the |script|.  The script calls
-// setFillColor() to expose changes to its internal state.
-function makeOffscreenTabTestDocument(script) {
-  return '\
-<html><body style="background-color:black; margin:0; padding:0;"></body>\n\
-<script>\n\
-var redColor = [255, 0, 0];\n\
-var greenColor = [0, 255, 0];\n\
-var blueColor = [0, 0, 255];\n\
-\n\
-var fillColor = [0, 0, 0];\n\
-function setFillColor(color) {\n\
-  fillColor = color;\n\
-}\n\
-\n\
-var debugMessage = "";\n\
-function setDebugMessage(msg) {\n\
-  debugMessage = msg;\n\
-}\n\
-\n\
-function updateTestPattern() {\n\
-  if (!this.canvas) {\n\
-    this.canvas = document.createElement("canvas");\n\
-    this.canvas.width = ' + width + ';\n\
-    this.canvas.height = ' + height + ';\n\
-    this.canvas.style.position = "absolute";\n\
-    this.canvas.style.top = "0px";\n\
-    this.canvas.style.left = "0px";\n\
-    this.canvas.style.width = "100%";\n\
-    this.canvas.style.height = "100%";\n\
-    document.body.appendChild(this.canvas);\n\
-  }\n\
-  var context = this.canvas.getContext("2d");\n\
-  // Fill with solid color.\n\
-  context.fillStyle = "rgb(" + fillColor + ")";\n\
-  context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\
-  // Draw the circle that moves around the page.\n\
-  var inverseColor =\n\
-      [255 - fillColor[0], 255 - fillColor[1], 255 - fillColor[2]];\n\
-  if (debugMessage) {\n\
-    context.fillStyle = "rgb(" + inverseColor + ")";\n\
-    context.font = "xx-small monospace";\n\
-    context.fillText(debugMessage, 0, 0);\n\
-  }\n\
-  context.fillStyle = "rgba(" + inverseColor + ", 0.5)";\n\
-  context.beginPath();\n\
-  if (!this.frameNumber) {\n\
-    this.frameNumber = 1;\n\
-  } else {\n\
-    ++this.frameNumber;\n\
-  }\n\
-  var i = this.frameNumber % 200;\n\
-  var t = (this.frameNumber + 3000) * (0.01 + i / 8000.0);\n\
-  var x = (Math.sin(t) * 0.45 + 0.5) * this.canvas.width;\n\
-  var y = (Math.cos(t * 0.9) * 0.45 + 0.5) * this.canvas.height;\n\
-  context.arc(x, y, 16, 0, 2 * Math.PI, false);\n\
-  context.closePath();\n\
-  context.fill();\n\
-}\n\
-\n\
-function renderTestPatternLoop() {\n\
-  updateTestPattern();\n\
-  requestAnimationFrame(renderTestPatternLoop);\n\
-}\n\
-renderTestPatternLoop();\n\
-\n' +
-script + '\n\
-</script></html>';
-}
-
-// Return the given |html| document as an encoded data URI.
-function makeDataUriFromDocument(html) {
-  return 'data:text/html;charset=UTF-8,' + encodeURIComponent(html);
-}
-
-// Returns capture options for starting the off-screen tab.
-function getCaptureOptions() {
-  return {
-    video: true,
-    audio: false,
-    videoConstraints: {
-      mandatory: {
-        minWidth: width,
-        minHeight: height,
-        maxWidth: width,
-        maxHeight: height,
-        maxFrameRate: frameRate,
-      }
-    }
-  };
-}
-
-// Samples the video frames from a capture |stream|, testing the color of the
-// center pixel.  Once the pixel matches one of the colors in |expectedColors|,
-// run |callback| with the index of the matched color.  |colorDeviation| is used
-// to imprecisely match colors.
-function waitForAnExpectedColor(
-    stream, expectedColors, colorDeviation, callback) {
-  chrome.test.assertTrue(!!stream);
-  chrome.test.assertTrue(expectedColors.length > 0);
-  chrome.test.assertTrue(!!callback);
-
-  var video = document.getElementById('video');
-  chrome.test.assertTrue(!!video);
-
-  // If not yet done, plug the LocalMediaStream into the video element.
-  if (!this.stream || this.stream != stream) {
-    this.stream = stream;
-    video.srcObject = stream;
-    video.play();
-  }
-
-  // Create a canvas to sample frames from the video element.
-  if (!this.canvas) {
-    this.canvas = document.createElement("canvas");
-    this.canvas.width = width;
-    this.canvas.height = height;
-  }
-
-  // Only bother examining a video frame if the video timestamp has advanced.
-  var currentVideoTimestamp = video.currentTime;
-  if (!this.lastVideoTimestamp ||
-      this.lastVideoTimestamp < currentVideoTimestamp) {
-    this.lastVideoTimestamp = currentVideoTimestamp;
-
-    // Grab a snapshot of the center pixel of the video.
-    var ctx = this.canvas.getContext("2d");
-    ctx.drawImage(video, 0, 0, width, height);
-    var imageData = ctx.getImageData(width / 2, height / 2, 1, 1);
-    var pixel = [imageData.data[0], imageData.data[1], imageData.data[2]];
-
-    // Does the pixel match one of the expected colors?
-    for (var i = 0, end = expectedColors.length; i < end; ++i) {
-      var color = expectedColors[i];
-      if (Math.abs(pixel[0] - color[0]) <= colorDeviation &&
-          Math.abs(pixel[1] - color[1]) <= colorDeviation &&
-          Math.abs(pixel[2] - color[2]) <= colorDeviation) {
-        console.debug("Observed expected color RGB(" + color +
-            ") in the video as RGB(" + pixel + ")");
-        setTimeout(function () { callback(i); }, 0);
-        return;
-      }
-    }
-  }
-
-  // At this point, an expected color has not been observed.  Schedule another
-  // check after a short delay.
-  setTimeout(
-    function () {
-      waitForAnExpectedColor(stream, expectedColors, colorDeviation, callback);
-    },
-    1000 / frameRate);
-}
-
-// Stops all the tracks in a MediaStream.
-function stopAllTracks(stream) {
-  var tracks = stream.getTracks();
-  for (var i = 0, end = tracks.length; i < end; ++i) {
-    tracks[i].stop();
-  }
-  chrome.test.assertFalse(stream.active);
-}
diff --git a/chrome/test/data/webui/chromeos/shimless_rma/repair_component_chip_test.js b/chrome/test/data/webui/chromeos/shimless_rma/repair_component_chip_test.js
index 2d15e7f..67d8bf6 100644
--- a/chrome/test/data/webui/chromeos/shimless_rma/repair_component_chip_test.js
+++ b/chrome/test/data/webui/chromeos/shimless_rma/repair_component_chip_test.js
@@ -5,7 +5,7 @@
 import {RepairComponentChipElement} from 'chrome://shimless-rma/repair_component_chip.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
-import {flushTasks} from '../../test_util.m.js';
+import {flushTasks, isVisible} from '../../test_util.m.js';
 
 export function repairComponentChipElementTest() {
   /** @type {?RepairComponentChipElement} */
@@ -61,17 +61,25 @@
   test('ComponentToggleChecked', async () => {
     await initializeRepairComponentChip('cpu');
 
+    const checkIcon = component.shadowRoot.querySelector('#checkedIcon');
+
     await clickChip();
     assertTrue(component.checked);
+    assertTrue(isVisible(checkIcon));
 
     await clickChip();
     assertFalse(component.checked);
+    assertFalse(isVisible(checkIcon));
   });
 
   test('ComponentNoToggleOnDisabled', async () => {
     await initializeRepairComponentChip('cpu');
     component.disabled = true;
     await flushTasks();
+
+    const infoIcon = component.shadowRoot.querySelector('#infoIcon');
+    assertTrue(isVisible(infoIcon));
+
     await clickChip();
 
     assertFalse(component.checked);
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn
index c2edad8..e3cec78 100644
--- a/chrome/test/data/webui/settings/BUILD.gn
+++ b/chrome/test/data/webui/settings/BUILD.gn
@@ -99,7 +99,6 @@
     #":reset_page_test",
     #":reset_profile_banner_test",
     #":route_tests",
-    ":safety_check_chrome_cleaner_test",
     ":safety_check_page_test",
 
     #":search_engines_page_test",
@@ -166,6 +165,10 @@
     #":zoom_levels_tests",
   ]
 
+  if (is_win) {
+    deps += [ ":safety_check_chrome_cleaner_test" ]
+  }
+
   if (!is_chromeos_ash) {
     deps += [
       ":fake_language_settings_private",
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js
index 6f996b57..a932f21 100644
--- a/chrome/test/data/webui/settings/cr_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -392,6 +392,7 @@
   mocha.run();
 });
 
+GEN('#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)');
 // eslint-disable-next-line no-var
 var CrSettingsSafetyCheckChromeCleanerTest =
     class extends CrSettingsBrowserTest {
@@ -410,7 +411,6 @@
   }
 };
 
-GEN('#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)');
 TEST_F('CrSettingsSafetyCheckChromeCleanerTest', 'All', function() {
   mocha.run();
 });
diff --git a/chrome/test/data/webui/settings/reset_page_test.js b/chrome/test/data/webui/settings/reset_page_test.js
index a3b25bd..49badf49 100644
--- a/chrome/test/data/webui/settings/reset_page_test.js
+++ b/chrome/test/data/webui/settings/reset_page_test.js
@@ -29,7 +29,7 @@
 
   setup(function() {
     resetPageBrowserProxy = new TestResetBrowserProxy();
-    ResetBrowserProxyImpl.instance_ = resetPageBrowserProxy;
+    ResetBrowserProxyImpl.setInstance(resetPageBrowserProxy);
 
     PolymerTest.clearBody();
     resetPage = document.createElement('settings-reset-page');
diff --git a/chrome/test/data/webui/settings/reset_profile_banner_test.js b/chrome/test/data/webui/settings/reset_profile_banner_test.js
index 779f4b7..e6135ea 100644
--- a/chrome/test/data/webui/settings/reset_profile_banner_test.js
+++ b/chrome/test/data/webui/settings/reset_profile_banner_test.js
@@ -14,7 +14,7 @@
 
   setup(function() {
     browserProxy = new TestResetBrowserProxy();
-    ResetBrowserProxyImpl.instance_ = browserProxy;
+    ResetBrowserProxyImpl.setInstance(browserProxy);
     PolymerTest.clearBody();
     resetBanner = document.createElement('settings-reset-profile-banner');
     document.body.appendChild(resetBanner);
diff --git a/chrome/test/data/webui/tab_search/tab_search_app_test.js b/chrome/test/data/webui/tab_search/tab_search_app_test.js
index b931ca0..f42a5ce 100644
--- a/chrome/test/data/webui/tab_search/tab_search_app_test.js
+++ b/chrome/test/data/webui/tab_search/tab_search_app_test.js
@@ -9,7 +9,7 @@
 import {flushTasks, waitAfterNextRender} from '../../test_util.m.js';
 
 import {generateSampleDataFromSiteNames, generateSampleRecentlyClosedTabs, generateSampleTabsFromSiteNames, SAMPLE_RECENTLY_CLOSED_DATA, SAMPLE_WINDOW_DATA, SAMPLE_WINDOW_HEIGHT, sampleData, sampleToken} from './tab_search_test_data.js';
-import {initLoadTimeDataWithDefaults} from './tab_search_test_helper.js';
+import {initLoadTimeDataWithDefaults, initProfileDataWithDefaults} from './tab_search_test_helper.js';
 import {TestTabSearchApiProxy} from './test_tab_search_api_proxy.js';
 
 suite('TabSearchAppTest', () => {
@@ -38,16 +38,18 @@
   }
 
   /**
-   * @param {ProfileData} sampleData
+   * @param {!Object} sampleData A mock data object containing relevant profile
+   *     data for the test.
    * @param {Object=} loadTimeOverriddenData
    */
   async function setupTest(sampleData, loadTimeOverriddenData) {
-    testProxy = new TestTabSearchApiProxy();
-    testProxy.setProfileData(sampleData);
-    TabSearchApiProxyImpl.instance_ = testProxy;
-
+    initProfileDataWithDefaults(/** @type {ProfileData} */ (sampleData));
     initLoadTimeDataWithDefaults(loadTimeOverriddenData);
 
+    testProxy = new TestTabSearchApiProxy();
+    testProxy.setProfileData(/** @type {ProfileData} */ (sampleData));
+    TabSearchApiProxyImpl.instance_ = testProxy;
+
     tabSearchApp = /** @type {!TabSearchAppElement} */
         (document.createElement('tab-search-app'));
 
@@ -73,7 +75,6 @@
           }],
           recentlyClosedTabs: generateSampleRecentlyClosedTabs(
               'Sample Tab', sampleTabCount, sampleToken(0, 1)),
-          tabGroups: [],
           recentlyClosedTabGroups: [{
             sessionId: sampleSessionId,
             id: sampleToken(0, 1),
@@ -83,8 +84,11 @@
             lastActiveTime: {internalValue: BigInt(sampleTabCount + 1)},
             lastActiveElapsedText: ''
           }],
+          recentlyClosedSectionExpanded: true,
         },
-        {recentlyClosedDefaultItemDisplayCount: 5});
+        {
+          recentlyClosedDefaultItemDisplayCount: 5,
+        });
 
     tabSearchApp.shadowRoot.querySelector('#tabsList')
         .ensureAllDomItemsAvailable();
@@ -99,8 +103,7 @@
     await setupTest({
       windows: SAMPLE_WINDOW_DATA,
       recentlyClosedTabs: SAMPLE_RECENTLY_CLOSED_DATA,
-      tabGroups: [],
-      recentlyClosedTabGroups: [],
+      recentlyClosedSectionExpanded: true,
     });
     tabSearchApp.shadowRoot.querySelector('#tabsList')
         .ensureAllDomItemsAvailable();
@@ -118,10 +121,11 @@
           }],
           recentlyClosedTabs: generateSampleTabsFromSiteNames(
               ['RecentlyClosedTab1', 'RecentlyClosedTab2'], false),
-          tabGroups: [],
-          recentlyClosedTabGroups: [],
+          recentlyClosedSectionExpanded: true
         },
-        {recentlyClosedDefaultItemDisplayCount: 1});
+        {
+          recentlyClosedDefaultItemDisplayCount: 1,
+        });
 
     assertEquals(2, queryRows().length);
   });
@@ -136,8 +140,7 @@
     await setupTest({
       windows: SAMPLE_WINDOW_DATA,
       recentlyClosedTabs: SAMPLE_RECENTLY_CLOSED_DATA,
-      tabGroups: [],
-      recentlyClosedTabGroups: [],
+      recentlyClosedSectionExpanded: true,
     });
     const searchField = /** @type {!TabSearchSearchField} */
         (tabSearchApp.shadowRoot.querySelector('#searchField'));
@@ -164,7 +167,6 @@
           }],
           recentlyClosedTabs: generateSampleRecentlyClosedTabs(
               'Sample Tab', sampleTabCount, sampleToken(0, 1)),
-          tabGroups: [],
           recentlyClosedTabGroups: [({
             sessionId: sampleSessionId,
             id: sampleToken(0, 1),
@@ -174,8 +176,11 @@
             lastActiveTime: {internalValue: BigInt(sampleTabCount + 1)},
             lastActiveElapsedText: ''
           })],
+          recentlyClosedSectionExpanded: true,
         },
-        {recentlyClosedDefaultItemDisplayCount: 5});
+        {
+          recentlyClosedDefaultItemDisplayCount: 5,
+        });
 
     const searchField = /** @type {!TabSearchSearchField} */
         (tabSearchApp.shadowRoot.querySelector('#searchField'));
@@ -207,9 +212,6 @@
     };
     await setupTest({
       windows: [{active: true, tabs: [tabData]}],
-      recentlyClosedTabs: [],
-      tabGroups: [],
-      recentlyClosedTabGroups: [],
     });
 
     const tabSearchItem = /** @type {!HTMLElement} */
@@ -250,8 +252,7 @@
         }]
       }],
       recentlyClosedTabs: [tabData],
-      tabGroups: [],
-      recentlyClosedTabGroups: [],
+      recentlyClosedSectionExpanded: true
     });
 
     let tabSearchItem = /** @type {!HTMLElement} */
@@ -287,9 +288,8 @@
           url: {url: 'https://www.google.com'},
         }]
       }],
-      recentlyClosedTabs: [],
-      tabGroups: [],
       recentlyClosedTabGroups: [tabGroupData],
+      recentlyClosedSectionExpanded: true
     });
 
     let tabSearchItem = /** @type {!HTMLElement} */
@@ -306,9 +306,6 @@
   test('Keyboard navigation on an empty list', async () => {
     await setupTest({
       windows: [{active: true, tabs: []}],
-      recentlyClosedTabs: [],
-      tabGroups: [],
-      recentlyClosedTabGroups: [],
     });
 
     const searchField = /** @type {!TabSearchSearchField} */
@@ -395,7 +392,7 @@
       windows: [],
       recentlyClosedTabs: [],
       tabGroups: [],
-      recentlyClosedTabGroups: []
+      recentlyClosedTabGroups: [],
     });
     await flushTasks();
     verifyTabIds(queryRows(), []);
@@ -469,9 +466,6 @@
         height: SAMPLE_WINDOW_HEIGHT,
         tabs: generateSampleTabsFromSiteNames(['OpenTab1'], true),
       }],
-      recentlyClosedTabs: [],
-      tabGroups: [],
-      recentlyClosedTabGroups: [],
     });
     verifyTabIds(queryRows(), [1]);
 
@@ -666,18 +660,12 @@
     // Move active tab to the bottom of the list.
     await setupTest({
       windows: [{active: true, height: SAMPLE_WINDOW_HEIGHT, tabs}],
-      recentlyClosedTabs: [],
-      tabGroups: [],
-      recentlyClosedTabGroups: [],
     });
     verifyTabIds(queryRows(), [3, 1, 2]);
 
     await setupTest(
         {
           windows: [{active: true, height: SAMPLE_WINDOW_HEIGHT, tabs}],
-          recentlyClosedTabs: [],
-          tabGroups: [],
-          recentlyClosedTabGroups: [],
         },
         {'moveActiveTabToBottom': false});
     verifyTabIds(queryRows(), [2, 3, 1]);
@@ -704,9 +692,7 @@
 
     await setupTest({
       windows: [{active: true, height: SAMPLE_WINDOW_HEIGHT, tabs}],
-      recentlyClosedTabs: [],
       tabGroups: [tabGroup],
-      recentlyClosedTabGroups: [],
     });
 
     let tabSearchItem = /** @type {!HTMLElement} */ (
@@ -715,4 +701,38 @@
     assertEquals('Google', tabSearchItem.data.tab.title);
     assertEquals('Search Engines', tabSearchItem.data.tabGroup.title);
   });
+
+  test('Recently closed section collapse and expand', async () => {
+    await setupTest({
+      windows: [{
+        active: true,
+        height: SAMPLE_WINDOW_HEIGHT,
+        tabs: generateSampleTabsFromSiteNames(['SampleOpenTab'], true),
+      }],
+      recentlyClosedTabs: SAMPLE_RECENTLY_CLOSED_DATA,
+      recentlyClosedSectionExpanded: true,
+    });
+    assertEquals(3, queryRows().length);
+
+    const recentlyClosedTitleItem = /** @type {!HTMLElement} */
+        (tabSearchApp.shadowRoot.querySelector('#tabsList')
+             .querySelectorAll('.list-section-title')[1]);
+    assertNotEquals(null, recentlyClosedTitleItem);
+
+    const recentlyClosedTitleExpandButton = /** @type {!HTMLElement} */
+        (recentlyClosedTitleItem.querySelector('cr-expand-button'));
+    assertNotEquals(null, recentlyClosedTitleExpandButton);
+
+    // Collapse the `Recently Closed` section and assert item count.
+    recentlyClosedTitleExpandButton.click();
+    const [expanded] =
+        await testProxy.whenCalled('saveRecentlyClosedExpandedPref');
+    assertFalse(expanded);
+    assertEquals(1, queryRows().length);
+
+    // Expand the `Recently Closed` section and assert item count.
+    recentlyClosedTitleExpandButton.click();
+    assertEquals(2, testProxy.getCallCount('saveRecentlyClosedExpandedPref'));
+    assertEquals(3, queryRows().length);
+  });
 });
diff --git a/chrome/test/data/webui/tab_search/tab_search_test_helper.js b/chrome/test/data/webui/tab_search/tab_search_test_helper.js
index de8f8c8..a112030a 100644
--- a/chrome/test/data/webui/tab_search/tab_search_test_helper.js
+++ b/chrome/test/data/webui/tab_search/tab_search_test_helper.js
@@ -59,6 +59,24 @@
 }
 
 /**
+ * Initialize a mock ProfileData object with defaults that would be set
+ * by the Mojo IPC logic.
+ * @param {!ProfileData} profileData
+ */
+export function initProfileDataWithDefaults(profileData) {
+  // Initialize undefined array properties
+  ['tabGroups', 'recentlyClosedTabs', 'recentlyClosedTabGroups'].forEach(
+      (arrayProp) => {
+        if (!profileData.hasOwnProperty(arrayProp)) {
+          profileData[arrayProp] = [];
+        }
+      });
+  if (!profileData.hasOwnProperty('recentlyClosedSectionExpanded')) {
+    profileData.recentlyClosedSectionExpanded = false;
+  }
+}
+
+/**
  * Initialize the loadTimeData with the provided data and defaults.
  * @param {Object=} loadTimeOverriddenData
  */
diff --git a/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js b/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js
index e873010..9b188f4 100644
--- a/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js
+++ b/chrome/test/data/webui/tab_search/test_tab_search_api_proxy.js
@@ -14,6 +14,7 @@
       'getProfileData',
       'openRecentlyClosedEntry',
       'switchToTab',
+      'saveRecentlyClosedExpandedPref',
       'showUI',
     ]);
 
@@ -50,6 +51,11 @@
   }
 
   /** @override */
+  saveRecentlyClosedExpandedPref(expanded) {
+    this.methodCalled('saveRecentlyClosedExpandedPref', [expanded]);
+  }
+
+  /** @override */
   showUI() {
     this.methodCalled('showUI');
   }
diff --git a/chrome/test/media_router/media_router_integration_browsertest.cc b/chrome/test/media_router/media_router_integration_browsertest.cc
index 23182b66..be9a3d6 100644
--- a/chrome/test/media_router/media_router_integration_browsertest.cc
+++ b/chrome/test/media_router/media_router_integration_browsertest.cc
@@ -105,6 +105,7 @@
 
 void MediaRouterIntegrationBrowserTest::TearDownOnMainThread() {
   test_ui_->TearDown();
+  test_provider_->TearDown();
   InProcessBrowserTest::TearDownOnMainThread();
   test_navigation_observer_.reset();
 }
diff --git a/chrome/test/media_router/media_router_ui_for_test.cc b/chrome/test/media_router/media_router_ui_for_test.cc
index d1f483b..e74e578 100644
--- a/chrome/test/media_router/media_router_ui_for_test.cc
+++ b/chrome/test/media_router/media_router_ui_for_test.cc
@@ -257,7 +257,6 @@
     const std::string& sink_name) const {
   CastDialogSinkButton* sink_button = GetSinkButton(sink_name);
   if (!sink_button->sink().route) {
-    NOTREACHED() << "Route not found for sink " << sink_name;
     return "";
   }
   return sink_button->sink().route->media_route_id();
diff --git a/chromeos/components/eche_app_ui/eche_notification_click_handler.cc b/chromeos/components/eche_app_ui/eche_notification_click_handler.cc
index 3683fbdf..41255a4 100644
--- a/chromeos/components/eche_app_ui/eche_notification_click_handler.cc
+++ b/chromeos/components/eche_app_ui/eche_notification_click_handler.cc
@@ -16,28 +16,22 @@
     LaunchEcheAppFunction launch_eche_app_function,
     CloseEcheAppFunction close_eche_app_function)
     : feature_status_provider_(feature_status_provider),
-      launch_eche_app_function_(std::move(launch_eche_app_function)),
-      close_eche_app_function_(std::move(close_eche_app_function)) {
+      launch_eche_app_function_(launch_eche_app_function),
+      close_eche_app_function_(close_eche_app_function) {
   handler_ = phone_hub_manager->GetNotificationInteractionHandler();
-  DCHECK_NE(handler_, nullptr);
   feature_status_provider_->AddObserver(this);
-  if (handler_ != nullptr) {
-    if (IsClickable(feature_status_provider_->GetStatus())) {
-      handler_->AddNotificationClickHandler(this);
-      is_click_handler_set = true;
-    } else {
-      is_click_handler_set = false;
-    }
+  if (handler_ && IsClickable(feature_status_provider_->GetStatus())) {
+    handler_->AddNotificationClickHandler(this);
+    is_click_handler_set_ = true;
   } else {
     PA_LOG(INFO)
         << "No Phone Hub interaction handler to set Eche click handler";
-    is_click_handler_set = false;
   }
 }
 
 EcheNotificationClickHandler::~EcheNotificationClickHandler() {
   feature_status_provider_->RemoveObserver(this);
-  if (is_click_handler_set && handler_ != nullptr)
+  if (is_click_handler_set_ && handler_)
     handler_->RemoveNotificationClickHandler(this);
 }
 
@@ -48,22 +42,23 @@
 }
 
 void EcheNotificationClickHandler::OnFeatureStatusChanged() {
-  if (handler_ != nullptr) {
-    bool clickable = IsClickable(feature_status_provider_->GetStatus());
-    if (!is_click_handler_set && clickable) {
-      handler_->AddNotificationClickHandler(this);
-      is_click_handler_set = true;
-    } else if (is_click_handler_set && !clickable) {
-      handler_->RemoveNotificationClickHandler(this);
-      is_click_handler_set = false;
-      if (NeedClose(feature_status_provider_->GetStatus())) {
-        PA_LOG(INFO) << "Close Eche app window";
-        close_eche_app_function_.Run();
-      }
-    }
-  } else {
+  if (!handler_) {
     PA_LOG(INFO)
         << "No Phone Hub interaction handler to set Eche click handler";
+    return;
+  }
+
+  bool clickable = IsClickable(feature_status_provider_->GetStatus());
+  if (!is_click_handler_set_ && clickable) {
+    handler_->AddNotificationClickHandler(this);
+    is_click_handler_set_ = true;
+  } else if (is_click_handler_set_ && !clickable) {
+    handler_->RemoveNotificationClickHandler(this);
+    is_click_handler_set_ = false;
+    if (NeedClose(feature_status_provider_->GetStatus())) {
+      PA_LOG(INFO) << "Close Eche app window";
+      close_eche_app_function_.Run();
+    }
   }
 }
 
diff --git a/chromeos/components/eche_app_ui/eche_notification_click_handler.h b/chromeos/components/eche_app_ui/eche_notification_click_handler.h
index 7350b565..b8bbd4d7 100644
--- a/chromeos/components/eche_app_ui/eche_notification_click_handler.h
+++ b/chromeos/components/eche_app_ui/eche_notification_click_handler.h
@@ -23,31 +23,32 @@
 
 // Handles notification clicks originating from Phone Hub notifications.
 class EcheNotificationClickHandler : public phonehub::NotificationClickHandler,
-                                     FeatureStatusProvider::Observer {
+                                     public FeatureStatusProvider::Observer {
  public:
   using LaunchEcheAppFunction =
-      base::RepeatingCallback<void(int64_t, std::string)>;
+      base::RepeatingCallback<void(int64_t notification_id,
+                                   const std::string& package_name)>;
   using CloseEcheAppFunction = base::RepeatingCallback<void()>;
 
-  EcheNotificationClickHandler(phonehub::PhoneHubManager*,
-                               FeatureStatusProvider*,
-                               LaunchEcheAppFunction,
-                               CloseEcheAppFunction);
+  EcheNotificationClickHandler(phonehub::PhoneHubManager* phone_hub_manager,
+                               FeatureStatusProvider* feature_status_provider,
+                               LaunchEcheAppFunction launch_eche_app_function,
+                               CloseEcheAppFunction close_eche_app_function);
   ~EcheNotificationClickHandler() override;
 
   EcheNotificationClickHandler(const EcheNotificationClickHandler&) = delete;
   EcheNotificationClickHandler& operator=(const EcheNotificationClickHandler&) =
       delete;
 
-  // phonehub::NotificationClickHandler
+  // phonehub::NotificationClickHandler:
   void HandleNotificationClick(
       int64_t notification_id,
       const phonehub::Notification::AppMetadata& app_metadata) override;
 
- private:
   // FeatureStatusProvider::Observer:
   void OnFeatureStatusChanged() override;
 
+ private:
   bool IsClickable(FeatureStatus status);
 
   bool NeedClose(FeatureStatus status);
@@ -56,7 +57,7 @@
   FeatureStatusProvider* feature_status_provider_;
   LaunchEcheAppFunction launch_eche_app_function_;
   CloseEcheAppFunction close_eche_app_function_;
-  bool is_click_handler_set;
+  bool is_click_handler_set_ = false;
 };
 
 }  // namespace eche_app
diff --git a/chromeos/components/eche_app_ui/eche_notification_click_handler_unittest.cc b/chromeos/components/eche_app_ui/eche_notification_click_handler_unittest.cc
index 9cabf0e..9e9a593 100644
--- a/chromeos/components/eche_app_ui/eche_notification_click_handler_unittest.cc
+++ b/chromeos/components/eche_app_ui/eche_notification_click_handler_unittest.cc
@@ -42,7 +42,7 @@
   }
 
   void FakeLaunchEcheAppFunction(int64_t notification_id,
-                                 std::string package_name) {
+                                 const std::string& package_name) {
     // Do nothing.
   }
 
diff --git a/chromeos/crosapi/mojom/download_controller.mojom b/chromeos/crosapi/mojom/download_controller.mojom
index f3c284e..2b5e5b3 100644
--- a/chromeos/crosapi/mojom/download_controller.mojom
+++ b/chromeos/crosapi/mojom/download_controller.mojom
@@ -26,8 +26,8 @@
 //
 // Next MinVersion: 2
 // Next ID: 13
-[Stable]
-struct DownloadEvent {
+[Stable, RenamedFrom="crosapi.mojom.DownloadEvent"]
+struct DownloadItem {
   DownloadState state@0;
   mojo_base.mojom.FilePath target_file_path@1;
   bool is_from_incognito_profile@2;
@@ -85,11 +85,11 @@
 
   // Called when a download is created. Comes from `content::DownloadManager`,
   // and will only pass events once that's initialized.
-  OnDownloadCreated@0(crosapi.mojom.DownloadEvent event);
+  OnDownloadCreated@0(crosapi.mojom.DownloadItem download);
 
   // Called whenever a `download::DownloadItem` is updated.
-  OnDownloadUpdated@1(crosapi.mojom.DownloadEvent event);
+  OnDownloadUpdated@1(crosapi.mojom.DownloadItem download);
 
   // Called when a `download::DownloadItem` is destroyed.
-  OnDownloadDestroyed@2(crosapi.mojom.DownloadEvent event);
+  OnDownloadDestroyed@2(crosapi.mojom.DownloadItem download);
 };
diff --git a/chromeos/crosapi/mojom/local_printer.mojom b/chromeos/crosapi/mojom/local_printer.mojom
index 5db95f5e..8d2c65e 100644
--- a/chromeos/crosapi/mojom/local_printer.mojom
+++ b/chromeos/crosapi/mojom/local_printer.mojom
@@ -284,6 +284,8 @@
   GetEulaUrl@2(string printer_id) => (url.mojom.Url url);
 
   // Gets the current status of a printer.
+  // Note: this method queries the printer directly instead of via CUPS.
+  // It may take several seconds for the printer to respond.
   GetStatus@3(string printer_id) => (PrinterStatus status);
 
   // Opens a system print settings window.
diff --git a/components/autofill/content/browser/form_forest.cc b/components/autofill/content/browser/form_forest.cc
index 9dfe0f1..d6010e7 100644
--- a/components/autofill/content/browser/form_forest.cc
+++ b/components/autofill/content/browser/form_forest.cc
@@ -17,7 +17,7 @@
 
 // AFCHECK(condition[, error_handler]) creates a crash dump and executes
 // |error_handler| if |condition| is false.
-// TODO(crbug/1187842): Replace AFCHECK() with DCHECK().
+// TODO(https://crbug.com/1187842): Replace AFCHECK() with DCHECK().
 #if DCHECK_IS_ON()
 #define AFCHECK(condition, ...) DCHECK(condition)
 #else
@@ -36,27 +36,24 @@
 
 namespace {
 
-// Shall indicate if |rfh| is a fenced frame (crbug/1111084), to be implemented
-// if and when fencedframes ship.
+// Indicates if |rfh| is a fenced frame (https://crbug.com/1111084).
 //
 // We do not want to fill across the boundary of a fenced frame. Hence, a fenced
 // frame's FrameData must be disconnected (in terms of FormData::child_frames
 // and FrameData::parent_form) from its parent form. This is already guaranteed
 // because FormData::child_frames does not contain fenced frames. However,
 // UpdateTreeOfRendererForm() would still invoke TriggerReparse() to detect the
-// parent form. IsFencedFrame() should be implemented to suppress this.
+// parent form. HostedByFencedFrame() should be implemented to suppress this.
 //
 // We also do not want to fill across iframes with the disallowdocumentaccess
-// attribute (crbug/961448). Since disallowdocumentaccess is currently not going
-// to ship and supporting it requires significant additional work in
-// UpdateTreeOfRendererForm() to remove FormData::child_frame and unset
+// attribute (https://crbug.com/961448). Since disallowdocumentaccess is
+// currently not going to ship and supporting it requires significant additional
+// work in UpdateTreeOfRendererForm() to remove FormData::child_frame and unset
 // FrameData::parent_form for frames that disallow document access, there is no
-// immediate need to support it.
-//
-// TODO(crbug/1201854): Implement if and when fencedframes ship, and/or extend
-// it to disallowdocumentaccess if and when disallowdocumentaccess ships.
-constexpr bool IsFencedFrame(content::RenderFrameHost* rfh) {
-  return false;
+// immediate need to support it. See https://crrev.com/c/3055422 for a draft
+// implementation.
+bool HostedByFencedFrame(content::RenderFrameHost* rfh) {
+  return rfh->HostedByFencedFrame();
 }
 
 }  // namespace
@@ -427,7 +424,7 @@
   // UpdateTreeOfRendererForm() will be called for the parent form, whose
   // FormData::child_frames now include |frame|.
   content::RenderFrameHost* parent_rfh = rfh->GetParent();
-  if (!frame->parent_form && parent_rfh && !IsFencedFrame(rfh)) {
+  if (!frame->parent_form && parent_rfh && !HostedByFencedFrame(rfh)) {
     LocalFrameToken parent_frame_token(
         LocalFrameToken(parent_rfh->GetFrameToken().value()));
     FrameData* parent_frame = GetFrameData(parent_frame_token);
diff --git a/components/autofill/content/browser/form_forest.h b/components/autofill/content/browser/form_forest.h
index f414ab8..0297ef26 100644
--- a/components/autofill/content/browser/form_forest.h
+++ b/components/autofill/content/browser/form_forest.h
@@ -220,14 +220,16 @@
   // The |field_type_map| should contain the field types of the fields in
   // |browser_form|.
   //
-  // A field is *safe to fill* iff at least one of the following conditions
-  // holds:
+  // A field is *safe to fill* iff at least one of the conditions (1), (2), (3)
+  // and additionally condition (4) hold:
   // (1) The field's origin is the |triggered_origin|.
   // (2) The field's origin is the main origin and the field's type in
   //     |field_type_map| is not sensitive (see is_sensitive_field_type()).
   // (3) The |triggered_origin| is main origin and the field's frame's
   //     permissions policy allows shared-autofill.
-  // See below for a future additional necessary condition.
+  // (4) No frame on the shortest path from the field on which Autofill was
+  //     triggered to the field in question, except perhaps the shallowest
+  //     frame, is a fenced frame.
   //
   // The *origin of a field* is the origin of the frame that contains the
   // corresponding form-control element.
@@ -237,15 +239,6 @@
   // A frame's *permissions policy allows shared-autofill* if that frame is a
   // main frame or its embedding <iframe> element lists "shared-autofill" in
   // its "allow" attribute (see https://www.w3.org/TR/permissions-policy-1/).
-  //
-  // When fenced frames (crbug/1111084) or disallowdocumentaccess (crbug/961448)
-  // ships, a necessary requirement for a field to be *safe to fill* will be:
-  // (4) No frame on the shortest path from the field on from which Autofill was
-  //     triggered to the field in question frame in the frame tree, except
-  //     perhaps the shallowest frame, is a fenced frame or has the has the
-  //     disallowdocumentaccess attribute.
-  // TODO(crbug/1201854): Implement fenced frames and/or disallowdocumentaccess
-  // if and when they ship.
   std::vector<FormData> GetRendererFormsOfBrowserForm(
       const FormData& browser_form,
       const url::Origin& triggered_origin,
diff --git a/components/autofill/core/browser/autofill_metrics.cc b/components/autofill/core/browser/autofill_metrics.cc
index 6ec8b0e..fb3151c 100644
--- a/components/autofill/core/browser/autofill_metrics.cc
+++ b/components/autofill/core/browser/autofill_metrics.cc
@@ -1960,7 +1960,6 @@
 void AutofillMetrics::LogStoredCreditCardMetrics(
     const std::vector<std::unique_ptr<CreditCard>>& local_cards,
     const std::vector<std::unique_ptr<CreditCard>>& server_cards,
-    size_t server_card_count_with_card_art_image,
     base::TimeDelta disused_data_threshold) {
   size_t num_local_cards = 0;
   size_t num_local_cards_with_nickname = 0;
@@ -2086,11 +2085,6 @@
   base::UmaHistogramCounts1000(
       "Autofill.StoredCreditCardCount.Server.WithVirtualCardMetadata",
       virtual_card_enabled_card_count);
-
-  // Log the number of server cards that have valid customized art images.
-  base::UmaHistogramCounts1000(
-      "Autofill.StoredCreditCardCount.Server.WithCardArtImage",
-      server_card_count_with_card_art_image);
 }
 
 // static
diff --git a/components/autofill/core/browser/autofill_metrics.h b/components/autofill/core/browser/autofill_metrics.h
index c211605..b34e9465 100644
--- a/components/autofill/core/browser/autofill_metrics.h
+++ b/components/autofill/core/browser/autofill_metrics.h
@@ -1451,7 +1451,6 @@
   static void LogStoredCreditCardMetrics(
       const std::vector<std::unique_ptr<CreditCard>>& local_cards,
       const std::vector<std::unique_ptr<CreditCard>>& server_cards,
-      size_t server_card_count_with_card_art_image,
       base::TimeDelta disused_data_threshold);
 
   // Logs metrics about the offer data associated with a profile. This should be
diff --git a/components/autofill/core/browser/autofill_metrics_unittest.cc b/components/autofill/core/browser/autofill_metrics_unittest.cc
index a483a7b2..72d3d79c 100644
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -4105,10 +4105,10 @@
     }
   }
 
+  // Log the stored credit card metrics for the cards configured above.
   base::HistogramTester histogram_tester;
-  AutofillMetrics::LogStoredCreditCardMetrics(
-      local_cards, server_cards, /*server_card_count_with_card_art_image=*/2,
-      base::TimeDelta::FromDays(180));
+  AutofillMetrics::LogStoredCreditCardMetrics(local_cards, server_cards,
+                                              base::TimeDelta::FromDays(180));
 
   // Validate the basic count metrics.
   histogram_tester.ExpectTotalCount("Autofill.StoredCreditCardCount", 1);
@@ -4180,8 +4180,6 @@
       "Autofill.DaysSinceLastUse.StoredCreditCard.Server.Unmasked", 30, 3);
   histogram_tester.ExpectBucketCount(
       "Autofill.DaysSinceLastUse.StoredCreditCard.Server.Unmasked", 200, 3);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.StoredCreditCardCount.Server.WithCardArtImage", 2, 1);
 }
 
 TEST_F(AutofillMetricsTest, LogStoredCreditCardWithNicknameMetrics) {
@@ -4219,9 +4217,8 @@
 
   // Log the stored credit card metrics for the cards configured above.
   base::HistogramTester histogram_tester;
-  AutofillMetrics::LogStoredCreditCardMetrics(
-      local_cards, server_cards, /*server_card_count_with_card_art_image=*/0,
-      base::TimeDelta::FromDays(180));
+  AutofillMetrics::LogStoredCreditCardMetrics(local_cards, server_cards,
+                                              base::TimeDelta::FromDays(180));
 
   // Validate the count metrics.
   histogram_tester.ExpectTotalCount("Autofill.StoredCreditCardCount", 1);
diff --git a/components/autofill/core/browser/autofill_suggestion_generator.cc b/components/autofill/core/browser/autofill_suggestion_generator.cc
index e256070..723b9d21 100644
--- a/components/autofill/core/browser/autofill_suggestion_generator.cc
+++ b/components/autofill/core/browser/autofill_suggestion_generator.cc
@@ -176,17 +176,16 @@
   suggestion.match = prefix_matched_suggestion ? Suggestion::PREFIX_MATCH
                                                : Suggestion::SUBSTRING_MATCH;
 
-  GURL card_art_url_for_virtual_card_option;
+  std::string server_id_for_virtual_card_option;
   if (virtual_card_option &&
       credit_card.record_type() == CreditCard::MASKED_SERVER_CARD) {
-    card_art_url_for_virtual_card_option = credit_card.card_art_url();
+    server_id_for_virtual_card_option = credit_card.server_id();
   } else if (virtual_card_option &&
              credit_card.record_type() == CreditCard::LOCAL_CARD) {
     const CreditCard* server_duplicate_card =
         GetServerCardForLocalCard(&credit_card);
     DCHECK(server_duplicate_card);
-    card_art_url_for_virtual_card_option =
-        server_duplicate_card->card_art_url();
+    server_id_for_virtual_card_option = server_duplicate_card->server_id();
     backend_id = server_duplicate_card->guid();
   }
   suggestion.backend_id = backend_id;
@@ -252,12 +251,9 @@
         feature_engagement::kIPHKeyboardAccessoryPaymentVirtualCardFeature.name;
 #endif  // OS_ANDROID
 
+    // TODO(crbug.com/1196021): Populate custom_icon with card art if available
+    // (use server_id_for_virtual_card_option).
     suggestion.frontend_id = POPUP_ITEM_ID_VIRTUAL_CREDIT_CARD_ENTRY;
-
-    gfx::Image* image = personal_data_->GetCreditCardArtImageForUrl(
-        card_art_url_for_virtual_card_option);
-    if (image)
-      suggestion.custom_icon = *image;
   }
 
   return suggestion;
diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc
index 7c34877..47e4bff 100644
--- a/components/autofill/core/browser/browser_autofill_manager.cc
+++ b/components/autofill/core/browser/browser_autofill_manager.cc
@@ -1484,10 +1484,9 @@
   // If synced down card is a virtual card, let the client know so that it can
   // show the UI to help user to manually fill the form, if needed.
   if (credit_card->record_type() == CreditCard::VIRTUAL_CARD) {
-    gfx::Image* card_art_image = personal_data_->GetCreditCardArtImageForUrl(
-        credit_card->card_art_url());
-    client()->OnVirtualCardDataAvailable(
-        credit_card, cvc, card_art_image ? *card_art_image : gfx::Image());
+    // TODO(crbug.com/1196021): Pass in real card image.
+    client()->OnVirtualCardDataAvailable(credit_card, cvc,
+                                         /*card_image=*/gfx::Image());
   }
 
   FillCreditCardForm(credit_card_query_id_, credit_card_form_,
diff --git a/components/autofill/core/browser/data_model/credit_card_art_image.cc b/components/autofill/core/browser/data_model/credit_card_art_image.cc
index 97725d8..e63ac3a8 100644
--- a/components/autofill/core/browser/data_model/credit_card_art_image.cc
+++ b/components/autofill/core/browser/data_model/credit_card_art_image.cc
@@ -8,8 +8,13 @@
 
 CreditCardArtImage::CreditCardArtImage() = default;
 
-CreditCardArtImage::CreditCardArtImage(const CreditCardArtImage& other) =
-    default;
+CreditCardArtImage::CreditCardArtImage(const std::string& id,
+                                       int64_t instrument_id,
+                                       std::vector<uint8_t> card_art_image) {
+  this->id = id;
+  this->instrument_id = instrument_id;
+  this->card_art_image = std::move(card_art_image);
+}
 
 CreditCardArtImage::~CreditCardArtImage() = default;
 
diff --git a/components/autofill/core/browser/data_model/credit_card_art_image.h b/components/autofill/core/browser/data_model/credit_card_art_image.h
index 7f5fc595..4ae25d2 100644
--- a/components/autofill/core/browser/data_model/credit_card_art_image.h
+++ b/components/autofill/core/browser/data_model/credit_card_art_image.h
@@ -5,23 +5,30 @@
 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_CREDIT_CARD_ART_IMAGE_H_
 #define COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_CREDIT_CARD_ART_IMAGE_H_
 
-#include "ui/gfx/image/image.h"
-#include "url/gurl.h"
+#include <string>
+#include <vector>
 
 namespace autofill {
 
-// Represents an rich card art image for the card art url.
+// Represents an rich card art image for the server credit card.
 struct CreditCardArtImage {
  public:
   CreditCardArtImage();
-  CreditCardArtImage(const CreditCardArtImage& other);
+  CreditCardArtImage(const std::string& id,
+                     int64_t instrument_id,
+                     std::vector<uint8_t> card_art_image);
   ~CreditCardArtImage();
+  CreditCardArtImage(const CreditCardArtImage&) = delete;
+  CreditCardArtImage& operator=(const CreditCardArtImage&) = delete;
 
-  // The url to fetch the card art image.
-  GURL card_art_url;
+  // The server id for the related credit card.
+  std::string id;
 
-  // The customized card art image.
-  gfx::Image card_art_image;
+  // The instrument id for the related credit card.
+  int64_t instrument_id;
+
+  // The customized card art image. Stored as an raw PNG-encoded data.
+  std::vector<uint8_t> card_art_image;
 };
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/personal_data_manager.cc b/components/autofill/core/browser/personal_data_manager.cc
index 7fa27cc..8bdb9da 100644
--- a/components/autofill/core/browser/personal_data_manager.cc
+++ b/components/autofill/core/browser/personal_data_manager.cc
@@ -34,7 +34,6 @@
 #include "components/autofill/core/browser/autofill_metrics.h"
 #include "components/autofill/core/browser/autofill_profile_save_strike_database.h"
 #include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
-#include "components/autofill/core/browser/data_model/credit_card_art_image.h"
 #include "components/autofill/core/browser/data_model/phone_number.h"
 #include "components/autofill/core/browser/form_structure.h"
 #include "components/autofill/core/browser/geo/address_i18n.h"
@@ -153,9 +152,6 @@
   explicit PersonalDatabaseHelper(PersonalDataManager* personal_data_manager)
       : personal_data_manager_(personal_data_manager) {}
 
-  PersonalDatabaseHelper(const PersonalDatabaseHelper&) = delete;
-  PersonalDatabaseHelper& operator=(const PersonalDatabaseHelper&) = delete;
-
   void Init(scoped_refptr<AutofillWebDataService> profile_database,
             scoped_refptr<AutofillWebDataService> account_database) {
     profile_database_ = profile_database;
@@ -256,6 +252,8 @@
   scoped_refptr<AutofillWebDataService> server_database_;
 
   PersonalDataManager* personal_data_manager_;
+
+  DISALLOW_COPY_AND_ASSIGN(PersonalDatabaseHelper);
 };
 
 PersonalDataManager::PersonalDataManager(
@@ -480,7 +478,6 @@
           ReceiveLoadedDbValues(h, result.get(),
                                 &pending_server_creditcards_query_,
                                 &server_credit_cards_);
-          OnServerCreditCardsRefreshed();
         }
         break;
       case AUTOFILL_CLOUDTOKEN_RESULT:
@@ -964,7 +961,6 @@
   payments_customer_data_.reset();
   server_credit_card_cloud_token_data_.clear();
   autofill_offer_data_.clear();
-  credit_card_art_images_.clear();
 }
 
 void PersonalDataManager::ClearAllLocalData() {
@@ -1231,41 +1227,6 @@
   return result;
 }
 
-std::vector<const AutofillOfferData*>
-PersonalDataManager::GetAutofillPromoCodeOffers() const {
-  if (!IsAutofillWalletImportEnabled())
-    return {};
-
-  std::vector<const AutofillOfferData*> result;
-  result.reserve(autofill_offer_data_.size());
-  for (const auto& data : autofill_offer_data_) {
-    if (data.get()->IsPromoCodeOffer())
-      result.push_back(data.get());
-  }
-  return result;
-}
-
-gfx::Image* PersonalDataManager::GetCreditCardArtImageForUrl(
-    const GURL& card_art_url) const {
-  if (!IsAutofillWalletImportEnabled())
-    return nullptr;
-
-  if (!card_art_url.is_valid())
-    return nullptr;
-
-  auto images_iterator = credit_card_art_images_.find(card_art_url);
-
-  // Found an image and return it.
-  if (images_iterator != credit_card_art_images_.end()) {
-    gfx::Image* image = images_iterator->second.get();
-    if (!image->IsEmpty())
-      return image;
-  }
-
-  FetchImagesForUrls({card_art_url});
-  return nullptr;
-}
-
 void PersonalDataManager::Refresh() {
   LoadProfiles();
   LoadCreditCards();
@@ -1543,16 +1504,6 @@
   return empty_validity_map;
 }
 
-void PersonalDataManager::FetchImagesForUrls(
-    const std::vector<GURL>& updated_urls) const {
-  if (!image_fetcher_)
-    return;
-
-  image_fetcher_->FetchImagesForUrls(
-      updated_urls, base::BindOnce(&PersonalDataManager::OnCardArtImagesFetched,
-                                   weak_factory_.GetWeakPtr()));
-}
-
 const std::string& PersonalDataManager::GetDefaultCountryCodeForNewAddress()
     const {
   if (default_country_code_.empty())
@@ -1965,8 +1916,7 @@
 void PersonalDataManager::LogStoredCreditCardMetrics() const {
   if (!has_logged_stored_credit_card_metrics_) {
     AutofillMetrics::LogStoredCreditCardMetrics(
-        local_credit_cards_, server_credit_cards_,
-        GetServerCardWithArtImageCount(), kDisusedDataModelTimeDelta);
+        local_credit_cards_, server_credit_cards_, kDisusedDataModelTimeDelta);
 
     // Only log this info once per chrome user profile load.
     has_logged_stored_credit_card_metrics_ = true;
@@ -2149,16 +2099,6 @@
   OnProfileChangeDone(guid);
 }
 
-void PersonalDataManager::OnCardArtImagesFetched(
-    std::vector<std::unique_ptr<CreditCardArtImage>> art_images) {
-  for (auto& art_image : art_images) {
-    if (!art_image->card_art_image.IsEmpty()) {
-      credit_card_art_images_[art_image->card_art_url] =
-          std::make_unique<gfx::Image>(art_image->card_art_image);
-    }
-  }
-}
-
 void PersonalDataManager::LogServerCardLinkClicked() const {
   AutofillMetrics::LogServerCardLinkClicked(GetSyncSigninState());
 }
@@ -2435,34 +2375,4 @@
   return database_helper_->GetLocalDatabase();
 }
 
-void PersonalDataManager::OnServerCreditCardsRefreshed() {
-  ProcessVirtualCardMetadataChanges();
-}
-
-void PersonalDataManager::ProcessVirtualCardMetadataChanges() {
-  std::vector<GURL> updated_urls;
-  for (auto& card : server_credit_cards_) {
-    // If this card is not enrolled for virtual cards or the url is not valid,
-    // continue.
-    if (card->virtual_card_enrollment_state() != CreditCard::ENROLLED ||
-        !card->card_art_url().is_valid()) {
-      continue;
-    }
-
-    // Otherwise try to find the old entry with the same url.
-    auto it = credit_card_art_images_.find(card->card_art_url());
-    // No existing entry found.
-    if (it == credit_card_art_images_.end())
-      updated_urls.emplace_back(card->card_art_url());
-  }
-  if (!updated_urls.empty())
-    FetchImagesForUrls(updated_urls);
-}
-
-size_t PersonalDataManager::GetServerCardWithArtImageCount() const {
-  return base::ranges::count_if(
-      server_credit_cards_.begin(), server_credit_cards_.end(),
-      [](const auto& card) { return card->card_art_url().is_valid(); });
-}
-
 }  // namespace autofill
diff --git a/components/autofill/core/browser/personal_data_manager.h b/components/autofill/core/browser/personal_data_manager.h
index 178e47d..5c55e2e 100644
--- a/components/autofill/core/browser/personal_data_manager.h
+++ b/components/autofill/core/browser/personal_data_manager.h
@@ -15,6 +15,7 @@
 #include <vector>
 
 #include "base/gtest_prod_util.h"
+#include "base/macros.h"
 #include "base/observer_list.h"
 #include "base/scoped_observation.h"
 #include "build/build_config.h"
@@ -54,7 +55,6 @@
 namespace autofill {
 class AutofillImageFetcher;
 class AutofillInteractiveTest;
-struct CreditCardArtImage;
 class PersonalDataManagerObserver;
 class PersonalDataManagerFactory;
 class PersonalDatabaseHelper;
@@ -85,8 +85,6 @@
   explicit PersonalDataManager(const std::string& app_locale);
   PersonalDataManager(const std::string& app_locale,
                       const std::string& country_code);
-  PersonalDataManager(const PersonalDataManager&) = delete;
-  PersonalDataManager& operator=(const PersonalDataManager&) = delete;
   ~PersonalDataManager() override;
 
   // Kicks off asynchronous loading of profiles and credit cards.
@@ -288,13 +286,6 @@
   // Returns autofill offer data, including card-linked and promo code offers.
   virtual std::vector<AutofillOfferData*> GetAutofillOffers() const;
 
-  // Returns autofill offer data, but only for promo code offers.
-  std::vector<const AutofillOfferData*> GetAutofillPromoCodeOffers() const;
-
-  // Returns the customized credit card art image for the |card_art_url|.
-  virtual gfx::Image* GetCreditCardArtImageForUrl(
-      const GURL& card_art_url) const;
-
   // Updates the validity states of |profiles| according to server validity map.
   void UpdateProfilesServerValidityMapsIfNeeded(
       const std::vector<AutofillProfile*>& profiles);
@@ -481,8 +472,6 @@
                            AddCreditCard_CrazyCharacters);
   FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest, AddCreditCard_Invalid);
   FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest,
-                           AddAndGetCreditCardArtImage);
-  FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest,
                            DedupeProfiles_ProfilesToDelete);
   FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest,
                            DedupeProfiles_GuidsMergeMap);
@@ -547,7 +536,6 @@
                            RequestProfileServerValidity);
   FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest,
                            GetProfileSuggestions_Validity);
-  FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest, LogStoredCreditCardMetrics);
 
   friend class autofill::AutofillInteractiveTest;
   friend class autofill::PersonalDataManagerCleaner;
@@ -641,9 +629,6 @@
   // Get the profiles fields validity map by |guid|.
   const ProfileValidityMap& GetProfileValidityByGUID(const std::string& guid);
 
-  // Asks AutofillImageFetcher to fetch images.
-  virtual void FetchImagesForUrls(const std::vector<GURL>& updated_urls) const;
-
   // Decides which database type to use for server and local cards.
   std::unique_ptr<PersonalDatabaseHelper> database_helper_;
 
@@ -671,13 +656,9 @@
   std::vector<std::unique_ptr<CreditCardCloudTokenData>>
       server_credit_card_cloud_token_data_;
 
-  // Autofill offer data, including card-linked offers for the user's credit
-  // cards as well as promo code offers.
+  // Offer data for user's credit cards.
   std::vector<std::unique_ptr<AutofillOfferData>> autofill_offer_data_;
 
-  // The customized card art images for the URL.
-  std::map<GURL, std::unique_ptr<gfx::Image>> credit_card_art_images_;
-
   // When the manager makes a request from WebDataServiceBase, the database
   // is queried on another sequence, we record the query handle until we
   // get called back.  We store handles for both profile and credit card queries
@@ -766,11 +747,6 @@
   // Triggered when a profile is added/updated/removed on db.
   void OnAutofillProfileChanged(const AutofillProfileDeepChange& change);
 
-  // Triggered when all the card art image fetches have been completed,
-  // regardless of whether all of them succeeded.
-  void OnCardArtImagesFetched(
-      std::vector<std::unique_ptr<CreditCardArtImage>> art_images);
-
   // Look at the next profile change for profile with guid = |guid|, and handle
   // it.
   void HandleNextProfileChange(const std::string& guid);
@@ -798,17 +774,6 @@
   // Returns the database that is used for storing local data.
   scoped_refptr<AutofillWebDataService> GetLocalDatabase();
 
-  // Invoked when server credit card cache is refreshed.
-  void OnServerCreditCardsRefreshed();
-
-  // Checks whether any virtual card metadata for server cards is new and makes
-  // corresponding changes.
-  void ProcessVirtualCardMetadataChanges();
-
-  // Returns the number of server credit cards that have a valid credit card art
-  // image.
-  size_t GetServerCardWithArtImageCount() const;
-
   // Stores the |app_locale| supplied on construction.
   const std::string app_locale_;
 
@@ -895,6 +860,8 @@
       history_service_observation_{this};
 
   base::WeakPtrFactory<PersonalDataManager> weak_factory_{this};
+
+  DISALLOW_COPY_AND_ASSIGN(PersonalDataManager);
 };
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
index 2452cfe..2ad385ee 100644
--- a/components/autofill/core/browser/personal_data_manager_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -39,7 +39,6 @@
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
 #include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
 #include "components/autofill/core/browser/data_model/autofill_structured_address_utils.h"
-#include "components/autofill/core/browser/data_model/credit_card_art_image.h"
 #include "components/autofill/core/browser/field_types.h"
 #include "components/autofill/core/browser/form_structure.h"
 #include "components/autofill/core/browser/personal_data_manager_observer.h"
@@ -71,7 +70,6 @@
 #include "services/network/test/test_url_loader_factory.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "ui/gfx/image/image_unittest_util.h"
 
 namespace autofill {
 
@@ -115,11 +113,6 @@
   void OnValidatedPDM(const AutofillProfile* profile) {
     PersonalDataManager::OnValidated(profile);
   }
-
-  MOCK_METHOD(void,
-              FetchImagesForUrls,
-              ((const std::vector<GURL>& updated_urls)),
-              (const override));
 };
 
 template <typename T>
@@ -569,11 +562,6 @@
     WaitForOnPersonalDataChanged();
   }
 
-  void AddOfferDataForTest(AutofillOfferData offer_data) {
-    personal_data_->AddOfferDataForTest(
-        std::make_unique<AutofillOfferData>(offer_data));
-  }
-
   std::unique_ptr<PersonalDataManager> personal_data_;
 };
 
@@ -723,24 +711,6 @@
         prefs::kAutofillLastVersionValidated);
   }
 
-  void AddOfferDataForTest(AutofillOfferData offer_data) {
-    personal_data_->AddOfferDataForTest(
-        std::make_unique<AutofillOfferData>(offer_data));
-  }
-
-  // Verifies the credit card art image fetching should begin.
-  void WaitForFetchImagesForUrls(const std::vector<GURL>& updated_urls) {
-    base::RunLoop run_loop;
-    EXPECT_CALL(personal_data_observer_, OnPersonalDataFinishedProfileTasks())
-        .Times(testing::AnyNumber());
-    EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged())
-        .Times(testing::AnyNumber());
-    EXPECT_CALL(*personal_data_, FetchImagesForUrls(updated_urls))
-        .Times(1)
-        .WillOnce(QuitMessageLoop(&run_loop));
-    run_loop.Run();
-  }
-
   std::unique_ptr<PersonalDataManagerMock> personal_data_;
 };
 
@@ -1305,51 +1275,6 @@
   ASSERT_EQ(card, *personal_data_->GetCreditCards()[0]);
 }
 
-#if !defined(OS_IOS)
-TEST_F(PersonalDataManagerTest, AddAndGetCreditCardArtImage) {
-  gfx::Image expected_image = gfx::test::CreateImage(32, 20);
-  std::unique_ptr<CreditCardArtImage> credit_card_art_image =
-      std::make_unique<CreditCardArtImage>();
-  credit_card_art_image->card_art_url = GURL("https://www.example.com");
-  credit_card_art_image->card_art_image = expected_image;
-  std::vector<std::unique_ptr<CreditCardArtImage>> images;
-  images.emplace_back(std::move(credit_card_art_image));
-
-  personal_data_->OnCardArtImagesFetched(std::move(images));
-
-  gfx::Image* actual_image = personal_data_->GetCreditCardArtImageForUrl(
-      GURL("https://www.example.com"));
-  ASSERT_TRUE(actual_image);
-  EXPECT_TRUE(gfx::test::AreImagesEqual(expected_image, *actual_image));
-}
-
-TEST_F(PersonalDataManagerMockTest, ProcessVirtualCardMetadataChanges) {
-  CreditCard card = test::GetFullServerCard();
-  card.set_virtual_card_enrollment_state(
-      CreditCard::VirtualCardEnrollmentState::UNENROLLED);
-  card.set_server_id("card_server_id");
-  personal_data_->AddFullServerCreditCard(card);
-  WaitForOnPersonalDataChanged();
-
-  card.set_virtual_card_enrollment_state(
-      CreditCard::VirtualCardEnrollmentState::ENROLLED);
-  card.set_server_id("card_server_id");
-  card.set_card_art_url(GURL("https://www.example.com/card1"));
-  std::vector<GURL> updated_urls;
-  updated_urls.emplace_back(GURL("https://www.example.com/card1"));
-
-  personal_data_->AddFullServerCreditCard(card);
-  WaitForFetchImagesForUrls(updated_urls);
-
-  card.set_card_art_url(GURL("https://www.example.com/card2"));
-  updated_urls.clear();
-  updated_urls.emplace_back(GURL("https://www.example.com/card2"));
-
-  personal_data_->AddFullServerCreditCard(card);
-  WaitForFetchImagesForUrls(updated_urls);
-}
-#endif
-
 TEST_F(PersonalDataManagerTest, UpdateUnverifiedProfilesAndCreditCards) {
   // Start with unverified data.
   AutofillProfile profile(base::GenerateGUID(), "https://www.example.com/");
@@ -2016,61 +1941,6 @@
   EXPECT_EQ(1U, personal_data_->GetCreditCards().size());
 }
 
-// Tests that GetAutofillOffers returns all available offers.
-TEST_F(PersonalDataManagerTest, GetAutofillOffers) {
-  // Add two card-linked offers and one promo code offer.
-  AddOfferDataForTest(test::GetCardLinkedOfferData1());
-  AddOfferDataForTest(test::GetCardLinkedOfferData2());
-  AddOfferDataForTest(test::GetPromoCodeOfferData());
-
-  // Should return all three.
-  EXPECT_EQ(3U, personal_data_->GetAutofillOffers().size());
-}
-
-// Tests that GetAutofillOffers does not return any offers if
-// |IsAutofillWalletImportEnabled()| returns |false|.
-TEST_F(PersonalDataManagerMockTest, GetAutofillOffers_WalletImportDisabled) {
-  // Add a card-linked offer and a promo code offer.
-  AddOfferDataForTest(test::GetCardLinkedOfferData1());
-  AddOfferDataForTest(test::GetPromoCodeOfferData());
-
-  base::RunLoop run_loop;
-  EXPECT_CALL(personal_data_observer_, OnPersonalDataFinishedProfileTasks())
-      .WillOnce(QuitMessageLoop(&run_loop));
-  prefs::SetPaymentsIntegrationEnabled(prefs_.get(), false);
-
-  // Should return neither of them as the wallet import pref is disabled.
-  EXPECT_EQ(0U, personal_data_->GetAutofillOffers().size());
-}
-
-// Tests that GetAutofillPromoCodeOffers returns available promo code offers
-// only.
-TEST_F(PersonalDataManagerTest, GetAutofillPromoCodeOffers) {
-  // Add two card-linked offers and one promo code offer.
-  AddOfferDataForTest(test::GetCardLinkedOfferData1());
-  AddOfferDataForTest(test::GetCardLinkedOfferData2());
-  AddOfferDataForTest(test::GetPromoCodeOfferData());
-
-  // Only the promo code offer should be returned.
-  EXPECT_EQ(1U, personal_data_->GetAutofillPromoCodeOffers().size());
-}
-
-// Tests that GetAutofillPromoCodeOffers does not return any promo code offers
-// if |IsAutofillWalletImportEnabled()| returns |false|.
-TEST_F(PersonalDataManagerMockTest,
-       GetAutofillPromoCodeOffers_WalletImportDisabled) {
-  // Add a promo code offer.
-  AddOfferDataForTest(test::GetPromoCodeOfferData());
-
-  base::RunLoop run_loop;
-  EXPECT_CALL(personal_data_observer_, OnPersonalDataFinishedProfileTasks())
-      .WillOnce(QuitMessageLoop(&run_loop));
-  prefs::SetPaymentsIntegrationEnabled(prefs_.get(), false);
-
-  // Should not return the offer as the wallet import pref is disabled.
-  EXPECT_EQ(0U, personal_data_->GetAutofillOffers().size());
-}
-
 TEST_F(PersonalDataManagerTest, DefaultCountryCodeIsCached) {
   // The return value should always be some country code, no matter what.
   std::string default_country =
@@ -6092,16 +5962,9 @@
     }
   }
 
-  // Sets the virtual card enrollment state for the first three server cards.
+  // Sets the virtual card enrollment state for the first card.
   server_cards[0].set_virtual_card_enrollment_state(
       CreditCard::VirtualCardEnrollmentState::ENROLLED);
-  server_cards[0].set_card_art_url(GURL("https://www.example.com/image1"));
-  server_cards[1].set_virtual_card_enrollment_state(
-      CreditCard::VirtualCardEnrollmentState::ENROLLED);
-  server_cards[1].set_card_art_url(GURL("https://www.example.com/image1"));
-  server_cards[2].set_virtual_card_enrollment_state(
-      CreditCard::VirtualCardEnrollmentState::ENROLLED);
-  server_cards[2].set_card_art_url(GURL("https://www.example.com/image2"));
 
   SetServerCards(server_cards);
 
@@ -6120,8 +5983,6 @@
   base::HistogramTester histogram_tester;
   ResetPersonalDataManager(USER_MODE_NORMAL);
 
-  EXPECT_EQ(personal_data_->GetServerCardWithArtImageCount(), 3U);
-
   ASSERT_EQ(6U, personal_data_->GetCreditCards().size());
 
   // Validate the basic count metrics for both local and server cards. Deep
@@ -6145,8 +6006,6 @@
       "Autofill.StoredCreditCardCount.Server.Unmasked", 2, 1);
   histogram_tester.ExpectTotalCount(
       "Autofill.StoredCreditCardCount.Server.WithVirtualCardMetadata", 1);
-  histogram_tester.ExpectBucketCount(
-      "Autofill.StoredCreditCardCount.Server.WithCardArtImage", 3, 1);
 }
 
 TEST_F(PersonalDataManagerTest, CreateDataForTest) {
diff --git a/components/autofill/core/browser/ui/autofill_image_fetcher.cc b/components/autofill/core/browser/ui/autofill_image_fetcher.cc
index 3310fa1..e362912 100644
--- a/components/autofill/core/browser/ui/autofill_image_fetcher.cc
+++ b/components/autofill/core/browser/ui/autofill_image_fetcher.cc
@@ -5,8 +5,6 @@
 #include "components/autofill/core/browser/ui/autofill_image_fetcher.h"
 
 #include "components/autofill/core/browser/autofill_metrics.h"
-#include "components/autofill/core/browser/data_model/credit_card_art_image.h"
-#include "components/autofill/core/common/autofill_payments_features.h"
 #include "components/image_fetcher/core/image_decoder.h"
 #include "components/image_fetcher/core/image_fetcher_impl.h"
 #include "components/image_fetcher/core/request_metadata.h"
@@ -54,18 +52,14 @@
     : pending_request_count_(image_count),
       all_fetches_complete_callback_(std::move(callback)) {}
 
-void ImageFetchOperation::ImageFetched(const GURL& card_art_url,
+void ImageFetchOperation::ImageFetched(const std::string& card_server_id,
                                        const gfx::Image& card_art_image) {
   AutofillMetrics::LogImageFetchResult(/*succeeded=*/!card_art_image.IsEmpty());
+
   pending_request_count_--;
 
-  if (!card_art_image.IsEmpty()) {
-    auto credit_card_art_image = std::make_unique<CreditCardArtImage>();
-    credit_card_art_image->card_art_url = card_art_url;
-    credit_card_art_image->card_art_image = card_art_image;
-
-    fetched_card_art_images_.emplace_back(std::move(credit_card_art_image));
-  }
+  if (!card_art_image.IsEmpty())
+    fetched_card_art_images_[card_server_id] = card_art_image;
 
   if (pending_request_count_ == 0U) {
     std::move(all_fetches_complete_callback_)
@@ -87,7 +81,7 @@
 AutofillImageFetcher::~AutofillImageFetcher() = default;
 
 void AutofillImageFetcher::FetchImagesForUrls(
-    const std::vector<GURL>& card_art_urls,
+    const std::map<std::string, GURL>& card_server_ids_and_art_urls,
     CardArtImagesFetchedCallback callback) {
   if (!image_fetcher_) {
     std::move(callback).Run({});
@@ -95,39 +89,40 @@
   }
 
   auto image_fetcher_operation = base::MakeRefCounted<ImageFetchOperation>(
-      card_art_urls.size(), std::move(callback));
+      card_server_ids_and_art_urls.size(), std::move(callback));
 
-  for (const auto& card_art_url : card_art_urls)
-    FetchImageForUrl(image_fetcher_operation, card_art_url);
+  for (const auto& card_server_id_and_art_url : card_server_ids_and_art_urls) {
+    FetchImageForUrl(image_fetcher_operation, card_server_id_and_art_url.first,
+                     card_server_id_and_art_url.second);
+  }
 }
 
 void AutofillImageFetcher::FetchImageForUrl(
     const scoped_refptr<ImageFetchOperation>& operation,
+    const std::string& card_server_id,
     const GURL& card_art_url) {
   if (!card_art_url.is_valid()) {
-    OnCardArtImageFetched(operation, card_art_url, gfx::Image(),
+    OnCardArtImageFetched(operation, card_server_id, gfx::Image(),
                           image_fetcher::RequestMetadata());
     return;
   }
 
   image_fetcher::ImageFetcherParams params(kCardArtImageTrafficAnnotation,
                                            kUmaClientName);
-  params.set_hold_for_expiration_interval(base::TimeDelta::FromMinutes(
-      features::kAutofillImageFetcherDiskCacheExpirationInMinutes.Get()));
   image_fetcher_->FetchImage(
       card_art_url,
       base::BindOnce(&AutofillImageFetcher::OnCardArtImageFetched, operation,
-                     card_art_url),
+                     card_server_id),
       std::move(params));
 }
 
 // static
 void AutofillImageFetcher::OnCardArtImageFetched(
     const scoped_refptr<ImageFetchOperation>& operation,
-    const GURL& card_art_url,
+    const std::string& card_server_id,
     const gfx::Image& card_art_image,
     const image_fetcher::RequestMetadata& metadata) {
-  operation->ImageFetched(card_art_url, card_art_image);
+  operation->ImageFetched(card_server_id, card_art_image);
 }
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/ui/autofill_image_fetcher.h b/components/autofill/core/browser/ui/autofill_image_fetcher.h
index 863c8da..4f269fb 100644
--- a/components/autofill/core/browser/ui/autofill_image_fetcher.h
+++ b/components/autofill/core/browser/ui/autofill_image_fetcher.h
@@ -8,7 +8,6 @@
 #include <map>
 #include <memory>
 #include <string>
-#include <vector>
 
 #include "base/callback.h"
 #include "base/memory/scoped_refptr.h"
@@ -32,10 +31,8 @@
 
 namespace autofill {
 
-struct CreditCardArtImage;
-
 using CardArtImagesFetchedCallback = base::OnceCallback<void(
-    std::vector<std::unique_ptr<CreditCardArtImage>> card_art_images)>;
+    const std::map<std::string, gfx::Image>& card_art_images)>;
 
 // The image fetching operation instance. It tracks the state of the paired
 // request. Will be created when the AutofillImageFetcher receives a request to
@@ -48,7 +45,8 @@
   ImageFetchOperation& operator=(const ImageFetchOperation&) = delete;
 
   // Invoked when an image fetch is complete and data is returned.
-  void ImageFetched(const GURL& card_art_url, const gfx::Image& card_art_image);
+  void ImageFetched(const std::string& card_server_id,
+                    const gfx::Image& card_art_image);
 
  private:
   friend class base::RefCounted<ImageFetchOperation>;
@@ -58,8 +56,8 @@
   // The number of images that should be fetched before completion.
   size_t pending_request_count_ = 0;
 
-  // The vector of the fetched CreditCardArtImages.
-  std::vector<std::unique_ptr<CreditCardArtImage>> fetched_card_art_images_;
+  // The mapping of each credit card's server id to its card art image.
+  std::map<std::string, gfx::Image> fetched_card_art_images_;
 
   // Callback function to be invoked when fetching is finished.
   CardArtImagesFetchedCallback all_fetches_complete_callback_;
@@ -76,19 +74,21 @@
   AutofillImageFetcher& operator=(const AutofillImageFetcher&) = delete;
 
   // Once invoked, the |image_fetcher_| will start fetching images based on the
-  // urls. |card_art_urls| is a vector with credit cards' card art image url.
-  // |callback| will be invoked when all the requests have been completed. The
-  // callback will receive a vector of CreditCardArtImage, for (only) those
-  // cards for which the AutofillImageFetcher could successfully fetch the
-  // image.
-  void FetchImagesForUrls(const std::vector<GURL>& card_art_urls,
-                          CardArtImagesFetchedCallback callback);
+  // urls. |card_server_ids_and_art_urls| is a map with credit cards' server id
+  // as the key and its card art image url as the value. |callback| will be
+  // invoked when all the requests have been completed. The callback will
+  // receive a map of card server IDs to images, for (only) those cards for
+  // which the AutofillImageFetcher could successfully fetch the image.
+  void FetchImagesForUrls(
+      const std::map<std::string, GURL>& card_server_ids_and_art_urls,
+      CardArtImagesFetchedCallback callback);
 
  protected:
-  // Helper function to fetch art image for card given the |card_art_url|, for
-  // the specific |operation| instance.
+  // Helper function to fetch art image for card with |card_server_id| given the
+  // |card_art_url|, for the specific |operation| instance.
   virtual void FetchImageForUrl(
       const scoped_refptr<ImageFetchOperation>& operation,
+      const std::string& card_server_id,
       const GURL& card_art_url);
 
   // The image fetcher implementation.
@@ -100,7 +100,7 @@
   // Called when an image is fetched for the |operation| instance.
   static void OnCardArtImageFetched(
       const scoped_refptr<ImageFetchOperation>& operation,
-      const GURL& card_art_url,
+      const std::string& card_server_id,
       const gfx::Image& card_art_image,
       const image_fetcher::RequestMetadata& metadata);
 };
diff --git a/components/autofill/core/browser/ui/autofill_image_fetcher_unittest.cc b/components/autofill/core/browser/ui/autofill_image_fetcher_unittest.cc
index ba338e9..40d7b314 100644
--- a/components/autofill/core/browser/ui/autofill_image_fetcher_unittest.cc
+++ b/components/autofill/core/browser/ui/autofill_image_fetcher_unittest.cc
@@ -8,7 +8,6 @@
 #include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
-#include "components/autofill/core/browser/data_model/credit_card_art_image.h"
 #include "components/image_fetcher/core/image_decoder.h"
 #include "components/image_fetcher/core/mock_image_fetcher.h"
 #include "components/image_fetcher/core/request_metadata.h"
@@ -35,8 +34,10 @@
   ~TestAutofillImageFetcher() override = default;
 
   void FetchImageForUrl(const scoped_refptr<ImageFetchOperation>& operation,
+                        const std::string& card_server_id,
                         const GURL& card_art_url) override {
-    AutofillImageFetcher::FetchImageForUrl(operation, card_art_url);
+    AutofillImageFetcher::FetchImageForUrl(operation, card_server_id,
+                                           card_art_url);
     current_operation_ = operation;
   }
 
@@ -57,14 +58,15 @@
         std::make_unique<TestAutofillImageFetcher>(std::move(image_fetcher));
   }
 
-  void SimulateOnImageFetched(const GURL& url, const gfx::Image& image) {
+  void SimulateOnImageFetched(const std::string& server_id,
+                              const gfx::Image& image) {
     TestAutofillImageFetcher::OnCardArtImageFetched(
-        autofill_image_fetcher()->current_operation(), url, image,
+        autofill_image_fetcher()->current_operation(), server_id, image,
         image_fetcher::RequestMetadata());
   }
 
-  void ValidateResult(std::map<GURL, gfx::Image> received_images,
-                      std::map<GURL, gfx::Image> expected_images) {
+  void ValidateResult(std::map<std::string, gfx::Image> received_images,
+                      std::map<std::string, gfx::Image> expected_images) {
     ASSERT_EQ(expected_images.size(), received_images.size());
     for (const auto& expected_pair : expected_images) {
       const gfx::Image& expected_image = expected_pair.second;
@@ -95,32 +97,30 @@
   gfx::Image fake_image2 =
       ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
           IDR_DEFAULT_FAVICON_DARK);
-  GURL fake_url1 = GURL("http://www.example.com/fake_image1");
-  GURL fake_url2 = GURL("http://www.example.com/fake_image2");
-
-  std::map<GURL, gfx::Image> expected_images = {{fake_url1, fake_image1},
-                                                {fake_url2, fake_image2}};
+  std::map<std::string, gfx::Image> expected_images = {
+      {"server_id1", fake_image1}, {"server_id2", fake_image2}};
 
   // Expect callback to be called with some received images.
-  std::map<GURL, gfx::Image> received_images;
+  std::map<std::string, gfx::Image> received_images;
   auto callback = base::BindLambdaForTesting(
-      [&](std::vector<std::unique_ptr<CreditCardArtImage>> card_art_images) {
-        for (auto& entry : card_art_images)
-          received_images[entry->card_art_url] = entry->card_art_image;
+      [&](const std::map<std::string, gfx::Image>& card_art_image_map) {
+        received_images = card_art_image_map;
       });
 
   base::HistogramTester histogram_tester;
   // Expect to be called twice.
   EXPECT_CALL(*mock_image_fetcher(), FetchImageAndData_(_, _, _, _)).Times(2);
-  std::vector<GURL> urls = {fake_url1, fake_url2};
-  autofill_image_fetcher()->FetchImagesForUrls(urls, callback);
+  std::map<std::string, GURL> url_map = {
+      {"server_id1", GURL("http://www.example.com/fake_image1")},
+      {"server_id2", GURL("http://www.example.com/fake_image2")}};
+  autofill_image_fetcher()->FetchImagesForUrls(url_map, callback);
 
   // Simulate successful image fetching (for image with URL) -> expect the
   // callback to be called.
-  SimulateOnImageFetched(fake_url1, fake_image1);
-  SimulateOnImageFetched(fake_url2, fake_image2);
+  SimulateOnImageFetched("server_id1", fake_image1);
+  SimulateOnImageFetched("server_id2", fake_image2);
 
-  ValidateResult(std::move(received_images), expected_images);
+  ValidateResult(received_images, expected_images);
   histogram_tester.ExpectBucketCount("Autofill.ImageFetcher.Result", true, 2);
 }
 
@@ -128,54 +128,55 @@
   gfx::Image fake_image1 =
       ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
           IDR_DEFAULT_FAVICON);
-  GURL fake_url1 = GURL("http://www.example.com/fake_image1");
-  std::map<GURL, gfx::Image> expected_images = {{fake_url1, fake_image1}};
+  std::map<std::string, gfx::Image> expected_images = {
+      {"server_id1", fake_image1}};
 
-  std::map<GURL, gfx::Image> received_images;
+  // Expect callback to be called with expected images.
+  std::map<std::string, gfx::Image> received_images;
   auto callback = base::BindLambdaForTesting(
-      [&](std::vector<std::unique_ptr<CreditCardArtImage>> card_art_images) {
-        for (auto& entry : card_art_images)
-          received_images[entry->card_art_url] = entry->card_art_image;
+      [&](const std::map<std::string, gfx::Image>& card_art_image_map) {
+        received_images = card_art_image_map;
       });
 
   base::HistogramTester histogram_tester;
   // Expect to be called once with one invalid url.
   EXPECT_CALL(*mock_image_fetcher(), FetchImageAndData_(_, _, _, _)).Times(1);
-  std::vector<GURL> urls = {fake_url1, GURL("")};
-  autofill_image_fetcher()->FetchImagesForUrls(urls, callback);
+  std::map<std::string, GURL> url_map = {
+      {"server_id1", GURL("http://www.example.com/fake_image1")},
+      {"server_id2", GURL("")}};
+  autofill_image_fetcher()->FetchImagesForUrls(url_map, callback);
 
   // Simulate successful image fetching (for image with URL) -> expect the
   // callback to be called.
-  SimulateOnImageFetched(fake_url1, fake_image1);
+  SimulateOnImageFetched("server_id1", fake_image1);
 
-  ValidateResult(std::move(received_images), expected_images);
+  ValidateResult(received_images, expected_images);
   histogram_tester.ExpectBucketCount("Autofill.ImageFetcher.Result", true, 1);
   histogram_tester.ExpectBucketCount("Autofill.ImageFetcher.Result", false, 1);
 }
 
 TEST_F(AutofillImageFetcherTest, FetchImage_ServerFailure) {
-  GURL fake_url1 = GURL("http://www.example.com/fake_image1");
-  std::map<GURL, gfx::Image> expected_images;
+  std::map<std::string, gfx::Image> expected_images = {};
 
   // Expect callback to be called with some received images.
-  std::map<GURL, gfx::Image> received_images;
+  std::map<std::string, gfx::Image> received_images;
   auto callback = base::BindLambdaForTesting(
-      [&](std::vector<std::unique_ptr<CreditCardArtImage>> card_art_images) {
-        for (auto& entry : card_art_images)
-          received_images[entry->card_art_url] = entry->card_art_image;
+      [&](const std::map<std::string, gfx::Image>& card_art_image_map) {
+        received_images = card_art_image_map;
       });
 
   base::HistogramTester histogram_tester;
   // Expect to be called once.
   EXPECT_CALL(*mock_image_fetcher(), FetchImageAndData_(_, _, _, _)).Times(1);
-  std::vector<GURL> urls = {fake_url1};
-  autofill_image_fetcher()->FetchImagesForUrls(urls, callback);
+  std::map<std::string, GURL> url_map = {
+      {"server_id1", GURL("http://www.example.com/fake_image1")}};
+  autofill_image_fetcher()->FetchImagesForUrls(url_map, callback);
 
   // Simulate failed image fetching (for image with URL) -> expect the
   // callback to be called.
-  SimulateOnImageFetched(fake_url1, gfx::Image());
+  SimulateOnImageFetched("server_id1", gfx::Image());
 
-  ValidateResult(std::move(received_images), expected_images);
+  ValidateResult(received_images, expected_images);
   histogram_tester.ExpectBucketCount("Autofill.ImageFetcher.Result", false, 1);
 }
 
diff --git a/components/autofill/core/browser/webdata/autofill_table.cc b/components/autofill/core/browser/webdata/autofill_table.cc
index b93f0bc..26042dd 100644
--- a/components/autofill/core/browser/webdata/autofill_table.cc
+++ b/components/autofill/core/browser/webdata/autofill_table.cc
@@ -29,6 +29,7 @@
 #include "components/autofill/core/browser/data_model/autofill_offer_data.h"
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
+#include "components/autofill/core/browser/data_model/credit_card_art_image.h"
 #include "components/autofill/core/browser/data_model/credit_card_cloud_token_data.h"
 #include "components/autofill/core/browser/geo/autofill_country.h"
 #include "components/autofill/core/browser/payments/payments_customer_data.h"
@@ -2023,6 +2024,60 @@
   return s.Succeeded();
 }
 
+bool AutofillTable::AddCreditCardArtImage(
+    const CreditCardArtImage& credit_card_art_image) {
+  sql::Transaction transaction(db_);
+  if (!transaction.Begin())
+    return false;
+
+  sql::Statement s(db_->GetUniqueStatement(
+      "INSERT INTO credit_card_art_images(id, instrument_id, card_art_image)"
+      "VALUES (?,?,?)"));
+  s.BindString(0, credit_card_art_image.id);
+  s.BindInt64(1, credit_card_art_image.instrument_id);
+  s.BindBlob(2, credit_card_art_image.card_art_image);
+  s.Run();
+
+  return transaction.Commit();
+}
+
+bool AutofillTable::GetCreditCardArtImages(
+    std::vector<std::unique_ptr<CreditCardArtImage>>* credit_card_art_images) {
+  credit_card_art_images->clear();
+
+  sql::Statement s(
+      db_->GetUniqueStatement("SELECT "
+                              "id, "             // 0
+                              "instrument_id, "  // 1
+                              "card_art_image "  // 2
+                              "FROM credit_card_art_images"));
+
+  while (s.Step()) {
+    std::vector<uint8_t> card_art_image;
+    if (s.ColumnBlobAsVector(2, &card_art_image)) {
+      std::unique_ptr<CreditCardArtImage> data =
+          std::make_unique<CreditCardArtImage>(
+              s.ColumnString(0), s.ColumnInt64(1), std::move(card_art_image));
+      credit_card_art_images->push_back(std::move(data));
+    }
+  }
+
+  return s.Succeeded();
+}
+
+bool AutofillTable::ClearCreditCardArtImage(const std::string& id) {
+  sql::Transaction transaction(db_);
+  if (!transaction.Begin())
+    return false;
+
+  sql::Statement s(db_->GetUniqueStatement(
+      "DELETE FROM credit_card_art_images WHERE id = ?"));
+  s.BindString(0, id);
+  s.Run();
+
+  return transaction.Commit();
+}
+
 void AutofillTable::SetPaymentsCustomerData(
     const PaymentsCustomerData* customer_data) {
   sql::Transaction transaction(db_);
diff --git a/components/autofill/core/browser/webdata/autofill_table.h b/components/autofill/core/browser/webdata/autofill_table.h
index 79c7e877..223991c 100644
--- a/components/autofill/core/browser/webdata/autofill_table.h
+++ b/components/autofill/core/browser/webdata/autofill_table.h
@@ -35,6 +35,7 @@
 class AutofillTableEncryptor;
 class AutofillTableTest;
 class CreditCard;
+struct CreditCardArtImage;
 struct CreditCardCloudTokenData;
 struct FormFieldData;
 struct PaymentsCustomerData;
@@ -428,7 +429,6 @@
 //                      offer_id in the offer_data table.
 //   merchant_domain    List of full origins for merchant websites on which
 //                      this offer would apply.
-// TODO(crbug.com/1196021): Remove unused table.
 // credit_card_art_images
 //                      Contains the card art image for the server credit card.
 //
@@ -596,6 +596,12 @@
       std::vector<std::unique_ptr<CreditCardCloudTokenData>>*
           credit_card_cloud_token_data);
 
+  // Setters and getters related to the credit card art images.
+  bool AddCreditCardArtImage(const CreditCardArtImage& credit_card_art_image);
+  bool GetCreditCardArtImages(
+      std::vector<std::unique_ptr<CreditCardArtImage>>* credit_card_art_images);
+  bool ClearCreditCardArtImage(const std::string& id);
+
   // Setters and getters related to the Google Payments customer data.
   // Passing null to the setter will clear the data.
   void SetPaymentsCustomerData(const PaymentsCustomerData* customer_data);
diff --git a/components/autofill/core/browser/webdata/autofill_table_unittest.cc b/components/autofill/core/browser/webdata/autofill_table_unittest.cc
index 97cb1c6..c077283 100644
--- a/components/autofill/core/browser/webdata/autofill_table_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_table_unittest.cc
@@ -27,6 +27,7 @@
 #include "components/autofill/core/browser/data_model/autofill_offer_data.h"
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
+#include "components/autofill/core/browser/data_model/credit_card_art_image.h"
 #include "components/autofill/core/browser/data_model/credit_card_cloud_token_data.h"
 #include "components/autofill/core/browser/payments/payments_customer_data.h"
 #include "components/autofill/core/browser/webdata/autofill_change.h"
@@ -3767,4 +3768,34 @@
   }
 }
 
+TEST_F(AutofillTableTest, SetAndGetAndClearCreditCardArtImage) {
+  CreditCardArtImage image1("image1", 1, {UINT8_MAX});
+  table_->AddCreditCardArtImage(image1);
+  CreditCardArtImage image2("image2", 2, {UINT8_MAX});
+  table_->AddCreditCardArtImage(image2);
+
+  std::vector<std::unique_ptr<CreditCardArtImage>> output;
+  EXPECT_TRUE(table_->GetCreditCardArtImages(&output));
+  EXPECT_EQ(2U, output.size());
+  EXPECT_EQ("image1", output[0]->id);
+  EXPECT_EQ(1, output[0]->instrument_id);
+  EXPECT_EQ(UINT8_MAX, output[0]->card_art_image[0]);
+  EXPECT_EQ("image2", output[1]->id);
+  EXPECT_EQ(2, output[1]->instrument_id);
+  EXPECT_EQ(UINT8_MAX, output[1]->card_art_image[0]);
+
+  EXPECT_TRUE(table_->ClearCreditCardArtImage("image1"));
+  output.clear();
+  EXPECT_TRUE(table_->GetCreditCardArtImages(&output));
+  EXPECT_EQ(1U, output.size());
+  EXPECT_EQ("image2", output[0]->id);
+  EXPECT_EQ(2, output[0]->instrument_id);
+  EXPECT_EQ(UINT8_MAX, output[0]->card_art_image[0]);
+
+  EXPECT_TRUE(table_->ClearAllServerData());
+  output.clear();
+  EXPECT_TRUE(table_->GetCreditCardArtImages(&output));
+  EXPECT_EQ(0U, output.size());
+}
+
 }  // namespace autofill
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc
index f55343b..e8598a8 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc
+++ b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc
@@ -547,9 +547,11 @@
     const std::vector<CreditCard>& new_data) {
   std::vector<std::string> updated_server_ids;
   for (const CreditCard& new_card : new_data) {
-    // If this new card is not enrolled for virtual cards, continue.
+    // If this new card is not enrolled for virtual cards, clear the table entry
+    // for it if any and continue.
     if (new_card.virtual_card_enrollment_state() !=
         CreditCard::VirtualCardEnrollmentState::ENROLLED) {
+      GetAutofillTable()->ClearCreditCardArtImage(new_card.server_id());
       continue;
     }
 
@@ -565,15 +567,20 @@
       updated_server_ids.push_back(new_card.server_id());
       // log the newly-synced card.
       AutofillMetrics::LogVirtualCardMetadataSynced(/*existing_card=*/false);
+      // The actual card image will be added later once it has actually been
+      // fetched.
       continue;
     }
 
     // If the virtual card metadata has changed from the old card to the new
-    // cards, log the updated sync.
+    // cards, change the table data and log the updated sync.
     if ((*old_data_iterator)->virtual_card_enrollment_state() !=
             new_card.virtual_card_enrollment_state() ||
         (*old_data_iterator)->card_art_url() != new_card.card_art_url()) {
       updated_server_ids.push_back(new_card.server_id());
+      // Any existing card art image is not valid anymore. A new image will be
+      // added later.
+      GetAutofillTable()->ClearCreditCardArtImage(new_card.server_id());
       AutofillMetrics::LogVirtualCardMetadataSynced(/*existing_card=*/true);
     }
   }
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.h b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.h
index 80d7c9c..b6329ec 100644
--- a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.h
+++ b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.h
@@ -134,8 +134,6 @@
   // processor so that it can start tracking changes.
   void LoadMetadata();
 
-  // TODO(crbug/com/1196021): Clean up duplicate functions and use it for
-  // logging only.
   // Checks whether any virtual card metadata for new_data is new and make
   // corresponding changes.
   void ProcessVirtualCardMetadataChanges(
diff --git a/components/autofill/core/common/autofill_payments_features.cc b/components/autofill/core/common/autofill_payments_features.cc
index c4ade7d6..c2ffc3f 100644
--- a/components/autofill/core/common/autofill_payments_features.cc
+++ b/components/autofill/core/common/autofill_payments_features.cc
@@ -108,17 +108,15 @@
 const base::Feature kAutofillEnableVirtualCard{
     "AutofillEnableVirtualCard", base::FEATURE_DISABLED_BY_DEFAULT};
 
+// When enabled, Autofill will attempt to fill merchant promo/coupon/gift code
+// fields when data is available.
+const base::Feature kAutofillFillMerchantPromoCodeFields{
+    "AutofillFillMerchantPromoCodeFields", base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Controls whether to enable the fix for the offer feature in Incognito mode.
 const base::Feature kAutofillFixOfferInIncognito{
     "AutofillFixOfferInIncognito", base::FEATURE_DISABLED_BY_DEFAULT};
 
-// The merchant bound virtual card feature introduces new customized card art
-// images. This parameter defines the expiration of the fetched image in the
-// disk cache of the image fetcher.
-const base::FeatureParam<int> kAutofillImageFetcherDiskCacheExpirationInMinutes{
-    &kAutofillEnableMerchantBoundVirtualCards,
-    "autofill_image_fetcher_disk_cache_expiration_in_minutes", 10};
-
 // When enabled, Autofill will attempt to find merchant promo/coupon/gift code
 // fields when parsing forms.
 const base::Feature kAutofillParseMerchantPromoCodeFields{
diff --git a/components/autofill/core/common/autofill_payments_features.h b/components/autofill/core/common/autofill_payments_features.h
index 4d3ace8..2781a64 100644
--- a/components/autofill/core/common/autofill_payments_features.h
+++ b/components/autofill/core/common/autofill_payments_features.h
@@ -31,9 +31,8 @@
 extern const base::Feature kAutofillEnableStickyManualFallbackForCards;
 extern const base::Feature kAutofillEnableToolbarStatusChip;
 extern const base::Feature kAutofillEnableVirtualCard;
+extern const base::Feature kAutofillFillMerchantPromoCodeFields;
 extern const base::Feature kAutofillFixOfferInIncognito;
-extern const base::FeatureParam<int>
-    kAutofillImageFetcherDiskCacheExpirationInMinutes;
 extern const base::Feature kAutofillParseMerchantPromoCodeFields;
 extern const base::Feature kAutofillSaveCardDismissOnNavigation;
 extern const base::Feature kAutofillSaveCardInfobarEditSupport;
diff --git a/components/cronet/android/BUILD.gn b/components/cronet/android/BUILD.gn
index 9f82e97..2377dca5 100644
--- a/components/cronet/android/BUILD.gn
+++ b/components/cronet/android/BUILD.gn
@@ -1243,6 +1243,8 @@
       "//testing/gtest",
     ]
 
+    allow_cleartext_traffic = true
+
     sources = [ "../run_all_unittests.cc" ]
 
     defines = [ "CRONET_TESTS_IMPLEMENTATION" ]
diff --git a/components/exo/client_controlled_shell_surface_unittest.cc b/components/exo/client_controlled_shell_surface_unittest.cc
index 2b5e096..f4e801b 100644
--- a/components/exo/client_controlled_shell_surface_unittest.cc
+++ b/components/exo/client_controlled_shell_surface_unittest.cc
@@ -50,6 +50,7 @@
 #include "components/exo/test/exo_test_base.h"
 #include "components/exo/test/exo_test_helper.h"
 #include "components/exo/wm_helper.h"
+#include "components/full_restore/features.h"
 #include "components/full_restore/full_restore_utils.h"
 #include "third_party/skia/include/utils/SkNoDrawCanvas.h"
 #include "ui/aura/client/aura_constants.h"
@@ -1786,53 +1787,6 @@
 }
 
 // Tests that a WideFrameView is created for an unparented ARC task and that the
-// WideFrameView follows its respective surface when it is eventually parented.
-// See crbug.com/1223135.
-TEST_F(ClientControlledShellSurfaceTest, WideframeForUnparentedTasks) {
-  std::unique_ptr<Surface> surface(new Surface);
-  auto shell_surface =
-      exo_test_helper()->CreateClientControlledShellSurface(surface.get());
-
-  // Create a non-wide frame shell surface.
-  std::unique_ptr<Buffer> desktop_buffer(
-      new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(gfx::Size(64, 64))));
-  surface->Attach(desktop_buffer.get());
-  surface->SetInputRegion(gfx::Rect(0, 0, 64, 64));
-  shell_surface->SetGeometry(gfx::Rect(100, 0, 64, 64));
-  surface->SetFrame(SurfaceFrameType::NORMAL);
-  surface->Commit();
-  auto* wide_frame = shell_surface->wide_frame_for_test();
-  ASSERT_FALSE(wide_frame);
-
-  // Set the |full_restore::kParentToHiddenContainerKey| for the surface and
-  // reparent it, simulating the Full Restore process for an unparented ARC
-  // task.
-  aura::Window* window = shell_surface->GetWidget()->GetNativeWindow();
-  window->SetProperty(full_restore::kParentToHiddenContainerKey, true);
-  aura::client::ParentWindowWithContext(window,
-                                        /*context=*/window->GetRootWindow(),
-                                        window->GetBoundsInScreen());
-
-  // Maximize the surface. The WideFrameView should be created and a crash
-  // should not occur.
-  shell_surface->SetMaximized();
-  surface->Commit();
-  const auto* hidden_container_parent = window->parent();
-  wide_frame = shell_surface->wide_frame_for_test();
-  EXPECT_TRUE(wide_frame);
-  EXPECT_EQ(hidden_container_parent,
-            wide_frame->GetWidget()->GetNativeWindow()->parent());
-
-  // Call the FullRestoreController, simulating the ARC task becoming ready. The
-  // surface should be reparented and the WideFrameView should follow it.
-  ash::FullRestoreController::Get()->OnARCTaskReadyForUnparentedWindow(window);
-  EXPECT_NE(hidden_container_parent, window->parent());
-  wide_frame = shell_surface->wide_frame_for_test();
-  EXPECT_TRUE(wide_frame);
-  EXPECT_EQ(window->parent(),
-            wide_frame->GetWidget()->GetNativeWindow()->parent());
-}
-
 TEST_F(ClientControlledShellSurfaceTest, NoFrameOnModalContainer) {
   std::unique_ptr<Surface> surface(new Surface);
   auto shell_surface =
@@ -2854,4 +2808,73 @@
   }
 }
 
+class ClientControlledShellSurfaceFullRestoreTest
+    : public ClientControlledShellSurfaceTest {
+ public:
+  ClientControlledShellSurfaceFullRestoreTest() = default;
+  ClientControlledShellSurfaceFullRestoreTest(
+      const ClientControlledShellSurfaceFullRestoreTest&) = delete;
+  ClientControlledShellSurfaceFullRestoreTest& operator=(
+      const ClientControlledShellSurfaceFullRestoreTest&) = delete;
+  ~ClientControlledShellSurfaceFullRestoreTest() override = default;
+
+  // ClientControlledShellSurfaceTest:
+  void SetUp() override {
+    scoped_feature_list_.InitAndEnableFeature(
+        ::full_restore::features::kFullRestore);
+    ClientControlledShellSurfaceTest::SetUp();
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+// WideFrameView follows its respective surface when it is eventually parented.
+// See crbug.com/1223135.
+TEST_F(ClientControlledShellSurfaceFullRestoreTest,
+       WideframeForUnparentedTasks) {
+  auto surface = std::make_unique<Surface>();
+  auto shell_surface =
+      exo_test_helper()->CreateClientControlledShellSurface(surface.get());
+
+  // Create a non-wide frame shell surface.
+  auto desktop_buffer = std::make_unique<Buffer>(
+      exo_test_helper()->CreateGpuMemoryBuffer(gfx::Size(64, 64)));
+  surface->Attach(desktop_buffer.get());
+  surface->SetInputRegion(gfx::Rect(0, 0, 64, 64));
+  shell_surface->SetGeometry(gfx::Rect(100, 0, 64, 64));
+  surface->SetFrame(SurfaceFrameType::NORMAL);
+  surface->Commit();
+  auto* wide_frame = shell_surface->wide_frame_for_test();
+  ASSERT_FALSE(wide_frame);
+
+  // Set the |full_restore::kParentToHiddenContainerKey| for the surface and
+  // reparent it, simulating the Full Restore process for an unparented ARC
+  // task.
+  aura::Window* window = shell_surface->GetWidget()->GetNativeWindow();
+  window->SetProperty(full_restore::kParentToHiddenContainerKey, true);
+  aura::client::ParentWindowWithContext(window,
+                                        /*context=*/window->GetRootWindow(),
+                                        window->GetBoundsInScreen());
+
+  // Maximize the surface. The WideFrameView should be created and a crash
+  // should not occur.
+  shell_surface->SetMaximized();
+  surface->Commit();
+  const auto* hidden_container_parent = window->parent();
+  wide_frame = shell_surface->wide_frame_for_test();
+  EXPECT_TRUE(wide_frame);
+  EXPECT_EQ(hidden_container_parent,
+            wide_frame->GetWidget()->GetNativeWindow()->parent());
+
+  // Call the FullRestoreController, simulating the ARC task becoming ready. The
+  // surface should be reparented and the WideFrameView should follow it.
+  ash::FullRestoreController::Get()->OnARCTaskReadyForUnparentedWindow(window);
+  EXPECT_NE(hidden_container_parent, window->parent());
+  wide_frame = shell_surface->wide_frame_for_test();
+  EXPECT_TRUE(wide_frame);
+  EXPECT_EQ(window->parent(),
+            wide_frame->GetWidget()->GetNativeWindow()->parent());
+}
+
 }  // namespace exo
diff --git a/components/heap_profiling/OWNERS b/components/heap_profiling/OWNERS
index 9cc3a5e..14e4c82 100644
--- a/components/heap_profiling/OWNERS
+++ b/components/heap_profiling/OWNERS
@@ -1,2 +1,4 @@
-alph@chromium.org
 erikchen@chromium.org
+etienneb@chromium.org
+joenotcharles@google.com
+ssid@chromium.org
\ No newline at end of file
diff --git a/components/messages/android/BUILD.gn b/components/messages/android/BUILD.gn
index e5e1056..4d65ffb 100644
--- a/components/messages/android/BUILD.gn
+++ b/components/messages/android/BUILD.gn
@@ -60,6 +60,7 @@
     ":jni_headers",
     "//base",
     "//content/public/browser",
+    "//ui/android:android",
   ]
 }
 
diff --git a/components/messages/android/internal/BUILD.gn b/components/messages/android/internal/BUILD.gn
index 818f79b..45b5cda 100644
--- a/components/messages/android/internal/BUILD.gn
+++ b/components/messages/android/internal/BUILD.gn
@@ -46,6 +46,7 @@
   sources = [
     "java/src/org/chromium/components/messages/MessageAutoDismissTimerTest.java",
     "java/src/org/chromium/components/messages/MessageBannerMediatorUnitTest.java",
+    "java/src/org/chromium/components/messages/MessageDispatcherUnitTest.java",
     "java/src/org/chromium/components/messages/MessageQueueManagerTest.java",
     "java/src/org/chromium/components/messages/ScopeChangeControllerTest.java",
   ]
diff --git a/components/messages/android/internal/java/src/org/chromium/components/messages/MessageDispatcherImpl.java b/components/messages/android/internal/java/src/org/chromium/components/messages/MessageDispatcherImpl.java
index 3173de4..0e8818db 100644
--- a/components/messages/android/internal/java/src/org/chromium/components/messages/MessageDispatcherImpl.java
+++ b/components/messages/android/internal/java/src/org/chromium/components/messages/MessageDispatcherImpl.java
@@ -6,9 +6,12 @@
 
 import android.animation.Animator;
 
+import androidx.annotation.VisibleForTesting;
+
 import org.chromium.base.Callback;
 import org.chromium.base.supplier.Supplier;
 import org.chromium.content_public.browser.WebContents;
+import org.chromium.ui.base.WindowAndroid;
 import org.chromium.ui.modelutil.PropertyModel;
 
 /**
@@ -16,11 +19,12 @@
  * MessageQueueManager.
  */
 public class MessageDispatcherImpl implements ManagedMessageDispatcher {
-    private final MessageQueueManager mMessageQueueManager = new MessageQueueManager();
+    private final MessageQueueManager mMessageQueueManager;
     private final MessageContainer mMessageContainer;
     private final Supplier<Integer> mMessageMaxTranslationSupplier;
     private final MessageAutodismissDurationProvider mAutodismissDurationProvider;
     private final Callback<Animator> mAnimatorStartCallback;
+    private final WindowAndroid mWindowAndroid;
 
     /**
      * Build a new message dispatcher
@@ -31,24 +35,58 @@
      *         autodismiss duration for message banner.
      * @param animatorStartCallback The {@link Callback} that will be used by the message to
      *         delegate starting the animations to the {@link WindowAndroid}.
+     * @param windowAndroid The current window Android.
      */
     public MessageDispatcherImpl(MessageContainer messageContainer,
             Supplier<Integer> messageMaxTranslation,
             MessageAutodismissDurationProvider autodismissDurationProvider,
-            Callback<Animator> animatorStartCallback) {
+            Callback<Animator> animatorStartCallback, WindowAndroid windowAndroid) {
+        this(messageContainer, messageMaxTranslation, autodismissDurationProvider,
+                animatorStartCallback, windowAndroid, new MessageQueueManager());
+    }
+
+    @VisibleForTesting
+    MessageDispatcherImpl(MessageContainer messageContainer,
+            Supplier<Integer> messageMaxTranslation,
+            MessageAutodismissDurationProvider autodismissDurationProvider,
+            Callback<Animator> animatorStartCallback, WindowAndroid windowAndroid,
+            MessageQueueManager messageQueueManager) {
         mMessageContainer = messageContainer;
         mMessageMaxTranslationSupplier = messageMaxTranslation;
         mAnimatorStartCallback = animatorStartCallback;
         mAutodismissDurationProvider = autodismissDurationProvider;
+        mWindowAndroid = windowAndroid;
+        mMessageQueueManager = messageQueueManager;
     }
 
+    /**
+     * Enqueue navigation or webContents scoped message.
+     * @param messageProperties The PropertyModel with message's visual properties.
+     * @param webContents The webContents the message is associated with.
+     * @param scopeType The {@link MessageScopeType} of the message.
+     * @param highPriority True if the message should be displayed ASAP.
+     */
     @Override
     public void enqueueMessage(PropertyModel messageProperties, WebContents webContents,
             @MessageScopeType int scopeType, boolean highPriority) {
         MessageStateHandler messageStateHandler = new SingleActionMessage(mMessageContainer,
                 messageProperties, this::dismissMessage, mMessageMaxTranslationSupplier,
                 mAutodismissDurationProvider, mAnimatorStartCallback);
-        ScopeKey scopeKey = new ScopeKey(scopeType, webContents);
+        ScopeKey scopeKey;
+        assert scopeType
+                != MessageScopeType.WINDOW
+            : "Use #enqueueWindowScopedMessage to enqueue a window-scoped message.";
+        scopeKey = new ScopeKey(scopeType, webContents);
+        mMessageQueueManager.enqueueMessage(
+                messageStateHandler, messageProperties, scopeKey, highPriority);
+    }
+
+    @Override
+    public void enqueueWindowScopedMessage(PropertyModel messageProperties, boolean highPriority) {
+        MessageStateHandler messageStateHandler = new SingleActionMessage(mMessageContainer,
+                messageProperties, this::dismissMessage, mMessageMaxTranslationSupplier,
+                mAutodismissDurationProvider, mAnimatorStartCallback);
+        ScopeKey scopeKey = new ScopeKey(mWindowAndroid);
         mMessageQueueManager.enqueueMessage(
                 messageStateHandler, messageProperties, scopeKey, highPriority);
     }
diff --git a/components/messages/android/internal/java/src/org/chromium/components/messages/MessageDispatcherUnitTest.java b/components/messages/android/internal/java/src/org/chromium/components/messages/MessageDispatcherUnitTest.java
new file mode 100644
index 0000000..f3f827f
--- /dev/null
+++ b/components/messages/android/internal/java/src/org/chromium/components/messages/MessageDispatcherUnitTest.java
@@ -0,0 +1,60 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.messages;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.verify;
+import static org.robolectric.annotation.LooperMode.Mode.PAUSED;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.annotation.LooperMode;
+
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.ui.modelutil.PropertyModel;
+
+/** Unit tests for {@link MessageDispatcherImpl}. */
+@SmallTest
+@RunWith(BaseRobolectricTestRunner.class)
+@LooperMode(PAUSED)
+public class MessageDispatcherUnitTest {
+    @Rule
+    public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock
+    private MessageQueueManager mQueueManager;
+
+    @Test
+    public void testEnqueueWindowScopedMessage() {
+        MessageDispatcherImpl dispatcher =
+                new MessageDispatcherImpl(null, () -> 1, (v) -> 1L, (v) -> {}, null, mQueueManager);
+        dispatcher.enqueueWindowScopedMessage(getModel(), false);
+        ArgumentCaptor<ScopeKey> captor = ArgumentCaptor.forClass(ScopeKey.class);
+        verify(mQueueManager).enqueueMessage(any(), any(), captor.capture(), anyBoolean());
+        Assert.assertEquals(
+                "The message should be of window scope if it is enqueued by #enqueueWindowScopedMessage.",
+                MessageScopeType.WINDOW, captor.getValue().scopeType);
+    }
+
+    private PropertyModel getModel() {
+        return new PropertyModel.Builder(MessageBannerProperties.ALL_KEYS)
+                .with(MessageBannerProperties.MESSAGE_IDENTIFIER, MessageIdentifier.TEST_MESSAGE)
+                .with(MessageBannerProperties.TITLE, "test")
+                .with(MessageBannerProperties.DESCRIPTION, "Description")
+                .with(MessageBannerProperties.ICON, null)
+                .with(MessageBannerProperties.ON_PRIMARY_ACTION, () -> {})
+                .with(MessageBannerProperties.ON_DISMISSED, (dismissReason) -> {})
+                .build();
+    }
+}
diff --git a/components/messages/android/internal/java/src/org/chromium/components/messages/MessagesFactory.java b/components/messages/android/internal/java/src/org/chromium/components/messages/MessagesFactory.java
index c864138..b74e1cc 100644
--- a/components/messages/android/internal/java/src/org/chromium/components/messages/MessagesFactory.java
+++ b/components/messages/android/internal/java/src/org/chromium/components/messages/MessagesFactory.java
@@ -24,14 +24,15 @@
      *         autodismiss duration for message banner.
      * @param animatorStartCallback The {@link Callback} that will be used by the message to
      *         delegate starting the animations to the {@link WindowAndroid}.
+     * @param windowAndroid The current window Android.
      * @return The constructed ManagedMessageDispatcher.
      */
     public static ManagedMessageDispatcher createMessageDispatcher(MessageContainer container,
             Supplier<Integer> messageMaxTranslation,
             MessageAutodismissDurationProvider autodismissDurationMs,
-            Callback<Animator> animatorStartCallback) {
-        return new MessageDispatcherImpl(
-                container, messageMaxTranslation, autodismissDurationMs, animatorStartCallback);
+            Callback<Animator> animatorStartCallback, WindowAndroid windowAndroid) {
+        return new MessageDispatcherImpl(container, messageMaxTranslation, autodismissDurationMs,
+                animatorStartCallback, windowAndroid);
     }
 
     /**
diff --git a/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeChangeController.java b/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeChangeController.java
index b64a45d..ce24451 100644
--- a/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeChangeController.java
+++ b/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeChangeController.java
@@ -145,7 +145,10 @@
         public WindowScopeObserver(Delegate delegate, ScopeKey scopeKey) {
             mDelegate = delegate;
             mScopeKey = scopeKey;
-            WindowAndroid windowAndroid = scopeKey.webContents.getTopLevelNativeWindow();
+            assert scopeKey.scopeType
+                    == MessageScopeType.WINDOW
+                : "WindowScopeObserver should only monitor window scope events.";
+            WindowAndroid windowAndroid = scopeKey.windowAndroid;
             windowAndroid.addActivityStateObserver(this);
             mDelegate.onScopeChange(new MessageScopeChange(scopeKey.scopeType, scopeKey,
                     windowAndroid.getActivityState() == ActivityState.RESUMED
@@ -173,7 +176,7 @@
 
         @Override
         public void destroy() {
-            mScopeKey.webContents.getTopLevelNativeWindow().removeActivityStateObserver(this);
+            mScopeKey.windowAndroid.removeActivityStateObserver(this);
         }
     }
 }
diff --git a/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeKey.java b/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeKey.java
index d0012ea..34913fb 100644
--- a/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeKey.java
+++ b/components/messages/android/internal/java/src/org/chromium/components/messages/ScopeKey.java
@@ -4,34 +4,46 @@
 
 package org.chromium.components.messages;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import org.chromium.content_public.browser.WebContents;
+import org.chromium.ui.base.WindowAndroid;
 
 /**
  * A key stands for a scope instance of a certain scope type.
  */
 class ScopeKey {
     public final @MessageScopeType int scopeType;
-    public final WebContents webContents;
+    public final @Nullable WebContents webContents;
+    public final @Nullable WindowAndroid windowAndroid;
 
-    public ScopeKey(@MessageScopeType int scopeType, WebContents webContents) {
+    public ScopeKey(@MessageScopeType int scopeType, @NonNull WebContents webContents) {
         this.scopeType = scopeType;
         this.webContents = webContents;
+        windowAndroid = null;
+    }
+
+    public ScopeKey(@NonNull WindowAndroid windowAndroid) {
+        scopeType = MessageScopeType.WINDOW;
+        this.windowAndroid = windowAndroid;
+        webContents = null;
     }
 
     @Override
     public boolean equals(@Nullable Object other) {
         if (!(other instanceof ScopeKey)) return false;
         ScopeKey otherScopeKey = (ScopeKey) other;
-        return scopeType == otherScopeKey.scopeType && otherScopeKey.webContents == webContents;
+        return scopeType == otherScopeKey.scopeType && windowAndroid == otherScopeKey.windowAndroid
+                && webContents == otherScopeKey.webContents;
     }
 
     @Override
     public int hashCode() {
         int result = 17;
         result = result * 31 + scopeType;
-        result = result * 31 + webContents.hashCode();
+        result = result * 31 + (webContents == null ? 0 : webContents.hashCode());
+        result = result * 31 + (windowAndroid == null ? 0 : windowAndroid.hashCode());
         return result;
     }
 }
diff --git a/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcher.java b/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcher.java
index f05f5323..e271207 100644
--- a/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcher.java
+++ b/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcher.java
@@ -23,6 +23,19 @@
             @MessageScopeType int scopeType, boolean highPriority);
 
     /**
+     * Enqueues a message defined by its properties. This message will be of a
+     * {@link MessageScopeType#WINDOW} scope. And it will be be associated with WindowAndroid for
+     * which this message dispatcher was created. Use {@link
+     * MessageDispatcher#enqueueMessage(PropertyModel, WebContents, int, boolean)} to ensure the
+     * message is attached to given webContents or the windowAndroid associated with the given
+     * webContents.
+     *
+     * @param messageProperties The PropertyModel with message's visual properties.
+     * @param highPriority True if the message should be displayed ASAP.
+     */
+    void enqueueWindowScopedMessage(PropertyModel messageProperties, boolean highPriority);
+
+    /**
      * Dismisses a message referenced by its PropertyModel. Hides the message if it is currently
      * displayed. Displays the next message in the queue if available.
      * @param messageProperties The PropertyModel of the message to be dismissed.
diff --git a/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcherBridge.java b/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcherBridge.java
index 4e63450..7be028d7 100644
--- a/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcherBridge.java
+++ b/components/messages/android/java/src/org/chromium/components/messages/MessageDispatcherBridge.java
@@ -7,6 +7,7 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.content_public.browser.WebContents;
+import org.chromium.ui.base.WindowAndroid;
 
 /**
  * Java counterpart to MessageDispatcherBridge. Enables C++ feature code to enqueue/dismiss messages
@@ -30,6 +31,15 @@
     }
 
     @CalledByNative
+    private static boolean enqueueWindowScopedMessage(
+            MessageWrapper message, WindowAndroid windowAndroid, boolean highPriority) {
+        MessageDispatcher messageDispatcher = MessageDispatcherProvider.from(windowAndroid);
+        if (messageDispatcher == null) return false;
+        messageDispatcher.enqueueWindowScopedMessage(message.getMessageProperties(), highPriority);
+        return true;
+    }
+
+    @CalledByNative
     private static void dismissMessage(
             MessageWrapper message, WebContents webContents, @DismissReason int dismissReason) {
         MessageDispatcher messageDispatcher =
diff --git a/components/messages/android/message_dispatcher_bridge.cc b/components/messages/android/message_dispatcher_bridge.cc
index fdeda10..c0d8a4e7 100644
--- a/components/messages/android/message_dispatcher_bridge.cc
+++ b/components/messages/android/message_dispatcher_bridge.cc
@@ -49,6 +49,21 @@
   return false;
 }
 
+bool MessageDispatcherBridge::EnqueueWindowScopedMessage(
+    MessageWrapper* message,
+    ui::WindowAndroid* window_android,
+    MessagePriority priority) {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  if (Java_MessageDispatcherBridge_enqueueWindowScopedMessage(
+          env, message->GetJavaMessageWrapper(),
+          window_android->GetJavaObject(),
+          priority == MessagePriority::kUrgent) == JNI_TRUE) {
+    message->SetMessageEnqueued();
+    return true;
+  }
+  return false;
+}
+
 void MessageDispatcherBridge::DismissMessage(MessageWrapper* message,
                                              content::WebContents* web_contents,
                                              DismissReason dismiss_reason) {
diff --git a/components/messages/android/message_dispatcher_bridge.h b/components/messages/android/message_dispatcher_bridge.h
index 43c75a3..f6a23df 100644
--- a/components/messages/android/message_dispatcher_bridge.h
+++ b/components/messages/android/message_dispatcher_bridge.h
@@ -7,6 +7,7 @@
 
 #include "components/messages/android/message_enums.h"
 #include "components/messages/android/message_wrapper.h"
+#include "ui/android/window_android.h"
 
 namespace content {
 class WebContents;
@@ -26,6 +27,9 @@
                               content::WebContents* web_contents,
                               MessageScopeType scope_type,
                               MessagePriority priority);
+  virtual bool EnqueueWindowScopedMessage(MessageWrapper* message,
+                                          ui::WindowAndroid* window_android,
+                                          MessagePriority priority);
   virtual void DismissMessage(MessageWrapper* message,
                               content::WebContents* web_contents,
                               DismissReason dismiss_reason);
diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc
index d16ba4a5..90cd6534 100644
--- a/components/omnibox/browser/autocomplete_input.cc
+++ b/components/omnibox/browser/autocomplete_input.cc
@@ -569,7 +569,7 @@
       !base::StartsWith(text, base::ASCIIToUTF16(url.scheme()),
                         base::CompareCase::INSENSITIVE_ASCII) &&
       !url::HostIsIPAddress(url.host()) &&
-      !net::IsHostnameNonUnique(base::UTF16ToUTF8(text)) &&
+      !net::IsHostnameNonUnique(url.host()) &&
       (url.port().empty() || https_port_for_testing)) {
     // Use HTTPS as the default scheme for URLs that are typed without a scheme.
     // Inputs of type UNKNOWN can still be valid URLs, but these will be mainly
diff --git a/components/omnibox/browser/autocomplete_input_unittest.cc b/components/omnibox/browser/autocomplete_input_unittest.cc
index 19bf354..4a906b0 100644
--- a/components/omnibox/browser/autocomplete_input_unittest.cc
+++ b/components/omnibox/browser/autocomplete_input_unittest.cc
@@ -384,6 +384,14 @@
       {u"127.0.0.1:8080", GURL("http://127.0.0.1:8080"), false},
       // Non-unique hostnames shouldn't be upgraded.
       {u"site.test", GURL("http://site.test"), false},
+      // This non-unique hostname is a regression test for
+      // https://crbug.com/1224724. The slash is provided at the end of the
+      // input query since otherwise the input gets classified as a non-URL and
+      // the autocomplete code doesn't progress to the HTTPS upgrading logic
+      // where the bug was.
+      {u"dotlesshostname/", GURL("http://dotlesshostname/"), false},
+      {u"http://dotlesshostname/", GURL("http://dotlesshostname/"), false},
+      {u"https://dotlesshostname/", GURL("https://dotlesshostname/"), false},
       // Fully typed URLs shouldn't be upgraded.
       {u"http://example.com", GURL("http://example.com"), false},
       {u"HTTP://EXAMPLE.COM", GURL("http://example.com"), false},
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/BluetoothChooserDialog.java b/components/permissions/android/java/src/org/chromium/components/permissions/BluetoothChooserDialog.java
index 6cc0296..484f0aae 100644
--- a/components/permissions/android/java/src/org/chromium/components/permissions/BluetoothChooserDialog.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/BluetoothChooserDialog.java
@@ -14,6 +14,7 @@
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.location.LocationManager;
+import android.os.Build;
 import android.text.SpannableString;
 import android.text.TextUtils;
 import android.view.View;
@@ -24,7 +25,6 @@
 import androidx.core.graphics.drawable.DrawableCompat;
 import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
 
-import org.chromium.base.BuildInfo;
 import org.chromium.base.Log;
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
@@ -277,9 +277,7 @@
         // Nearby Devices permission and has set the neverForLocation flag on the BLUETOOTH_SCAN
         // permission in its manifest.
         boolean needsLocationServices = false;
-        // TODO(b/183501112): Remove the targetsAtLeastS() check once Chrome starts compiling
-        // against the S SDK.
-        if (!BuildInfo.targetsAtLeastS() || !BuildInfo.isAtLeastS()) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
             needsLocationServices = !LocationUtils.getInstance().isSystemLocationSettingEnabled();
         }
 
@@ -312,9 +310,7 @@
                                 R.string.bluetooth_need_location_permission_and_services_on),
                         permissionSpan, servicesSpan);
             } else {
-                // TODO(b/183501112): Remove the targetsAtLeastS() check once Chrome starts
-                // compiling against the S SDK.
-                if (BuildInfo.targetsAtLeastS() && BuildInfo.isAtLeastS()) {
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
                     needPermissionMessage = SpanApplier.applySpans(
                             mContext.getString(R.string.bluetooth_need_nearby_devices_permission),
                             permissionSpan);
@@ -365,14 +361,10 @@
                 break;
             case LinkType.REQUEST_PERMISSIONS:
                 mItemChooserDialog.setIgnorePendingWindowFocusChangeForClose(true);
-                // TODO(b/183501112): Remove the targetsAtLeastS() check once Chrome starts
-                // compiling against the S SDK.
-                if (BuildInfo.targetsAtLeastS() && BuildInfo.isAtLeastS()) {
-                    // TODO(b/183501112): Replace these permission strings with the actual Manifest
-                    // constants once Chrome starts compiling against the S SDK.
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
                     mWindowAndroid.requestPermissions(
-                            new String[] {"android.permission.BLUETOOTH_SCAN",
-                                    "android.permission.BLUETOOTH_CONNECT"},
+                            new String[] {Manifest.permission.BLUETOOTH_SCAN,
+                                    Manifest.permission.BLUETOOTH_CONNECT},
                             BluetoothChooserDialog.this);
                 } else {
                     mWindowAndroid.requestPermissions(
@@ -401,26 +393,18 @@
     }
 
     private static boolean hasSystemPermissions(WindowAndroid windowAndroid) {
-        // TODO(b/183501112): Remove the targetsAtLeastS() check once Chrome starts compiling
-        // against the S SDK.
-        if (BuildInfo.targetsAtLeastS() && BuildInfo.isAtLeastS()) {
-            // TODO(b/183501112): Replace these permission strings with the actual Manifest
-            // constants once Chrome starts compiling against the S SDK.
-            return windowAndroid.hasPermission("android.permission.BLUETOOTH_SCAN")
-                    && windowAndroid.hasPermission("android.permission.BLUETOOTH_CONNECT");
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+            return windowAndroid.hasPermission(Manifest.permission.BLUETOOTH_SCAN)
+                    && windowAndroid.hasPermission(Manifest.permission.BLUETOOTH_CONNECT);
         }
 
         return windowAndroid.hasPermission(Manifest.permission.ACCESS_FINE_LOCATION);
     }
 
     private static boolean canRequestSystemPermissions(WindowAndroid windowAndroid) {
-        // TODO(b/183501112): Remove the targetsAtLeastS() check once Chrome starts compiling
-        // against the S SDK.
-        if (BuildInfo.targetsAtLeastS() && BuildInfo.isAtLeastS()) {
-            // TODO(b/183501112): Replace these permission strings with the actual Manifest
-            // constants once Chrome starts compiling against the S SDK.
-            return windowAndroid.canRequestPermission("android.permission.BLUETOOTH_SCAN")
-                    && windowAndroid.canRequestPermission("android.permission.BLUETOOTH_CONNECT");
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+            return windowAndroid.canRequestPermission(Manifest.permission.BLUETOOTH_SCAN)
+                    && windowAndroid.canRequestPermission(Manifest.permission.BLUETOOTH_CONNECT);
         }
 
         return windowAndroid.canRequestPermission(Manifest.permission.ACCESS_FINE_LOCATION);
diff --git a/components/safe_browsing/core/common/visual_utils.cc b/components/safe_browsing/core/common/visual_utils.cc
index cf63abe0..53f1a8b 100644
--- a/components/safe_browsing/core/common/visual_utils.cc
+++ b/components/safe_browsing/core/common/visual_utils.cc
@@ -279,9 +279,9 @@
   const int data_size = blurred->width() * blurred->height();
   blurred_image->mutable_data()->reserve(data_size);
 
-  for (int x = 0; x < blurred->width(); ++x) {
-    for (int y = 0; y < blurred->height(); ++y) {
-      SkColor color = blurred->getColor(y, x);
+  for (int y = 0; y < blurred->height(); ++y) {
+    for (int x = 0; x < blurred->width(); ++x) {
+      SkColor color = blurred->getColor(x, y);
       *blurred_image->mutable_data() += static_cast<char>(SkColorGetR(color));
       *blurred_image->mutable_data() += static_cast<char>(SkColorGetG(color));
       *blurred_image->mutable_data() += static_cast<char>(SkColorGetB(color));
diff --git a/components/safe_browsing/core/common/visual_utils_unittest.cc b/components/safe_browsing/core/common/visual_utils_unittest.cc
index 7d56fca..0024d46 100644
--- a/components/safe_browsing/core/common/visual_utils_unittest.cc
+++ b/components/safe_browsing/core/common/visual_utils_unittest.cc
@@ -4,7 +4,9 @@
 
 #include "components/safe_browsing/core/common/visual_utils.h"
 
+#include "base/test/scoped_feature_list.h"
 #include "base/test/test_discardable_memory_allocator.h"
+#include "components/safe_browsing/core/common/features.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/skia/include/core/SkColorPriv.h"
@@ -657,5 +659,26 @@
                    .has_value());
 }
 
+TEST_F(VisualUtilsTest, NonSquareBlurredImage) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndEnableFeatureWithParameters(
+      kVisualFeaturesSizes, {{"phash_width", "108"}, {"phash_height", "192"}});
+
+  VisualFeatures::BlurredImage blurred;
+
+  // Draw white over the image
+  bitmap_.erase(SK_ColorWHITE, SkIRect::MakeXYWH(0, 0, 1000, 1000));
+
+  ASSERT_TRUE(GetBlurredImage(bitmap_, &blurred));
+  ASSERT_EQ(18, blurred.width());
+  ASSERT_EQ(32, blurred.height());
+  ASSERT_EQ(3u * 18u * 32u, blurred.data().size());
+  for (size_t i = 0; i < 18u * 32u; i++) {
+    EXPECT_EQ('\xff', blurred.data()[3 * i]);
+    EXPECT_EQ('\xff', blurred.data()[3 * i + 1]);
+    EXPECT_EQ('\xff', blurred.data()[3 * i + 2]);
+  }
+}
+
 }  // namespace visual_utils
 }  // namespace safe_browsing
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
index 0ac09e4..bdbd026 100644
--- a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
+++ b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
@@ -207,6 +207,7 @@
 
   signal_storage_config_->OnSignalCollectionStarted(
       segment_info.model_metadata());
+  signal_filter_processor_->OnSignalListUpdated();
 
   model_execution_scheduler_->OnNewModelInfoReady(segment_info);
 }
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc b/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc
index f2dff64..6e0e57f 100644
--- a/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc
+++ b/components/segmentation_platform/internal/segmentation_platform_service_impl_unittest.cc
@@ -10,6 +10,7 @@
 #include "base/files/file_path.h"
 #include "base/metrics/user_metrics.h"
 #include "base/run_loop.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/simple_test_clock.h"
 #include "base/test/task_environment.h"
 #include "base/test/test_simple_task_runner.h"
@@ -28,6 +29,7 @@
 #include "components/segmentation_platform/internal/execution/feature_aggregator_impl.h"
 #include "components/segmentation_platform/internal/execution/model_execution_manager.h"
 #include "components/segmentation_platform/internal/execution/model_execution_manager_factory.h"
+#include "components/segmentation_platform/internal/proto/model_metadata.pb.h"
 #include "components/segmentation_platform/internal/proto/model_prediction.pb.h"
 #include "components/segmentation_platform/internal/proto/signal.pb.h"
 #include "components/segmentation_platform/internal/proto/signal_storage_config.pb.h"
@@ -154,15 +156,12 @@
   // ModelExecutionManagerImpl is publishing the correct data and whether that
   // leads to the SegmentationPlatformServiceImpl doing the right thing.
 #if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
-  proto::SegmentInfo segment_info;
-  segment_info.set_segment_id(
-      OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_SHARE);
-  auto* metadata = segment_info.mutable_model_metadata();
-  metadata->set_time_unit(proto::TimeUnit::DAY);
-  metadata->set_bucket_duration(42u);
+  proto::SegmentationModelMetadata metadata;
+  metadata.set_time_unit(proto::TimeUnit::DAY);
+  metadata.set_bucket_duration(42u);
   // Add a test feature, which will later cause the signal storage DB to be
   // updated.
-  auto* feature = metadata->add_features();
+  auto* feature = metadata.add_features();
   feature->set_type(proto::SignalType::HISTOGRAM_VALUE);
   feature->set_name("other");
   feature->set_name_hash(123);
@@ -172,11 +171,28 @@
 
   ModelExecutionManagerImpl* mem_impl = static_cast<ModelExecutionManagerImpl*>(
       segmentation_platform_service_impl_->model_execution_manager_.get());
-  mem_impl->model_updated_callback_.Run(segment_info);
+
+  // This method is invoked from SegmentationModelHandler whenever a model has
+  // been updated and every time at startup. This will first read the old info
+  // from the database, and then write the merged result of the old and new to
+  // the database.
+  base::HistogramTester histogram_tester;
+  mem_impl->OnSegmentationModelUpdated(
+      OptimizationTarget::OPTIMIZATION_TARGET_SEGMENTATION_SHARE, metadata);
+  segment_db_->GetCallback(true);
+  segment_db_->UpdateCallback(true);
 
   // Since the updated config had a new feature, the SignalStorageConfigs DB
   // should have been updated.
   segment_storage_config_db_->UpdateCallback(true);
+
+  // The SignalFilterProcessor needs to read the segment information from the
+  // database before starting to listen to the updated signals.
+  segment_db_->LoadCallback(true);
+  //  We should have started recording 1 value histogram, once.
+  EXPECT_EQ(
+      1, histogram_tester.GetBucketCount(
+             "SegmentationPlatform.Signals.ListeningCount.HistogramValue", 1));
 #endif  // BUILDFLAG(BUILD_WITH_TFLITE_LIB)
 
   // Database maintenance tasks should try to cleanup the signals after a short
diff --git a/components/segmentation_platform/internal/signals/signal_filter_processor.cc b/components/segmentation_platform/internal/signals/signal_filter_processor.cc
index 1322d68..591f866 100644
--- a/components/segmentation_platform/internal/signals/signal_filter_processor.cc
+++ b/components/segmentation_platform/internal/signals/signal_filter_processor.cc
@@ -11,6 +11,7 @@
 #include "components/segmentation_platform/internal/proto/types.pb.h"
 #include "components/segmentation_platform/internal/signals/histogram_signal_handler.h"
 #include "components/segmentation_platform/internal/signals/user_action_signal_handler.h"
+#include "components/segmentation_platform/internal/stats.h"
 
 namespace segmentation_platform {
 
@@ -57,6 +58,8 @@
     }
   }
 
+  stats::RecordSignalsListeningCount(user_actions, histograms);
+
   user_action_signal_handler_->SetRelevantUserActions(std::move(user_actions));
   histogram_signal_handler_->SetRelevantHistograms(histograms);
 }
diff --git a/components/segmentation_platform/internal/stats.cc b/components/segmentation_platform/internal/stats.cc
index 0fe9ab1..005e2a97 100644
--- a/components/segmentation_platform/internal/stats.cc
+++ b/components/segmentation_platform/internal/stats.cc
@@ -7,6 +7,7 @@
 #include "base/metrics/histogram_functions.h"
 #include "base/notreached.h"
 #include "components/optimization_guide/proto/models.pb.h"
+#include "components/segmentation_platform/internal/proto/types.pb.h"
 
 namespace segmentation_platform {
 namespace stats {
@@ -115,6 +116,22 @@
   }
 }
 
+// Should map to SignalType variant string in
+// //tools/metrics/histograms/metadata/segmentation_platform/histograms.xml.
+std::string SignalTypeToHistogramVariant(proto::SignalType signal_type) {
+  switch (signal_type) {
+    case proto::SignalType::USER_ACTION:
+      return "UserAction";
+    case proto::SignalType::HISTOGRAM_ENUM:
+      return "HistogramEnum";
+    case proto::SignalType::HISTOGRAM_VALUE:
+      return "HistogramValue";
+    default:
+      NOTREACHED();
+      return "Unknown";
+  }
+}
+
 }  // namespace
 
 void RecordModelScore(OptimizationTarget segment_id, float score) {
@@ -144,5 +161,32 @@
       GetSegmentSwitch(new_selection, prev_segment));
 }
 
+void RecordSignalsListeningCount(
+    const std::set<uint64_t>& user_actions,
+    const std::set<std::pair<std::string, proto::SignalType>>& histograms) {
+  uint64_t user_action_count = user_actions.size();
+  uint64_t histogram_enum_count = 0;
+  uint64_t histogram_value_count = 0;
+  for (auto& s : histograms) {
+    if (s.second == proto::SignalType::HISTOGRAM_ENUM)
+      ++histogram_enum_count;
+    if (s.second == proto::SignalType::HISTOGRAM_VALUE)
+      ++histogram_value_count;
+  }
+
+  base::UmaHistogramCounts1000(
+      "SegmentationPlatform.Signals.ListeningCount." +
+          SignalTypeToHistogramVariant(proto::SignalType::USER_ACTION),
+      user_action_count);
+  base::UmaHistogramCounts1000(
+      "SegmentationPlatform.Signals.ListeningCount." +
+          SignalTypeToHistogramVariant(proto::SignalType::HISTOGRAM_ENUM),
+      histogram_enum_count);
+  base::UmaHistogramCounts1000(
+      "SegmentationPlatform.Signals.ListeningCount." +
+          SignalTypeToHistogramVariant(proto::SignalType::HISTOGRAM_VALUE),
+      histogram_value_count);
+}
+
 }  // namespace stats
 }  // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/stats.h b/components/segmentation_platform/internal/stats.h
index 15d4fe22..5781913c 100644
--- a/components/segmentation_platform/internal/stats.h
+++ b/components/segmentation_platform/internal/stats.h
@@ -6,6 +6,7 @@
 #define COMPONENTS_SEGMENTATION_PLATFORM_INTERNAL_STATS_H_
 
 #include "components/optimization_guide/proto/models.pb.h"
+#include "components/segmentation_platform/internal/proto/types.pb.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 using optimization_guide::proto::OptimizationTarget;
@@ -40,6 +41,12 @@
     OptimizationTarget new_selection,
     absl::optional<OptimizationTarget> previous_selection);
 
+// Records the number of unique user action and histogram signals that we are
+// currently tracking.
+void RecordSignalsListeningCount(
+    const std::set<uint64_t>& user_actions,
+    const std::set<std::pair<std::string, proto::SignalType>>& histograms);
+
 }  // namespace stats
 }  // namespace segmentation_platform
 
diff --git a/components/segmentation_platform/internal/stats_unittest.cc b/components/segmentation_platform/internal/stats_unittest.cc
index 3880d4e2..5d75b040 100644
--- a/components/segmentation_platform/internal/stats_unittest.cc
+++ b/components/segmentation_platform/internal/stats_unittest.cc
@@ -6,10 +6,12 @@
 
 #include "base/test/metrics/histogram_tester.h"
 #include "components/optimization_guide/proto/models.pb.h"
+#include "components/segmentation_platform/internal/proto/types.pb.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace segmentation_platform {
+using proto::SignalType;
 namespace stats {
 
 class StatsTest : public testing::Test {
@@ -49,5 +51,28 @@
       "SegmentationPlatform.AdaptiveToolbar.SegmentSelection.Computed", 3);
 }
 
+TEST_F(StatsTest, SignalsListeningCount) {
+  base::HistogramTester tester;
+  std::set<uint64_t> user_actions{1, 2, 3, 4};
+  std::set<std::pair<std::string, proto::SignalType>> histograms;
+  histograms.insert(std::make_pair("hist1", SignalType::HISTOGRAM_ENUM));
+  histograms.insert(std::make_pair("hist2", SignalType::HISTOGRAM_ENUM));
+  histograms.insert(std::make_pair("hist3", SignalType::HISTOGRAM_ENUM));
+  histograms.insert(std::make_pair("hist4", SignalType::HISTOGRAM_VALUE));
+  histograms.insert(std::make_pair("hist5", SignalType::HISTOGRAM_VALUE));
+
+  RecordSignalsListeningCount(user_actions, histograms);
+
+  EXPECT_EQ(1,
+            tester.GetBucketCount(
+                "SegmentationPlatform.Signals.ListeningCount.UserAction", 4));
+  EXPECT_EQ(
+      1, tester.GetBucketCount(
+             "SegmentationPlatform.Signals.ListeningCount.HistogramEnum", 3));
+  EXPECT_EQ(
+      1, tester.GetBucketCount(
+             "SegmentationPlatform.Signals.ListeningCount.HistogramValue", 2));
+}
+
 }  // namespace stats
 }  // namespace segmentation_platform
diff --git a/components/variations/service/generate_ui_string_overrider.py b/components/variations/service/generate_ui_string_overrider.py
index bcf33dc..c42fdd3 100755
--- a/components/variations/service/generate_ui_string_overrider.py
+++ b/components/variations/service/generate_ui_string_overrider.py
@@ -15,10 +15,10 @@
 
 
 # Regular expression for parsing the #define macro format. Matches both the
-# version of the macro with whitelist support and the one without. For example,
-# Without generate whitelist flag:
+# version of the macro with allowlist support and the one without. For example,
+# Without generate allowlist flag:
 #   #define IDS_FOO_MESSAGE 1234
-# With generate whitelist flag:
+# With generate allowlist flag:
 #   #define IDS_FOO_MESSAGE (::ui::AllowlistedResource<1234>(), 1234)
 RESOURCE_EXTRACT_REGEX = re.compile('^#define (\S*).* (\d+)\)?$', re.MULTILINE)
 
diff --git a/components/variations/study_filtering.cc b/components/variations/study_filtering.cc
index 7bde879a..2905053b 100644
--- a/components/variations/study_filtering.cc
+++ b/components/variations/study_filtering.cc
@@ -51,43 +51,41 @@
 
 bool CheckStudyFormFactor(const Study::Filter& filter,
                           Study::FormFactor form_factor) {
-  // Empty whitelist and blacklist signifies matching any form factor.
+  // If both filters are empty, match all values.
   if (filter.form_factor_size() == 0 && filter.exclude_form_factor_size() == 0)
     return true;
 
-  // Allow the form_factor if it matches the whitelist.
-  // Note if both a whitelist and blacklist are specified, the blacklist is
-  // ignored. We do not expect both to be present for Chrome due to server-side
-  // checks.
+  // Allow the |form_factor| if it's in the allowlist.
+  // Note if both are specified, the excludelist is ignored. We do not expect
+  // both to be present for Chrome due to server-side checks.
   if (filter.form_factor_size() > 0)
     return base::Contains(filter.form_factor(), form_factor);
 
-  // Omit if we match the blacklist.
+  // Omit if there is a matching excludelist entry.
   return !base::Contains(filter.exclude_form_factor(), form_factor);
 }
 
 bool CheckStudyCpuArchitecture(const Study::Filter& filter,
                                Study::CpuArchitecture cpu_architecture) {
-  // Empty allowlist and denylist signifies matching any CPU architecture.
+  // If both filters are empty, match all values.
   if (filter.cpu_architecture_size() == 0 &&
       filter.exclude_cpu_architecture_size() == 0) {
     return true;
   }
 
-  // Allow the cpu_architecture if it matches the allowlist.
-  // Note if both a allowlist and denylist are specified, the denylist is
-  // ignored. We do not expect both to be present for Chrome due to server-side
-  // checks.
+  // Allow the |cpu_architecture| if it's in the allowlist.
+  // Note if both are specified, the excludelist is ignored. We do not expect
+  // both to be present for Chrome due to server-side checks.
   if (filter.cpu_architecture_size() > 0)
     return base::Contains(filter.cpu_architecture(), cpu_architecture);
 
-  // Omit if we match the denylist.
+  // Omit if there is a matching excludelist entry.
   return !base::Contains(filter.exclude_cpu_architecture(), cpu_architecture);
 }
 
 bool CheckStudyHardwareClass(const Study::Filter& filter,
                              const std::string& hardware_class) {
-  // Empty hardware_class and exclude_hardware_class matches all.
+  // If both filters are empty, match all values.
   if (filter.hardware_class_size() == 0 &&
       filter.exclude_hardware_class_size() == 0) {
     return true;
@@ -97,34 +95,50 @@
   // comparison logic to match hardware classes. In M66, it was made consistent
   // with other filters.
 
-  // Checks if we are supposed to filter for a specified set of
-  // hardware_classes. Note that this means this overrides the
-  // exclude_hardware_class in case that ever occurs (which it shouldn't).
+  // Allow the |hardware_class| if it's in the allowlist.
+  // Note if both are specified, the excludelist is ignored. We do not expect
+  // both to be present for Chrome due to server-side checks.
   if (filter.hardware_class_size() > 0) {
     return ContainsStringIgnoreCaseASCII(filter.hardware_class(),
                                          hardware_class);
   }
 
-  // Omit if we match the blacklist.
+  // Omit if there is a matching excludelist entry.
   return !ContainsStringIgnoreCaseASCII(filter.exclude_hardware_class(),
                                         hardware_class);
 }
 
 bool CheckStudyLocale(const Study::Filter& filter, const std::string& locale) {
-  // Empty locale and exclude_locale lists matches all locales.
+  // If both filters are empty, match all values.
   if (filter.locale_size() == 0 && filter.exclude_locale_size() == 0)
     return true;
 
-  // Check if we are supposed to filter for a specified set of countries. Note
-  // that this means this overrides the exclude_locale in case that ever occurs
-  // (which it shouldn't).
+  // Allow the |locale| if it's in the allowlist.
+  // Note if both are specified, the excludelist is ignored. We do not expect
+  // both to be present for Chrome due to server-side checks.
   if (filter.locale_size() > 0)
     return base::Contains(filter.locale(), locale);
 
-  // Omit if matches any of the exclude entries.
+  // Omit if there is a matching excludelist entry.
   return !base::Contains(filter.exclude_locale(), locale);
 }
 
+bool CheckStudyCountry(const Study::Filter& filter,
+                       const std::string& country) {
+  // If both filters are empty, match all values.
+  if (filter.country_size() == 0 && filter.exclude_country_size() == 0)
+    return true;
+
+  // Allow the |country| if it's in the allowlist.
+  // Note if both are specified, the excludelist is ignored. We do not expect
+  // both to be present for Chrome due to server-side checks.
+  if (filter.country_size() > 0)
+    return base::Contains(filter.country(), country);
+
+  // Omit if there is a matching excludelist entry.
+  return !base::Contains(filter.exclude_country(), country);
+}
+
 bool CheckStudyPlatform(const Study::Filter& filter, Study::Platform platform) {
   for (int i = 0; i < filter.platform_size(); ++i) {
     if (filter.platform(i) == platform)
@@ -212,22 +226,6 @@
   return true;
 }
 
-bool CheckStudyCountry(const Study::Filter& filter,
-                       const std::string& country) {
-  // Empty country and exclude_country matches all.
-  if (filter.country_size() == 0 && filter.exclude_country_size() == 0)
-    return true;
-
-  // Checks if we are supposed to filter for a specified set of countries. Note
-  // that this means this overrides the exclude_country in case that ever occurs
-  // (which it shouldn't).
-  if (filter.country_size() > 0)
-    return base::Contains(filter.country(), country);
-
-  // Omit if matches any of the exclude entries.
-  return !base::Contains(filter.exclude_country(), country);
-}
-
 bool CheckStudyEnterprise(const Study::Filter& filter,
                           const ClientFilterableState& client_state) {
   return !filter.has_is_enterprise() ||
diff --git a/components/variations/study_filtering.h b/components/variations/study_filtering.h
index e4ec9de..382ad37c4 100644
--- a/components/variations/study_filtering.h
+++ b/components/variations/study_filtering.h
@@ -45,6 +45,10 @@
 COMPONENT_EXPORT(VARIATIONS)
 bool CheckStudyLocale(const Study::Filter& filter, const std::string& locale);
 
+// Checks whether a study is applicable for the given |country| per |filter|.
+COMPONENT_EXPORT(VARIATIONS)
+bool CheckStudyCountry(const Study::Filter& filter, const std::string& country);
+
 // Checks whether a study is applicable for the given |platform| per |filter|.
 COMPONENT_EXPORT(VARIATIONS)
 bool CheckStudyPlatform(const Study::Filter& filter, Study::Platform platform);
@@ -79,10 +83,6 @@
 bool CheckStudyOSVersion(const Study::Filter& filter,
                          const base::Version& os_version);
 
-// Checks whether a study is applicable for the given |country| per |filter|.
-COMPONENT_EXPORT(VARIATIONS)
-bool CheckStudyCountry(const Study::Filter& filter, const std::string& country);
-
 // Checks whether a study is applicable given |is_enterprise| per |filter|.
 COMPONENT_EXPORT(VARIATIONS)
 bool CheckStudyEnterprise(const Study::Filter& filter,
diff --git a/content/browser/file_system/file_system_manager_impl.cc b/content/browser/file_system/file_system_manager_impl.cc
index 461fd7a..c2082e5 100644
--- a/content/browser/file_system/file_system_manager_impl.cc
+++ b/content/browser/file_system/file_system_manager_impl.cc
@@ -97,7 +97,6 @@
     case storage::FileSystemType::kFileSystemTypeLocalForPlatformApp:
     case storage::FileSystemType::kFileSystemTypeForTransientFile:
     case storage::FileSystemType::kFileSystemTypePluginPrivate:
-    case storage::FileSystemType::kFileSystemTypeCloudDevice:
     case storage::FileSystemType::kFileSystemTypeProvided:
     case storage::FileSystemType::kFileSystemTypeDeviceMediaAsFileStorage:
     case storage::FileSystemType::kFileSystemTypeArcContent:
diff --git a/content/browser/metrics/histogram_synchronizer.cc b/content/browser/metrics/histogram_synchronizer.cc
index 6fbedf2d..6210df1 100644
--- a/content/browser/metrics/histogram_synchronizer.cc
+++ b/content/browser/metrics/histogram_synchronizer.cc
@@ -117,18 +117,10 @@
 
     RequestContext* request = it->second;
     DCHECK_EQ(sequence_number, request->sequence_number_);
-    bool received_process_group_count = request->received_process_group_count_;
-    int unresponsive_processes = request->processes_pending_;
-
     std::move(request->callback_).Run();
 
     delete request;
     outstanding_requests_.Get().erase(it);
-
-    UMA_HISTOGRAM_BOOLEAN("Histogram.ReceivedProcessGroupCount",
-                          received_process_group_count);
-    UMA_HISTOGRAM_COUNTS_1M("Histogram.PendingProcessNotResponding",
-                            unresponsive_processes);
   }
 
   // Delete all the entries in |outstanding_requests_| map.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index b1a5e338..ac731d0 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -1939,6 +1939,10 @@
   return false;
 }
 
+bool RenderFrameHostImpl::HostedByFencedFrame() {
+  return frame_tree_node_->IsFencedFrame();
+}
+
 void RenderFrameHostImpl::ForEachRenderFrameHost(
     FrameIterationCallback on_frame) {
   ForEachRenderFrameHost(FrameIterationWrapper(on_frame));
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h
index ad16066..17e85f5 100644
--- a/content/browser/renderer_host/render_frame_host_impl.h
+++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -318,6 +318,7 @@
   PageImpl& GetPage() override;
   std::vector<RenderFrameHost*> GetFramesInSubtree() override;
   bool IsDescendantOf(RenderFrameHost*) override;
+  bool HostedByFencedFrame() override;
   void ForEachRenderFrameHost(FrameIterationCallback on_frame) override;
   void ForEachRenderFrameHost(
       FrameIterationAlwaysContinueCallback on_frame) override;
diff --git a/content/browser/service_worker/service_worker_internals_ui.cc b/content/browser/service_worker/service_worker_internals_ui.cc
index 8ea6cc2..a1b86a7 100644
--- a/content/browser/service_worker/service_worker_internals_ui.cc
+++ b/content/browser/service_worker/service_worker_internals_ui.cc
@@ -238,14 +238,6 @@
   }
 }
 
-// These values are persisted to logs. Entries should not be renumbered and
-// numeric values should never be reused.
-enum class ServiceWorkerInternalsLinkQuery {
-  kDevTools = 0,
-  kOther = 1,
-  kMaxValue = kOther,
-};
-
 }  // namespace
 
 class ServiceWorkerInternalsHandler::PartitionObserver
@@ -356,14 +348,6 @@
 
 ServiceWorkerInternalsUI::ServiceWorkerInternalsUI(WebUI* web_ui)
     : WebUIController(web_ui) {
-  std::string query = web_ui->GetWebContents()->GetURL().query();
-  ServiceWorkerInternalsLinkQuery query_type =
-      ServiceWorkerInternalsLinkQuery::kOther;
-  if (query == "devtools") {
-    query_type = ServiceWorkerInternalsLinkQuery::kDevTools;
-  }
-  base::UmaHistogramEnumeration("ServiceWorker.InternalsPageAccessed",
-                                query_type);
   WebUIDataSource* source =
       WebUIDataSource::Create(kChromeUIServiceWorkerInternalsHost);
   source->OverrideContentSecurityPolicy(
diff --git a/content/common/font_list_mac.mm b/content/common/font_list_mac.mm
index 1171fe6f..9dea6d21 100644
--- a/content/common/font_list_mac.mm
+++ b/content/common/font_list_mac.mm
@@ -58,8 +58,6 @@
     base::ScopedCFTypeRef<CFArrayRef> normalized_descriptors(
         CTFontDescriptorCreateMatchingFontDescriptors(
             raw_descriptor, mandatory_attributes_.get()));
-    DCHECK(normalized_descriptors != nullptr)
-        << "CTFontDescriptorCreateMatchingFontDescriptors returned null";
     return CopyLocalizedFamilyNameFrom(family_name,
                                        normalized_descriptors.get());
   }
@@ -82,18 +80,21 @@
  private:
   // Returns the first font descriptor matching the given family name.
   //
-  // |descriptors| must be an array of CTFontDescriptors whose font family name
+  // `descriptors` must be an array of CTFontDescriptors whose font family name
   // attribute is populated.
   //
+  // `descriptors` may be null, representing an empty array. This case is
+  // handled because CTFontDescriptorCreateMatchingFontDescriptors() may
+  // return null, even on macOS 11. Discovery documented in crbug.com/1235042.
+  //
   // Returns null if none of the descriptors match.
   static base::ScopedCFTypeRef<CTFontDescriptorRef> FindFirstWithFamilyName(
       CFStringRef family_name,
       CFArrayRef descriptors) {
     DCHECK(family_name != nullptr);
-    DCHECK(descriptors != nullptr);
 
-    CFIndex normalized_descriptor_count = CFArrayGetCount(descriptors);
-    for (CFIndex i = 0; i < normalized_descriptor_count; ++i) {
+    CFIndex descriptor_count = descriptors ? CFArrayGetCount(descriptors) : 0;
+    for (CFIndex i = 0; i < descriptor_count; ++i) {
       CTFontDescriptorRef descriptor =
           base::mac::CFCastStrict<CTFontDescriptorRef>(
               CFArrayGetValueAtIndex(descriptors, i));
@@ -114,8 +115,12 @@
 
   // Returns a localized font family name for the given family name.
   //
-  // |descriptors| must be an array of CTFontDescriptors representing all
-  // descriptors on the system matching the given family name.
+  // `descriptors` must be an array of normalized CTFontDescriptors representing
+  // all the font descriptors on the system matching the given family name.
+  //
+  // `descriptors` may be null, representing an empty array. This case is
+  // handled because CTFontDescriptorCreateMatchingFontDescriptors() may
+  // return null, even on macOS 11. Discovery documented in crbug.com/1235042.
   //
   // The given family name is returned as a fallback, if none of the descriptors
   // match the desired font family name.
@@ -123,7 +128,6 @@
       CFStringRef family_name,
       CFArrayRef descriptors) {
     DCHECK(family_name != nullptr);
-    DCHECK(descriptors != nullptr);
 
     base::ScopedCFTypeRef<CTFontDescriptorRef> descriptor =
         FindFirstWithFamilyName(family_name, descriptors);
@@ -139,8 +143,20 @@
             CTFontDescriptorCopyLocalizedAttribute(descriptor,
                                                    kCTFontFamilyNameAttribute,
                                                    /*language=*/nullptr)));
-    DCHECK(localized_family_name != nullptr)
-        << "CTFontDescriptorCopyLocalizedAttribute returned null";
+    // CTFontDescriptorCopyLocalizedAttribute() is only supposed to return null
+    // if the desired attribute (family name) is not present.
+    //
+    // We found that the function may return null, even when given a normalized
+    // font descriptor whose attribute (family name) exists --
+    // FindFirstWithFamilyName() only returns descriptors whose non-localized
+    // family name attribute is equal to a given string. Discovery documented in
+    // crbug.com/1235090.
+    if (localized_family_name == nullptr) {
+      DLOG(WARNING) << "Will use non-localized family name for font family: "
+                    << family_name;
+      return base::ScopedCFTypeRef<CFStringRef>(family_name,
+                                                base::scoped_policy::RETAIN);
+    }
     return localized_family_name;
   }
 
@@ -202,7 +218,7 @@
         continue;
 
       base::ScopedCFTypeRef<CFStringRef> cf_normalized_family_name =
-          resolver.CopyLocalizedFamilyName(base::mac::NSToCFCast(family_name));
+          resolver.CopyLocalizedFamilyName(family_name_cf);
       DCHECK(cf_normalized_family_name != nullptr)
           << "FontFamilyResolver::CopyLocalizedFamilyName returned null";
       family_name_map[base::mac::CFToNSCast(cf_normalized_family_name)] =
diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h
index 986fb50d..ab17451 100644
--- a/content/public/browser/render_frame_host.h
+++ b/content/public/browser/render_frame_host.h
@@ -266,6 +266,14 @@
   // This does not consider inner frame trees.
   virtual bool IsDescendantOf(RenderFrameHost* ancestor) = 0;
 
+  // Fenced frames (meta-bug https://crbug.com/1111084):
+  // Returns if this document is directly hosted by a fenced frame.
+  //
+  // In particular, this always returns false for document loaded inside an
+  // <iframe>, even if the <iframe> is part of a document loaded inside a fenced
+  // iframe.
+  virtual bool HostedByFencedFrame() = 0;
+
   // |ForEachRenderFrameHost| traverses this RenderFrameHost and all of its
   // descendants, including frames in any inner frame trees, in breadth-first
   // order. Examples of features that have inner frame trees are portals or
diff --git a/content/public/browser/web_contents_receiver_set.h b/content/public/browser/web_contents_receiver_set.h
index 85c8875c..268b6e5 100644
--- a/content/public/browser/web_contents_receiver_set.h
+++ b/content/public/browser/web_contents_receiver_set.h
@@ -23,9 +23,6 @@
 namespace chrome_browser_net {
 class NetErrorTabHelper;
 }
-namespace extensions {
-class ExtensionFrameHost;
-}  // namespace extensions
 namespace printing {
 class PrintManager;
 }
@@ -100,7 +97,6 @@
 
   friend class ::EmbeddedSearchClientFactoryImpl;
   friend class ::chrome_browser_net::NetErrorTabHelper;
-  friend class ::extensions::ExtensionFrameHost;
   friend class ::printing::PrintManager;
   friend class ::subresource_redirect::SubresourceRedirectObserver;
   friend class ScreenOrientationProvider;
diff --git a/device/base/features.cc b/device/base/features.cc
index cd871b3..59506ef 100644
--- a/device/base/features.cc
+++ b/device/base/features.cc
@@ -14,11 +14,6 @@
 #endif  // defined(OS_MAC)
 
 #if defined(OS_WIN)
-const base::Feature kNewUsbBackend{"NewUsbBackend",
-                                   base::FEATURE_ENABLED_BY_DEFAULT};
-#endif  // defined(OS_WIN)
-
-#if defined(OS_WIN)
 const base::Feature kNewBLEWinImplementation{"NewBLEWinImplementation",
                                              base::FEATURE_ENABLED_BY_DEFAULT};
 
diff --git a/device/base/features.h b/device/base/features.h
index 80bf44d..4105f3c 100644
--- a/device/base/features.h
+++ b/device/base/features.h
@@ -12,9 +12,9 @@
 
 namespace device {
 
-#if defined(OS_WIN) || defined(OS_MAC)
+#if defined(OS_MAC)
 DEVICE_BASE_EXPORT extern const base::Feature kNewUsbBackend;
-#endif  // defined(OS_WIN) || defined(OS_MAC)
+#endif  // defined(OS_MAC)
 
 #if defined(OS_WIN)
 DEVICE_BASE_EXPORT extern const base::Feature kNewBLEWinImplementation;
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
index 924d22d7..7701ec4 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
@@ -18,7 +18,6 @@
 import android.os.ParcelUuid;
 import android.util.SparseArray;
 
-import org.chromium.base.BuildInfo;
 import org.chromium.base.Log;
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNIAdditionalImport;
@@ -219,14 +218,11 @@
             return false;
         }
 
-        // TODO(b/183501112): Remove the targetsAtLeastS() check and replace these permission
-        // strings with the actual Manifest constants once Chrome starts compiling against the S
-        // SDK.
-        if (BuildInfo.targetsAtLeastS() && BuildInfo.isAtLeastS()) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
             Context context = mAdapter.getContext();
-            return context.checkCallingOrSelfPermission("android.permission.BLUETOOTH_SCAN")
+            return context.checkCallingOrSelfPermission(Manifest.permission.BLUETOOTH_SCAN)
                     == PackageManager.PERMISSION_GRANTED
-                    && context.checkCallingOrSelfPermission("android.permission.BLUETOOTH_CONNECT")
+                    && context.checkCallingOrSelfPermission(Manifest.permission.BLUETOOTH_CONNECT)
                     == PackageManager.PERMISSION_GRANTED;
         }
 
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java
index 65df0ff..b261a30 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java
@@ -25,7 +25,6 @@
 import android.os.ParcelUuid;
 import android.util.SparseArray;
 
-import org.chromium.base.BuildInfo;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.base.ThreadUtils;
@@ -126,16 +125,13 @@
             // granted in the manifest. In Android S and later the BLUETOOTH_SCAN and
             // BLUETOOTH_CONNECT permissions can be requested at runtime after fetching the default
             // adapter.
-            //
-            // TODO(b/183501112): Remove the targetsAtLeastS() check once Chrome starts compiling
-            // against the S SDK.
-            if (!BuildInfo.targetsAtLeastS() || !BuildInfo.isAtLeastS()) {
+            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
                 final boolean hasPermission =
                         ContextUtils.getApplicationContext().checkCallingOrSelfPermission(
-                                "android.permission.BLUETOOTH")
+                                Manifest.permission.BLUETOOTH)
                                 == PackageManager.PERMISSION_GRANTED
                         && ContextUtils.getApplicationContext().checkCallingOrSelfPermission(
-                                   "android.permission.BLUETOOTH_ADMIN")
+                                   Manifest.permission.BLUETOOTH_ADMIN)
                                 == PackageManager.PERMISSION_GRANTED;
 
                 if (!hasPermission) {
diff --git a/docs/security/security-labels.md b/docs/security/security-labels.md
index bfd6838c..7dca7f6b 100644
--- a/docs/security/security-labels.md
+++ b/docs/security/security-labels.md
@@ -33,10 +33,10 @@
 * **FoundIn-#**: Designates which milestones of Chrome are
 impacted by the bug. Multiple labels may be set, but the most important one
 is the earliest affected milestone.
-* **Security_Impact-**{**Head**, **Beta**, **Stable**, **None**}: Derived
-from **FoundIn**, this label specifies the earliest affected release channel.
-Should not normally be set by humans, except in the case of **None** which
-means that the bug is in a disabled feature, or otherwise doesn't impact
+* **Security_Impact-**{**Head**, **Beta**, **Stable**, **Extended**, **None**}:
+Derived from **FoundIn**, this label specifies the earliest affected release
+channel. Should not normally be set by humans, except in the case of **None**
+which means that the bug is in a disabled feature, or otherwise doesn't impact
 Chrome: see the section below for more details.
     * Note that **Security_Severity** should still be set on
       **Security_Impact-None** issues, as if the feature were enabled or the
@@ -215,8 +215,8 @@
 ### Remove Invalid **Security_Impact-X** Labels
 
 There should be exactly one **Security_Impact-X** label and it should be one of
-the 4 valid impact labels (None, Stable, Beta, Head). This rule removes any
-invalid and excess impact labels.
+the 5 valid impact labels (None, Extended, Stable, Beta, Head). This rule
+removes any invalid and excess impact labels.
 
 ### Adjust **Security_Impact-X** To Match FoundIn Labels
 
@@ -228,7 +228,7 @@
 
 Bugs that are labelled with milestones earlier than the current milestone will
 be relabeled to set the label for the current milestone and
-**Security_Impact-Stable**.
+**Security_Impact-Extended**.
 
 Bugs that carry a **Security_Impact-X** label but are missing a milestone label
 will be assigned the **M-#** label corresponding to the respective milestone.
@@ -300,8 +300,8 @@
 that the bug is in the component **Blink>DOM**, and such bugs should be labeled
 as applying to all OSs except iOS (where Blink is not used): **OS-**{**Linux**,
 **Windows**, **Android**, **Chrome**, **Fuchsia**}. Sheriffbot will check
-whether 27 is the current stable, beta or head milestone; let's assume
-**Security_Impact-Stable** is applied by Sheriffbot this time.
+whether 27 is the current extended stable, stable, beta or head milestone; let's
+assume **Security_Impact-Stable** is applied by Sheriffbot this time.
 1. Within a day or two, the sheriff was able to get the bug assigned and — oh
 joy! — fixed very quickly. When the bug's status changes to **Fixed**,
 Sheriffbot will add the **Merge-Requested** label, and will change
diff --git a/extensions/browser/api/storage/storage_api.cc b/extensions/browser/api/storage/storage_api.cc
index 5f4737d..740db2c 100644
--- a/extensions/browser/api/storage/storage_api.cc
+++ b/extensions/browser/api/storage/storage_api.cc
@@ -19,9 +19,11 @@
 #include "content/public/browser/browser_thread.h"
 #include "extensions/browser/api/storage/session_storage_manager.h"
 #include "extensions/browser/api/storage/storage_frontend.h"
+#include "extensions/browser/extension_prefs.h"
 #include "extensions/browser/extensions_browser_client.h"
 #include "extensions/browser/quota_service.h"
 #include "extensions/common/api/storage.h"
+#include "extensions/common/features/feature.h"
 #include "extensions/common/features/feature_channel.h"
 
 namespace extensions {
@@ -32,6 +34,9 @@
 
 constexpr char kSessionStorageManagerKeyName[] =
     "StorageAPI SessionStorageManager";
+constexpr PrefMap kPrefSessionStorageAccessLevel = {
+    "storage_session_access_level", PrefType::kInteger,
+    PrefScope::kExtensionSpecific};
 
 // Returns a vector of any strings within the given list.
 std::vector<std::string> GetKeysFromList(const base::Value& list) {
@@ -152,6 +157,12 @@
   // Session is the only storage area that does not use ValueStore, and will
   // return synchronously.
   if (storage_area_ == StorageAreaNamespace::kSession) {
+    // Currently only `session` can restrict the storage access. This call will
+    // be moved after the other storage areas allow it.
+    if (!IsAccessToStorageAllowed()) {
+      return RespondNow(
+          Error("Access to storage is not allowed from this context."));
+    }
     return RespondNow(RunInSession());
   }
 
@@ -230,6 +241,23 @@
   }
 }
 
+bool SettingsFunction::IsAccessToStorageAllowed() {
+  ExtensionPrefs* prefs = ExtensionPrefs::Get(browser_context());
+  // Default access level is only secure contexts.
+  int access_level = api::storage::ACCESS_LEVEL_TRUSTED_CONTEXTS;
+  prefs->ReadPrefAsInteger(extension()->id(), kPrefSessionStorageAccessLevel,
+                           &access_level);
+
+  // Only a blessed extension context is considered trusted.
+  if (access_level == api::storage::ACCESS_LEVEL_TRUSTED_CONTEXTS)
+    return source_context_type() == Feature::BLESSED_EXTENSION_CONTEXT;
+
+  // All contexts are allowed.
+  DCHECK_EQ(api::storage::ACCESS_LEVEL_TRUSTED_AND_UNTRUSTED_CONTEXTS,
+            access_level);
+  return true;
+}
+
 ExtensionFunction::ResponseValue StorageStorageAreaGetFunction::RunWithStorage(
     ValueStore* storage) {
   TRACE_EVENT1("browser", "StorageStorageAreaGetFunction::RunWithStorage",
@@ -491,4 +519,34 @@
   GetModificationQuotaLimitHeuristics(heuristics);
 }
 
+ExtensionFunction::ResponseValue
+StorageStorageAreaSetAccessLevelFunction::RunWithStorage(ValueStore* storage) {
+  // Not supported. Should return error.
+  return Error("This StorageArea is not available for setting access level");
+}
+
+ExtensionFunction::ResponseValue
+StorageStorageAreaSetAccessLevelFunction::RunInSession() {
+  if (source_context_type() != Feature::BLESSED_EXTENSION_CONTEXT)
+    return Error("Context cannot set the storage access level");
+
+  std::unique_ptr<api::storage::StorageArea::SetAccessLevel::Params> params(
+      api::storage::StorageArea::SetAccessLevel::Params::Create(*args_));
+
+  if (!params)
+    return BadMessage();
+
+  // The parsing code ensures `access_level` is sane.
+  DCHECK(params->access_options.access_level ==
+             api::storage::ACCESS_LEVEL_TRUSTED_CONTEXTS ||
+         params->access_options.access_level ==
+             api::storage::ACCESS_LEVEL_TRUSTED_AND_UNTRUSTED_CONTEXTS);
+
+  ExtensionPrefs* prefs = ExtensionPrefs::Get(browser_context());
+  prefs->SetIntegerPref(extension_id(), kPrefSessionStorageAccessLevel,
+                        params->access_options.access_level);
+
+  return NoArguments();
+}
+
 }  // namespace extensions
diff --git a/extensions/browser/api/storage/storage_api.h b/extensions/browser/api/storage/storage_api.h
index fea87729..cd1888b 100644
--- a/extensions/browser/api/storage/storage_api.h
+++ b/extensions/browser/api/storage/storage_api.h
@@ -49,6 +49,9 @@
   void OnSessionSettingsChanged(
       std::vector<SessionStorageManager::ValueChange> changes);
 
+  // Returns whether the caller's context has access to the storage or not.
+  bool IsAccessToStorageAllowed();
+
  private:
   // Called via PostTask from Run. Calls RunWithStorage and then
   // SendResponse with its success value.
@@ -136,6 +139,23 @@
   ResponseValue RunInSession() override;
 };
 
+class StorageStorageAreaSetAccessLevelFunction : public SettingsFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("storage.setAccessLevel", STORAGE_SETACCESSLEVEL)
+  StorageStorageAreaSetAccessLevelFunction() = default;
+  StorageStorageAreaSetAccessLevelFunction(
+      const StorageStorageAreaSetAccessLevelFunction&) = delete;
+  StorageStorageAreaSetAccessLevelFunction& operator=(
+      const StorageStorageAreaSetAccessLevelFunction&) = delete;
+
+ protected:
+  ~StorageStorageAreaSetAccessLevelFunction() override = default;
+
+  // SettingsFunction:
+  ResponseValue RunWithStorage(ValueStore* storage) override;
+  ResponseValue RunInSession() override;
+};
+
 }  // namespace extensions
 
 #endif  // EXTENSIONS_BROWSER_API_STORAGE_STORAGE_API_H_
diff --git a/extensions/browser/extension_frame_host.cc b/extensions/browser/extension_frame_host.cc
index 25222de..0845696 100644
--- a/extensions/browser/extension_frame_host.cc
+++ b/extensions/browser/extension_frame_host.cc
@@ -13,13 +13,16 @@
 namespace extensions {
 
 ExtensionFrameHost::ExtensionFrameHost(content::WebContents* web_contents)
-    : web_contents_(web_contents),
-      receivers_(web_contents,
-                 this,
-                 content::WebContentsFrameReceiverSetPassKey()) {}
+    : web_contents_(web_contents), receivers_(web_contents, this) {}
 
 ExtensionFrameHost::~ExtensionFrameHost() = default;
 
+void ExtensionFrameHost::BindLocalFrameHost(
+    mojo::PendingAssociatedReceiver<mojom::LocalFrameHost> receiver,
+    content::RenderFrameHost* rfh) {
+  receivers_.Bind(rfh, std::move(receiver));
+}
+
 void ExtensionFrameHost::RequestScriptInjectionPermission(
     const std::string& extension_id,
     mojom::InjectionType script_type,
diff --git a/extensions/browser/extension_frame_host.h b/extensions/browser/extension_frame_host.h
index d8a6c72..cf1c869 100644
--- a/extensions/browser/extension_frame_host.h
+++ b/extensions/browser/extension_frame_host.h
@@ -5,7 +5,7 @@
 #ifndef EXTENSIONS_BROWSER_EXTENSION_FRAME_HOST_H_
 #define EXTENSIONS_BROWSER_EXTENSION_FRAME_HOST_H_
 
-#include "content/public/browser/web_contents_receiver_set.h"
+#include "content/public/browser/render_frame_host_receiver_set.h"
 #include "extensions/common/mojom/frame.mojom.h"
 #include "extensions/common/mojom/injection_type.mojom-shared.h"
 #include "extensions/common/mojom/run_location.mojom-shared.h"
@@ -26,6 +26,10 @@
   ExtensionFrameHost& operator=(const ExtensionFrameHost&) = delete;
   ~ExtensionFrameHost() override;
 
+  void BindLocalFrameHost(
+      mojo::PendingAssociatedReceiver<mojom::LocalFrameHost> receiver,
+      content::RenderFrameHost* rfh);
+
   // mojom::LocalFrameHost:
   void RequestScriptInjectionPermission(
       const std::string& extension_id,
@@ -46,7 +50,7 @@
   // This raw pointer is safe to use because ExtensionWebContentsObserver whose
   // lifetime is tied to the WebContents owns this instance.
   content::WebContents* web_contents_;
-  content::WebContentsFrameReceiverSet<mojom::LocalFrameHost> receivers_;
+  content::RenderFrameHostReceiverSet<mojom::LocalFrameHost> receivers_;
 };
 
 }  // namespace extensions
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h
index dd8d27fb..84727b6 100644
--- a/extensions/browser/extension_function_histogram_value.h
+++ b/extensions/browser/extension_function_histogram_value.h
@@ -1149,7 +1149,7 @@
   DELETED_EASYUNLOCKPRIVATE_SETUPCONNECTIONSEND = 1088,
   DELETED_DATAREDUCTIONPROXY_GETDATAUSAGE = 1089,
   DELETED_EASYUNLOCKPRIVATE_SETUPCONNECTIONGETDEVICEADDRESS = 1090,
-  TABCAPTURE_CAPTUREOFFSCREENTAB = 1091,
+  DELETED_TABCAPTURE_CAPTUREOFFSCREENTAB = 1091,
   LANGUAGESETTINGSPRIVATE_ADDSPELLCHECKWORD = 1092,
   LANGUAGESETTINGSPRIVATE_REMOVESPELLCHECKWORD = 1093,
   SETTINGSPRIVATE_GETDEFAULTZOOMFUNCTION = 1094,
@@ -1627,6 +1627,7 @@
   SCRIPTING_GETREGISTEREDCONTENTSCRIPTS = 1564,
   OS_TELEMETRY_GETVPDINFO = 1565,
   ACCESSIBILITY_PRIVATE_MAGNIFIERCENTERONPOINT = 1566,
+  STORAGE_SETACCESSLEVEL = 1567,
   // Last entry: Add new entries above, then run:
   // python tools/metrics/histograms/update_extension_histograms.py
   ENUM_BOUNDARY
diff --git a/extensions/browser/extension_web_contents_observer.cc b/extensions/browser/extension_web_contents_observer.cc
index a0846eb..56061826 100644
--- a/extensions/browser/extension_web_contents_observer.cc
+++ b/extensions/browser/extension_web_contents_observer.cc
@@ -39,6 +39,22 @@
       web_contents);
 }
 
+// static
+void ExtensionWebContentsObserver::BindLocalFrameHost(
+    mojo::PendingAssociatedReceiver<mojom::LocalFrameHost> receiver,
+    content::RenderFrameHost* rfh) {
+  auto* web_contents = content::WebContents::FromRenderFrameHost(rfh);
+  if (!web_contents)
+    return;
+  auto* observer = GetForWebContents(web_contents);
+  if (!observer)
+    return;
+  auto* efh = observer->extension_frame_host_.get();
+  if (!efh)
+    return;
+  efh->BindLocalFrameHost(std::move(receiver), rfh);
+}
+
 std::unique_ptr<ExtensionFrameHost>
 ExtensionWebContentsObserver::CreateExtensionFrameHost(
     content::WebContents* web_contents) {
diff --git a/extensions/browser/extension_web_contents_observer.h b/extensions/browser/extension_web_contents_observer.h
index 8e36f04..7e29d02 100644
--- a/extensions/browser/extension_web_contents_observer.h
+++ b/extensions/browser/extension_web_contents_observer.h
@@ -59,6 +59,12 @@
   static ExtensionWebContentsObserver* GetForWebContents(
       content::WebContents* web_contents);
 
+  // Binds the LocalFrameHost interface to the ExtensionFrameHost associated
+  // with the RenderFrameHost.
+  static void BindLocalFrameHost(
+      mojo::PendingAssociatedReceiver<mojom::LocalFrameHost> receiver,
+      content::RenderFrameHost* rfh);
+
   // This must be called by clients directly after the EWCO has been created.
   void Initialize();
 
diff --git a/extensions/common/api/storage.json b/extensions/common/api/storage.json
index 6721d18..b235a594 100644
--- a/extensions/common/api/storage.json
+++ b/extensions/common/api/storage.json
@@ -9,6 +9,13 @@
     "unprivileged": true,
     "types": [
       {
+        "id": "AccessLevel",
+        "nodoc": true,
+        "type": "string",
+        "enum": ["TRUSTED_CONTEXTS", "TRUSTED_AND_UNTRUSTED_CONTEXTS"],
+        "description": "The storage area's access level."
+      },
+      {
         "id": "StorageChange",
         "type": "object",
         "properties": {
@@ -145,6 +152,29 @@
               "parameters": [],
               "optional": true
             }
+          }, {
+            "name": "setAccessLevel",
+            "nodoc": true,
+            "type": "function",
+            "description": "Sets the desired access level for the storage area. The default will be only trusted contexts.",
+            "parameters": [
+              {
+                "type": "object",
+                "name": "accessOptions",
+                "properties": {
+                  "accessLevel": {
+                    "$ref": "AccessLevel",
+                    "description": "The access level of the storage area."
+                  }
+                }
+              }
+            ],
+            "returns_async":  {
+              "name": "callback",
+              "description": "Callback on success, or on failure (in which case $(ref:runtime.lastError) will be set).",
+              "parameters": [],
+              "optional": true
+            }
           }
         ],
         "events": [
diff --git a/extensions/renderer/storage_area.cc b/extensions/renderer/storage_area.cc
index ccaffa4..d1e57cef 100644
--- a/extensions/renderer/storage_area.cc
+++ b/extensions/renderer/storage_area.cc
@@ -192,6 +192,9 @@
         .SetMethod("remove", &SessionStorageArea::Remove)
         .SetMethod("clear", &SessionStorageArea::Clear)
         .SetMethod("getBytesInUse", &SessionStorageArea::GetBytesInUse)
+        // TODO(crbug.com/1227410): Only expose `setAccessLevel` in privileged
+        // contexts.
+        .SetMethod("setAccessLevel", &SessionStorageArea::SetAccessLevel)
         .SetProperty("onChanged", &SessionStorageArea::GetOnChangedEvent)
         .SetValue("QUOTA_BYTES", api::storage::session::QUOTA_BYTES);
   }
@@ -199,6 +202,10 @@
  private:
   DEFINE_STORAGE_AREA_HANDLERS()
 
+  void SetAccessLevel(gin::Arguments* arguments) {
+    storage_area_.HandleFunctionCall("setAccessLevel", arguments);
+  }
+
   StorageArea storage_area_;
 
   DISALLOW_COPY_AND_ASSIGN(SessionStorageArea);
diff --git a/extensions/shell/browser/shell_content_browser_client.cc b/extensions/shell/browser/shell_content_browser_client.cc
index 6750e7c..dfece5f 100644
--- a/extensions/shell/browser/shell_content_browser_client.cc
+++ b/extensions/shell/browser/shell_content_browser_client.cc
@@ -33,6 +33,7 @@
 #include "extensions/browser/extension_navigation_ui_data.h"
 #include "extensions/browser/extension_protocols.h"
 #include "extensions/browser/extension_registry.h"
+#include "extensions/browser/extension_web_contents_observer.h"
 #include "extensions/browser/guest_view/extensions_guest_view_message_filter.h"
 #include "extensions/browser/guest_view/web_view/web_view_guest.h"
 #include "extensions/browser/process_map.h"
@@ -234,6 +235,21 @@
       &EventRouter::BindForRenderer, render_process_host->GetID()));
 }
 
+bool ShellContentBrowserClient::BindAssociatedReceiverFromFrame(
+    content::RenderFrameHost* render_frame_host,
+    const std::string& interface_name,
+    mojo::ScopedInterfaceEndpointHandle* handle) {
+  if (interface_name == extensions::mojom::LocalFrameHost::Name_) {
+    ExtensionWebContentsObserver::BindLocalFrameHost(
+        mojo::PendingAssociatedReceiver<extensions::mojom::LocalFrameHost>(
+            std::move(*handle)),
+        render_frame_host);
+    return true;
+  }
+
+  return false;
+}
+
 std::vector<std::unique_ptr<content::NavigationThrottle>>
 ShellContentBrowserClient::CreateThrottlesForNavigation(
     content::NavigationHandle* navigation_handle) {
diff --git a/extensions/shell/browser/shell_content_browser_client.h b/extensions/shell/browser/shell_content_browser_client.h
index fc358473..02cb3ae 100644
--- a/extensions/shell/browser/shell_content_browser_client.h
+++ b/extensions/shell/browser/shell_content_browser_client.h
@@ -76,6 +76,10 @@
       service_manager::BinderRegistry* registry,
       blink::AssociatedInterfaceRegistry* associated_registry,
       content::RenderProcessHost* render_process_host) override;
+  bool BindAssociatedReceiverFromFrame(
+      content::RenderFrameHost* render_frame_host,
+      const std::string& interface_name,
+      mojo::ScopedInterfaceEndpointHandle* handle) override;
   std::vector<std::unique_ptr<content::NavigationThrottle>>
   CreateThrottlesForNavigation(
       content::NavigationHandle* navigation_handle) override;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 0dd92a8..0f272f3 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -4597,9 +4597,6 @@
   if (!workarounds().dont_initialize_uninitialized_locals)
     driver_bug_workarounds |= SH_INITIALIZE_UNINITIALIZED_LOCALS;
 
-  resources.WEBGL_debug_shader_precision =
-      group_->gpu_preferences().emulate_shader_precision;
-
   ShShaderOutput shader_output_language =
       ShaderTranslator::GetShaderOutputLanguageForContext(gl_version_info());
 
diff --git a/gpu/command_buffer/service/gpu_switches.cc b/gpu/command_buffer/service/gpu_switches.cc
index a12e953..4ae6ba6 100644
--- a/gpu/command_buffer/service/gpu_switches.cc
+++ b/gpu/command_buffer/service/gpu_switches.cc
@@ -65,10 +65,6 @@
 // compilation info logs.
 const char kGLShaderIntermOutput[] = "gl-shader-interm-output";
 
-// Emulate ESSL lowp and mediump float precisions by mutating the shaders to
-// round intermediate values in ANGLE.
-const char kEmulateShaderPrecision[] = "emulate-shader-precision";
-
 // Enable Vulkan support and select Vulkan implementation, must also have
 // ENABLE_VULKAN defined. This only initializes Vulkan, the flag
 // --enable-features=Vulkan must also be used to select Vulkan for compositing
diff --git a/gpu/command_buffer/service/gpu_switches.h b/gpu/command_buffer/service/gpu_switches.h
index b3b7d99..e87ef80 100644
--- a/gpu/command_buffer/service/gpu_switches.h
+++ b/gpu/command_buffer/service/gpu_switches.h
@@ -29,7 +29,6 @@
 GPU_EXPORT extern const char kDisableGpuShaderDiskCache[];
 GPU_EXPORT extern const char kEnableThreadedTextureMailboxes[];
 GPU_EXPORT extern const char kGLShaderIntermOutput[];
-GPU_EXPORT extern const char kEmulateShaderPrecision[];
 GPU_EXPORT extern const char kUseVulkan[];
 GPU_EXPORT extern const char kVulkanImplementationNameNative[];
 GPU_EXPORT extern const char kVulkanImplementationNameSwiftshader[];
diff --git a/gpu/command_buffer/service/service_utils.cc b/gpu/command_buffer/service/service_utils.cc
index c5fea15..9bd4406 100644
--- a/gpu/command_buffer/service/service_utils.cc
+++ b/gpu/command_buffer/service/service_utils.cc
@@ -147,8 +147,6 @@
       command_line->HasSwitch(switches::kEnableThreadedTextureMailboxes);
   gpu_preferences.gl_shader_interm_output =
       command_line->HasSwitch(switches::kGLShaderIntermOutput);
-  gpu_preferences.emulate_shader_precision =
-      command_line->HasSwitch(switches::kEmulateShaderPrecision);
   gpu_preferences.enable_gpu_service_logging =
       command_line->HasSwitch(switches::kEnableGPUServiceLogging);
   gpu_preferences.enable_gpu_service_tracing =
diff --git a/gpu/config/gpu_preferences.h b/gpu/config/gpu_preferences.h
index 7e46e68..8131a0d 100644
--- a/gpu/config/gpu_preferences.h
+++ b/gpu/config/gpu_preferences.h
@@ -165,10 +165,6 @@
   // compilation info logs.
   bool gl_shader_interm_output = false;
 
-  // Emulate ESSL lowp and mediump float precisions by mutating the shaders to
-  // round intermediate values in ANGLE.
-  bool emulate_shader_precision = false;
-
   // ===================================
   // Settings from //gpu/config/gpu_switches.h
 
diff --git a/gpu/config/gpu_preferences_unittest.cc b/gpu/config/gpu_preferences_unittest.cc
index 07c0ae6..f2db765 100644
--- a/gpu/config/gpu_preferences_unittest.cc
+++ b/gpu/config/gpu_preferences_unittest.cc
@@ -59,7 +59,6 @@
   EXPECT_EQ(left.enable_threaded_texture_mailboxes,
             right.enable_threaded_texture_mailboxes);
   EXPECT_EQ(left.gl_shader_interm_output, right.gl_shader_interm_output);
-  EXPECT_EQ(left.emulate_shader_precision, right.emulate_shader_precision);
   EXPECT_EQ(left.enable_gpu_service_logging, right.enable_gpu_service_logging);
   EXPECT_EQ(left.enable_gpu_service_tracing, right.enable_gpu_service_tracing);
   EXPECT_EQ(left.use_passthrough_cmd_decoder,
@@ -163,7 +162,6 @@
     GPU_PREFERENCES_FIELD(disable_gpu_shader_disk_cache, true)
     GPU_PREFERENCES_FIELD(enable_threaded_texture_mailboxes, true)
     GPU_PREFERENCES_FIELD(gl_shader_interm_output, true)
-    GPU_PREFERENCES_FIELD(emulate_shader_precision, true)
     GPU_PREFERENCES_FIELD(enable_gpu_service_logging, true)
     GPU_PREFERENCES_FIELD(enable_gpu_service_tracing, true)
     GPU_PREFERENCES_FIELD(use_passthrough_cmd_decoder, true)
@@ -259,7 +257,6 @@
   PRINT_BOOL(disable_gpu_shader_disk_cache);
   PRINT_BOOL(enable_threaded_texture_mailboxes);
   PRINT_BOOL(gl_shader_interm_output);
-  PRINT_BOOL(emulate_shader_precision);
   PRINT_BOOL(enable_gpu_service_logging);
   PRINT_BOOL(enable_gpu_service_tracing);
   PRINT_BOOL(use_passthrough_cmd_decoder);
diff --git a/gpu/ipc/common/gpu_preferences.mojom b/gpu/ipc/common/gpu_preferences.mojom
index a4a92e0..f95dcac 100644
--- a/gpu/ipc/common/gpu_preferences.mojom
+++ b/gpu/ipc/common/gpu_preferences.mojom
@@ -69,7 +69,6 @@
   bool disable_gpu_shader_disk_cache;
   bool enable_threaded_texture_mailboxes;
   bool gl_shader_interm_output;
-  bool emulate_shader_precision;
   bool enable_android_surface_control;
   bool enable_gpu_service_logging;
   bool enable_gpu_service_tracing;
diff --git a/gpu/ipc/common/gpu_preferences_mojom_traits.h b/gpu/ipc/common/gpu_preferences_mojom_traits.h
index bf109319..e3e7cde 100644
--- a/gpu/ipc/common/gpu_preferences_mojom_traits.h
+++ b/gpu/ipc/common/gpu_preferences_mojom_traits.h
@@ -170,7 +170,6 @@
     out->enable_threaded_texture_mailboxes =
         prefs.enable_threaded_texture_mailboxes();
     out->gl_shader_interm_output = prefs.gl_shader_interm_output();
-    out->emulate_shader_precision = prefs.emulate_shader_precision();
     out->enable_android_surface_control =
         prefs.enable_android_surface_control();
     out->enable_gpu_service_logging = prefs.enable_gpu_service_logging();
@@ -330,9 +329,6 @@
   static bool gl_shader_interm_output(const gpu::GpuPreferences& prefs) {
     return prefs.gl_shader_interm_output;
   }
-  static bool emulate_shader_precision(const gpu::GpuPreferences& prefs) {
-    return prefs.emulate_shader_precision;
-  }
   static bool enable_android_surface_control(const gpu::GpuPreferences& prefs) {
     return prefs.enable_android_surface_control;
   }
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index eacdbe9..d74a4f01 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -100,16 +100,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -202,16 +192,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -304,16 +284,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -406,16 +376,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -508,16 +468,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -610,16 +560,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -712,16 +652,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -814,16 +744,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -916,16 +836,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1019,16 +929,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1127,16 +1027,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1230,16 +1120,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1333,16 +1213,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1436,16 +1306,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1539,16 +1399,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1642,16 +1492,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1745,16 +1585,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1848,16 +1678,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -1951,16 +1771,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2054,16 +1864,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2157,16 +1957,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2259,16 +2049,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2362,16 +2142,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2465,16 +2235,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2568,16 +2328,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2671,16 +2421,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2774,16 +2514,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2876,16 +2606,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -2979,16 +2699,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3086,16 +2796,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3194,16 +2894,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3297,16 +2987,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3400,16 +3080,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3503,16 +3173,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3600,16 +3260,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3703,16 +3353,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3806,16 +3446,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -3909,16 +3539,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4012,16 +3632,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4115,16 +3725,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4218,16 +3818,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4320,16 +3910,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4432,16 +4012,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4529,16 +4099,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4626,16 +4186,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4728,16 +4278,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4830,16 +4370,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -4926,16 +4456,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5022,16 +4542,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5118,16 +4628,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5214,16 +4714,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5313,16 +4803,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5412,16 +4892,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5508,16 +4978,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5604,16 +5064,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5700,16 +5150,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5796,16 +5236,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5892,16 +5322,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -5994,16 +5414,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6096,16 +5506,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6198,16 +5598,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6294,16 +5684,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6390,16 +5770,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6486,16 +5856,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6582,16 +5942,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6684,16 +6034,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6786,16 +6126,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6882,16 +6212,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -6978,16 +6298,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7074,16 +6384,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7170,16 +6470,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7273,16 +6563,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7376,16 +6656,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7478,16 +6748,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7581,16 +6841,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7684,16 +6934,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7787,16 +7027,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7890,16 +7120,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -7993,16 +7213,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8096,16 +7306,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8199,16 +7399,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8302,16 +7492,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8402,16 +7582,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8502,16 +7672,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8605,16 +7765,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8708,16 +7858,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8811,16 +7951,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -8914,16 +8044,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9017,16 +8137,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9120,16 +8230,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9222,16 +8322,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9324,16 +8414,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9423,16 +8503,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9522,16 +8592,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9624,16 +8684,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9726,16 +8776,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9823,16 +8863,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -9920,16 +8950,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10023,16 +9043,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10125,16 +9135,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10227,16 +9227,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10329,16 +9319,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10431,16 +9411,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10532,16 +9502,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10634,16 +9594,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10736,16 +9686,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10838,16 +9778,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -10940,16 +9870,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11042,16 +9962,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11144,16 +10054,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11244,16 +10144,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11345,16 +10235,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11448,16 +10328,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11551,16 +10421,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11654,16 +10514,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11761,16 +10611,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11864,16 +10704,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -11966,16 +10796,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12068,16 +10888,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12171,16 +10981,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12274,16 +11074,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12376,16 +11166,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12478,16 +11258,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12583,16 +11353,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12688,16 +11448,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12791,16 +11541,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12894,16 +11634,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -12997,16 +11727,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13099,16 +11819,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13202,16 +11912,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13305,16 +12005,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13401,16 +12091,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13498,16 +12178,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13595,16 +12265,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13692,16 +12352,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13795,16 +12445,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13892,16 +12532,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -13989,16 +12619,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14086,16 +12706,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14183,16 +12793,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14286,16 +12886,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14383,16 +12973,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14480,16 +13060,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14577,16 +13147,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14674,16 +13234,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14777,16 +13327,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14880,16 +13420,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -14983,16 +13513,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15086,16 +13606,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15189,16 +13699,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15285,16 +13785,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15388,16 +13878,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15490,16 +13970,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15594,16 +14064,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15697,16 +14157,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15800,16 +14250,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -15903,16 +14343,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16006,16 +14436,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16102,16 +14522,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16205,16 +14615,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16307,16 +14707,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16410,16 +14800,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16513,16 +14893,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16615,16 +14985,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16717,16 +15077,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16817,16 +15167,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -16917,16 +15257,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17017,16 +15347,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17118,16 +15438,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17217,16 +15527,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17316,16 +15616,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17414,16 +15704,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17510,16 +15790,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17607,16 +15877,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17704,16 +15964,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17801,16 +16051,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17898,16 +16138,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -17998,16 +16228,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18095,16 +16315,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18192,16 +16402,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18289,16 +16489,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18386,16 +16576,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18483,16 +16663,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18580,16 +16750,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18680,16 +16840,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18777,16 +16927,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18873,16 +17013,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -18969,16 +17099,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19065,16 +17185,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19164,16 +17274,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19263,16 +17363,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19359,16 +17449,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19455,16 +17535,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19551,16 +17621,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19647,16 +17707,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19743,16 +17793,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19839,16 +17879,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -19935,16 +17965,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20038,16 +18058,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20141,16 +18151,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20243,16 +18243,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20345,16 +18335,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20447,16 +18427,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20548,16 +18518,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20651,16 +18611,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20754,16 +18704,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20857,16 +18797,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -20959,16 +18889,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21061,16 +18981,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21166,16 +19076,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21268,16 +19168,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21372,16 +19262,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21477,16 +19357,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21581,16 +19451,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21685,16 +19545,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21790,16 +19640,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21894,16 +19734,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -21995,16 +19825,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22092,16 +19912,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22189,16 +19999,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22286,16 +20086,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22383,16 +20173,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22480,16 +20260,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22577,16 +20347,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22674,16 +20434,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22771,16 +20521,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22868,16 +20608,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -22965,16 +20695,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23062,16 +20782,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23159,16 +20869,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23256,16 +20956,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23352,16 +21042,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23449,16 +21129,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23546,16 +21216,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23643,16 +21303,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23740,16 +21390,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23837,16 +21477,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -23935,16 +21565,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24033,16 +21653,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24131,16 +21741,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24229,16 +21829,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24326,16 +21916,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24422,16 +22002,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24519,16 +22089,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24616,16 +22176,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24713,16 +22263,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24810,16 +22350,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -24907,16 +22437,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25003,16 +22523,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25100,16 +22610,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25197,16 +22697,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25294,16 +22784,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25395,16 +22875,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25496,16 +22966,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25598,16 +23058,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25700,16 +23150,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25802,16 +23242,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -25904,16 +23334,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26006,16 +23426,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26109,16 +23519,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26212,16 +23612,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26315,16 +23705,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26416,16 +23796,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26517,16 +23887,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26619,16 +23979,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26720,16 +24070,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26821,16 +24161,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -26922,16 +24252,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27023,16 +24343,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27124,16 +24434,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27226,16 +24526,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27327,16 +24617,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27430,16 +24710,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27527,16 +24797,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27624,16 +24884,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27721,16 +24971,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27818,16 +25058,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -27915,16 +25145,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28012,16 +25232,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28109,16 +25319,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28206,16 +25406,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28303,16 +25493,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28400,16 +25580,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28503,16 +25673,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28600,16 +25760,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28701,16 +25851,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28802,16 +25942,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28897,16 +26027,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -28993,16 +26113,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29089,16 +26199,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29191,16 +26291,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29288,16 +26378,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29385,16 +26465,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29482,16 +26552,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29584,16 +26644,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29686,16 +26736,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29788,16 +26828,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29891,16 +26921,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -29993,16 +27013,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30095,16 +27105,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30191,16 +27191,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30294,16 +27284,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30391,16 +27371,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30494,16 +27464,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30591,16 +27551,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30693,16 +27643,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30795,16 +27735,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -30898,16 +27828,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31001,16 +27921,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31109,16 +28019,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31211,16 +28111,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31313,16 +28203,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31416,16 +28296,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31519,16 +28389,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31628,16 +28488,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31737,16 +28587,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31840,16 +28680,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -31943,16 +28773,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32046,16 +28866,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32149,16 +28959,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32252,16 +29052,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32355,16 +29145,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32458,16 +29238,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32561,16 +29331,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32660,16 +29420,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32763,16 +29513,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32865,16 +29605,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -32968,16 +29698,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33071,16 +29791,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33174,16 +29884,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33277,16 +29977,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33380,16 +30070,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33483,16 +30163,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33586,16 +30256,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33687,16 +30347,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33790,16 +30440,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33893,16 +30533,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -33996,16 +30626,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34098,16 +30718,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34201,16 +30811,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34304,16 +30904,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34498,16 +31088,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34600,16 +31180,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34702,16 +31272,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34805,16 +31365,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -34908,16 +31458,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35011,16 +31551,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35113,16 +31643,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35215,16 +31735,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35317,16 +31827,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35420,16 +31920,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35523,16 +32013,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35625,16 +32105,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35727,16 +32197,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35829,16 +32289,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -35931,16 +32381,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36033,16 +32473,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36135,16 +32565,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36237,16 +32657,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36341,16 +32751,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36446,16 +32846,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36548,16 +32938,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36650,16 +33030,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36752,16 +33122,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36854,16 +33214,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -36957,16 +33307,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37060,16 +33400,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37165,16 +33495,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37267,16 +33587,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37369,16 +33679,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37471,16 +33771,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37573,16 +33863,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37675,16 +33955,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37776,16 +34046,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37879,16 +34139,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -37982,16 +34232,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38087,16 +34327,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38184,16 +34414,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38288,16 +34508,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38392,16 +34602,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38496,16 +34696,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38609,16 +34799,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38713,16 +34893,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38817,16 +34987,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -38921,16 +35081,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39025,16 +35175,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39129,16 +35269,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39233,16 +35363,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39337,16 +35457,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39441,16 +35551,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39545,16 +35645,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39649,16 +35739,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39776,16 +35856,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39878,16 +35948,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -39980,16 +36040,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40084,16 +36134,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40186,16 +36226,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40288,16 +36318,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40391,16 +36411,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40494,16 +36504,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40591,16 +36591,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40688,16 +36678,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40785,16 +36765,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40882,16 +36852,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -40984,16 +36944,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41086,16 +37036,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41188,16 +37128,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41321,16 +37251,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41439,16 +37359,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41541,16 +37451,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41644,16 +37544,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41747,16 +37637,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41849,16 +37729,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -41951,16 +37821,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42053,16 +37913,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42155,16 +38005,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42253,16 +38093,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42351,16 +38181,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42453,16 +38273,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42562,16 +38372,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42664,16 +38464,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42769,16 +38559,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42871,16 +38651,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -42973,16 +38743,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43075,16 +38835,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43184,16 +38934,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43285,16 +39025,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43386,16 +39116,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43488,16 +39208,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43597,16 +39307,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43700,16 +39400,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43802,16 +39492,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -43898,16 +39578,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44000,16 +39670,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44102,16 +39762,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44204,16 +39854,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44308,16 +39948,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44417,16 +40047,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44519,16 +40139,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44621,16 +40231,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44723,16 +40323,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44825,16 +40415,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -44927,16 +40507,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45029,16 +40599,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45130,16 +40690,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45231,16 +40781,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45332,16 +40872,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45435,16 +40965,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45536,16 +41056,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45638,16 +41148,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45740,16 +41240,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45842,16 +41332,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -45944,16 +41424,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46046,16 +41516,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46149,16 +41609,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46252,16 +41702,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46354,16 +41794,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46451,16 +41881,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46554,16 +41974,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46657,16 +42067,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46760,16 +42160,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46863,16 +42253,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -46960,16 +42340,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47057,16 +42427,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47157,16 +42517,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47254,16 +42604,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47354,16 +42694,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47451,16 +42781,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47548,16 +42868,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47645,16 +42955,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47745,16 +43045,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47845,16 +43135,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -47945,16 +43225,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48045,16 +43315,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48144,16 +43404,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48243,16 +43493,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48339,16 +43579,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48441,16 +43671,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48543,16 +43763,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48651,16 +43861,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48751,16 +43951,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48851,16 +44041,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -48950,16 +44130,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49052,16 +44222,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49152,16 +44312,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49252,16 +44402,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49351,16 +44491,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49450,16 +44580,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49549,16 +44669,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49649,16 +44759,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49751,16 +44851,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49853,16 +44943,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -49955,16 +45035,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50057,16 +45127,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50159,16 +45219,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50261,16 +45311,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50363,16 +45403,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50465,16 +45495,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50567,16 +45587,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50669,16 +45679,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50771,16 +45771,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50873,16 +45863,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -50976,16 +45956,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51070,16 +46040,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51173,16 +46133,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51276,16 +46226,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51379,16 +46319,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51482,16 +46412,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51584,16 +46504,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51685,16 +46595,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51786,16 +46686,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51889,16 +46779,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -51991,16 +46871,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52093,16 +46963,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52198,16 +47058,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52303,16 +47153,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52404,16 +47244,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52505,16 +47335,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52607,16 +47427,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52709,16 +47519,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52811,16 +47611,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -52913,16 +47703,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53015,16 +47795,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53117,16 +47887,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53219,16 +47979,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53321,16 +48071,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53423,16 +48163,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53525,16 +48255,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53627,16 +48347,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53724,16 +48434,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53821,16 +48521,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -53918,16 +48608,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54015,16 +48695,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54124,16 +48794,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54226,16 +48886,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54328,16 +48978,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54430,16 +49070,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54531,16 +49161,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54632,16 +49252,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54734,16 +49344,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54835,16 +49435,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -54937,16 +49527,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55039,16 +49619,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55141,16 +49711,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55243,16 +49803,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55340,16 +49890,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55437,16 +49977,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55534,16 +50064,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55636,16 +50156,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55738,16 +50248,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -55857,16 +50357,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -55960,16 +50450,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -56063,16 +50543,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -56166,16 +50636,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -56269,16 +50729,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -56372,16 +50822,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -59194,16 +53634,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_ci_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_ci_test_results"
@@ -59370,16 +53800,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -59483,16 +53903,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -59596,16 +54006,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -59709,16 +54109,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -59822,16 +54212,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -59935,16 +54315,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60048,16 +54418,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60161,16 +54521,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60288,16 +54638,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60401,16 +54741,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60514,16 +54844,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60627,16 +54947,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60740,16 +55050,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60853,16 +55153,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -60966,16 +55256,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61087,16 +55367,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61201,16 +55471,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61314,16 +55574,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61428,16 +55678,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61541,16 +55781,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61654,16 +55884,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61767,16 +55987,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61880,16 +56090,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -61997,16 +56197,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62114,16 +56304,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62227,16 +56407,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62341,16 +56511,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62454,16 +56614,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62568,16 +56718,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62681,16 +56821,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62794,16 +56924,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -62907,16 +57027,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63020,16 +57130,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63133,16 +57233,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63246,16 +57336,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63359,16 +57439,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63472,16 +57542,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63585,16 +57645,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63698,16 +57748,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63811,16 +57851,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -63924,16 +57954,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64037,16 +58057,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64150,16 +58160,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64263,16 +58263,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64377,16 +58367,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64490,16 +58470,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64603,16 +58573,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64717,16 +58677,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64830,16 +58780,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -64943,16 +58883,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65056,16 +58986,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65168,16 +59088,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65281,16 +59191,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65394,16 +59294,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65507,16 +59397,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65620,16 +59500,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65730,16 +59600,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65869,16 +59729,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -65990,16 +59840,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66102,16 +59942,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66215,16 +60045,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66327,16 +60147,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66440,16 +60250,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66553,16 +60353,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66666,16 +60456,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66778,16 +60558,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -66891,16 +60661,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67003,16 +60763,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67116,16 +60866,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67228,16 +60968,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67341,16 +61071,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67454,16 +61174,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67566,16 +61276,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67677,16 +61377,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67787,16 +61477,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -67897,16 +61577,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68008,16 +61678,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68119,16 +61779,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68230,16 +61880,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68341,16 +61981,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68454,16 +62084,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68567,16 +62187,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68680,16 +62290,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68793,16 +62393,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -68906,16 +62496,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69019,16 +62599,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69132,16 +62702,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69245,16 +62805,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69358,16 +62908,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69471,16 +63011,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69584,16 +63114,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69696,16 +63216,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69808,16 +63318,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -69920,16 +63420,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70032,16 +63522,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70141,16 +63621,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70250,16 +63720,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70359,16 +63819,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70468,16 +63918,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70577,16 +64017,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70686,16 +64116,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70795,16 +64215,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -70904,16 +64314,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71013,16 +64413,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71122,16 +64512,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71231,16 +64611,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71340,16 +64710,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71449,16 +64809,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71558,16 +64908,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71667,16 +65007,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71776,16 +65106,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71885,16 +65205,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -71994,16 +65304,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72103,16 +65403,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72212,16 +65502,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72321,16 +65601,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72430,16 +65700,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72539,16 +65799,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72648,16 +65898,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72757,16 +65997,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72866,16 +66096,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -72973,16 +66193,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73080,16 +66290,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73187,16 +66387,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73294,16 +66484,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73401,16 +66581,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73508,16 +66678,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73615,16 +66775,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73722,16 +66872,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73829,16 +66969,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -73936,16 +67066,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74043,16 +67163,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74150,16 +67260,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74257,16 +67357,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74366,16 +67456,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74475,16 +67555,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74584,16 +67654,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74693,16 +67753,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74802,16 +67852,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -74911,16 +67951,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75020,16 +68050,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75129,16 +68149,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75238,16 +68248,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75347,16 +68347,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75456,16 +68446,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75565,16 +68545,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75674,16 +68644,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75783,16 +68743,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -75892,16 +68842,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76001,16 +68941,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76108,16 +69038,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76215,16 +69135,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76324,16 +69234,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76436,16 +69336,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76551,16 +69441,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76674,16 +69554,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76789,16 +69659,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -76912,16 +69772,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77027,16 +69877,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77142,16 +69982,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77257,16 +70087,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77379,16 +70199,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77494,16 +70304,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77609,16 +70409,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77724,16 +70514,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77839,16 +70619,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -77951,16 +70721,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78063,16 +70823,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78176,16 +70926,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78289,16 +71029,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78405,16 +71135,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78518,16 +71238,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78631,16 +71341,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78744,16 +71444,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78857,16 +71547,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -78970,16 +71650,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79083,16 +71753,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79197,16 +71857,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79310,16 +71960,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79423,16 +72063,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79536,16 +72166,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79649,16 +72269,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79762,16 +72372,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79875,16 +72475,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -79984,16 +72574,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80097,16 +72677,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80209,16 +72779,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80322,16 +72882,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80435,16 +72985,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80552,16 +73092,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80672,16 +73202,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80786,16 +73306,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -80900,16 +73410,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81011,16 +73511,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81124,16 +73614,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81237,16 +73717,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81350,16 +73820,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81457,16 +73917,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81570,16 +74020,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81683,16 +74123,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81797,16 +74227,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -81910,16 +74330,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82023,16 +74433,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82135,16 +74535,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82248,16 +74638,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82361,16 +74741,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82474,16 +74844,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82586,16 +74946,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82699,16 +75049,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82819,16 +75159,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -82938,16 +75268,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83054,16 +75374,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83170,16 +75480,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83286,16 +75586,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83396,16 +75686,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83506,16 +75786,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83616,16 +75886,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83726,16 +75986,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83840,16 +76090,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -83953,16 +76193,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84066,16 +76296,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84179,16 +76399,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84292,16 +76502,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84405,16 +76605,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84519,16 +76709,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84632,16 +76812,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84745,16 +76915,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84858,16 +77018,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -84971,16 +77121,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85085,16 +77225,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85198,16 +77328,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85312,16 +77432,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85426,16 +77536,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85539,16 +77639,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85652,16 +77742,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85765,16 +77845,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85882,16 +77952,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -85995,16 +78055,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86112,16 +78162,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86226,16 +78266,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86339,16 +78369,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86452,16 +78472,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86565,16 +78575,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86678,16 +78678,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86791,16 +78781,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -86904,16 +78884,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87016,16 +78986,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87123,16 +79083,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87236,16 +79186,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87347,16 +79287,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87458,16 +79388,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87570,16 +79490,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87680,16 +79590,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87791,16 +79691,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -87901,16 +79791,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88012,16 +79892,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88127,16 +79997,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88242,16 +80102,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88349,16 +80199,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88459,16 +80299,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88569,16 +80399,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88680,16 +80500,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88791,16 +80601,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -88902,16 +80702,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89013,16 +80803,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89124,16 +80904,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89235,16 +81005,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89346,16 +81106,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89457,16 +81207,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89568,16 +81308,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89679,16 +81409,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89790,16 +81510,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -89901,16 +81611,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90013,16 +81713,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90125,16 +81815,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90236,16 +81916,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90347,16 +82017,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90457,16 +82117,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90563,16 +82213,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90669,16 +82309,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90782,16 +82412,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -90895,16 +82515,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91008,16 +82618,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91121,16 +82721,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91234,16 +82824,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91347,16 +82927,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91460,16 +83030,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91573,16 +83133,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91686,16 +83236,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91799,16 +83339,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -91913,16 +83443,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92030,16 +83550,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92141,16 +83651,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92253,16 +83753,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92366,16 +83856,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92476,16 +83956,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92586,16 +84056,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92696,16 +84156,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92806,16 +84256,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -92916,16 +84356,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93026,16 +84456,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93136,16 +84556,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93249,16 +84659,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93362,16 +84762,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93475,16 +84865,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93593,16 +84973,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93706,16 +85076,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93819,16 +85179,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -93932,16 +85282,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94051,16 +85391,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94164,16 +85494,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94285,16 +85605,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94397,16 +85707,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94513,16 +85813,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94626,16 +85916,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94739,16 +86019,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94853,16 +86123,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -94966,16 +86226,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95080,16 +86330,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95193,16 +86433,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95306,16 +86536,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95419,16 +86639,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95532,16 +86742,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95645,16 +86845,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95751,16 +86941,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
@@ -95864,16 +87044,6 @@
           test_results {}
         }
         bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "gpu_try_test_results"
-          test_results {
-            predicate {
-              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+"
-            }
-          }
-        }
-        bq_exports {
           project: "chrome-luci-data"
           dataset: "chromium"
           table: "gpu_try_test_results"
diff --git a/infra/config/lib/ci.star b/infra/config/lib/ci.star
index fe01dc3..2fd4af9 100644
--- a/infra/config/lib/ci.star
+++ b/infra/config/lib/ci.star
@@ -64,7 +64,7 @@
         Will always upload to the following tables in addition to any tables
         specified by the list's elements:
           luci-resultdb.chromium.ci_test_results
-          luci-resultdb.chromium.gpu_ci_test_results
+          chrome-luci-data.chromium.gpu_ci_test_results
       experiments - a dict of experiment name to the percentage chance (0-100)
         that it will apply to builds generated from this builder.
     """
@@ -82,17 +82,6 @@
             bq_table = "luci-resultdb.chromium.ci_test_results",
         ),
         resultdb.export_test_results(
-            bq_table = "luci-resultdb.chromium.gpu_ci_test_results",
-            predicate = resultdb.test_result_predicate(
-                # Only match the telemetry_gpu_integration_test and
-                # fuchsia_telemetry_gpu_integration_test targets.
-                # Android Telemetry targets also have a suffix added to the end
-                # denoting the binary that's included, so also catch those with
-                # [^/]*.
-                test_id_regexp = "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+",
-            ),
-        ),
-        resultdb.export_test_results(
             bq_table = "chrome-luci-data.chromium.gpu_ci_test_results",
             predicate = resultdb.test_result_predicate(
                 # Only match the telemetry_gpu_integration_test and
diff --git a/infra/config/lib/try.star b/infra/config/lib/try.star
index 5bb0bf6..95b60bf 100644
--- a/infra/config/lib/try.star
+++ b/infra/config/lib/try.star
@@ -107,7 +107,7 @@
         Will always upload to the following tables in addition to any tables
         specified by the list's elements:
           luci-resultdb.chromium.try_test_results
-          luci-resultdb.chromium.gpu_try_test_results
+          chrome-luci-data.gpu_try_test_results
     """
     if not branches.matches(branch_selector):
         return
@@ -122,17 +122,6 @@
             bq_table = "luci-resultdb.chromium.try_test_results",
         ),
         resultdb.export_test_results(
-            bq_table = "luci-resultdb.chromium.gpu_try_test_results",
-            predicate = resultdb.test_result_predicate(
-                # Only match the telemetry_gpu_integration_test and
-                # fuchsia_telemetry_gpu_integration_test targets.
-                # Android Telemetry targets also have a suffix added to the end
-                # denoting the binary that's included, so also catch those with
-                # [^/]*.
-                test_id_regexp = "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test[^/]*/.+",
-            ),
-        ),
-        resultdb.export_test_results(
             bq_table = "chrome-luci-data.chromium.gpu_try_test_results",
             predicate = resultdb.test_result_predicate(
                 # Only match the telemetry_gpu_integration_test and
diff --git a/ios/build/bots/scripts/shard_util.py b/ios/build/bots/scripts/shard_util.py
index 8a4aa6c6..f1dd580 100644
--- a/ios/build/bots/scripts/shard_util.py
+++ b/ios/build/bots/scripts/shard_util.py
@@ -31,7 +31,8 @@
 # of all EarlGrey/EarlGrey2 test classes. 'appConfigurationForTestCase' is a
 # class method. They have no real tests.
 IGNORED_CLASSES = [
-    'BaseEarlGreyTestCase', 'ChromeTestCase', 'appConfigurationForTestCase'
+    'BaseEarlGreyTestCase', 'ChromeTestCase', 'appConfigurationForTestCase',
+    'setUpForTestCase'
 ]
 
 
diff --git a/ios/build/bots/scripts/shard_util_test.py b/ios/build/bots/scripts/shard_util_test.py
index 597f13d..c4936be7 100644
--- a/ios/build/bots/scripts/shard_util_test.py
+++ b/ios/build/bots/scripts/shard_util_test.py
@@ -61,10 +61,11 @@
     'types 0x1064cc3e1 v16@0:8', 'name 0x1075e6887 testE',
     'name 0x1075e6887 testF', 'baseProtocols 0x0',
     'name 0x1064b8438 ChromeTestCase', 'name 0x1064b8438 setUp',
-    'baseProtocols 0x0', 'name 0x1064b8438 ToolBarTestCase',
-    'name 0x1075e6887 testG', 'name 0x1075e6887 testH',
-    'name 0x1075e6887 DISABLED_testI', 'name 0x1075e6887 FLAKY_testJ',
-    'baseProtocols 0x0', 'version 0'
+    'baseProtocols 0x0', 'name 0x1064b8438 setUpForTestCase',
+    'name 0x1064b8438 testPort', 'baseProtocols 0x0',
+    'name 0x1064b8438 ToolBarTestCase', 'name 0x1075e6887 testG',
+    'name 0x1075e6887 testH', 'name 0x1075e6887 DISABLED_testI',
+    'name 0x1075e6887 FLAKY_testJ', 'baseProtocols 0x0', 'version 0'
 ])
 
 # Release app otool output format in Xcode 11.4 toolchain.
@@ -79,9 +80,10 @@
     '    types   0x1064cc3e1 v16@0:8', '    name    0x1075e6887 testE',
     '    name    0x1075e6887 testF', 'baseProtocols 0x0',
     '    name    0x1064b8438 ChromeTestCase', '    name    0x1064b8438 setUp',
-    'baseProtocols 0x0', '    name    0x1064b8438 ToolBarTestCase',
-    '    name    0x1075e6887 testG', '    name    0x1075e6887 testH',
-    '    name    0x1075e6893 DISABLED_testI',
+    'baseProtocols 0x0', '    name 0x1064b8438 setUpForTestCase',
+    '    name 0x1064b8438 testPort', 'baseProtocols 0x0',
+    '    name    0x1064b8438 ToolBarTestCase', '    name    0x1075e6887 testG',
+    '    name    0x1075e6887 testH', '    name    0x1075e6893 DISABLED_testI',
     '    name    0x1075e723f FLAKY_testJ', 'baseProtocols 0x0', 'version 0'
 ])
 
diff --git a/ios/build/bots/scripts/test_apps.py b/ios/build/bots/scripts/test_apps.py
index 4c186e9..7ca4541 100644
--- a/ios/build/bots/scripts/test_apps.py
+++ b/ios/build/bots/scripts/test_apps.py
@@ -219,7 +219,10 @@
     # Method names that starts with test* and also are in *TestCase classes
     # but they are not test-methods.
     # TODO(crbug.com/982435): Rename not test methods with test-suffix.
-    none_tests = ['ChromeTestCase/testServer', 'FindInPageTestCase/testURL']
+    non_test_prefixes = [
+        'ChromeTestCase/testServer', 'FindInPageTestCase/testURL',
+        'setUpForTestCase'
+    ]
     # TODO(crbug.com/1123681): Move all_tests to class var. Set all_tests,
     # disabled_tests values in initialization to avoid multiple calls to otool.
     all_tests = []
@@ -232,7 +235,8 @@
         self.release,
         enabled_tests_only=False):
       test_name = '%s/%s' % (test_class, test_method)
-      if (test_name not in none_tests and
+      if ((not any(
+          test_name.startswith(prefix) for prefix in non_test_prefixes)) and
           # |self.initial_included_tests| contains the tests to execute, which
           # may be a subset of all tests b/c of the iOS test sharding logic in
           # run.py. Filter by |self.initial_included_tests| if specified.
diff --git a/ios/build/bots/scripts/test_apps_test.py b/ios/build/bots/scripts/test_apps_test.py
index 15a8b73..dd64fac 100644
--- a/ios/build/bots/scripts/test_apps_test.py
+++ b/ios/build/bots/scripts/test_apps_test.py
@@ -3,6 +3,7 @@
 # found in the LICENSE file.
 """Unittests for test_apps.py."""
 
+from test_runner import TestRunner
 import mock
 import unittest
 
@@ -41,6 +42,24 @@
     self.assertEqual(test_apps.get_gtest_filter(tests, invert=True), expected)
 
 
+class EgtestsAppGetAllTestsTest(test_runner_test.TestCase):
+  """Tests to get_all_tests methods of EgtestsApp."""
+
+  @mock.patch('os.path.exists', return_value=True)
+  @mock.patch('shard_util.fetch_test_names')
+  def testNonTestsFiltered(self, mock_fetch, _):
+    mock_fetch.return_value = [
+        ('ATestCase', 'testB'),
+        ('setUpForTestCase', 'testForStartup'),
+        ('ChromeTestCase', 'testServer'),
+        ('FindInPageTestCase', 'testURL'),
+        ('CTestCase', 'testD'),
+    ]
+    test_app = test_apps.EgtestsApp(_TEST_APP_PATH)
+    tests = test_app.get_all_tests()
+    self.assertEqual(set(tests), set(['ATestCase/testB', 'CTestCase/testD']))
+
+
 class DeviceXCTestUnitTestsAppTest(test_runner_test.TestCase):
   """Tests to test methods of SimulatorXCTestUnitTestsApp."""
 
diff --git a/ios/build/bots/scripts/xcodebuild_runner.py b/ios/build/bots/scripts/xcodebuild_runner.py
index b0cde623..7eea3de 100644
--- a/ios/build/bots/scripts/xcodebuild_runner.py
+++ b/ios/build/bots/scripts/xcodebuild_runner.py
@@ -39,6 +39,15 @@
     super(LaunchCommandPoolCreationError, self).__init__(message)
 
 
+def _tests_decided_at_runtime(app_name):
+  """Return if tests in app are selected at runtime by app_name.
+
+  This works for suites defined in chromium infra.
+  """
+  suite_name_fragments = ['ios_chrome_multitasking_eg', '_flaky_eg']
+  return any(fragment in app_name for fragment in suite_name_fragments)
+
+
 def erase_all_simulators(path=None):
   """Erases all simulator devices.
 
@@ -218,19 +227,32 @@
         break
 
       # Exclude passed tests in next test attempt.
-      passed_tests = passed_tests.union(
-          set(self.test_results['attempts'][-1]['passed']))
-      self.egtests_app.included_tests = list(running_tests - passed_tests)
+      passed_tests = passed_tests | set(
+          self.test_results['attempts'][-1]['passed'])
+      tests_to_include = set()
+      # |running_tests| are compiled tests in target intersecting with swarming
+      # sharding. For some suites, they are more than what's needed to run.
+      if not _tests_decided_at_runtime(self.egtests_app.test_app_path):
+        tests_to_include = tests_to_include | (running_tests - passed_tests)
+      # Add failed tests from last round for runtime decided suites and device
+      # suites.
+      tests_to_include = tests_to_include | (
+          set(self.test_results['attempts'][-1]['failed'].keys()) -
+          cancelled_statuses)
+      self.egtests_app.included_tests = list(tests_to_include)
 
       # crbug.com/987664 - for the case when
       # all tests passed but build was interrupted,
       # passed tests are equal to tests to run.
-      if passed_tests == running_tests:
-        for status in cancelled_statuses:
-          failure = self.test_results['attempts'][-1]['failed'].pop(
-              status, None)
-          if failure:
-            LOGGER.info('Failure for passed tests %s: %s' % (status, failure))
+      if passed_tests == running_tests or not self.egtests_app.included_tests:
+        # Keep cancelled status for these, since some tests might be skipped
+        # don't appear in test results.
+        if not _tests_decided_at_runtime(self.egtests_app.test_app_path):
+          for status in cancelled_statuses:
+            failure = self.test_results['attempts'][-1]['failed'].pop(
+                status, None)
+            if failure:
+              LOGGER.info('Failure for passed tests %s: %s' % (status, failure))
         break
 
       # If tests are not completed(interrupted or did not start)
@@ -243,7 +265,10 @@
       # should be confined in this method. Real tests affected by these statuses
       # will be marked timeout in results.
       for status in cancelled_statuses:
-        self.test_results['attempts'][-1]['failed'].pop(status, None)
+        # Keep cancelled status for these, since some tests might be skipped
+        # don't appear in test results.
+        if not _tests_decided_at_runtime(self.egtests_app.test_app_path):
+          self.test_results['attempts'][-1]['failed'].pop(status, None)
 
       if (not cancelled_attempt
           # If need to re-run less than 20 tests, 1 shard should be enough.
@@ -428,8 +453,7 @@
     # from otool output is incorrect. For multitasking or any flaky test suite,
     # the list contains more tests than what actually runs.
     if (self.__class__.__name__ != 'DeviceXcodeTestRunner' and
-        'ios_chrome_multitasking_eg' not in self.app_path and
-        '_flaky_eg' not in self.app_path):
+        not _tests_decided_at_runtime(self.app_path)):
       aborted_tests = list(all_tests_to_run - set(self.logs['failed tests']) -
                            set(self.logs['passed tests']))
     aborted_tests.sort()
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index 58a431fd..c5633a8 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -794,6 +794,12 @@
      flag_descriptions::kWaitThresholdMillisecondsForCapabilitiesApiDescription,
      flags_ui::kOsIos,
      MULTI_VALUE_TYPE(kWaitThresholdMillisecondsForCapabilitiesApiChoices)},
+    {"autofill-fill-merchant-promo-code-fields",
+     flag_descriptions::kAutofillFillMerchantPromoCodeFieldsName,
+     flag_descriptions::kAutofillFillMerchantPromoCodeFieldsDescription,
+     flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(
+         autofill::features::kAutofillFillMerchantPromoCodeFields)},
 };
 
 bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index 475cec9..7093ecf 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -23,6 +23,12 @@
     "When enabled, offer data will be retrieved during downstream and shown in "
     "the dropdown list.";
 
+const char kAutofillFillMerchantPromoCodeFieldsName[] =
+    "Enable Autofill of promo code fields in forms";
+const char kAutofillFillMerchantPromoCodeFieldsDescription[] =
+    "When enabled, Autofill will attempt to fill merchant promo/coupon/gift "
+    "code fields when data is available.";
+
 const char kAutofillIOSDelayBetweenFieldsName[] = "Autofill delay";
 const char kAutofillIOSDelayBetweenFieldsDescription[] =
     "Delay between the different fields of a form being autofilled. In "
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index fa76e395..c544a0c 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -19,6 +19,10 @@
 extern const char kAutofillEnableOffersInDownstreamName[];
 extern const char kAutofillEnableOffersInDownstreamDescription[];
 
+// Title and description for the flag to fill promo code fields with Autofill.
+extern const char kAutofillFillMerchantPromoCodeFieldsName[];
+extern const char kAutofillFillMerchantPromoCodeFieldsDescription[];
+
 // Title and description for the flag to control the autofill delay.
 extern const char kAutofillIOSDelayBetweenFieldsName[];
 extern const char kAutofillIOSDelayBetweenFieldsDescription[];
diff --git a/ios/chrome/browser/ui/authentication/BUILD.gn b/ios/chrome/browser/ui/authentication/BUILD.gn
index aa98765..5bf7ee2 100644
--- a/ios/chrome/browser/ui/authentication/BUILD.gn
+++ b/ios/chrome/browser/ui/authentication/BUILD.gn
@@ -190,21 +190,6 @@
   ]
 }
 
-source_set("internal+eg2") {
-  defines = [ "CHROME_EARL_GREY_2" ]
-  configs += [
-    "//build/config/compiler:enable_arc",
-    "//build/config/ios:xctest_config",
-  ]
-  testonly = true
-  visibility = [ ":*" ]
-  sources = [
-    "signin_earl_grey_app_interface.h",
-    "signin_earl_grey_app_interface_stub.mm",
-  ]
-  deps = [ "//ios/third_party/earl_grey2:test_lib" ]
-}
-
 source_set("eg_test_support+eg2") {
   defines = [ "CHROME_EARL_GREY_2" ]
   configs += [
@@ -215,13 +200,14 @@
   sources = [
     "signin_earl_grey.h",
     "signin_earl_grey.mm",
+    "signin_earl_grey_app_interface.h",
+    "signin_earl_grey_app_interface_stub.mm",
     "signin_earl_grey_ui.h",
     "signin_earl_grey_ui.mm",
     "signin_matchers.h",
     "signin_matchers.mm",
   ]
   deps = [
-    ":internal+eg2",
     "//base",
     "//base/test:test_support",
     "//ios/chrome/app/strings",
diff --git a/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm b/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm
index 57f6b2aa..837cb314 100644
--- a/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm
+++ b/ios/chrome/browser/ui/authentication/signin/signin_coordinator_egtest.mm
@@ -10,6 +10,7 @@
 #include "components/signin/public/base/account_consistency_method.h"
 #include "components/signin/public/base/signin_pref_names.h"
 #import "ios/chrome/browser/ui/authentication/signin_earl_grey.h"
+#import "ios/chrome/browser/ui/authentication/signin_earl_grey_app_interface.h"
 #import "ios/chrome/browser/ui/authentication/signin_earl_grey_ui.h"
 #import "ios/chrome/browser/ui/authentication/signin_matchers.h"
 #import "ios/chrome/browser/ui/authentication/views/views_constants.h"
@@ -410,7 +411,8 @@
 // app.
 - (void)testInterruptReauthSignin {
   FakeChromeIdentity* fakeIdentity = [SigninEarlGrey fakeIdentity1];
-  [SigninEarlGrey triggerReauthDialogWithFakeIdentity:fakeIdentity];
+  [SigninEarlGreyAppInterface triggerReauthDialogWithFakeIdentity:fakeIdentity];
+  [ChromeEarlGreyUI waitForAppToIdle];
   // Open the URL as if it was opened from another app.
   [ChromeEarlGrey simulateExternalAppURLOpening];
   [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()]
diff --git a/ios/chrome/browser/ui/authentication/signin_earl_grey.h b/ios/chrome/browser/ui/authentication/signin_earl_grey.h
index 138ba79f..310da51 100644
--- a/ios/chrome/browser/ui/authentication/signin_earl_grey.h
+++ b/ios/chrome/browser/ui/authentication/signin_earl_grey.h
@@ -57,11 +57,6 @@
 // Induces a GREYAssert if the Sync state does not match |enabled|.
 - (void)verifySyncUIEnabled:(BOOL)enabled;
 
-// Triggers the reauth dialog. This is done through SigninEarlGreyAppInterface,
-// with ShowSigninCommand sent to SceneController, without any UI interaction
-// to open the dialog.
-- (void)triggerReauthDialogWithFakeIdentity:(FakeChromeIdentity*)identity;
-
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_EARL_GREY_H_
diff --git a/ios/chrome/browser/ui/authentication/signin_earl_grey.mm b/ios/chrome/browser/ui/authentication/signin_earl_grey.mm
index 42b41c9..f73b7db 100644
--- a/ios/chrome/browser/ui/authentication/signin_earl_grey.mm
+++ b/ios/chrome/browser/ui/authentication/signin_earl_grey.mm
@@ -112,9 +112,5 @@
       selectElementWithMatcher:GetSettingsGoogleSyncAndServicesCellMatcher]
       assertWithMatcher:grey_sufficientlyVisible()];
 }
-- (void)triggerReauthDialogWithFakeIdentity:(FakeChromeIdentity*)identity {
-  [SigninEarlGreyAppInterface triggerReauthDialogWithFakeIdentity:identity];
-  GREYWaitForAppToIdle(@"App failed to idle");
-}
 
 @end
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
index fdcdc35..698d6b3 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-9af19f37b50d9fe0da1f599f9d694d837ba70abd
\ No newline at end of file
+29b0a86a5ac02dbed78e9147969a81af2161710e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
index 7cc69b7..fdcc15e 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-3a51332c77377868d5c8fda98ac23fb87835740f
\ No newline at end of file
+4de3fe78df5e02ff6e0a359dc5c1646b0f63ea22
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
index f48c9ce8..b2aa24bb 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-159a4d20d793875b74d6cb2c11574b1980cb6299
\ No newline at end of file
+5dbed6584b490871529e1a854dd76a456312da25
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
index 76c10c75..a896c59c 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-3d0bfa21446f69d2714178344dc57c312e484f7d
\ No newline at end of file
+00e247c9b396117ee720f5b5cbe5fbfcc1816e2d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
index cb9af5a..521bea8 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-74dea7125d33d0692b245eeff38c7f947fe77c50
\ No newline at end of file
+a1095d8119d81e6f226dc31cd8caef6d045ec67e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
index ccb44cb..959a3da 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-b813a61bddbb15dc5ccf7c3b26fc6f51a5a98922
\ No newline at end of file
+ada79233739ef0e626be40ca1cc8fcd8a749b5fb
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
index 16d4491..da6b5e15 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-80a93e77647176c7f3ad68434e2482c99a8f4148
\ No newline at end of file
+4e90ce0fb02b7dd4ea1583c6a20fbb0bce552444
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
index 4c4c851..1e181d8c 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-6935c50839f8311fe26192154674caf69d827fee
\ No newline at end of file
+ba540df4ea6e27e1e52de24dbfe3ab561fc47dad
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
index a377b3a..cad0b793 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-8f49c597cbddd8824c03357592603ff1d75dee3d
\ No newline at end of file
+ee8fcb0338fc52f9b06a74867cd3d06d7be30190
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
index 456508b..5ee761e4 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-9dbcb734a39aa695905fe48c841f6975351e7259
\ No newline at end of file
+d8d5b008e7c3ef6d7e8ab1bf5472e69eb7ae6378
\ No newline at end of file
diff --git a/net/BUILD.gn b/net/BUILD.gn
index 792b186..11499cd8 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -410,6 +410,8 @@
     "cookies/cookie_monster_netlog_params.h",
     "cookies/cookie_options.cc",
     "cookies/cookie_options.h",
+    "cookies/cookie_partition_key.cc",
+    "cookies/cookie_partition_key.h",
     "cookies/cookie_store.cc",
     "cookies/cookie_store.h",
     "cookies/cookie_util.cc",
@@ -4189,6 +4191,7 @@
     "cookies/cookie_inclusion_status_unittest.cc",
     "cookies/cookie_monster_unittest.cc",
     "cookies/cookie_options_unittest.cc",
+    "cookies/cookie_partition_key_unittest.cc",
     "cookies/cookie_util_unittest.cc",
     "cookies/parsed_cookie_unittest.cc",
     "cookies/site_for_cookies_unittest.cc",
diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
index 3936de2..eeca896 100644
--- a/net/cookies/canonical_cookie.cc
+++ b/net/cookies/canonical_cookie.cc
@@ -348,21 +348,22 @@
 
 CanonicalCookie& CanonicalCookie::operator=(CanonicalCookie&& other) = default;
 
-CanonicalCookie::CanonicalCookie(std::string name,
-                                 std::string value,
-                                 std::string domain,
-                                 std::string path,
-                                 base::Time creation,
-                                 base::Time expiration,
-                                 base::Time last_access,
-                                 bool secure,
-                                 bool httponly,
-                                 CookieSameSite same_site,
-                                 CookiePriority priority,
-                                 bool same_party,
-                                 absl::optional<SchemefulSite> partition_key,
-                                 CookieSourceScheme source_scheme,
-                                 int source_port)
+CanonicalCookie::CanonicalCookie(
+    std::string name,
+    std::string value,
+    std::string domain,
+    std::string path,
+    base::Time creation,
+    base::Time expiration,
+    base::Time last_access,
+    bool secure,
+    bool httponly,
+    CookieSameSite same_site,
+    CookiePriority priority,
+    bool same_party,
+    absl::optional<CookiePartitionKey> partition_key,
+    CookieSourceScheme source_scheme,
+    int source_port)
     : name_(std::move(name)),
       value_(std::move(value)),
       domain_(std::move(domain)),
@@ -581,7 +582,7 @@
     CookieSameSite same_site,
     CookiePriority priority,
     bool same_party,
-    absl::optional<SchemefulSite> partition_key,
+    absl::optional<CookiePartitionKey> partition_key,
     CookieInclusionStatus* status) {
   // Put a pointer on the stack so the rest of the function can assign to it if
   // the default nullptr is passed in.
@@ -702,7 +703,7 @@
     CookieSameSite same_site,
     CookiePriority priority,
     bool same_party,
-    absl::optional<SchemefulSite> partition_key,
+    absl::optional<CookiePartitionKey> partition_key,
     CookieSourceScheme source_scheme,
     int source_port) {
   std::unique_ptr<CanonicalCookie> cc = base::WrapUnique(new CanonicalCookie(
@@ -728,7 +729,7 @@
     CookieSameSite same_site,
     CookiePriority priority,
     bool same_party,
-    absl::optional<SchemefulSite> partition_key,
+    absl::optional<CookiePartitionKey> partition_key,
     CookieSourceScheme source_scheme,
     int source_port) {
   return base::WrapUnique(new CanonicalCookie(
@@ -751,37 +752,6 @@
   }
 }
 
-bool CanonicalCookie::SerializePartitionKey(std::string& out) const {
-  if (!partition_key_) {
-    out = kEmptyCookiePartitionKey;
-    return true;
-  }
-  if (partition_key_->GetURL().SchemeIsFile()) {
-    out = partition_key_->SerializeFileSiteWithHost();
-    return true;
-  }
-  if (partition_key_->opaque())
-    return false;
-  out = partition_key_->Serialize();
-  return true;
-}
-
-// static
-bool CanonicalCookie::DeserializePartitionKey(
-    const std::string& in,
-    absl::optional<SchemefulSite>& out) {
-  if (in == kEmptyCookiePartitionKey) {
-    out = absl::nullopt;
-    return true;
-  }
-  auto schemeful_site = SchemefulSite::Deserialize(in);
-  // SchemefulSite is opaque if the input is invalid.
-  if (schemeful_site.opaque())
-    return false;
-  out = absl::make_optional(schemeful_site);
-  return true;
-}
-
 bool CanonicalCookie::IsEquivalentForSecureCookieMatching(
     const CanonicalCookie& secure_cookie) const {
   // Names must be the same
diff --git a/net/cookies/canonical_cookie.h b/net/cookies/canonical_cookie.h
index c5387be..3d1add3 100644
--- a/net/cookies/canonical_cookie.h
+++ b/net/cookies/canonical_cookie.h
@@ -13,11 +13,11 @@
 #include "base/gtest_prod_util.h"
 #include "base/time/time.h"
 #include "net/base/net_export.h"
-#include "net/base/schemeful_site.h"
 #include "net/cookies/cookie_access_result.h"
 #include "net/cookies/cookie_constants.h"
 #include "net/cookies/cookie_inclusion_status.h"
 #include "net/cookies/cookie_options.h"
+#include "net/cookies/cookie_partition_key.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/third_party/mozilla/url_parse.h"
 
@@ -107,7 +107,7 @@
       CookieSameSite same_site,
       CookiePriority priority,
       bool same_party,
-      absl::optional<SchemefulSite> partition_key,
+      absl::optional<CookiePartitionKey> partition_key,
       CookieInclusionStatus* status = nullptr);
 
   // FromStorage is a factory method which is meant for creating a new
@@ -130,7 +130,7 @@
       CookieSameSite same_site,
       CookiePriority priority,
       bool same_party,
-      absl::optional<SchemefulSite> partition_key,
+      absl::optional<CookiePartitionKey> partition_key,
       CookieSourceScheme source_scheme,
       int source_port);
 
@@ -149,7 +149,7 @@
       CookieSameSite same_site,
       CookiePriority priority,
       bool same_party,
-      absl::optional<SchemefulSite> partition_key = absl::nullopt,
+      absl::optional<CookiePartitionKey> partition_key = absl::nullopt,
       CookieSourceScheme scheme_secure = CookieSourceScheme::kUnset,
       int source_port = url::PORT_UNSPECIFIED);
 
@@ -171,7 +171,7 @@
   CookiePriority Priority() const { return priority_; }
   bool IsSameParty() const { return same_party_; }
   bool IsPartitioned() const { return partition_key_.has_value(); }
-  const absl::optional<SchemefulSite>& PartitionKey() const {
+  const absl::optional<CookiePartitionKey>& PartitionKey() const {
     return partition_key_;
   }
 
@@ -396,7 +396,7 @@
                   CookieSameSite same_site,
                   CookiePriority priority,
                   bool same_party,
-                  absl::optional<SchemefulSite> partition_key,
+                  absl::optional<CookiePartitionKey> partition_key,
                   CookieSourceScheme scheme_secure = CookieSourceScheme::kUnset,
                   int source_port = url::PORT_UNSPECIFIED);
 
@@ -479,7 +479,7 @@
   // when the top-frame site matches the partition key.
   // If the partition key is non-null and opaque, this means the Partitioned
   // cookie was created on an opaque origin.
-  absl::optional<SchemefulSite> partition_key_;
+  absl::optional<CookiePartitionKey> partition_key_;
   CookieSourceScheme source_scheme_{CookieSourceScheme::kUnset};
   // This can be [0,65535], PORT_UNSPECIFIED, or PORT_INVALID.
   // PORT_UNSPECIFIED is used for cookies which already existed in the cookie
diff --git a/net/cookies/canonical_cookie_fuzzer.cc b/net/cookies/canonical_cookie_fuzzer.cc
index 9cee4da6..aa3bb25 100644
--- a/net/cookies/canonical_cookie_fuzzer.cc
+++ b/net/cookies/canonical_cookie_fuzzer.cc
@@ -53,8 +53,9 @@
           CookiePriority::COOKIE_PRIORITY_HIGH,
       });
 
-  auto partition_key = absl::make_optional<net::SchemefulSite>(
-      net::SchemefulSite(GURL(data_provider.ConsumeRandomLengthString(800))));
+  const auto partition_key = absl::make_optional<CookiePartitionKey>(
+      CookiePartitionKey::FromURLForTesting(
+          GURL(data_provider.ConsumeRandomLengthString(800))));
 
   const std::unique_ptr<const CanonicalCookie> sanitized_cookie =
       CanonicalCookie::CreateSanitizedCookie(
diff --git a/net/cookies/canonical_cookie_unittest.cc b/net/cookies/canonical_cookie_unittest.cc
index 49d50d9..50a3f67 100644
--- a/net/cookies/canonical_cookie_unittest.cc
+++ b/net/cookies/canonical_cookie_unittest.cc
@@ -69,7 +69,8 @@
       "A", "2", ".www.example.com", "/", current_time, base::Time(),
       base::Time(), false, false, CookieSameSite::NO_RESTRICTION,
       COOKIE_PRIORITY_DEFAULT, true,
-      absl::make_optional(net::SchemefulSite::Deserialize("https://foo.com")),
+      absl::make_optional(
+          CookiePartitionKey::FromURLForTesting(GURL("https://foo.com"))),
       CookieSourceScheme::kNonSecure, 65536);
   EXPECT_EQ("A", cookie2->Name());
   EXPECT_EQ("2", cookie2->Value());
@@ -553,79 +554,6 @@
   EXPECT_EQ(base::Time(), cookie->ExpiryDate());
 }
 
-TEST(CanonicalCookieTest, PartitionKeySerialization) {
-  // SerializePartitionKey: no parititon key
-  std::unique_ptr<CanonicalCookie> cookie =
-      CanonicalCookie::CreateUnsafeCookieForTesting(
-          "__Host-A", "B", "www.example.com", "/", base::Time::Now(),
-          base::Time::Now(), base::Time::Now(), /* secure */ true,
-          /* httponly */ false, CookieSameSite::UNSPECIFIED,
-          CookiePriority::COOKIE_PRIORITY_DEFAULT, /* sameparty */ false,
-          absl::nullopt);
-  std::string got;
-  EXPECT_TRUE(cookie->SerializePartitionKey(got));
-  EXPECT_EQ(net::kEmptyCookiePartitionKey, got);
-
-  // SerializePartitionKey: partition key present
-  cookie = CanonicalCookie::CreateUnsafeCookieForTesting(
-      "__Host-A", "B", "www.example.com", "/", base::Time::Now(),
-      base::Time::Now(), base::Time::Now(), /* secure */ true,
-      /* httponly */ false, CookieSameSite::UNSPECIFIED,
-      CookiePriority::COOKIE_PRIORITY_DEFAULT, /* sameparty */ false,
-      absl::make_optional(SchemefulSite(GURL("https://toplevelsite.com"))));
-  EXPECT_TRUE(cookie->SerializePartitionKey(got));
-  EXPECT_EQ("https://toplevelsite.com", got);
-
-  // SerializePartitionKey: local file URLs
-  cookie = CanonicalCookie::CreateUnsafeCookieForTesting(
-      "__Host-A", "B", "www.example.com", "/", base::Time::Now(),
-      base::Time::Now(), base::Time::Now(), /* secure */ true,
-      /* httponly */ false, CookieSameSite::UNSPECIFIED,
-      CookiePriority::COOKIE_PRIORITY_DEFAULT, /* sameparty */ false,
-      absl::make_optional(SchemefulSite(GURL("file:///path1/to/file.txt"))));
-  EXPECT_TRUE(cookie->SerializePartitionKey(got));
-  EXPECT_EQ("file://", got);
-
-  // SerializePartitionKey: file URLs with hostnames.
-  cookie = CanonicalCookie::CreateUnsafeCookieForTesting(
-      "__Host-A", "B", "www.example.com", "/", base::Time::Now(),
-      base::Time::Now(), base::Time::Now(), /* secure */ true,
-      /* httponly */ false, CookieSameSite::UNSPECIFIED,
-      CookiePriority::COOKIE_PRIORITY_DEFAULT, /* sameparty */ false,
-      absl::make_optional(
-          SchemefulSite(GURL("file://toplevelsite1.com/path/to/file.txt"))));
-  EXPECT_TRUE(cookie->SerializePartitionKey(got));
-  EXPECT_EQ("file://toplevelsite1.com", got);
-
-  // SerializeParititonKey: opaque partition key
-  auto opaque = SchemefulSite(url::Origin());
-  cookie = CanonicalCookie::CreateUnsafeCookieForTesting(
-      "__Host-A", "B", "www.example.com", "/", base::Time::Now(),
-      base::Time::Now(), base::Time::Now(), /* secure */ true,
-      /* httponly */ false, CookieSameSite::UNSPECIFIED,
-      CookiePriority::COOKIE_PRIORITY_DEFAULT,
-      /* sameparty */ false, absl::make_optional(opaque));
-  EXPECT_FALSE(cookie->SerializePartitionKey(got));
-
-  // DeserializePartitionKey: empty partition key
-  absl::optional<SchemefulSite> partition_key;
-  EXPECT_TRUE(CanonicalCookie::DeserializePartitionKey(kEmptyCookiePartitionKey,
-                                                       partition_key));
-  EXPECT_FALSE(partition_key);
-
-  // DeserializePartitionKey: example site
-  SchemefulSite site = SchemefulSite(GURL("https://toplevelsite.com"));
-  EXPECT_TRUE(CanonicalCookie::DeserializePartitionKey(site.Serialize(),
-                                                       partition_key));
-  EXPECT_TRUE(partition_key);
-  EXPECT_FALSE(partition_key.value().opaque());
-  EXPECT_EQ(site, partition_key.value());
-
-  // DeserializePartitionKey: invalid partition key
-  EXPECT_FALSE(CanonicalCookie::DeserializePartitionKey("abc123foobar!!",
-                                                        partition_key));
-}
-
 TEST(CanonicalCookieTest, IsEquivalent) {
   GURL url("https://www.example.com/");
   std::string cookie_name = "A";
@@ -2421,8 +2349,8 @@
                   "__Host-A", "B", "x.y", "/", base::Time(), base::Time(),
                   base::Time(), true, false, CookieSameSite::UNSPECIFIED,
                   COOKIE_PRIORITY_LOW, false,
-                  absl::make_optional(
-                      net::SchemefulSite(GURL("https://toplevelsite.com"))))
+                  absl::make_optional(CookiePartitionKey::FromURLForTesting(
+                      GURL("https://toplevelsite.com"))))
                   ->IsCanonical());
 
   // Partitioned attribute invalid, no __Host- prefix.
@@ -2430,8 +2358,8 @@
                    "A", "B", "x.y", "/", base::Time(), base::Time(),
                    base::Time(), true, false, CookieSameSite::UNSPECIFIED,
                    COOKIE_PRIORITY_LOW, false,
-                   absl::make_optional(
-                       net::SchemefulSite(GURL("https://toplevelsite.com"))))
+                   absl::make_optional(CookiePartitionKey::FromURLForTesting(
+                       GURL("https://toplevelsite.com"))))
                    ->IsCanonical());
 
   // Partitioned attribute invalid, SameParty attribute also included.
@@ -2439,8 +2367,8 @@
                    "__Host-A", "B", "x.y", "/", base::Time(), base::Time(),
                    base::Time(), true, false, CookieSameSite::UNSPECIFIED,
                    COOKIE_PRIORITY_LOW, true,
-                   absl::make_optional(
-                       net::SchemefulSite(GURL("https://toplevelsite.com"))))
+                   absl::make_optional(CookiePartitionKey::FromURLForTesting(
+                       GURL("https://toplevelsite.com"))))
                    ->IsCanonical());
 }
 
@@ -2664,7 +2592,8 @@
       base::Time(), base::Time(), base::Time(), true /*secure*/,
       false /*httponly*/, CookieSameSite::NO_RESTRICTION, COOKIE_PRIORITY_LOW,
       false /*same_party*/,
-      absl::make_optional(net::SchemefulSite(GURL("https://toplevelsite.com"))),
+      absl::make_optional(CookiePartitionKey::FromURLForTesting(
+          GURL("https://toplevelsite.com"))),
       &status);
   EXPECT_TRUE(cc);
   EXPECT_TRUE(cc->IsPartitioned());
@@ -3060,8 +2989,8 @@
       two_hours_ago, one_hour_from_now, one_hour_ago, true /*secure*/, false,
       CookieSameSite::NO_RESTRICTION, CookiePriority::COOKIE_PRIORITY_DEFAULT,
       false /*same_party*/,
-      absl::optional<net::SchemefulSite>(
-          net::SchemefulSite(GURL("https://toplevelsite.com"))),
+      absl::optional<CookiePartitionKey>(CookiePartitionKey::FromURLForTesting(
+          GURL("https://toplevelsite.com"))),
       &status));
   EXPECT_TRUE(status.IsInclude());
   // Invalid: no __Host- prefix
@@ -3070,8 +2999,8 @@
       one_hour_from_now, one_hour_ago, true /*secure*/, false,
       CookieSameSite::NO_RESTRICTION, CookiePriority::COOKIE_PRIORITY_DEFAULT,
       false /*same_party*/,
-      absl::optional<net::SchemefulSite>(
-          net::SchemefulSite(GURL("https://toplevelsite.com"))),
+      absl::optional<CookiePartitionKey>(CookiePartitionKey::FromURLForTesting(
+          GURL("https://toplevelsite.com"))),
       &status));
   EXPECT_TRUE(status.HasExactlyExclusionReasonsForTesting(
       {CookieInclusionStatus::EXCLUDE_INVALID_PARTITIONED}));
@@ -3082,8 +3011,8 @@
       two_hours_ago, one_hour_from_now, one_hour_ago, true /*secure*/, false,
       CookieSameSite::NO_RESTRICTION, CookiePriority::COOKIE_PRIORITY_DEFAULT,
       true /*same_party*/,
-      absl::optional<net::SchemefulSite>(
-          net::SchemefulSite(GURL("https://toplevelsite.com"))),
+      absl::optional<CookiePartitionKey>(CookiePartitionKey::FromURLForTesting(
+          GURL("https://toplevelsite.com"))),
       &status));
   EXPECT_TRUE(status.HasExactlyExclusionReasonsForTesting(
       {CookieInclusionStatus::EXCLUDE_INVALID_PARTITIONED}));
diff --git a/net/cookies/cookie_partition_key.cc b/net/cookies/cookie_partition_key.cc
new file mode 100644
index 0000000..8d28310
--- /dev/null
+++ b/net/cookies/cookie_partition_key.cc
@@ -0,0 +1,68 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/cookies/cookie_partition_key.h"
+
+#include "net/cookies/cookie_constants.h"
+
+namespace net {
+
+CookiePartitionKey::CookiePartitionKey() = default;
+
+CookiePartitionKey::CookiePartitionKey(const SchemefulSite& site)
+    : site_(site) {}
+
+CookiePartitionKey::CookiePartitionKey(const GURL& url)
+    : site_(SchemefulSite(url)) {}
+
+CookiePartitionKey::CookiePartitionKey(const CookiePartitionKey& other) =
+    default;
+
+CookiePartitionKey::CookiePartitionKey(CookiePartitionKey&& other) = default;
+
+CookiePartitionKey& CookiePartitionKey::operator=(
+    const CookiePartitionKey& other) = default;
+
+CookiePartitionKey& CookiePartitionKey::operator=(CookiePartitionKey&& other) =
+    default;
+
+CookiePartitionKey::~CookiePartitionKey() = default;
+
+bool CookiePartitionKey::operator==(const CookiePartitionKey& other) const {
+  return site_ == other.site_;
+}
+
+// static
+bool CookiePartitionKey::Serialize(const absl::optional<CookiePartitionKey>& in,
+                                   std::string& out) {
+  if (!in) {
+    out = kEmptyCookiePartitionKey;
+    return true;
+  }
+  if (in->site_.GetURL().SchemeIsFile()) {
+    out = in->site_.SerializeFileSiteWithHost();
+    return true;
+  }
+  if (in->site_.opaque())
+    return false;
+  out = in->site_.Serialize();
+  return true;
+}
+
+// static
+bool CookiePartitionKey::Deserialize(const std::string& in,
+                                     absl::optional<CookiePartitionKey>& out) {
+  if (in == kEmptyCookiePartitionKey) {
+    out = absl::nullopt;
+    return true;
+  }
+  auto schemeful_site = SchemefulSite::Deserialize(in);
+  // SchemfulSite is opaque if the input is invalid.
+  if (schemeful_site.opaque())
+    return false;
+  out = absl::make_optional(CookiePartitionKey(schemeful_site));
+  return true;
+}
+
+}  // namespace net
diff --git a/net/cookies/cookie_partition_key.h b/net/cookies/cookie_partition_key.h
new file mode 100644
index 0000000..a78de05
--- /dev/null
+++ b/net/cookies/cookie_partition_key.h
@@ -0,0 +1,78 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_COOKIES_COOKIE_PARTITION_KEY_H_
+#define NET_COOKIES_COOKIE_PARTITION_KEY_H_
+
+#include <string>
+
+#include "net/base/net_export.h"
+#include "net/base/schemeful_site.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+
+namespace network {
+namespace mojom {
+class CookiePartitionKeyDataView;
+}  // namespace mojom
+}  // namespace network
+
+namespace mojo {
+template <typename DataViewType, typename T>
+struct StructTraits;
+}  // namespace mojo
+
+namespace net {
+
+// TODO(crbug.com/1225444): Add fuzzer test.
+class NET_EXPORT CookiePartitionKey {
+ public:
+  CookiePartitionKey();
+  explicit CookiePartitionKey(const SchemefulSite& site);
+  CookiePartitionKey(const CookiePartitionKey& other);
+  CookiePartitionKey(CookiePartitionKey&& other);
+  CookiePartitionKey& operator=(const CookiePartitionKey& other);
+  CookiePartitionKey& operator=(CookiePartitionKey&& other);
+  ~CookiePartitionKey();
+
+  bool operator==(const CookiePartitionKey& other) const;
+
+  // Methods for serializing and deserializing a partition key to/from a string.
+  // This will be used for Android, storing persistent partitioned cookies, and
+  // loading partitioned cookies into Java code.
+  //
+  // This function returns true if the partition key is not opaque. We do not
+  // want to serialize cookies with opaque origins in their partition key to
+  // disk, because if the browser session ends we will not be able to attach the
+  // saved cookie to any future requests. This is because opaque origins' nonces
+  // are only stored in volatile memory.
+  //
+  // TODO(crbug.com/1225444) Investigate ways to persist partition keys with
+  // opaque origins if a browser session is restored.
+  static bool Serialize(const absl::optional<CookiePartitionKey>& in,
+                        std::string& out) WARN_UNUSED_RESULT;
+  // Deserializes the result of the method above.
+  // If the result is absl::nullopt, the resulting cookie is not partitioned.
+  //
+  // Returns if the resulting partition key is valid.
+  static bool Deserialize(const std::string& in,
+                          absl::optional<CookiePartitionKey>& out)
+      WARN_UNUSED_RESULT;
+
+  static CookiePartitionKey FromURLForTesting(const GURL& url) {
+    return CookiePartitionKey(url);
+  }
+
+ private:
+  explicit CookiePartitionKey(const GURL& url);
+
+  // IPC needs access to internal site.
+  friend struct mojo::StructTraits<network::mojom::CookiePartitionKeyDataView,
+                                   CookiePartitionKey>;
+
+  SchemefulSite site_;
+};
+
+}  // namespace net
+
+#endif  // NET_COOKIES_COOKIE_PARTITION_KEY_H_
diff --git a/net/cookies/cookie_partition_key_unittest.cc b/net/cookies/cookie_partition_key_unittest.cc
new file mode 100644
index 0000000..ef604ea
--- /dev/null
+++ b/net/cookies/cookie_partition_key_unittest.cc
@@ -0,0 +1,77 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_COOKIES_COOKIE_PARTITION_KEY_UNITTEST_H_
+#define NET_COOKIES_COOKIE_PARTITION_KEY_UNITTEST_H_
+
+#include "net/cookies/cookie_partition_key.h"
+#include "net/cookies/cookie_constants.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace net {
+
+TEST(CookiePartitionKeyTest, Serialization) {
+  struct {
+    absl::optional<CookiePartitionKey> input;
+    bool expected_ret;
+    std::string expected_output;
+  } cases[] = {
+      // No partition key
+      {absl::nullopt, true, kEmptyCookiePartitionKey},
+      // Partition key present
+      {absl::make_optional(CookiePartitionKey::FromURLForTesting(
+           GURL("https://toplevelsite.com"))),
+       true, "https://toplevelsite.com"},
+      // Local file URL
+      {absl::make_optional(CookiePartitionKey::FromURLForTesting(
+           GURL("file:///path/to/file.txt"))),
+       true, "file://"},
+      // File URL with host
+      {absl::make_optional(CookiePartitionKey::FromURLForTesting(
+           GURL("file://toplevelsite.com/path/to/file.pdf"))),
+       true, "file://toplevelsite.com"},
+      // Opaque origin
+      {absl::make_optional(CookiePartitionKey::FromURLForTesting(GURL())),
+       false, ""},
+      // Invalid partition key
+      {absl::make_optional(
+           CookiePartitionKey::FromURLForTesting(GURL("abc123foobar!!"))),
+       false, ""},
+  };
+
+  for (const auto& tc : cases) {
+    std::string got;
+    EXPECT_EQ(tc.expected_ret, CookiePartitionKey::Serialize(tc.input, got));
+    EXPECT_EQ(tc.expected_output, got);
+  }
+}
+
+TEST(CookiePartitionKeyTest, Deserialization) {
+  struct {
+    std::string input;
+    bool expected_ret;
+    absl::optional<CookiePartitionKey> expected_output;
+  } cases[] = {
+      {kEmptyCookiePartitionKey, true, absl::nullopt},
+      {"https://toplevelsite.com", true,
+       absl::make_optional(CookiePartitionKey::FromURLForTesting(
+           GURL("https://toplevelsite.com")))},
+      {"abc123foobar!!", false, absl::nullopt},
+  };
+
+  for (const auto& tc : cases) {
+    absl::optional<CookiePartitionKey> got;
+    EXPECT_EQ(tc.expected_ret, CookiePartitionKey::Deserialize(tc.input, got));
+    if (tc.expected_output.has_value()) {
+      EXPECT_TRUE(got.has_value());
+      EXPECT_EQ(tc.expected_output.value(), got.value());
+    } else {
+      EXPECT_FALSE(got.has_value());
+    }
+  }
+}
+
+}  // namespace net
+
+#endif  // NET_COOKIES_COOKIE_PARTITION_KEY_UNITTEST_H_
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json
index 13bdcab2..6d985bd 100644
--- a/net/http/transport_security_state_static.json
+++ b/net/http/transport_security_state_static.json
@@ -2074,7 +2074,6 @@
     { "name": "al-shami.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "alanrickmanflipstable.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ankakaak.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "anonym-surfen.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "apps-for-fishing.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "athenelive.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aurainfosec.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -2098,7 +2097,6 @@
     { "name": "danskoferie.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "daylightpirates.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "deliverance.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "disking.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dubrovskiy.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dyeager.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "edix.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -2188,7 +2186,6 @@
     { "name": "tox.im", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "traas.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "trashnothing.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "tuturulianda.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ucfirst.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "unitedadmins.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "unknownphenomena.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -2579,7 +2576,6 @@
     { "name": "alethearose.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "anakros.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "andrewimeson.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "antoniomarques.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "apachehaus.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "apibot.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aponow.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3403,7 +3399,6 @@
     { "name": "greenvines.com.tw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hollowrap.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hostingactive.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "humankode.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "immunicity.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kahopoon.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "khetzal.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3660,7 +3655,6 @@
     { "name": "checktype.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "chloe.re", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "chrst.ph", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "coldhak.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "comarkinstruments.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "consciousandglamorous.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "crestoncottage.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3784,7 +3778,6 @@
     { "name": "topnovini.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "trendberry.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "trybind.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "uberfunction.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ulrik.moe", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "utopians.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "vanetv.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3949,7 +3942,6 @@
     { "name": "taborsky.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "teampaddymurphy.ie", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "teampoint.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "therewill.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "threelions.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tm-solutions.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tomasjacik.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5150,7 +5142,6 @@
     { "name": "creditkarma.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cryptify.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cwagner.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "cyberkov.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cyberpunk.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dadons-laserdiscs.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "darkag.ovh", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5577,7 +5568,6 @@
     { "name": "evilized.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "evossd.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "eytosh.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "f00.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fabienbaker.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fableforge.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "faeriecakes.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6444,7 +6434,6 @@
     { "name": "getts.ro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ggx.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "gheorghesarcov.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "gmoes.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "goben.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "gogenenglish.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "goldpreisfinder.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -7125,7 +7114,6 @@
     { "name": "1xcess.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "2carpros.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "3r.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "aaron-gustafson.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "abilitynet.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aboutmyproperty.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "acheconcursos.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8099,7 +8087,6 @@
     { "name": "casinolistings.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "casinoreal.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "castlejackpot.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "catgirl.pics", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cdndepo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cdnjs.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cdreporting.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8193,7 +8180,6 @@
     { "name": "creditproautos.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "crefelder.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "crowd.supply", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "crypticshell.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cryptojar.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cryptonym.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "csbs.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8474,7 +8460,6 @@
     { "name": "fortesanshop.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fotocerita.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fotopasja.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "fotowettbewerb.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "foxbnc.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "foxdev.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "foxley-farm.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8642,7 +8627,6 @@
     { "name": "herr-webdesign.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hibilog.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hicl.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "hiddendepth.ie", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "higgstools.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "higp.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hippies.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -10408,7 +10392,6 @@
     { "name": "holzheizerforum.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "holzvergaser-forum.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hotelvictoriaoax-mailing.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "hostisan.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hotelvillahermosa-mailing.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "horstmanshof.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hwag-pb.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -11315,7 +11298,6 @@
     { "name": "haozhang.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "haydenhill.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hebriff.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "heitland-it.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "helioanodyne.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hengelsportdeal.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "herds.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -11499,7 +11481,6 @@
     { "name": "onviga.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "open-infrastructure.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "openrtv.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "oses.mobi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "panaxis.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "panelomix.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "parodybit.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -11604,7 +11585,6 @@
     { "name": "signere.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "silaslova-ekb.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "simplicitypvp.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "simpul.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sistersurprise.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sleep10.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "slimspots.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -11872,7 +11852,6 @@
     { "name": "benohead.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "benzou-space.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "berna.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "bertrand.bio", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "besola.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bestmotherfucking.website", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "betterbabyshop.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -12542,7 +12521,6 @@
     { "name": "ltba.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ltbytes.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lunchbunch.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "luongvu.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "luuppi.fi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lynx.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lynxbroker.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -12707,7 +12685,6 @@
     { "name": "oneazcu.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "onlinebiller.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "onmuvo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "onpatient.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "oogartsennet.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "oparl.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "openquery.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -12748,7 +12725,6 @@
     { "name": "phenomeno.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "phenomenoporto.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "phenomenoporto.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "philpropertygroup.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "philsturgeon.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "phonenumberinfo.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "photographyforchange.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13424,7 +13400,6 @@
     { "name": "awaremi-tai.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bewerbungsfibel.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bemsoft.pl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "bluebill.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "beyondalderaan.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "awk.tw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bilke.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14524,7 +14499,6 @@
     { "name": "sec.ec", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "rivermendhealthcenters.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "rdl.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "scores4schools.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "satmd.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sagemontchurch.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "schlagma.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14940,7 +14914,6 @@
     { "name": "ameego.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "agrias.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "acessoeducacao.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "263.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "abilma.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "amineptine.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "alexmak.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15729,7 +15702,6 @@
     { "name": "nieuwsoverijssel.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "notarvysocina.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "new-process.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "montazer.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ms-alternativ.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nscnet.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "onlyzero.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15953,7 +15925,6 @@
     { "name": "semmlers.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "spotlightsrule.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "smallpath.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "sodiao.cc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "spamloco.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "slimk1nd.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "standards.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16217,7 +16188,6 @@
     { "name": "adelinlydia-coach.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "agfmedia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "abulanov.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "398.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "alertaenlinea.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "39sihu.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "2600edinburgh.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16251,7 +16221,6 @@
     { "name": "abborsjo.fi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "actu-medias.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "amcfirst.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "amimoto-ami.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "amphetamines.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "amartinz.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "andrewdaws.tv", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16316,7 +16285,6 @@
     { "name": "asafilm.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aparaatti.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ariacreations.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "assurancesmons.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "askkaren.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "asuhe.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "0day.su", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -17454,7 +17422,6 @@
     { "name": "michaelsulzer.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "minenash.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mikori.sk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "modelcube.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "limpens.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mahfouzadedimeji.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "malwarekillers.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -17807,7 +17774,6 @@
     { "name": "ruskamodra.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "room3b.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "s-rickroll-p.pw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "reinaldudras.ee", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "repair.by", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nzquakes.maori.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "muckingabout.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -17898,7 +17864,6 @@
     { "name": "snekchat.moe", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "seobot.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "smartcheck.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "salmonvision.com.tw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "shaken110.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "shadowguardian507.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "skidstresser.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18056,7 +18021,6 @@
     { "name": "techreview.link", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "thisfreelife.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "thecrochetcottage.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "tetramax.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "thehighersideclothing.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tampabaybusinesslistings.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "thebrightons.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18337,7 +18301,6 @@
     { "name": "xn--lsupp-mra.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "yourcopywriter.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "yame2.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "youcruit.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "youon.tokyo", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wpcarer.pro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "uygindir.ml", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18393,7 +18356,6 @@
     { "name": "724go.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "0g.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "7261696e626f77.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "525.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "3drenaline.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "adorewe.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "1041263497.rsc.cdn77.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18864,7 +18826,6 @@
     { "name": "chrisdecairos.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "desplats.com.ar", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "completesportperformance.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "databeam.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "desertsounds.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "demonwolfdev.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dee.su", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19384,7 +19345,6 @@
     { "name": "initramfs.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "index-mp3.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "inkontriamoci.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "indochina.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ikiler.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "inet.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "integrity.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19465,7 +19425,6 @@
     { "name": "imrunner.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "joelfries.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "julianvmodesto.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "jskier.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jakubvrba.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "inspirationalquotesuk.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "julientartarin.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19709,7 +19668,6 @@
     { "name": "mimobile.website", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mdosch.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mendy.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "mfedderke.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "menaraannonces.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "memoryex.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "meshotes.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20101,7 +20059,6 @@
     { "name": "receitasdebacalhau.pt", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "researchgate.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "reagir43.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "retroity.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "reha-honpo.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "quentinchevre.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "rcvd.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20311,7 +20268,6 @@
     { "name": "sole-erdwaermetauscher.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "skandiabanken.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "standagainstspying.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "simfri.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "socialnitro.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sol.works", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sorensen-online.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20729,7 +20685,6 @@
     { "name": "ziegler-heizung-frankfurt.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wine-importer.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--v6q426ishax2a.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "zurret.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "zhangfangzhou.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "xynex.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "willemsjort.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20971,7 +20926,6 @@
     { "name": "d4rkdeagle.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "damasexpress.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "daniel-mosquera.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "danielepestilli.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "danielsblog.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "danielstach.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "danoz.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -21662,7 +21616,6 @@
     { "name": "vow.vn", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wadidi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "waelisch.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "wallet.pp.ua", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wapt.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "warezaddict.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wasil.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -21762,7 +21715,6 @@
     { "name": "1981612088.rsc.cdn77.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "1it.click", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "1scope.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "208.es", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "21x9.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "24-7.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "256k.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -21870,7 +21822,6 @@
     { "name": "aetherc0r3.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "afdkompakt.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "affiliatetest.azurewebsites.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "affordablemudjacking.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "affordableracingparts.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ag-websolutions.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "agenciadeempregosdourados.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23070,7 +23021,6 @@
     { "name": "hipnos.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hippomovers.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hippopotamuses.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "hiratake.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hire-a-coder.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hirefitness.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hirokilog.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23613,7 +23563,6 @@
     { "name": "mastodon.expert", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mastodon.host", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mastodon.my", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "mastodon.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mastodon.pl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mastodon.rocks", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mastodon.top", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23711,7 +23660,6 @@
     { "name": "mkaciuba.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mkakh.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mlcambiental.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "mlpchan.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mlpvc-rr.ml", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mmilog.hu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mmt.my", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -24997,7 +24945,6 @@
     { "name": "windycitydubfest.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "winnersports.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wireframesoftware.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "wiseflat.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wkennington.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wmustore.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wodboss.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25234,7 +25181,6 @@
     { "name": "ak-varazdin.hr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "abox-kb.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "afrikarl.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "alexandros.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ahiru3.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "adamas-magicus.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "8azino777.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25455,7 +25401,6 @@
     { "name": "bghost.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "beichtgenerator.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "amitse.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "betterworldinternational.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "berlin-flirt.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "berthelier.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bentphotos.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25981,7 +25926,6 @@
     { "name": "ehandel.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "effizienta.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "envescent.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "dupisces.com.tw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "die-borts.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "elliff.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dovenzorgmalawi.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -26182,7 +26126,6 @@
     { "name": "funnybikini.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fukakukeiba.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fid-elite.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "froehlich.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "freedomflotilla.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "gala.kiev.ua", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "gatewaybridal.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -26395,7 +26338,6 @@
     { "name": "hydrodipcenter.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "home-cloud.online", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "horodance.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "hvdbox.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "i-geld.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "icebound.cc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ibps.blog", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -26411,7 +26353,6 @@
     { "name": "imperial-legrand.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "idranktoomuch.coffee", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "imagebin.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "ihollaback.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "imperdin.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "imperdintechnologies.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "huongquynh.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -27247,7 +27188,6 @@
     { "name": "pluto.life", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "piratte.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "plzdontpwn.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "outpostinfo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "pollingplace.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "pony.tf", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "playwhyyza.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -27611,7 +27551,6 @@
     { "name": "slik.ai", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "single-in-stuttgart.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sjdaws.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "shoshin-aikido.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "silvergoldbull.mw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "skylgenet.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "smartwritingservice.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28528,7 +28467,6 @@
     { "name": "boueki.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "booox.pw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "biomodra.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "breadandlife.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "braviskindenjeugd.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bravisziekenhuis.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bro.hk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28623,7 +28561,6 @@
     { "name": "comoquitarlasestriasrapidamente.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "clusteranalyse.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "columbuswines.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "cnam-idf.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "commitsandrebases.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "connorsmith.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "coda.moe", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28785,7 +28722,6 @@
     { "name": "eklepka.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "elias-nicolas.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "elhossari.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "ecoterramedia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dogworld.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dtechstore.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "edgecustomersportal.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28854,7 +28790,6 @@
     { "name": "elevateandprosper.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "edubras.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "emiele.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "editoraacademiacrista.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "factorypartsdirect.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ezdog.press", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fatedata.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -29213,13 +29148,11 @@
     { "name": "kurzonline.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "leeclemens.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jembatankarir.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "labelleza.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lazytux.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kromamoveis.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "larepublicacultural.es", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "linkedinbackground.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "levatc.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "ligonier.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lipoabaltimore.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lazytux.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lesjardinsdubanchet.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30493,7 +30426,6 @@
     { "name": "churrasqueirafacil.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cirurgicalucena.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "civilg20.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "clinicaferrusbratos.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "club-reduc.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "comflores.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "comodesinflamarlashemorroides.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31046,7 +30978,6 @@
     { "name": "my-host.ovh", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mybb.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "myday.eu.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "myhair.asia", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "myspa.asia", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nataldigital.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nathumarket.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31249,7 +31180,6 @@
     { "name": "watchfreeonline.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wbci.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wbx.support", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "weyland-yutani.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wintermeyer-consulting.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wintermeyer.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wordpresspro.cl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31583,7 +31513,6 @@
     { "name": "blogom.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bloom-avenue.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "blumen-binder.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "bmw-motorradclub-seefeld.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "booter.es", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "borisavstankovic.rs", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "borrelpartybus.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31846,7 +31775,6 @@
     { "name": "everytruckjob.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "excentos.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "expatmortgage.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "expatriate.pl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "expo-america.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "eyps.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "eznfe.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32098,7 +32026,6 @@
     { "name": "jmsolodesigns.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jmssg.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jobs-in-tech.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "jobtestprep.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jobzninja.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "joe262.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "joearodriguez.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32107,7 +32034,6 @@
     { "name": "joetyson.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "johand.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "johanli.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "johngaltgroup.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jokedalderup.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "joker.menu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jooksuratas.ee", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32265,7 +32191,6 @@
     { "name": "mbits.solutions", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "media-pi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mediadandy.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "medtankers.management", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "meetingfriends.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mehmetakif.edu.tr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mehr-schulferien.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32416,7 +32341,6 @@
     { "name": "owlishmedia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "paazmaya.fi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "painlessproperty.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "paktolos.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "pantallasled.com.mx", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "parisescortgirls.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "parleamonluc.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -34541,7 +34465,6 @@
     { "name": "oldbrookmarqueehire.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oliode.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "omgbouncycastlehire.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ona.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "onceuponarainbow.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ond-inc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "onestopcastles.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -35362,7 +35285,6 @@
     { "name": "lollaconcept.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lordgun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lovenwishes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lsc.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lucakrebs.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lugui.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "luiscapelo.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -35380,7 +35302,6 @@
     { "name": "mamiecouscous.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "manawill.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maquettage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "marek.su", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "martijn.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mashandco.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mashandco.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -35446,7 +35367,6 @@
     { "name": "pcbricole.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "piils.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pioche.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "pittmantraffic.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "plae.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "planetromeofoundation.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "plexpy13.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -35582,7 +35502,6 @@
     { "name": "trendykids.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tribac.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tripsinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "triz.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "trynta.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "uitgeverij-deviant.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "unschoolrules.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -35708,7 +35627,6 @@
     { "name": "bingcheung.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "binti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bioetco.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bioharmony.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bitcoinclashic.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bluepearl.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bolte.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -36501,7 +36419,6 @@
     { "name": "nerfroute.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nerpa-club.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "netnik.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "neutralvehicle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nightmoose.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ninebytes.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ninfora.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -36695,7 +36612,6 @@
     { "name": "52b9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "52b9.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "53ningen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "546802.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "788da.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "81uc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "8951889.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -36911,7 +36827,6 @@
     { "name": "blunderify.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bluproducts.com.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bmriv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "boards.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bodypainting.waw.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bolgarnyelv.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bondingwithbaby.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -36953,7 +36868,6 @@
     { "name": "cadams.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "calcedge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "campingskyhooks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "canglong.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "canker.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "canterbury.ws", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "captainark.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -37278,7 +37192,6 @@
     { "name": "fotonjan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fowlsmurf.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "francescoservida.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "frankenhost.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frankslaughterinsurance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frederikvig.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "freelancecollab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -37444,7 +37357,6 @@
     { "name": "jape.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jastrow.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "javiermixdjs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "jci.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jdgonzalez95.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jedayoshi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jeepeg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -37529,7 +37441,6 @@
     { "name": "laboutiquedejuliette.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lachosetypo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ladyanna.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lagit.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lalalab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lalunecreative.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lamaisondelatransformationculturelle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38166,7 +38077,6 @@
     { "name": "usbr.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "utcast-mate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "utgifter.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "valudo.st", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vantagepointpreneed.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vasilikieleftheriou.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vats.im", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38492,7 +38402,6 @@
     { "name": "dekoh-shouyu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "delorenzi.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "depot-leipzig.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "derekheld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "deukie.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dev-tek.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "diem-project.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38645,7 +38554,6 @@
     { "name": "hotels-insolites.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "houstonauthorizedrepair.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hquest.pro.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hr-tech.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hr-tech.store", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hub.org.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "humppakone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38688,7 +38596,6 @@
     { "name": "katthewaffle.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kazand.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "keengamer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kenbonny.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "keralit.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "keylaserinstitute.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "khudothiswanpark.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39375,7 +39282,6 @@
     { "name": "feuerwehr-vechta.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "filetransfer.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "filidorwiese.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "findrejsepartner.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "firmenwerbung-vermarktung.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "firstinnovationltd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fishexport.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39488,7 +39394,6 @@
     { "name": "joeyvilaro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jonathanj.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jugendfeuerwehr-vechta.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "jule-spil.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "juliankirchner.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "julibon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kalilinux.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39511,7 +39416,6 @@
     { "name": "kselenia.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kubica.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kunstdrucke-textildruck.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kurserne.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lared.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lariposte.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lazapateriahandmade.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39537,7 +39441,6 @@
     { "name": "loddeke.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "logicoma.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lojatema.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lommeregneren.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lonniemason.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lovelovenavi.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lublin.toys", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39764,7 +39667,6 @@
     { "name": "tandempartnerships.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teamusec.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "technoswag.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "telefonabonnement.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tenno.tools", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "testosteronedetective.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tetraktus.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -40052,7 +39954,6 @@
     { "name": "cooljs.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "coussinsky.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cpd-education.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "craftinghand.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "croeder.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "croncron.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "crownpoint.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41785,7 +41686,6 @@
     { "name": "phaux.uno", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "phishing-studie.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "phishing.rs", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "piruchita.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pkbjateng.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pkbjateng.or.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pksps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42126,7 +42026,6 @@
     { "name": "carepassport.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "carrollservicecompany.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "casusgrillcaribbean.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "caterkids.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ccsource.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cellartracker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "certchannel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42411,7 +42310,6 @@
     { "name": "morhys.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mosshi.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "moucloud.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "moyu.host", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mr-coffee.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "multitec.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "murashun.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42471,7 +42369,6 @@
     { "name": "opengovpartnership.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "openruhr.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "optimize-jpg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "orioncokolada.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "osaka-onakura.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oyosoft.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "paardenhulp.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42484,7 +42381,6 @@
     { "name": "paxerahealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "paykings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "perez-marrero.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "persephone.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pescadorcomunicacao.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "petdesign.pet", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "peterborgapps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42566,7 +42462,6 @@
     { "name": "smaltimentorifiuti.firenze.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "smokinghunks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "snic.website", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "snoerendevelopment.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "soakgames.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "soaringtoglory.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sobreporcentagem.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -43335,7 +43230,6 @@
     { "name": "cintactimber.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "clawhammer.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "clod-hacking.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "codeandpeace.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "codeproxy.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "codestep.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cognitip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -43359,7 +43253,6 @@
     { "name": "cultureelbeleggen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "curarnosensalud.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "custerweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cvps.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cybit.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cygu.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cykelbanor.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -43675,7 +43568,6 @@
     { "name": "naturblogg.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "naturesbest.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nea.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "nems.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nesbase.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "net-rencontre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "newtonproject.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -43858,7 +43750,6 @@
     { "name": "ts3-dns.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tunnelventilation.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "twitchplaysleaderboard.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ueberdosis.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "umsolugar.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "unityconsciousnessbooks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "unsereins.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -44120,7 +44011,6 @@
     { "name": "eve.ac", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eveswell.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "extensionschallenge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "eyyubyilmaz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fairydust.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fanactu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fdos.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45071,7 +44961,6 @@
     { "name": "kedv.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "keepingtheplot.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kejibot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kersbergen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kessawear.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kinautas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kiwi.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45127,7 +45016,6 @@
     { "name": "mathys.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mattcorp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mawo.olkusz.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mcl.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mcqyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mdg-online.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "megam.host", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45348,7 +45236,6 @@
     { "name": "serverexpose.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "setsailanddive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "shift.ooo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "shopadvies.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "siciliapulizie.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sidema.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "silkebeckmann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45973,7 +45860,6 @@
     { "name": "merloat.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "messdorferfeld.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "meteo-r.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "michaelsnoeren.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "michellavat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mikkelscheike.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "miku.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46036,7 +45922,6 @@
     { "name": "ojbk.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "onderwijstransparant.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "orikadabra.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "orikum.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "orthograph.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "osborn.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "otsu.beer", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46139,7 +46024,6 @@
     { "name": "rwgamernl.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sachk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sadev.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sadou.kyoto.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "safepay.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sanantoniolocksmithinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "santensautomatics.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46147,7 +46031,6 @@
     { "name": "sbsrv.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "scaffoldhirerandburg.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "scaffoldhiresandton.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sch44r0n.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "schlick.wedding", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "schlossfuchs.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "schneeketten-ratgeber.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46432,7 +46315,6 @@
     { "name": "freedomfinance.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "freedomrahoitus.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fsdress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fsstyle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "full-stack.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fyretrine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "g0881.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46779,7 +46661,6 @@
     { "name": "brush.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bryansmith.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bt78.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bt85.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bt9.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bt96.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bt995.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47483,7 +47364,6 @@
     { "name": "alquiaga.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "amcangroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "amyfoundhermann.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "anegabawa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "angelesydemonios.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "animan.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aoaprograms.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47595,7 +47475,6 @@
     { "name": "ipad.li", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iran-geo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iranjeunesse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "islamonline.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "it-service24.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "izaakbeekman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jadchaar.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47767,7 +47646,6 @@
     { "name": "xn--hgbk4a00a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--kckd0bd4a8tp27yee2e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--mgbpkc7fz3awhe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "xuanmeishe.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "youngpeopleunited.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "youtuberis.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zengdong.ren", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48177,7 +48055,6 @@
     { "name": "firegore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fireplex.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "firstdry.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fitmeat.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "flickcritter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "florian2833z.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fluids.ac.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48274,7 +48151,6 @@
     { "name": "hktkl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hochyi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hohenleimbach.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "homem-viril.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "homesteadandprepper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hopesanddreams.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "horrormovies.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48354,7 +48230,6 @@
     { "name": "jorcus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "joseitoda.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "joshruppe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "joshua.bio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "js93029.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jsdelivr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ju.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48583,7 +48458,6 @@
     { "name": "plokko.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "plurr.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pmnaish.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "pogera.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "polyr.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "poodlefan.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "portale-randkowe.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -49142,7 +49016,6 @@
     { "name": "georgiaautoglass.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gesica.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "getwemap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "gino-gelati.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ginzaj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "git.sb", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "glamourdaze.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -50223,7 +50096,6 @@
     { "name": "firesuite.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "flanga.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fletemaritimo.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "flexfunding.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "flip.kim", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fotografechristha.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fpgradosuperior.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -50752,7 +50624,6 @@
     { "name": "superway.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "suttacentral.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "swqa.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "swxtd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "syntheticgrassliving.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tadiranbatteries.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "talentwall.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -50942,7 +50813,6 @@
     { "name": "academkin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "acklandstainless.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "actioncleaningnd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "actualidadkd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "addictionresource.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "advanced-fleet-services.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "advertis.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51176,7 +51046,6 @@
     { "name": "falcona.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "farthing.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fdresearch.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "feli.games", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "felixaufreisen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "feng-hhcm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fierscleaning.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52037,7 +51906,6 @@
     { "name": "megakoncert90.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "merakilp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mers.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "metric.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mglink.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "microzubr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "minfin.gov.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52313,7 +52181,6 @@
     { "name": "choiceautoloan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "christian-krug.website", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "churchofsaintrocco.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "citizenslasvegas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "civicforum.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cleaningbyrosie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cognicom-gaming.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52450,7 +52317,6 @@
     { "name": "kringloopwinkelsteenwijk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ktsofas.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kuaitiyu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kumilasvegas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kxline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kxway.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lakewoodcityglass.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52640,7 +52506,6 @@
     { "name": "vapingdaily.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "venuedriver.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "verios.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vestd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vincentoshana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vingt.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "visasofoz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52661,7 +52526,6 @@
     { "name": "wolfvideoproductions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "woodinvillesepticservice.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wsldp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "wtfsec.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wxkxsw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wyysoft.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xeryus.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -53953,7 +53817,6 @@
     { "name": "buysuisse.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bytecrafter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bytecrafter.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "c3sign.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "c3woc.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cachedview.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "caglarcakici.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54019,8 +53882,6 @@
     { "name": "coworking-luzern.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cpsq.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "crackers4cheese.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "crazybulk.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "crazybulk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "crazybulk.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "creativeimagery.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "creativerezults.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54238,7 +54099,6 @@
     { "name": "fsty.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fun4tomorrow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "furcdn.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "futureaudiographics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fydjbsd.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fyreek.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gabriele.tips", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54304,7 +54164,6 @@
     { "name": "hcscrusaders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hddrecovery.net.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hdtwinks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hearinghelpexpress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hebamme-cranio.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hellerarko.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hemtest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54999,7 +54858,6 @@
     { "name": "stephenreescarter.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stgeorgecomfortinn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stichtingdemuziekkamer.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "stjosephtheworker.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stmatthewri.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stonechatjewellers.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stopjunkmail.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55043,7 +54901,6 @@
     { "name": "teamspeak-serverlist.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tech-info.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "techmagus.icu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "techmoviles.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "telesto.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teletexto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "temariopolicianacional.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55080,7 +54937,6 @@
     { "name": "threefantasy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thrush.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tidy.chat", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "timbrado.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tittelbach.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tobi-server.goip.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tobi-videos.goip.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55590,7 +55446,6 @@
     { "name": "vampire142.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "verticrew.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "videobrochuresmarketing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vnpay.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vtt-hautsdefrance.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vvzero.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "w88info.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57597,7 +57452,6 @@
     { "name": "vitamina.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vitamina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vive.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "voolik.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "voxpopuli.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vragenvanproust.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vuatruyen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57803,7 +57657,6 @@
     { "name": "esovita.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "europalettenkaufen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "evernaut.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fabiocicerchia.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fakeemergency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "familienportal.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "faradrive.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57906,7 +57759,6 @@
     { "name": "oaktonhouseandgardens.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "omenprinting.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "organicskincare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "oximo.lviv.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "p0l.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "paullockaby.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "paulw.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -58015,7 +57867,6 @@
     { "name": "1in9.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "24.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "360-staffing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "494k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "7898666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "7plus.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "9867666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -58522,7 +58373,6 @@
     { "name": "kileahh.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "klop.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "komp247.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kosmos.org.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lares.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "launcher-minecraft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "leafland.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -58578,7 +58428,6 @@
     { "name": "newfoundland-labradorflora.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nilgirispice.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nonx.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "northebridge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "noxx.global", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "obec-krakovany.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "olandiz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59537,7 +59386,6 @@
     { "name": "esmincg2t1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "etduvindemoselle.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eventsframe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "executiveresolutions.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "f1nal-lap.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "factory-f.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "femaex.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59578,7 +59426,6 @@
     { "name": "imgal.vin", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "innovamag.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "inqorp.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "integrityglobal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "interparcel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iszy.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "it-inside.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59618,7 +59465,6 @@
     { "name": "machidaclip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "madamegarage.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maiti.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "makejusticework.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mann-und-maeuse.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "manuscripteditorial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "margaux-perrin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59636,7 +59482,6 @@
     { "name": "misakastudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mmsmotor.com.hk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "monetki.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "monsterandfox.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mopliangxing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mrcrowley217.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mtludlow.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59705,7 +59550,6 @@
     { "name": "roosta.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rossfrance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rrssww.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ruthbarrettmusic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "s-yuz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sannefoltz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sargeson.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59730,10 +59574,8 @@
     { "name": "sophiahatstudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "speakersbusiness.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "spt.tf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "staffhunt.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "star-darom.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stevehaid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "stevereedmp.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stockholmpride.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "storytellingforbusiness.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "strategos.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59781,7 +59623,6 @@
     { "name": "webmaster-infographiste-lyon.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "websa.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "weidehelp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "westthorntonlabour.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "widely.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wigelsworth.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "woodwormtreatment.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60360,7 +60201,6 @@
     { "name": "hybrydowe-samochody.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hypnovir.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iautodily.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "iboy1069.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "icanhazpass.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ihorizon.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "infodesigners.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60538,7 +60378,6 @@
     { "name": "well-around-the-world.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "westcoastheatingair.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wifimb.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "wingsofacow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wowgenial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wyczaruj.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--95q32l0t6b9cb17l.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60897,7 +60736,6 @@
     { "name": "blueskydigitalstrategy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bonus.net.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bottinquebec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bouldercolorado.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bowtie.com.hk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "branno.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bufla.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61030,7 +60868,6 @@
     { "name": "kaizenjuku.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kamilmagdziak.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "katsunet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kimkuhlmanphoto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kizzedbykelz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kolitel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kollegamenti.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61396,7 +61233,6 @@
     { "name": "hektenkairez.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "helpwithadoption.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hjertingfysioterapi.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "how2dev.tools", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hq77.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "huoyankan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ibb.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61555,7 +61391,6 @@
     { "name": "strandbyfysio.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "styletron.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "summiteyekc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sv1880-lichtenau.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teboorthodontics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "technofirstonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "telemovi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61592,7 +61427,6 @@
     { "name": "vladsfads.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vractive.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "warung.host", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "webhoffmann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "what.tf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "whiskey.town", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "windowsdoors.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61925,7 +61759,6 @@
     { "name": "distratus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "divingforlife.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "diygeek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "djfrenchy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dm1.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dmn.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dolph.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62078,8 +61911,6 @@
     { "name": "imy.rs", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "indota.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "info-o-zbozi.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "infodiscus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "infogym.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "informace-zbozi.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "infosecchicago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "infosective.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62530,7 +62361,6 @@
     { "name": "squirtingpussygirl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ss.systems", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stable.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "stadsbos013.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "star-one.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "startloop.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stehlik.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62565,7 +62395,6 @@
     { "name": "teamliquid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "techcu.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "techjobplaybook.nyc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "technogps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tecknobox.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teeqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tehniss.rs", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64327,7 +64156,6 @@
     { "name": "nn9728.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nordstromheating.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nsradiology.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "nudge.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nullwebscripts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nwea.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nyerjachioval.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64838,7 +64666,6 @@
     { "name": "ift.cx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iiax.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iiax.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "iisjy.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "impns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "impresapulizia.milano.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "impresapuliziebergamo.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65801,7 +65628,6 @@
     { "name": "filecloud.fun", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "files.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fizjoterapia.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fokos.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "foxroy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frtib.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fucknazis.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65940,7 +65766,6 @@
     { "name": "n6729.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "n6957.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "n6957.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "n8ta.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "netexpat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "networg.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "networg.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66229,7 +66054,6 @@
     { "name": "ag888818.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ag88910.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "agaa35.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "aglucky.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "agslot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "agslot.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "agslot777.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66335,7 +66159,6 @@
     { "name": "electrocardiographe.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "elle-weine.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eqassociates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "erfolgsmaschine.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "especialistagoogleadwords.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "espyder.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "euc.world", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -67159,7 +66982,6 @@
     { "name": "fraplaster.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frasestop.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frosty.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fulibyg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "funyirotraktor.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "getonyx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "glammybabes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -67321,7 +67143,6 @@
     { "name": "studyportal.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "swdiscount.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "syogainenkin119.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "taichichuanyang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tanshin.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "techmunchies.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "technotronikcanada.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68117,13 +67938,11 @@
     { "name": "technistan.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "telford.codes", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "terabyte-computing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "terminalhrd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tested.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "testmx.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "testmx.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "testmx.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "textonly.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "thailandlongtime.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thaqfni.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "theapplewiki.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thedinnerdetective.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68654,7 +68473,6 @@
     { "name": "vamosbien.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vilafloridacapivari.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vinmmo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "voevm.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "volvoconnect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wallisch.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wearefrantic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68676,7 +68494,6 @@
     { "name": "y5bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "y6bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "y7bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "yourbetterkitchen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yuer.sytes.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zi5.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zl-59.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70036,7 +69853,6 @@
     { "name": "cartfilm.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "casalcrevillent.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "casalinghedisperate.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "casalribeiro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "castalie.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "castle.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "castleoblivion.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70235,7 +70051,6 @@
     { "name": "dranik.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dream-pools.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dreamcrack.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dreamwork.financial", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dreamworldstudio.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "drianpublishing.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "driv.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70940,7 +70755,6 @@
     { "name": "ouwerling.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oxymail.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ozonstyle.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "p2d.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "p30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "p58101.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "p58102.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73668,7 +73482,6 @@
     { "name": "bestgearlist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blackteam.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blacktownbuildingsupplies.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "blessedgeeks.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blessedgeeks.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blm69.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blonde.style", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74602,7 +74415,6 @@
     { "name": "imranraza.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "in1000worten.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ingfreelancer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "initialization.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "intelmed.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "intensify.pictures", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "internetmusicexchange.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74666,7 +74478,6 @@
     { "name": "marvnetforum.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "max-it.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mdcghana.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "meevo.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mein-domizil.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mekanika.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "metroplex.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76098,7 +75909,6 @@
     { "name": "whatismypublicip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wielrenbond.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wso01.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "wuzigackl.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--80ancacgircb8q.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yanniclandsmann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ydraulikos.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76579,7 +76389,6 @@
     { "name": "binoqlo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "biol.moscow", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bither.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bloom.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "boreacr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bossdistribuidora.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "brandonforce.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76622,7 +76431,6 @@
     { "name": "cristianuibar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "crossword.city", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cruciverba.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cupclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "d36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dark.fail", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ddepot.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77386,7 +77194,6 @@
     { "name": "latinosup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "latinosuptv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lc862.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "le-cameleon.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "leemankuiper.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lelux.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "liberhk.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77897,7 +77704,6 @@
     { "name": "houseofpertijs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hrpage.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "igap.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ikaria.com.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "imiix.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "incrom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "inflatiecalculator.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79582,7 +79388,6 @@
     { "name": "onlineradio.pp.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "openarch.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "openbayes.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "osano.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "paardenpro.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "packetoverflow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "panthi.lk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79666,7 +79471,6 @@
     { "name": "sixcolors.lu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sjrcommercialfinance.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "skywalkers.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sobczakdesign.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "socialclimb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "softwaresecurityandradefernando.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "softwsabri.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80088,7 +79892,6 @@
     { "name": "netferie.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "netferie.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "newcomm.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "newendsoft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nic.ads", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nic.android", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nic.app", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80272,7 +80075,6 @@
     { "name": "tantravoorlichting.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tdvg.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teamkoncert.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "technewera.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tekingb.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tele-points.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "texasbluesalley.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80344,7 +80146,6 @@
     { "name": "wismile.lu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wolftain.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wolvesvtc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "worldtravelandadventure.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wormate.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xcraftsumulator.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xier.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81000,7 +80801,6 @@
     { "name": "artikel9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "artisan-emmanuel.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aseth.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "asmrbuluo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aussiestories.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "awlgolf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ayselonia.onl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81365,7 +81165,6 @@
     { "name": "gentlentapis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "germfr.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "get-baaam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "getcreditscore.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gethome.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "getmonero.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gezondheidszorg-ict.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81635,7 +81434,6 @@
     { "name": "schnitzel-und-co.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sebastian-walla.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "selectra.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sexonosalao.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sgsy.bid", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sh0uld.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "shansen-online.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81903,7 +81701,6 @@
     { "name": "baidu-s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ballisticdetailing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "balsallcommonbouncycastles.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "banlinhdanong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "barkassen15.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "beam-to.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bedrijvencentrum-maartenslaan.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82561,7 +82358,6 @@
     { "name": "1234365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "1voz.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "2dua.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "3798.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "3798.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "3aexpert.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "4kpi.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -83041,7 +82837,6 @@
     { "name": "solidrop.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "speeder.best", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "speederss.best", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sportswear.by", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "spteam.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stevenapate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "studiekort.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -83436,7 +83231,6 @@
     { "name": "klabnikova.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kolibrikapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kooibeds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kopfootdoctor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kunow.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kup-sluzbu.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kupsluzbu.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -83834,7 +83628,6 @@
     { "name": "b70302.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "b70305.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "backpainandsciaticahouston.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bagira.guru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "baithe.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "banfun.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bangkrak.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -83985,7 +83778,6 @@
     { "name": "darfurwall.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "darkcards.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "datensalat.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "datometry.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "daygametraining.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dcdn.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "deck.academy", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -84899,7 +84691,6 @@
     { "name": "herkel.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "herkelmedia.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hlz.mn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "horti-it.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hp-lexicon.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hqsmartpanel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hstudio.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -85431,7 +85222,6 @@
     { "name": "tonymaster21.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tout-a-fait.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tredevlet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "turismonochile.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vaccineskill.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vault.investments", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "velocityfiber.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -85802,7 +85592,6 @@
     { "name": "naifcare.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "natlec.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "naturaleza.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "netcombne.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "news-trendlab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "newsall.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nicetaninaka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -86906,7 +86695,6 @@
     { "name": "drszucs.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dubridgeweb.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dumaurier.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dundeerecycling.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dust.bio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dutabisnis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dwhightmolina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -87173,7 +86961,6 @@
     { "name": "knightsofcolumbus867.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "koelingmonitor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "koenmartens.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kokoro-singsong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kranbearys.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "krazy.net.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kuba-orlik.name", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -87766,7 +87553,6 @@
     { "name": "zercutie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zihari.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zindaa.mn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zklcdc.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zrkhosting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zuiverjegeest.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "00228.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -87792,7 +87578,6 @@
     { "name": "777234567.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "7fon.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aarsunwoods.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "abelordbalagtas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "abemarx.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "accesslogisticgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "achmazstore.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -87875,7 +87660,6 @@
     { "name": "basicports.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "basicports.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bastiaanbosch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bazarelregaloideal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bciiconsultores.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bcnation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bdtc.com.bd", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -87989,7 +87773,6 @@
     { "name": "cs-kurnik.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cube-filing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cumulus.photo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "curl.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "customerfocus.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dada.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "daimonikos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -88066,7 +87849,6 @@
     { "name": "eamigo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "easyserver.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ebooksbag.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ecdahls.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eckotech.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ecorak.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ecotecelevator.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -88837,7 +88619,6 @@
     { "name": "xy.ax", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "y.gy", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yannyann.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "yellowtrace.net.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yj4p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yjav11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yjav8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -90297,7 +90078,6 @@
     { "name": "alexmainz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alexmainz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alexmainz.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "alivelimo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "allerlei-havelte.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "amaruddinmufid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ambicorprealestate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -90383,7 +90163,6 @@
     { "name": "delvinoadegas.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "delycate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "derbysound.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "desarrollosmoyan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "detonic.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "devloope.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "digitalcarbide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -91355,7 +91134,6 @@
     { "name": "sharingiscaring.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "shaunallen.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "shiulungkungfu.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "simplesend.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sorocabacopos.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "streamlineaudio.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "strogov.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -91369,11 +91147,9 @@
     { "name": "tidton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tipscesarlopez.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tomkwok.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "toorfor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "torwart-jugend.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "town-night.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "traitement-arthrose.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "travel4history.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "trekonbh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tutamail.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tutanota.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -91559,7 +91335,6 @@
     { "name": "am2digital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "amasea.yachts", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ambersoftware.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "animate.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "animepahe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ankureurope.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ao3fan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -92198,7 +91973,6 @@
     { "name": "linotrac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "linotrac.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "liongueststudios.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lovecode.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lsj.world", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lunademiel.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "luxplay.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -92398,7 +92172,6 @@
     { "name": "talonro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tamatoyaku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tamronhallshow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "tarchive.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tccb.gov.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tcybert.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -95796,7 +95569,6 @@
     { "name": "grafenberg.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "graft.spb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "grallersdegegants.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "grammofono.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "grand-books.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "grand-knighki.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "grandi-books.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -96509,7 +96281,6 @@
     { "name": "jobrus.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jobsportalbookmarking.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jobynet.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "johanlog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "johannes-schaefer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "johncook.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "johnwinter.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -100690,7 +100461,6 @@
     { "name": "travelbiz.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "travelcenter.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "travelclinic.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "travelfoot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "travelfriend.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "travelinsurance.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "travelmontenegro.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -102374,7 +102144,6 @@
     { "name": "991ccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aaflalo.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "abeshultz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "abzarweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "advancedroofingmuskoka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ae86m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "agasaya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -102750,7 +102519,6 @@
     { "name": "qbacano.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "qjg.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rabec.com.sa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "renedekoeijer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "riley.love", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rinton.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "robin-kusch.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -102813,7 +102581,6 @@
     { "name": "thoughtworthy.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tiempoalegria.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "top4c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "tripartie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tulevaisuusdemarit.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tupahost.net.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tupperwaresalamanca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -102894,7 +102661,6 @@
     { "name": "archaeology.lk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "artlinestix.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "artofclouds.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "asdf.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "asean-wen.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "astyork.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "at-machining.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -103171,7 +102937,6 @@
     { "name": "mizuasobi.work", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mkm.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mobilerhandwerker.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mobilise.solutions", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mockups.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mokujinken.tokyo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mondsee-psychotherapie.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -103427,7 +103192,6 @@
     { "name": "9jajuice.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "a1scubagear.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aakashbhati.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "aappe.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "abnobapetstore.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "acceleratedpayments.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "acdk2.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -103570,7 +103334,6 @@
     { "name": "docusign.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "domains.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "donislawdev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dostal.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "drivingtest.autos", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ds-statistik.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eatinghouz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -104047,7 +103810,6 @@
     { "name": "dentalgap.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "designburners.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "destiney-arkaden.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dg1298.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "diis.plus", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "diversegold.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "djfunkyju.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -104214,7 +103976,6 @@
     { "name": "medifit.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "medradar.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "megainformatyk.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "meridianbanker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mesasysillas.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "michael-simon.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "minbrew.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -104294,7 +104055,6 @@
     { "name": "proagile.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "profile.ooo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "progenixlab.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "prosperfit.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "provinzblogger.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "psychotiq.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "publish.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -104882,7 +104642,6 @@
     { "name": "physiotherapist-physicaltherapist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pigeonracinginformation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pirateproxy.name", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "plex-server.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "poder.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "porntop100.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pornvidsfree.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -104917,14 +104676,12 @@
     { "name": "rostirolla.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rtl.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rtonin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "rumbies.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rx-diet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ry88url.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sandtime.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sanskrit.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sb-graph.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "schwimmschule-kleine-fische.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "server-check.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "seti.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "setin.srl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sha512.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -105211,7 +104968,6 @@
     { "name": "flugplatzmanager.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "formacionodontologica.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frahub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "framatube.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "freewoman.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "froh.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frutidump.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -105521,7 +105277,6 @@
     { "name": "sistemasarquitectonicos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "snowatka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "softwaterinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "somom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sorcemegavendas.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sovraindebitamento.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sphera.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -105652,7 +105407,6 @@
     { "name": "yy30019.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "z30019.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "znfinnews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zorox.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zporno.porn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zz30019.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "flynnhub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -105972,7 +105726,6 @@
     { "name": "modacruz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mods.fm", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "monveilleuretmoi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "morwynna.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mrsourabh.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "msoida.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mueblescuerolorca.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -106096,7 +105849,6 @@
     { "name": "taskman.london", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "taxisantandreudelabarca.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tch-forum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "tecnologia.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tecnomagazine.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teplo-russia.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "termodej.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -107508,7 +107260,6 @@
     { "name": "roishopper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rosewebdesignstudio.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "roveridx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "rpcinmobiliaria.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rpj.life", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "russell-tech.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "s2.coach", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -108287,7 +108038,6 @@
     { "name": "dallaswebsite.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dangeredwolf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "danielaeichberger.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dannys.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "date-hijri.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "deadspin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "decorarei.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -108442,7 +108192,6 @@
     { "name": "jobinbennykutty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "johngreatwood.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "joshmoulin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kabataanpartylist.com.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kahane.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kazumi-clinic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "keithwillcock.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -109049,7 +108798,6 @@
     { "name": "oxalato.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oz-artfocus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pacificaent.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "pagalworld.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pairfum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pakistanwatches.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "papergamer.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -109390,7 +109138,6 @@
     { "name": "czqu.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "daily-city.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dajjal.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "daveroverts.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "davincigourmet.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "deanpearce.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "deluxeblogtips.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -109517,7 +109264,6 @@
     { "name": "investinestonia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ioghawaii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "irr59.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "islamerkantho.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iswag.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "izolyatsia.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "izone.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -109794,7 +109540,6 @@
     { "name": "wowkia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wpautolistings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wpdgimart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "wpfy.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wphaxor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wpslimseo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wpspeedmetrix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -109855,7 +109600,6 @@
     { "name": "babacloud.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "backlinksgenerator.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "badwi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "baocaosuhp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bathrobes.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bavaropuntacanahotels.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "beaconfed.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -110040,7 +109784,6 @@
     { "name": "ilondres.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "incidentresponsesolution.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "incidentresponsesystem.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "incpak.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "infinifour.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "infomate360.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "infradot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -110988,7 +110731,6 @@
     { "name": "artiman-center.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "asla.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "assid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "associationguillaume.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "atlasdog.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "atris.media", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "audionamix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -111118,7 +110860,6 @@
     { "name": "eptreviewer.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "erpsolutionsmart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "escuelitasansebastian.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "espacetendance.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "etmtobik.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "exceloreflexology.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "executiveice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -111229,7 +110970,6 @@
     { "name": "liuwenxuan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "loli.gallery", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lordgrant.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lovelylanguedoc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lu2343.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "magsdata.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "malrox.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -111306,7 +111046,6 @@
     { "name": "praktijkdeeersteindruk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "praxis-liebner.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "precisionsportsonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "privatetrainingonline.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "prizrak-v-dospehah.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "proalist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "projectborealis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -111446,7 +111185,6 @@
     { "name": "wdpapi.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "weaponsinhebrew.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "weatherproduct.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "websitesbymark.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "webstellung.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wefixmd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "westbeachparks.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -112001,7 +111739,6 @@
     { "name": "alphalight.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alphalightgear.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "amineamellouk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "amsuisse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "anjaamelia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ankarakurumsalwebtasarim.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ao3-cn.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -112043,7 +111780,6 @@
     { "name": "brandhout-b-tree.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "brasilianskbikini.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "brushcreekdistillery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bureaux-entrepots.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cadiskitchen.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "callisabel.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "camaradecomerciosiguatepeque.hn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -112088,7 +111824,6 @@
     { "name": "digitalrowdy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "digitlyx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "djh-nordmark.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dluxelab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dontasktoask.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dovemoe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "drathaisdentista.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -112261,7 +111996,6 @@
     { "name": "pension-chevaux.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "persuasionmatters.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "phg-eg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "piastaola.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "play-lu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "plexmark.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pmi-install.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -112483,7 +112217,6 @@
     { "name": "chaturbates.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chatweb.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chdg.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "chrawrizard.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "christophfink.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "claypenblanks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "clickaplay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -112767,7 +112500,6 @@
     { "name": "qbicwashrooms.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "qiangtou.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "qingyule.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "qtxh.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "quinteroorthodontics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "quiq.im", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "radio-pulsar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -113319,7 +113051,6 @@
     { "name": "freepik.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "freezvon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "freshmail.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "freshstep.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "friedcoffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "friendlytennisclub.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "friendofthehoneybee.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -113532,7 +113263,6 @@
     { "name": "lasmorfianapoletana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lastlightlodge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "latdor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "latestmyanmarnews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "latouchemusicale.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "laura.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "laurahausmann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -113568,7 +113298,6 @@
     { "name": "lukasbures.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lyckselefrasch.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "m9297.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "macreports.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mahroos.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maisonmalou.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "makeagif.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -113965,7 +113694,6 @@
     { "name": "unblockit.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "understrap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "uniritter.edu.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "uploadcare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "urbanmsp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "urfayazar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "us-10.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -114028,7 +113756,6 @@
     { "name": "xn----etba6agm4a9a.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--losolivareos-jhb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xpertcenter.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "xposure.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "y-syouten.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "y9297.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yakitofisi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -114055,7 +113782,6 @@
     { "name": "729solutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "8868ty8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "9111s.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "925silverjewelry.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "9dragonstea.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aboutyou.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ac.id.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -114306,7 +114032,6 @@
     { "name": "missouriheatingcoolingadvice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "missyapartman.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "misterseguros.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mixinglight.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mmlebanon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "moheatingcoolinghvac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "monicz.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -115457,7 +115182,6 @@
     { "name": "cholleria.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cinderellacloset.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "classyhandmade.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "clever-fit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "clgb.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "code4u.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "compraenpijama.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -115799,7 +115523,6 @@
     { "name": "archerlong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "archerlongx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "archerxlong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "armpension.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "arthurdev.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "arztpraxis-kubalok.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "asher.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -115915,11 +115638,9 @@
     { "name": "fasam.edu.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fastesp.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "federize.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fertisa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ffty2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fietsherstel.gent", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "finvantive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "flblog.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "followme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fossbytes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "freakinstream.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -116008,7 +115729,6 @@
     { "name": "lautremode.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lazosamericaunida.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lekkergoings.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lemcarni.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lena-klein.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lena-klein.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "leonardcyber.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -116508,7 +116228,6 @@
     { "name": "joshu.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "justin3d.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "justyardsign.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kaibinyang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "katewrightmba.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "khimno.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kinderopvang.gent", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -116562,7 +116281,6 @@
     { "name": "modul8r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "montserrat.ind.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "movedigital.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "munkavedelemaruhaz.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mycoordinates.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mylearners.vic.gov.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "myrealestateautomation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -117113,7 +116831,6 @@
     { "name": "gyefund.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "h2orto.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "habrastorage.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hartmann-hartmann.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hatierchinois.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hcr2bot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "healthyhomeventilation.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -117220,7 +116937,6 @@
     { "name": "laud.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "layan-luxurylighting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "leandrebergeron.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "leapa.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ledebergleeft.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "legen.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "leivadi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -117338,7 +117054,6 @@
     { "name": "o2.tn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oapks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oasiskitchens.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "obve.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ocasio.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ocmwgent.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oettig.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -117529,7 +117244,6 @@
     { "name": "taciso.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "taikhoanfree.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "taskforce.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "tayebbayri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tcook.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tcook.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tcshop.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -117582,7 +117296,6 @@
     { "name": "twilite.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "typecho.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ugodeal.md", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "unausa.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "unblockit.lat", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "universal-techno.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "universalspf.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -117789,7 +117502,6 @@
     { "name": "damiengobron.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "data-mining.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dazenelevator.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dblfree.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ddi.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dealdelicate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "demisch-tim.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -118280,7 +117992,6 @@
     { "name": "birchlane.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bitazza.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bitwoci.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "blacksearegion.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blankstyle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blatnic.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blogomoll.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -118450,7 +118161,6 @@
     { "name": "hometeenorgy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hongfumall88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hoorgold.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hotelv.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hotrender.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "huelvatrabaja.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "huiskopenspanje.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -118579,7 +118289,6 @@
     { "name": "mellmon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "meslekifikir.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "messenger.md", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "metalloprokat.market", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mezemeze.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mfg-forex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mfg-fx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -118677,7 +118386,6 @@
     { "name": "polymathian.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pozyka.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "prepz.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "presidentinternet.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "press-wall24.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pricesdoors.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "profarm.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -118927,10 +118635,8 @@
     { "name": "alfst.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "allgooddeedshomes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alonely.place", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "along.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "andhaniawan.my.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "andresrosa.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "androidgadgematic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "anomalous.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aparistravel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "applydirect.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119000,7 +118706,6 @@
     { "name": "chto-posmotretj.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chukcha.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "churchplaza.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ciordigital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "citycardgand.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ciudadrealtrabaja.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cleanmysolarpanels.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119289,7 +118994,6 @@
     { "name": "mynak.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mysaldo.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mysterycards.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "nakvartiru.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "namaanak.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nanco.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nanco.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119332,7 +119036,6 @@
     { "name": "onlineradious.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oogent.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "opendolls.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "opikini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ordigame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oroconews.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "osaki.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119426,7 +119129,6 @@
     { "name": "ranikaart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rbzl.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rded.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "realty.tatar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "refrigeracion2hermanos.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "regtify.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "regtify.com.cy", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119497,7 +119199,6 @@
     { "name": "snetts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "snrd.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "snukep.kr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sochi.ooo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sodi.gent", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sodigent.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "softbabyducks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119648,7 +119349,6 @@
     { "name": "xaydungnamcuong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn----7sbbfsshjvgyde8g3c.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn----7sbedlbhv2azb6a.xn--j1amh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "xn----7sbfchj2dvap7h.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn----8sbfkobhgmxahfmmhe8b8c6ff.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--36-dlcdun7abo4a.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--80aqlihiyv.xn--p1acf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119675,8 +119375,6 @@
     { "name": "88518.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "88creative.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "a789.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "aaaportaserve.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "aajkakavi.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aavstudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "abc-sport-klin.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aboutamit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119815,7 +119513,6 @@
     { "name": "battlepetsonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "batwatt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bavaria-feuerloeschershop.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bbkl.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "beashandmade.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bedez.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "beehealthyllc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -119843,7 +119540,6 @@
     { "name": "blogdelgloton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bluecoastelectric.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bluecollarfetishwear.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bluegrottoscuba.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bluemango-studios.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bogolybu.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bolotnaya.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -120331,11 +120027,9 @@
     { "name": "mad-fabrikken.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "madisonsjewelersorlando.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maerzpa.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mafondue.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "magicitaca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "magicvaporizers.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "magneticmoney.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "magnewsblog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mainstreetartisans.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maintainyourwebsite.help", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mairimcosmetics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -120552,7 +120246,6 @@
     { "name": "powerofsocialtech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "powerplanter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "powerup.com.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "prasso.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "precedenceum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "predmetnyj-fotograf.by", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "primelendingdallasfw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -120734,7 +120427,6 @@
     { "name": "theatergroep-o.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thebsclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thechefsgear.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "thecombustionway.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thecompanysheffield.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thecook.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "thedivesource.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -120819,7 +120511,6 @@
     { "name": "vid-eo.click", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "villagephysicians.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "villaismaelcortinas.uy", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vinsonconsulting.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "virtualtabletop.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vivapharma.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vnlfrk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -120921,7 +120612,6 @@
     { "name": "worldclassfriend.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "worldnetone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "writestreak.team", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ws5.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wtfcripto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wum.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wz8.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -121102,7 +120792,6 @@
     { "name": "alcar.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alcaralifusi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alchemisten.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "alcionesakugawa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alcoholicbeverages.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alcoholismtreatment.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aldealices.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -121292,7 +120981,6 @@
     { "name": "automir.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "automosanto.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "autoparts-for-foreigncars.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "autosneed.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "autosprint.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "auxilium-informatique.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "avacatossiu.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -121647,7 +121335,6 @@
     { "name": "charqawi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chat-cam.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cheatmasters.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cheazey.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cheazey.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cheazey.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chechencity.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -122290,7 +121977,6 @@
     { "name": "elvis-presley.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "email24.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "emavending.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "emdyn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "emeraldheights.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "emergency-broadcast-system.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "emersonreview.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -122373,7 +122059,6 @@
     { "name": "evendesign.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "evenfall.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eventjams.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "eventusgc.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "evergreenilder.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "evermade.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "everwinter.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -122945,7 +122630,6 @@
     { "name": "ileonidze.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ilneminis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ilona-france.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ilouis.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ilovefanyi.win", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ilovefun.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ilquintoseitu.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -123017,7 +122701,6 @@
     { "name": "invariant.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "investasipasti.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "invokingspirits.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "involve.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ionline.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iperon.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iperon.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -123041,7 +122724,6 @@
     { "name": "itrew.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "itsmohitchahal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "itsnotnot.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "itxcjm.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ivan-tadej.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ivankuchin.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ivanzorin.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -123063,7 +122745,6 @@
     { "name": "janetandjohns.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "janservfl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "janujani.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "jasawebbisnis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jasik.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "javafiles.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "javsod.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -123114,7 +122795,6 @@
     { "name": "jtbservice.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "julenetxaniz.eus", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jurquestion.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "just6f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "justfoodfordogs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kabal.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kadett-c-club-limburg.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -123660,7 +123340,6 @@
     { "name": "mohaabobclan.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mohamedsherif.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mojome.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mon-lab-digital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "monakinolandscape.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "monarchisc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "monconcoursdgfip.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -124219,7 +123898,6 @@
     { "name": "relatosypoesias.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "releases.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "relentlessroofing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "remateszarate.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "remcuavilla.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "reminded.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "remontdot.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -124893,7 +124571,6 @@
     { "name": "txtentertainment.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tyinnovations.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tylerdurden.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "tylerharcourt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tyuning-avto.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ua-autonews.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "uba-tra.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -125385,7 +125062,6 @@
     { "name": "aptcaust.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "apuestalegal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aqcbv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "aravitor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "archipaedia.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "arcopay.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ariensfoundation.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -125789,7 +125465,6 @@
     { "name": "faribanx-porn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fastfloorscreed.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fati.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fazer.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fbo.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fdmg.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "feastshare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -125956,7 +125631,6 @@
     { "name": "hyperjit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "i-cyber.gov.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "i4cu.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "iain.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "iban.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ibu.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "icehousefit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -126137,7 +125811,6 @@
     { "name": "lojadafloresta.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lokeryu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "londonpods.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lookae.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lovlyluna.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lpcom.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lpid.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -126405,7 +126078,6 @@
     { "name": "popfitclothing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pornbabetyra.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pornorapido.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "pornquebec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pororoca.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "portovelhoshopping.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "postacyprus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -126620,7 +126292,6 @@
     { "name": "stylesaag.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stylezutra.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stylspire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "subjecto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sublimesurface.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sublimigeek.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "summermovies.nyc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -126656,7 +126327,6 @@
     { "name": "tealegrar.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teamkgsr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teamwork-bad-wurzach.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teamxavier4ever.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "teatrolatea.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "techgama.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "techlab.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -126774,7 +126444,6 @@
     { "name": "vasi.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vatav.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vcsource.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vectorsiriushockeyclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "verakoubova.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vertichost.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "veryestate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -128533,7 +128202,6 @@
     { "name": "streaming.jetzt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stroigid.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stroykomi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sttpk.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "studentjournalist.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "studentnep.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "studiocharloslivro.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -129022,7 +128690,6 @@
     { "name": "highdonate.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "highlandsmode.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hm-notes.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hocz.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "holger-schwarze.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "holiy.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hollandhouse.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -129134,7 +128801,6 @@
     { "name": "menddie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mexby.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mfoda-eg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mftn.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "midial.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mielelpinsapar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mightytips.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -129180,7 +128846,6 @@
     { "name": "nurshka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nycu.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "o2design.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "oasisbahamas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oceancore.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "odziezrobocza.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "okinawa-seaside.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -129209,7 +128874,6 @@
     { "name": "palmaxgroup.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "panhardclub.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "parcelauditpartners.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "paris-elysees.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "partners4results.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pawsandpurses.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pedrollo-ua.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -129494,7 +129158,6 @@
     { "name": "aboutmarketing.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aboutmedicine.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "absolution.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "abtech.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aceweb.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "acmilan.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "actievloerkleden.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -129710,7 +129373,6 @@
     { "name": "cgrequinos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "charlesonrecreationarea.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chauvelcinema.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cheerpassionallstars.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chesterultimatefrisbee.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "chiffrer.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "choicemediaworks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -130578,7 +130240,6 @@
     { "name": "avstack.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "avtojurist.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "avtomaniya.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "awaua.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "awayword.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "awxg.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "axelcalle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -130608,7 +130269,6 @@
     { "name": "barnestransport.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "barrack.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "barzza.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "basenio.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bashkiria.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bati-renov.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "batka-stealer.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -130785,7 +130445,6 @@
     { "name": "cathedralappointments.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "catholicteuchtar.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "catscreativecakes.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "catskillselfstorage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ccnm.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ccpinturas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cctld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -131200,7 +130859,6 @@
     { "name": "funnyvideoclips.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "furniture-for-home.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gabbeh.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "gabtitui.gov.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gajabhindi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "galatabazaar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "galaxit.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -131812,7 +131470,6 @@
     { "name": "mestovpohybu.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "metalweaverscreations.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "metrixdm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "metrophone.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "michaelboogerd.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "michaelhastrich.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "michaeljames.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -132786,7 +132443,6 @@
     { "name": "truecircumcision.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "trusted-medications.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tscfoods.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "tsra.gov.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tstech.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tstlr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tsuki.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -132944,7 +132600,6 @@
     { "name": "xiuzhouinvest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xloffice.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--90acrudcl3j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "xn--c-xga.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--zca.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xnsir.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xtom.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -133004,7 +132659,6 @@
     { "name": "31-elagage.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "33-couvreur.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "33-elagage.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "339999.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "3speak.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "40010monogatari.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "44ada.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -133131,7 +132785,6 @@
     { "name": "baclofen.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bacus.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bad-homburg.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "badanteinformatica.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "baharmusic24.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bahrain.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "baif.hr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -133343,7 +132996,6 @@
     { "name": "degreecollege.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "delasamericas.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "deluxewindowanddoor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "democrats.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "denkorolev.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dennisrubin.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "departamentoslosolivos.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -133364,7 +133016,6 @@
     { "name": "diogof.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dip.digital", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "divband.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "divesourcefl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "divvy.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dizayn-cheloveka.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dj-eran.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -133996,7 +133647,6 @@
     { "name": "renvisegrad.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rexograph.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rhjf.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "riccardoslanzi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ripin.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "robertoggarcia.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "rootpak.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -134192,7 +133842,6 @@
     { "name": "visit.natal.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vivoldi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vokov.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "volkswagensaigon.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vpetkov.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vvd.bz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "w0.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -134227,7 +133876,6 @@
     { "name": "xanaxanax.rocks", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--7tq798c.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--kryptowhrungen-cib.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "xy96.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yantarniy.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yasmin.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ybexalev.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -134299,7 +133947,6 @@
     { "name": "amped4ski.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "andonivr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "andreas-kurtz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "andrew-lazarev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "angiology.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "anikabyaabi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "antennekaart.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -134315,7 +133962,6 @@
     { "name": "armamentevolved.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "artmaterials.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "artwhale.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "asianmaterials.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "askindia.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aspirateur-univers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "assistancepaws.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -134609,7 +134255,6 @@
     { "name": "cangku.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "capeprivacy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "capris.cr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cargomurah.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cartegrise.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "casinocity.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "castillo.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -134639,7 +134284,6 @@
     { "name": "corebit.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cortadorplasma.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "counterespionage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "countryatheartcandles.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "crealab.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "credentsys.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "creditoconsolidado.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -135306,7 +134950,6 @@
     { "name": "skipbinsforhire.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "smashbylaney.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "soccerbetwinner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sochiatrium.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "socseti.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sold.red", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "soloproductos.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -135416,7 +135059,6 @@
     { "name": "turksell.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tweedandtalon.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "twinspringcoupling.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "twobrothersbbq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "type74.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "u15.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "u15x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -135501,7 +135143,6 @@
     { "name": "2fa.directory", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "369369.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "5keys.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "60mbanime.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "a1qualityspareparts.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "abogehad.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aboutearning.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -135981,7 +135622,6 @@
     { "name": "cattery-mundilfari.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "catterydumagasin.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ccshire.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cdnmc.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ceet.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "celayix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "celebratesportsnetwork.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -136082,7 +135722,6 @@
     { "name": "cyclingmonthlyest.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cyril-leytsihovich.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "da-tixe.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "dalbarsqm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dallasdesignco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "daniya.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "darc.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -136997,7 +136636,6 @@
     { "name": "luxurythatlasts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "macrotech.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "madoucefrance.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "makaradigital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maliyehukuk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mallorca.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "manchestermoneyman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -137633,7 +137271,6 @@
     { "name": "travelsunflower.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "travelsuperhero.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "travelurban.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "trubapro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "truongthanhaudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "trustedpropertymanagement.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "trustreview.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -137691,7 +137328,6 @@
     { "name": "yorkmoneyman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yoti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "youngdevotion.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "yukinastorage.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zefort.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zenyxis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zheltyy.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -137834,7 +137470,6 @@
     { "name": "bksites.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blathinwheatens.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blauwepanterengonnie.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "blockvideo.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blogabouthealthy.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bloggerzarausa.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blogpark.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -137911,7 +137546,6 @@
     { "name": "cortex.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "costalinux.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "couponsale.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cpoj.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "craftsofcleo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "creattic.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "creditopessoal.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -138520,7 +138154,6 @@
     { "name": "plasticdonut.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "plasticscm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "plasticsurgerypartyest.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "plataformaslms.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "play-mate.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "play3niu22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "play3niu66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -138536,7 +138169,6 @@
     { "name": "poolvilla-margarita.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pornbabetyra.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "porumbei.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "posvq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "powerbux.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "presidiotunneltops.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "primesense.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -138962,7 +138594,6 @@
     { "name": "darlingtonia.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "debicicletas.store", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "deelmee.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "devreactorlabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "devs.host", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "devs.icu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "devsectools.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -139478,7 +139109,6 @@
     { "name": "caueteam.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cbchslax.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cecitim.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cerby.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cervek.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "changeforfuture.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "charge.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -139852,7 +139482,6 @@
     { "name": "my-salesforce-scrt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "my-salesforce.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "my-salesforcescrt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "myavocado.md", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mycats.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "myface.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "myshiftbid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -140078,7 +139707,6 @@
     { "name": "storyark.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "streameo.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stsen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "studiodriban.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sugoicraft.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "suleeka.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sumanai.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -140635,7 +140263,6 @@
     { "name": "hairloss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "halilova.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "halilova.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hampuskraft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "happygardencenter.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "harwoeck.group", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hawaiianlion.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -140990,7 +140617,6 @@
     { "name": "sealart.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "seo-promox.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "serralheriaeseguranca.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "sethsimmons.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sexoclicker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sexoclicker.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sexoclicker.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -141295,7 +140921,6 @@
     { "name": "albaronventures.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "albuterolwithoutprescription.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alchemyequities.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "aldevadigital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alejandromoda.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alemagia.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alexandre-acaries.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -141311,7 +140936,6 @@
     { "name": "allandrich.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "allandrichonline.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "allboard.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "allianceautomotive.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "allindiatanzeem.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alltwwk.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "almajaniyate.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -142231,7 +141855,6 @@
     { "name": "gezakekazeg.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ghiro.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gibkoesteklo.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "gibumpark.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gieoduyentinhdo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gijonshiro.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gilmasocial.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -143113,7 +142736,6 @@
     { "name": "obereg.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "obsceneeulogy.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "obuhov.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "oceaniaservergroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oceanshaman.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oceansidetour.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ocenilla.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -143552,7 +143174,6 @@
     { "name": "sergiomur.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sertim.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "servicespot.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "servn.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "seseai.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sesliturkgencligi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sexgood.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -144182,7 +143803,6 @@
     { "name": "yugioh-duelodefinitivo.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yugiohthenextgeneration.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yummycouple.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "yurilight.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yus-azaria.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zadd.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zakachat-temi.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -144334,7 +143954,6 @@
     { "name": "blogfeng.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bluegorilla.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "boathut.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bonyancard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "braidice.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "brasillifeoficial.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "braynblog.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -144551,7 +144170,6 @@
     { "name": "hentaiz.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "herriman.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hfikq8.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hikawa.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hipsterpixel.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hoardit.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "holmes.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -144672,7 +144290,6 @@
     { "name": "lesconfiseriesdaleth.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lesnet.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "letterrill.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lgf.im", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "libramedia.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lilithqueisser.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "limitededitioncomputers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -145138,7 +144755,6 @@
     { "name": "audiobit.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aureshotels.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "autoinkoop.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "avanzbanc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "avm99963.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ayersanaheim.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ayerscoronaeast.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -145240,7 +144856,6 @@
     { "name": "bistum-eichstaett.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "blogidol.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bluetechnician-inc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "bonyancard.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "boon.so", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "booths.cyou", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "boxingclubduval.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -145521,7 +145136,6 @@
     { "name": "expodum.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "expressmedcarenj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fabianfrisch.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "fachschaften.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fanbike.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "farmaciaanagallis.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "federalprisonforums.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -145557,7 +145171,6 @@
     { "name": "glacialexperience.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gmavsg.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "golfturkey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "goodlandks.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gorgeouspizza.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "govtnaukrinews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "grapheneos.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -145738,7 +145351,6 @@
     { "name": "movnest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "multsearch.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mushroomcloud.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "muuglu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mygame.me.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "myroaccutaneexperience.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "n1co68.freeboxos.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -145780,7 +145392,6 @@
     { "name": "oduachambers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "offerground.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "office-addins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "oh14.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oliver-wenz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oliverlanguages.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oliverwenz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -146036,7 +145647,6 @@
     { "name": "truckscout24.lv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "truss.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tuamipartanna.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "tudafa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tuneserver.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tupsicoayuda.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "turc.church", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -146052,7 +145662,6 @@
     { "name": "unoodostoques.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "unpost.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "uploadtokiosk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "urbantecno.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "utahcountydjcompany.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vadis.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vado.li", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -146366,7 +145975,6 @@
     { "name": "askatrans.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "asociacionatlas.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "asociacionlarueda.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "assistanteplus.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "atabor.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "atletismomacotera.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "atomicanet.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -146750,7 +146358,6 @@
     { "name": "highstage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hinkel.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hitglish.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hoangphuongtek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hobo.video", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hoc-bv.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "holydumplings.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -146759,7 +146366,6 @@
     { "name": "hoofexplorer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hoofexplorer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hostker.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "hotsupreme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "houseplant.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "howtomediacenter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "huanwei.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -146874,7 +146480,6 @@
     { "name": "khabland.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kidsplace.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kievholod.in.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kif.rocks", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kilpiapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kindredspirits.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kingpay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -146990,7 +146595,6 @@
     { "name": "nachodelacruz.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "naraku.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "narutodelivery.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "nashc.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nautika.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ndscreening.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nemnodes.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -147204,15 +146808,6 @@
     { "name": "tattoocorina.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "taxly.kr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "team-russia.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "teambeam.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "telhatelite.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tender-alert.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tennisschool.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -147306,7 +146901,6 @@
     { "name": "wittamer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wixmultimedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "woonplein.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "wpsteam.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wuellenweber.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wurstmineberg.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wynlv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -147670,7 +147264,6 @@
     { "name": "cuttingedges.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cuvantul.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cvalda.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "cxcarepro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cyber-party.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cyberboy.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cyberclaw.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -149784,7 +149377,6 @@
     { "name": "aixm.aero", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "al-hekka.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alborgwatch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "alcasan.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aldebaranbm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alessandropuccistudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "alexsavin.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -149832,7 +149424,6 @@
     { "name": "avanade.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "avanadealumni.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aviaskan.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "aymhome.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "azs-nw.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "b11p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "backupauthentication.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -149950,7 +149541,6 @@
     { "name": "duhurensohn.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dvkg.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "e-buspacific.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "eatmportal.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eco-doors.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "edacasa.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "educampus.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -150020,7 +149610,6 @@
     { "name": "globemilk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "globemilk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "golfbettingsystem.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "goxyshuk.duckdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gpwa.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "graine-de-cafe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "greffe-de-cheveux-turquie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -150248,7 +149837,6 @@
     { "name": "posterlounge.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "powerpc.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "premieraviation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "primevtc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "projetootaku.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "promobit.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "propertyvalue.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -150335,7 +149923,6 @@
     { "name": "smksatriamagelang.sch.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "smooth-e.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "snapmuse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "softmas.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "softowe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "soin-rebozo.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "solongandthanksforallthe.fish", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -150423,7 +150010,6 @@
     { "name": "udilicitana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ultrabkk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "umasoda-tohoku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "universalmusic.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "universitypark.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "unsupervised.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "uopeople.review", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -150448,7 +150034,6 @@
     { "name": "wartegseberangsana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "webka.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "websdeweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "webwiz.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "weijero.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "weitundbreit.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "werranfehtan.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -151046,6 +150631,832 @@
     { "name": "zerodhacapital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zofoke.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zxtremetech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "0n3b1t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "100up.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "123soldcash.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "1337sound.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "1990.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "3changtrai.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "3gdev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "3niu81.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "3niu85.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "3niu89.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "415.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "567.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "7992.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "800999.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "888700.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "888900.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "999700.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "a.tt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aaablindfactory.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "abbuc.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "abgame.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "abminv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "accurx.nhs.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "acrylicstyle.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "actualprogressivevotersguide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "adacoins.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aec-security.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aficiontigres.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "africanconstellations.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aftamurae.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aga.gov.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "agencecentaure.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "agenciainhouse.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "agora.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "agri.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ahmetazgin.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aibuz.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "airlinelondon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "airlinetic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "airlineticketscheapflights.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "airlinetovegas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "airporttaxibudapest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "airporttransferbudapest.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ajvco.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "akimitsu.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alexblock.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alinecordeiro.adv.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alkiraresidences.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "allyoucanstyle.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "amedeo.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "andrewvannyplumbing.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "anehost.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "anglais-angouleme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ankaraotomobilcikmaparca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ankaraotomobilyedekparca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "anketlekazan.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "anntatt.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "antivirus.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "antonmcclure.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "antti.codes", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "anypromo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "appac.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "approvedcashmax.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "apricotactuaries.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "apropont.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ariacellini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "armando.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "arnaudligny.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "artushak.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "asap-advice.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "astcorporation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "atbtaxi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "atyafesolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "auralia.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ausfinex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "autofornal.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "autologix.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "automekbromma.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "autoroutes.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "available.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "awakinn.co.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aydahwa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "b5i.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "babycezi.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "babytoschool.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bahraincredit.com.bh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bakerymazowsze.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "balls.zone", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bargenarenji.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "barlow-media.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "basel-onlinemarketing.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bataminnovationhub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "battlefield2042.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bddam.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bddam.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "beaflamingo.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bebechegou.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bebechegou.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "beberik.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "beetsforyou.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "benjilopez.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bertbrockham.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "besonders-s.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "betterlifekidsclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bf2042.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bgmsquad.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bighouse-events.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bigskyhomebuyers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bigsmallhosting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "birraisocialclub.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bit-academy.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "blakescrepes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bluechipspace.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "blueridge.social", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bookmakers-expert.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "borisenko-alexander.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "boughtbymany.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "brandbook.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bravurasolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "brendanreev.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "budapestairporttaxi.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "budapestairporttransfer.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "budapestairporttransfer.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "budapesttaxi.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "budapesttaxi.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "buildingpassport.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bullesdeculture.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bvlp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "caillou.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "calendriergratuit.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cambriacoveapartments.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "camgirl-info.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "canntinas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carniceriaserrador.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cartoesemilhas.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "casabitare.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "casinocity.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cassembly.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ccover.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cellini.name", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "centr-postavok.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "centralkladno.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chandradeepdey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "charpy.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cheapdomainnameindia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "checkda.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chialab.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chime.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chireiden.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chrisdasie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chrisliebaer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chui.bi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cientotreintagrados.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cindinero.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "circular.fashion", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ck-pms.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cleverlance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cleverlance.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "clickdocs.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "clio-dev2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cloud7.news", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cnclp.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cock.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "codev.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "coffeekaroasters.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "coinpaprika.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "colegios.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "colossean.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "comicstrove.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "compareweddinginsurance.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "comtelnow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "comunitelia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "concreteworksohio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "concreteworksplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "conform.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "congdongvietnhat.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "coronalab.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cpflsolucoes.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "craftersmarket.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "craftyun.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "create-it.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "credithelpinfo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cricketwatch.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "critical-scientists.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "crocc.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "crystalpack.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cube64128.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cubicempire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cxm.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d1zh9ivw96w8wn.cloudfront.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dailykosbeta.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "damibaby.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "damienchicotphotographe.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dasareview.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dasaskincare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dastchin.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dastchin.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "datawow.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "daviddegner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dayuse.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dba-support.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dbgames.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dbgroupe.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ddog-gov.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dealzme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "delikpos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dentalaragonesa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "derailer.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dereklandis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "desmart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dfwrvroofmasters.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "diadoc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "didntdoitbailbonds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "digi-trax.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "digib.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dimspith.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "disavowfile.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "distract09.gent", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dkos2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dkos3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dkos4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dkos5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dkos6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dkos7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dmccommerceconsultants.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dns.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "doble.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dolbyatmosmusiclist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "donselaarbouw.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dorianssecrets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dosimapress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "down.pm", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dr-aldebert-orthopaedie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dr-feldman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dramacooltv.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "drchowchow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "drivehub.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "drogaleste.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "drthiagorighetto.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dsgvo-fit.co.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dveretti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dwgfree.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "easyescortwebsites.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "edinburghopenworkshop.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "egliseclichy92.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ejkitservices.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ejkweb.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elfix.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elki-musik.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elok.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elyum.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "emilypennock.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "encuestaspagadas.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "encuestaspagadas.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "entomologia.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "entranz.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "entrpnr-connect.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "eoitek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "epicerie-raccourci.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "epubmarkets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "equinesalacia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "erkonut.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "erste.guru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "etopia.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "event1teamstore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "evervitjuice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "exam4.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "excellcleaners.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "exeest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "f6s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "farmaciasantabrigida.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fastburg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fehrm.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "felin.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fenris.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fickfreundinnen.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "figuro.la", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "finflee.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "finhealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fitnessboard.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flamingoresidency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flawed.world", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flipping.land", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flormidabel.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flowio.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "foggi.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fordpartsgiant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "forlook.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "formup.com.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "foxeworks.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fpt.icu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fptbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "freecoursepage.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "freitasm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "froh-s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fundacaoeveris.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fwup.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "galerie-marguerite.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gambinotrasporti.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gamedealsnow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "garagewisdom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gardinia.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gassycat.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gastouderbureausnoesje.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gayreppc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gdufe.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "getestudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ghereben.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "giovannicellini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gipernn.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "glassrepairsperth.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "glenatlasmd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gnr-21.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "goddessacumen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gongik.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gonorthwest.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gotwo.icu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gps4net.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gps4net.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "graphicnab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "greenandgolden.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "greenclouddefense.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "greenleafkratom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "groendakmaker.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "group-project.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "groupe-immo9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "groupsh.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "grtc.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "grupoeurodesign.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "guikemarijwielhandel.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gulfadvocates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gwtg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hapvider.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "healthactive.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hearingthecall.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "heartfolder.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hechno.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "heidarilawgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "heilstein.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "helastel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "helpatmyhome.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hereits.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "heycrab.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hive.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hjorslev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hodi.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hoffmanns-ballonshop.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hollandersleepdecor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "homegardengift.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "homesport.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hoody.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "houghtonhouse.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "howdo.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hunhun.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iboe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ict-oldehove.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ieji.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iframefinancement.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ikhwanfillah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "imakin.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "infgc.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "innerlifeskills.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ins-jpn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "insecret.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "insinex.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "intrdate.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "inwao.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ipdfreedom.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "isaaya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iso.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "itbusiness.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "itebgarcia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iteks.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "itsmyedu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jacquelinebellefontaine.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jedayoshi.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jem.style", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jimmykey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jnovonj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "joesniderman.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jonaschorum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "joncellini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jot.works", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jotoho.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jpg.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jsx.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "juicyforum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "justsem.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jvmlending.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "k2velosi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kaerntenjobs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kaffeluckan.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kamilporembinski.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "karet-stroy24.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kastmedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "keep.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "keithrainz.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "keiyuki.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kenguru.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kfgsa.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kiefner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kiefnersoftware.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kovacia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kozgi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kraksky.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ksm-soccer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kunnen.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kylelovell.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kyncostyle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ladderfinance.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lamparassevilla.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lancerm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lata.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "latestonmarketing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lauracookeconsulting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "leeapk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lefevre-ec.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lhffinanceira.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "libertefinanciere.africa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "libranet.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "librerecipes.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lightquantum.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lindamadu.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lindanblog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ling2030.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "linkagencia.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "linuxhostingdelhi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "linuxhostingindia.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "liquid.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "liveatliveoakapts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "livecricketscore.co.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "livrariaatlantico.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lixx.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "llantas.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "localonesou.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lodongxu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "loi-pinel-bordeaux.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "louisianahiker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ls-market.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lumineled.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "madboyz.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "maedacolo.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mail.td", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "makertown.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "malaysurveys.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mamilitante.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mamont.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mandala-porn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mangadex.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mangeeaudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "manpro.systems", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "manypets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "maraboutserieuxhonnete.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "marcossamerson.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "margeriam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "marytetzstore.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "masantefinanciere.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mashcl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "masrud.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "matapacoin.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "matescort.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mauicharm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "maximillianoertel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "maxs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "medipost.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mefinanceira.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "meineweidegans.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "melissacellini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "merchentpro.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "merck.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "metebalci.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "metrobus.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mgr-dev.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "michel.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "midpss.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "millionseha.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mimidots.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "minacellini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "minasan.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "minkatilmancoaching.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mmmm.mn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mobileit.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mod.gov.mk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "modelist.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "moeto-zdrave.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mogujr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "molokaibreeze.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "monde-ampoule.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "moodle.servebbs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "morten-harket.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "movemais.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mp.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mrbusinessbrain.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mrgusercontent.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mtap.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "muac-innolab.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "multispaninc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mummatters.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "musikwerk-stuttgart.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "musition.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mysmmstore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mysmmstore.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "najdidelo.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "najdisa.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nanameue.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nandedam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "negocieipanema.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nekomimix.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "netpraetor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "newasianbistro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nightlife.gent", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nilsvital.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nim.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nimes-gard.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nitoville.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "notryden.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "noy.asia", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nsb.lk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ntscalibracao.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "o7.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "objectcache.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "odbierzspozywke.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ohanacannabis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oleksandr-petrusenko.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oliverniebuhr.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "olivetchurch.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "omersalaj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "omgqueensland.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "one-dot.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onsweb.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onvi.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oo.ps", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "optimumcircle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oracle-support.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "orunodoy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oxfordenglish.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oyantec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "p.sb", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pacenterforhearingandbalance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "panthertee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "paslc.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "patrickod.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "paysoft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pc94666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pedro-fonseca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pelagicus.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "penpalezine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "peoplenotpoliticians.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "permanencesecretariat.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pesquisasremuneradas.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "peterseninc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "petersweb.me.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "phoenixconnection.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "phxbailbonds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pianoschmitz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pixelshealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pixelstrade.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "planeticke.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "plaul.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "play3niu11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "play3niu33.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "play3niu55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "plymouthbus.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "png.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "podeacontecer.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "poseidonwaterproofing.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "poseidonwaterproofing.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "poseidonwaterproofing.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "potteranderson.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "powch-dev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "powch-dev2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "prcsurvey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "precisioncourt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "primetimepokerparties.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "productsonsale.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "programme-neuf-toulouse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "przemyslprzyszlosci.gov.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "q3cdn.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qdm.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qonnected.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quakeroaksfarm.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qualifio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quelchemin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quickway.cn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quin.md", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quinpro.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quintonic.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quorrax.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "r.sb", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "racknride.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rana.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "re.fyi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "realacademy.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "realespanamiami.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "realestateagent-directory.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "realmoney.games", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "recreatehomesolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "regalleadership.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "remotewx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "republikapost.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "reservabiosferavalledelcabriel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "responsible-disclosure.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "retrohaven.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rgc.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rhwebdesigns.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rigidlandscapes.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "risingsoftware.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ritepriceroofing.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rmfscrubs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "roams.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "robinzone.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rodrigoamozu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rodriguezsanchezabogados.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "romeroeletro.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rootly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rootlyhq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "routeur4g.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "royaltyk9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "royvansichem.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rpguilds.world", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rubberchicken.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rudianto.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "safebus.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "safesigner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "safetrax.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sanbs.org.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sanitation-planning-tool.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sansairyu-kuyoukai.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "saskialund.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "saya.gg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sber-solutions.kz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sbpk.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "scapin.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "schiessl.guru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "schwimmschulen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sdphoto.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "secwatch.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "seg27.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "selectedbym.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "semtelco.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "seoapi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "seosergio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "serenityeditor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sethforprivacy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sexxyangie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sexy-mom.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sexyjanahot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sexyrachel846.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sh1mar.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shedrickflowers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shigu.fyi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shih.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shrug.fyi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sidlicenceapp.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sigb.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "siliton.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "silkky.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sip.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sleetandsole.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sleetandsole.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smartclothing.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smithandnephewpensions.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smnz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smpred.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sneakkerworld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "snh.nrw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "solutek.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sorteiosdotom.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "soso.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sotonlgbt.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sourcesdegarrigue.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spammable.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spanstindrundt.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spazioasperger.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "speedhost.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "speleo.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spindrel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "splinterface.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sporenvanslavernijutrecht.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spparkly.agency", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spparkly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spparkly.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spparkly.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "squirtqueen.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "srebro.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ssf.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "starfieldguide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "starlitestation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stauffer-media.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "steiermarkjobs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stekelenburg.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stevendearstyne.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "storyliebe.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "studio-np.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "studio-vertcitron.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "studiosgaravato.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "subilarch.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "suchhunde.wien", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "summitescorts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sunbike-driver.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "supedium.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "surveyberbayar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "surveyviet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "survicate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "synology-distribution.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "systematik.nu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "szetoesq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "taat.edu.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "talshine.rs", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tarrantandharman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "teablr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tecnologiahdv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "teddit.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "teesonic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "terapeuticaenalza.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "terra.bio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "terranimo.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "testable.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tf2pickup.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thaisurveys.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thecache.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thefatlosspuzzle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thehempcretecompany.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thekitchenprofessor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "theroams.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thevacuumpouch.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thewindowcleaningexpert.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thichson.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "think-ai.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tholab.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thotcomputed.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "threatint.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "timecamp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "timecamp.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tinyhouse-bimify.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tipsforgamers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tnt2k.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tokidoki.team", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tokocuan.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "toolsofcomputing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "top-melody.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "top-model.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "top-shashlik.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "toyouiv.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tradebot.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tranhlavender.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "trastornoevitacion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "trastornolimite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "triggertraders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "triperapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "triskelion.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "trom.tf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tropicalf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "truyenmoi.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tutocursos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ulax.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "unibet.ltd", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "unit-soft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "unitedea-ph.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "unlimiteddata.digital", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "unsharpen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uomo.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "upupor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "urlcitr.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "usintimate.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uxlab-agency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vacunas.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "valeryvenom.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vanitybiss.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vanral.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vanylou.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vault182.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vegalanguageacademy.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vetlab.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "victoriavalente.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vilavilma.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "viliv.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vivace.parts", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vkstaticcontent.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vkusercontent.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vmotosoco.lv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "voneus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vsure.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vyomoverseas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "w66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "warfighters.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "warringtonsownbuses.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wayscript.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wayscript.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "weasyl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "webhostingahmedabad.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "webhostingdelhi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "weplay.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "westpennwire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wevah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "whistleblower.report", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wholesalecabinets.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wholesomebuyers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wildvicky.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "williamlong.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "winchuan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wogame.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wowpilates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wrozbyzkartklasycznych.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xavierxu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xiangshan.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xinyezx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--4gq45ay49m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--rs5a.xn--fiqs8s", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xp.ht", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yesleaks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yoim.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "youbil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "youiv.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "youronly.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yoursfunny.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ytprivate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yuh.im", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yuh.li", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yuriland.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zajsoft.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zav-hub.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zebradom.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zedex.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zendrop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zhaozhiru.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     // END OF 1-YEAR BULK HSTS ENTRIES
 
     // Only eTLD+1 domains can be submitted automatically to hstspreload.org,
diff --git a/remoting/host/basic_desktop_environment.cc b/remoting/host/basic_desktop_environment.cc
index 2c93251..1aa185a2 100644
--- a/remoting/host/basic_desktop_environment.cc
+++ b/remoting/host/basic_desktop_environment.cc
@@ -19,6 +19,7 @@
 #include "remoting/host/keyboard_layout_monitor.h"
 #include "remoting/host/mouse_cursor_monitor_proxy.h"
 #include "remoting/host/screen_controls.h"
+#include "remoting/host/url_forwarder_configurator.h"
 #include "remoting/protocol/capability_names.h"
 #include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h"
 #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
@@ -118,6 +119,11 @@
   return std::make_unique<LocalFileOperations>(ui_task_runner_);
 }
 
+std::unique_ptr<UrlForwarderConfigurator>
+BasicDesktopEnvironment::CreateUrlForwarderConfigurator() {
+  return UrlForwarderConfigurator::Create();
+}
+
 std::string BasicDesktopEnvironment::GetCapabilities() const {
   return std::string();
 }
diff --git a/remoting/host/basic_desktop_environment.h b/remoting/host/basic_desktop_environment.h
index bb3c1ff..413aa63 100644
--- a/remoting/host/basic_desktop_environment.h
+++ b/remoting/host/basic_desktop_environment.h
@@ -44,6 +44,8 @@
       base::RepeatingCallback<void(const protocol::KeyboardLayout&)> callback)
       override;
   std::unique_ptr<FileOperations> CreateFileOperations() override;
+  std::unique_ptr<UrlForwarderConfigurator> CreateUrlForwarderConfigurator()
+      override;
   std::string GetCapabilities() const override;
   void SetCapabilities(const std::string& capabilities) override;
   uint32_t GetDesktopSessionId() const override;
diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc
index 25bf0bb2..1c896ed 100644
--- a/remoting/host/client_session.cc
+++ b/remoting/host/client_session.cc
@@ -32,6 +32,7 @@
 #include "remoting/host/remote_open_url_message_handler.h"
 #include "remoting/host/screen_controls.h"
 #include "remoting/host/screen_resolution.h"
+#include "remoting/host/url_forwarder_configurator.h"
 #include "remoting/host/url_forwarder_control_message_handler.h"
 #include "remoting/proto/control.pb.h"
 #include "remoting/proto/event.pb.h"
@@ -909,7 +910,9 @@
   // UrlForwarderControlMessageHandler manages its own lifetime and is tied to
   // the lifetime of |pipe|. Once |pipe| is closed, this instance will be
   // cleaned up.
-  new UrlForwarderControlMessageHandler(channel_name, std::move(pipe));
+  new UrlForwarderControlMessageHandler(
+      desktop_environment_->CreateUrlForwarderConfigurator(), channel_name,
+      std::move(pipe));
 }
 
 }  // namespace remoting
diff --git a/remoting/host/desktop_environment.h b/remoting/host/desktop_environment.h
index 5f7dc3f..98b11e82 100644
--- a/remoting/host/desktop_environment.h
+++ b/remoting/host/desktop_environment.h
@@ -29,6 +29,7 @@
 class InputInjector;
 class KeyboardLayoutMonitor;
 class ScreenControls;
+class UrlForwarderConfigurator;
 
 namespace protocol {
 class KeyboardLayout;
@@ -53,6 +54,8 @@
       base::RepeatingCallback<void(const protocol::KeyboardLayout&)>
           callback) = 0;
   virtual std::unique_ptr<FileOperations> CreateFileOperations() = 0;
+  virtual std::unique_ptr<UrlForwarderConfigurator>
+  CreateUrlForwarderConfigurator() = 0;
 
   // For platforms that require the mouse cursor to be composited into the video
   // stream when it is not rendered by the client, returns a composing capturer.
diff --git a/remoting/host/fake_desktop_environment.cc b/remoting/host/fake_desktop_environment.cc
index ec17aad..e9c0df2 100644
--- a/remoting/host/fake_desktop_environment.cc
+++ b/remoting/host/fake_desktop_environment.cc
@@ -12,6 +12,7 @@
 #include "remoting/host/file_transfer/file_operations.h"
 #include "remoting/host/input_injector.h"
 #include "remoting/host/keyboard_layout_monitor.h"
+#include "remoting/host/url_forwarder_configurator.h"
 #include "remoting/proto/event.pb.h"
 #include "remoting/protocol/fake_desktop_capturer.h"
 
@@ -110,6 +111,11 @@
   return nullptr;
 }
 
+std::unique_ptr<UrlForwarderConfigurator>
+FakeDesktopEnvironment::CreateUrlForwarderConfigurator() {
+  return nullptr;
+}
+
 std::string FakeDesktopEnvironment::GetCapabilities() const {
   return std::string();
 }
diff --git a/remoting/host/fake_desktop_environment.h b/remoting/host/fake_desktop_environment.h
index 1065c214..b9c9e1d 100644
--- a/remoting/host/fake_desktop_environment.h
+++ b/remoting/host/fake_desktop_environment.h
@@ -103,6 +103,8 @@
       base::RepeatingCallback<void(const protocol::KeyboardLayout&)> callback)
       override;
   std::unique_ptr<FileOperations> CreateFileOperations() override;
+  std::unique_ptr<UrlForwarderConfigurator> CreateUrlForwarderConfigurator()
+      override;
   std::string GetCapabilities() const override;
   void SetCapabilities(const std::string& capabilities) override;
   uint32_t GetDesktopSessionId() const override;
diff --git a/remoting/host/host_mock_objects.cc b/remoting/host/host_mock_objects.cc
index 5a30e03..bacbad2 100644
--- a/remoting/host/host_mock_objects.cc
+++ b/remoting/host/host_mock_objects.cc
@@ -62,6 +62,11 @@
   return base::WrapUnique(CreateFileOperationsPtr());
 }
 
+std::unique_ptr<UrlForwarderConfigurator>
+MockDesktopEnvironment::CreateUrlForwarderConfigurator() {
+  return base::WrapUnique(CreateUrlForwarderConfiguratorPtr());
+}
+
 std::unique_ptr<DesktopAndCursorConditionalComposer>
 MockDesktopEnvironment::CreateComposingVideoCapturer() {
   return base::WrapUnique(CreateComposingVideoCapturerPtr());
diff --git a/remoting/host/host_mock_objects.h b/remoting/host/host_mock_objects.h
index eecc9544..c8ded45 100644
--- a/remoting/host/host_mock_objects.h
+++ b/remoting/host/host_mock_objects.h
@@ -22,6 +22,7 @@
 #include "remoting/host/screen_controls.h"
 #include "remoting/host/screen_resolution.h"
 #include "remoting/host/security_key/security_key_auth_handler.h"
+#include "remoting/host/url_forwarder_configurator.h"
 #include "remoting/proto/control.pb.h"
 #include "remoting/proto/event.pb.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -51,6 +52,7 @@
       KeyboardLayoutMonitor*(
           base::RepeatingCallback<void(const protocol::KeyboardLayout&)>));
   MOCK_METHOD0(CreateFileOperationsPtr, FileOperations*());
+  MOCK_METHOD0(CreateUrlForwarderConfiguratorPtr, UrlForwarderConfigurator*());
   MOCK_CONST_METHOD0(GetCapabilities, std::string());
   MOCK_METHOD1(SetCapabilities, void(const std::string&));
   MOCK_CONST_METHOD0(GetDesktopSessionId, uint32_t());
@@ -69,6 +71,8 @@
       base::RepeatingCallback<void(const protocol::KeyboardLayout&)> callback)
       override;
   std::unique_ptr<FileOperations> CreateFileOperations() override;
+  std::unique_ptr<UrlForwarderConfigurator> CreateUrlForwarderConfigurator()
+      override;
   std::unique_ptr<DesktopAndCursorConditionalComposer>
   CreateComposingVideoCapturer() override;
 };
diff --git a/remoting/host/ipc_desktop_environment.cc b/remoting/host/ipc_desktop_environment.cc
index 9352b2cc..3c9e974 100644
--- a/remoting/host/ipc_desktop_environment.cc
+++ b/remoting/host/ipc_desktop_environment.cc
@@ -24,6 +24,7 @@
 #include "remoting/host/input_injector.h"
 #include "remoting/host/keyboard_layout_monitor.h"
 #include "remoting/host/screen_controls.h"
+#include "remoting/host/url_forwarder_configurator.h"
 #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
 #include "third_party/webrtc/modules/desktop_capture/mouse_cursor_monitor.h"
 
@@ -85,6 +86,12 @@
   return desktop_session_proxy_->CreateFileOperations();
 }
 
+std::unique_ptr<UrlForwarderConfigurator>
+IpcDesktopEnvironment::CreateUrlForwarderConfigurator() {
+  // TODO(yuweih): Get it from |desktop_session_proxy_|.
+  return UrlForwarderConfigurator::Create();
+}
+
 std::string IpcDesktopEnvironment::GetCapabilities() const {
   return desktop_session_proxy_->GetCapabilities();
 }
diff --git a/remoting/host/ipc_desktop_environment.h b/remoting/host/ipc_desktop_environment.h
index fa79351..fef092082 100644
--- a/remoting/host/ipc_desktop_environment.h
+++ b/remoting/host/ipc_desktop_environment.h
@@ -61,6 +61,8 @@
       base::RepeatingCallback<void(const protocol::KeyboardLayout&)> callback)
       override;
   std::unique_ptr<FileOperations> CreateFileOperations() override;
+  std::unique_ptr<UrlForwarderConfigurator> CreateUrlForwarderConfigurator()
+      override;
   std::string GetCapabilities() const override;
   void SetCapabilities(const std::string& capabilities) override;
   uint32_t GetDesktopSessionId() const override;
diff --git a/remoting/host/url_forwarder_configurator.cc b/remoting/host/url_forwarder_configurator.cc
index 39518ffc..64b995e 100644
--- a/remoting/host/url_forwarder_configurator.cc
+++ b/remoting/host/url_forwarder_configurator.cc
@@ -16,7 +16,7 @@
 #if !defined(OS_LINUX) && !defined(OS_WIN)
 
 // static
-UrlForwarderConfigurator* UrlForwarderConfigurator::GetInstance() {
+std::unique_ptr<UrlForwarderConfigurator> UrlForwarderConfigurator::Create() {
   // Unsupported platforms.
   NOTREACHED();
   return nullptr;
diff --git a/remoting/host/url_forwarder_configurator.h b/remoting/host/url_forwarder_configurator.h
index 80b68fa7..e525715 100644
--- a/remoting/host/url_forwarder_configurator.h
+++ b/remoting/host/url_forwarder_configurator.h
@@ -5,6 +5,8 @@
 #ifndef REMOTING_HOST_URL_FORWARDER_CONFIGURATOR_H_
 #define REMOTING_HOST_URL_FORWARDER_CONFIGURATOR_H_
 
+#include <memory>
+
 #include "base/callback.h"
 #include "remoting/proto/url_forwarder_control.pb.h"
 
@@ -14,24 +16,31 @@
 // default browser of the OS).
 class UrlForwarderConfigurator {
  public:
+  using SetUpUrlForwarderResponse =
+      protocol::UrlForwarderControl::SetUpUrlForwarderResponse;
   using IsUrlForwarderSetUpCallback = base::OnceCallback<void(bool)>;
-  using SetUpUrlForwarderCallback = base::RepeatingCallback<void(
-      protocol::UrlForwarderControl::SetUpUrlForwarderResponse::State)>;
+  using SetUpUrlForwarderCallback =
+      base::RepeatingCallback<void(SetUpUrlForwarderResponse::State)>;
 
-  static UrlForwarderConfigurator* GetInstance();
+  static std::unique_ptr<UrlForwarderConfigurator> Create();
+
+  virtual ~UrlForwarderConfigurator();
 
   // Runs |callback| with a boolean indicating whether the URL forwarder has
   // been properly set up.
+  // NOTE: |callback| may be called after |this| is destroyed. Make sure your
+  // callback can handle it.
   virtual void IsUrlForwarderSetUp(IsUrlForwarderSetUpCallback callback) = 0;
 
   // Sets the URL forwarder as the default browser; calls |callback| with any
   // state changes during the setup process. |callback| may be called multiple
   // times until the final state (either COMPLETE or ERROR) is reached.
+  // NOTE: |callback| may be called after |this| is destroyed. Make sure your
+  // callback can handle it.
   virtual void SetUpUrlForwarder(const SetUpUrlForwarderCallback& callback) = 0;
 
  protected:
   UrlForwarderConfigurator();
-  virtual ~UrlForwarderConfigurator();
 };
 
 }  // namespace remoting
diff --git a/remoting/host/url_forwarder_configurator_linux.cc b/remoting/host/url_forwarder_configurator_linux.cc
index 1bee73f..a05d4859 100644
--- a/remoting/host/url_forwarder_configurator_linux.cc
+++ b/remoting/host/url_forwarder_configurator_linux.cc
@@ -4,11 +4,12 @@
 
 #include "remoting/host/url_forwarder_configurator_linux.h"
 
+#include <memory>
+
 #include "base/base_paths.h"
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/logging.h"
-#include "base/no_destructor.h"
 #include "base/path_service.h"
 #include "base/process/launch.h"
 #include "base/task/thread_pool.h"
@@ -42,7 +43,7 @@
   return ExecuteConfigScriptWithSwitch("setup")
              ? protocol::UrlForwarderControl::SetUpUrlForwarderResponse::
                    COMPLETE
-             : protocol::UrlForwarderControl::SetUpUrlForwarderResponse::ERROR;
+             : protocol::UrlForwarderControl::SetUpUrlForwarderResponse::FAILED;
 }
 
 }  // namespace
@@ -68,9 +69,8 @@
 }
 
 // static
-UrlForwarderConfigurator* UrlForwarderConfigurator::GetInstance() {
-  static base::NoDestructor<UrlForwarderConfiguratorLinux> instance;
-  return instance.get();
+std::unique_ptr<UrlForwarderConfigurator> UrlForwarderConfigurator::Create() {
+  return std::make_unique<UrlForwarderConfiguratorLinux>();
 }
 
 }  // namespace remoting
diff --git a/remoting/host/url_forwarder_configurator_linux.h b/remoting/host/url_forwarder_configurator_linux.h
index 06dde5c..98abe147 100644
--- a/remoting/host/url_forwarder_configurator_linux.h
+++ b/remoting/host/url_forwarder_configurator_linux.h
@@ -15,6 +15,7 @@
 class UrlForwarderConfiguratorLinux final : public UrlForwarderConfigurator {
  public:
   UrlForwarderConfiguratorLinux();
+  ~UrlForwarderConfiguratorLinux() override;
 
   void IsUrlForwarderSetUp(IsUrlForwarderSetUpCallback callback) override;
   void SetUpUrlForwarder(const SetUpUrlForwarderCallback& callback) override;
@@ -24,8 +25,6 @@
       const UrlForwarderConfiguratorLinux&) = delete;
 
  private:
-  ~UrlForwarderConfiguratorLinux() override;
-
   scoped_refptr<base::SequencedTaskRunner> io_task_runner_;
 };
 
diff --git a/remoting/host/url_forwarder_configurator_win.cc b/remoting/host/url_forwarder_configurator_win.cc
index 94667b6..0ddb94d 100644
--- a/remoting/host/url_forwarder_configurator_win.cc
+++ b/remoting/host/url_forwarder_configurator_win.cc
@@ -4,32 +4,138 @@
 
 #include "remoting/host/url_forwarder_configurator_win.h"
 
+#include <windows.h>
+#include <wtsapi32.h>
+#include <memory>
+#include <string>
+
+#include "base/base_paths.h"
+#include "base/bind.h"
+#include "base/command_line.h"
+#include "base/files/file_path.h"
+#include "base/location.h"
+#include "base/logging.h"
 #include "base/no_destructor.h"
 #include "base/notreached.h"
+#include "base/path_service.h"
+#include "base/process/launch.h"
+#include "base/sequence_checker.h"
+#include "base/task/task_traits.h"
+#include "base/task/thread_pool.h"
+#include "base/time/time.h"
+#include "base/win/scoped_handle.h"
+#include "remoting/host/switches.h"
 
 namespace remoting {
 
-UrlForwarderConfiguratorWin::UrlForwarderConfiguratorWin() = default;
+namespace {
 
-UrlForwarderConfiguratorWin::~UrlForwarderConfiguratorWin() = default;
+// If the user has already changed the default browser to the URL forwarder,
+// then the setup process will finish immediately without showing any UI, so we
+// delay reporting USER_INTERVENTION_REQUIRED so that the client doesn't pop up
+// a toast when it's unnecessary.
+constexpr base::TimeDelta kReportUserInterventionRequiredDelay =
+    base::TimeDelta::FromMilliseconds(500);
+
+base::win::ScopedHandle GetCurrentUserToken() {
+  HANDLE user_token = nullptr;
+  if (!WTSQueryUserToken(WTS_CURRENT_SESSION, &user_token)) {
+    PLOG(ERROR) << "Failed to get current user token";
+    return base::win::ScopedHandle();
+  }
+  return base::win::ScopedHandle(user_token);
+}
+
+// If |switch_name| is empty, the process will be launched with no extra
+// switches.
+bool LaunchConfiguratorProcess(const std::string& switch_name = std::string()) {
+  base::LaunchOptions launch_options;
+  auto current_user = GetCurrentUserToken();
+  if (!current_user.IsValid()) {
+    return false;
+  }
+  launch_options.as_user = current_user.Get();
+  // The remoting_desktop.exe binary (where this code runs) has extra manifest
+  // flags (uiAccess and requireAdministrator) that are undesirable for the
+  // url_forwarder_configurator child process, so remoting_host.exe is used
+  // instead.
+  base::FilePath path;
+  if (!base::PathService::Get(base::DIR_EXE, &path)) {
+    LOG(ERROR) << "Failed to get executable path.";
+    return false;
+  }
+  path = path.AppendASCII("remoting_host.exe");
+  base::CommandLine command(path);
+  command.AppendSwitchASCII(kProcessTypeSwitchName,
+                            kProcessTypeUrlForwarderConfigurator);
+  if (!switch_name.empty()) {
+    command.AppendSwitch(switch_name);
+  }
+  int exit_code = -1;
+  base::LaunchProcess(command, launch_options).WaitForExit(&exit_code);
+  return exit_code == 0;
+}
+
+}  // namespace
+
+UrlForwarderConfiguratorWin::UrlForwarderConfiguratorWin()
+    : io_task_runner_(base::ThreadPool::CreateSequencedTaskRunner(
+          {base::MayBlock(), base::WithBaseSyncPrimitives()})) {}
+
+UrlForwarderConfiguratorWin::~UrlForwarderConfiguratorWin() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+}
 
 void UrlForwarderConfiguratorWin::IsUrlForwarderSetUp(
     IsUrlForwarderSetUpCallback callback) {
-  NOTIMPLEMENTED();
-  std::move(callback).Run(true);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  io_task_runner_->PostTaskAndReplyWithResult(
+      FROM_HERE, base::BindOnce(&LaunchConfiguratorProcess, std::string()),
+      std::move(callback));
 }
 
 void UrlForwarderConfiguratorWin::SetUpUrlForwarder(
     const SetUpUrlForwarderCallback& callback) {
-  NOTIMPLEMENTED();
-  callback.Run(
-      protocol::UrlForwarderControl::SetUpUrlForwarderResponse::COMPLETE);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  if (set_up_url_forwarder_callback_) {
+    LOG(ERROR) << "Setup is already in progress.";
+    callback.Run(SetUpUrlForwarderResponse::FAILED);
+    return;
+  }
+
+  set_up_url_forwarder_callback_ = callback;
+  report_user_intervention_required_timer_.Start(
+      FROM_HERE, kReportUserInterventionRequiredDelay, this,
+      &UrlForwarderConfiguratorWin::OnReportUserInterventionRequired);
+  io_task_runner_->PostTaskAndReplyWithResult(
+      FROM_HERE,
+      base::BindOnce(&LaunchConfiguratorProcess, kSetUpUrlForwarderSwitchName),
+      base::BindOnce(&UrlForwarderConfiguratorWin::OnSetUpResponse,
+                     weak_factory_.GetWeakPtr()));
+}
+
+void UrlForwarderConfiguratorWin::OnSetUpResponse(bool success) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  report_user_intervention_required_timer_.AbandonAndStop();
+  set_up_url_forwarder_callback_.Run(success
+                                         ? SetUpUrlForwarderResponse::COMPLETE
+                                         : SetUpUrlForwarderResponse::FAILED);
+  set_up_url_forwarder_callback_.Reset();
+}
+
+void UrlForwarderConfiguratorWin::OnReportUserInterventionRequired() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  set_up_url_forwarder_callback_.Run(
+      SetUpUrlForwarderResponse::USER_INTERVENTION_REQUIRED);
 }
 
 // static
-UrlForwarderConfigurator* UrlForwarderConfigurator::GetInstance() {
-  static base::NoDestructor<UrlForwarderConfiguratorWin> instance;
-  return instance.get();
+std::unique_ptr<UrlForwarderConfigurator> UrlForwarderConfigurator::Create() {
+  return std::make_unique<UrlForwarderConfiguratorWin>();
 }
 
 }  // namespace remoting
diff --git a/remoting/host/url_forwarder_configurator_win.h b/remoting/host/url_forwarder_configurator_win.h
index 6192b59..dce3dab5 100644
--- a/remoting/host/url_forwarder_configurator_win.h
+++ b/remoting/host/url_forwarder_configurator_win.h
@@ -5,14 +5,22 @@
 #ifndef REMOTING_HOST_URL_FORWARDER_CONFIGURATOR_WIN_H_
 #define REMOTING_HOST_URL_FORWARDER_CONFIGURATOR_WIN_H_
 
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/sequence_checker.h"
+#include "base/sequenced_task_runner.h"
+#include "base/thread_annotations.h"
+#include "base/timer/timer.h"
 #include "remoting/host/url_forwarder_configurator.h"
 
 namespace remoting {
 
 // Windows implementation of UrlForwarderConfigurator.
+// Note that this class requires elevated privileges.
 class UrlForwarderConfiguratorWin final : public UrlForwarderConfigurator {
  public:
   UrlForwarderConfiguratorWin();
+  ~UrlForwarderConfiguratorWin() override;
 
   void IsUrlForwarderSetUp(IsUrlForwarderSetUpCallback callback) override;
   void SetUpUrlForwarder(const SetUpUrlForwarderCallback& callback) override;
@@ -22,7 +30,18 @@
       delete;
 
  private:
-  ~UrlForwarderConfiguratorWin() override;
+  void OnSetUpResponse(bool success);
+  void OnReportUserInterventionRequired();
+
+  SEQUENCE_CHECKER(sequence_checker_);
+
+  scoped_refptr<base::SequencedTaskRunner> io_task_runner_;
+  SetUpUrlForwarderCallback set_up_url_forwarder_callback_
+      GUARDED_BY_CONTEXT(sequence_checker_);
+  base::OneShotTimer report_user_intervention_required_timer_
+      GUARDED_BY_CONTEXT(sequence_checker_);
+
+  base::WeakPtrFactory<UrlForwarderConfiguratorWin> weak_factory_{this};
 };
 
 }  // namespace remoting
diff --git a/remoting/host/url_forwarder_control_message_handler.cc b/remoting/host/url_forwarder_control_message_handler.cc
index 0599c55..b806705 100644
--- a/remoting/host/url_forwarder_control_message_handler.cc
+++ b/remoting/host/url_forwarder_control_message_handler.cc
@@ -17,9 +17,11 @@
 constexpr char UrlForwarderControlMessageHandler::kDataChannelName[];
 
 UrlForwarderControlMessageHandler::UrlForwarderControlMessageHandler(
+    std::unique_ptr<UrlForwarderConfigurator> url_forwarder_configurator,
     const std::string& name,
     std::unique_ptr<protocol::MessagePipe> pipe)
-    : protocol::NamedMessagePipeHandler(name, std::move(pipe)) {
+    : protocol::NamedMessagePipeHandler(name, std::move(pipe)),
+      url_forwarder_configurator_(std::move(url_forwarder_configurator)) {
   DCHECK_EQ(kDataChannelName, name);
 }
 
@@ -35,14 +37,13 @@
   auto url_forwarder_config =
       protocol::ParseMessage<protocol::UrlForwarderControl>(message.get());
   if (url_forwarder_config->has_query_config_state_request()) {
-    UrlForwarderConfigurator::GetInstance()->IsUrlForwarderSetUp(base::BindOnce(
+    url_forwarder_configurator_->IsUrlForwarderSetUp(base::BindOnce(
         &UrlForwarderControlMessageHandler::OnIsUrlForwarderSetUpResult,
         weak_factory_.GetWeakPtr()));
   } else if (url_forwarder_config->has_set_up_url_forwarder_request()) {
-    UrlForwarderConfigurator::GetInstance()->SetUpUrlForwarder(
-        base::BindRepeating(
-            &UrlForwarderControlMessageHandler::OnSetUpUrlForwarderResult,
-            weak_factory_.GetWeakPtr()));
+    url_forwarder_configurator_->SetUpUrlForwarder(base::BindRepeating(
+        &UrlForwarderControlMessageHandler::OnSetUpUrlForwarderResult,
+        weak_factory_.GetWeakPtr()));
   } else {
     LOG(ERROR) << "Unrecognized UrlForwarderControl message.";
   }
diff --git a/remoting/host/url_forwarder_control_message_handler.h b/remoting/host/url_forwarder_control_message_handler.h
index a92eaa2..250a8dd2 100644
--- a/remoting/host/url_forwarder_control_message_handler.h
+++ b/remoting/host/url_forwarder_control_message_handler.h
@@ -7,11 +7,15 @@
 
 #include "remoting/protocol/named_message_pipe_handler.h"
 
+#include <memory>
+
 #include "base/memory/weak_ptr.h"
 #include "remoting/proto/url_forwarder_control.pb.h"
 
 namespace remoting {
 
+class UrlForwarderConfigurator;
+
 // Message handler for the url-forwarder-control data channel.
 class UrlForwarderControlMessageHandler final
     : public protocol::NamedMessagePipeHandler {
@@ -19,6 +23,7 @@
   static constexpr char kDataChannelName[] = "url-forwarder-control";
 
   UrlForwarderControlMessageHandler(
+      std::unique_ptr<UrlForwarderConfigurator> url_forwarder_configurator,
       const std::string& name,
       std::unique_ptr<protocol::MessagePipe> pipe);
   ~UrlForwarderControlMessageHandler() override;
@@ -38,6 +43,8 @@
   void OnSetUpUrlForwarderResult(
       protocol::UrlForwarderControl::SetUpUrlForwarderResponse::State state);
 
+  std::unique_ptr<UrlForwarderConfigurator> url_forwarder_configurator_;
+
   base::WeakPtrFactory<UrlForwarderControlMessageHandler> weak_factory_{this};
 };
 
diff --git a/remoting/proto/url_forwarder_control.proto b/remoting/proto/url_forwarder_control.proto
index c066c6e..2284208cb 100644
--- a/remoting/proto/url_forwarder_control.proto
+++ b/remoting/proto/url_forwarder_control.proto
@@ -41,7 +41,7 @@
       COMPLETE = 1;
 
       // The setup process has failed.
-      ERROR = 2;
+      FAILED = 2;
 
       // The setup process requires user intervention. The host will send
       // another SetUpUrlForwarderResponse once the setup process becomes
diff --git a/services/device/BUILD.gn b/services/device/BUILD.gn
index 3468be4..d1956023 100644
--- a/services/device/BUILD.gn
+++ b/services/device/BUILD.gn
@@ -356,7 +356,8 @@
   }
 
   # UsbContext is a libusb-specific object.
-  if (is_mac || is_win) {
+  # TODO(https://crbug.com/1096743) Remove these tests.
+  if (is_mac) {
     sources += [ "usb/usb_context_unittest.cc" ]
     deps += [ "//third_party/libusb" ]
   }
diff --git a/services/device/usb/BUILD.gn b/services/device/usb/BUILD.gn
index 348e922..bb40dc9 100644
--- a/services/device/usb/BUILD.gn
+++ b/services/device/usb/BUILD.gn
@@ -62,10 +62,14 @@
       "usb_service_android.cc",
       "usb_service_android.h",
     ]
+
+    deps += [ ":jni_headers" ]
   }
 
   if (is_win) {
     sources += [
+      "scoped_winusb_handle.cc",
+      "scoped_winusb_handle.h",
       "usb_device_handle_win.cc",
       "usb_device_handle_win.h",
       "usb_device_win.cc",
@@ -73,6 +77,13 @@
       "usb_service_win.cc",
       "usb_service_win.h",
     ]
+
+    libs = [
+      "setupapi.lib",
+      "winusb.lib",
+    ]
+
+    deps += [ "//third_party/re2" ]
   }
 
   if (is_mac) {
@@ -84,30 +95,9 @@
       "usb_service_mac.cc",
       "usb_service_mac.h",
     ]
-  }
 
-  if (is_linux || is_chromeos) {
-    sources += [
-      "usb_device_linux.cc",
-      "usb_device_linux.h",
-    ]
-  }
-
-  if (use_udev) {
-    if (is_linux || is_chromeos) {
-      sources += [
-        "usb_service_linux.cc",
-        "usb_service_linux.h",
-      ]
-    }
-    deps += [ "//device/udev_linux" ]
-  }
-
-  if (is_android) {
-    deps += [ ":jni_headers" ]
-  }
-
-  if (is_win || is_mac) {
+    # These sources and deps are required for libusb.
+    # TODO(https://crbug.com/1096743) Remove these sources.
     sources += [
       "scoped_libusb_device_handle.cc",
       "scoped_libusb_device_handle.h",
@@ -128,18 +118,21 @@
     deps += [ "//third_party/libusb" ]
   }
 
-  if (is_win) {
+  if (is_linux || is_chromeos) {
     sources += [
-      "scoped_winusb_handle.cc",
-      "scoped_winusb_handle.h",
+      "usb_device_linux.cc",
+      "usb_device_linux.h",
     ]
+  }
 
-    libs = [
-      "setupapi.lib",
-      "winusb.lib",
-    ]
-
-    deps += [ "//third_party/re2" ]
+  if (use_udev) {
+    if (is_linux || is_chromeos) {
+      sources += [
+        "usb_service_linux.cc",
+        "usb_service_linux.h",
+      ]
+    }
+    deps += [ "//device/udev_linux" ]
   }
 
   if (is_android || is_chromeos || is_linux) {
diff --git a/services/device/usb/usb_context_unittest.cc b/services/device/usb/usb_context_unittest.cc
index 6f1faee..0148827e 100644
--- a/services/device/usb/usb_context_unittest.cc
+++ b/services/device/usb/usb_context_unittest.cc
@@ -5,7 +5,6 @@
 #include "services/device/usb/usb_context.h"
 #include "base/macros.h"
 #include "base/threading/platform_thread.h"
-#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/libusb/src/libusb/libusb.h"
 
@@ -28,17 +27,7 @@
 
 }  // namespace
 
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-// Linux trybot does not support usb.
-#define MAYBE_GracefulShutdown DISABLED_GracefulShutdown
-#elif defined(OS_ANDROID)
-// Android build does not include usb support.
-#define MAYBE_GracefulShutdown DISABLED_GracefulShutdown
-#else
-#define MAYBE_GracefulShutdown GracefulShutdown
-#endif
-
-TEST_F(UsbContextTest, MAYBE_GracefulShutdown) {
+TEST_F(UsbContextTest, GracefulShutdown) {
   base::TimeTicks start = base::TimeTicks::Now();
   {
     PlatformUsbContext platform_context;
diff --git a/services/device/usb/usb_service.cc b/services/device/usb/usb_service.cc
index f3a8da62..7c23cce 100644
--- a/services/device/usb/usb_service.cc
+++ b/services/device/usb/usb_service.cc
@@ -23,14 +23,12 @@
 #include "services/device/usb/usb_service_android.h"
 #elif defined(USE_UDEV)
 #include "services/device/usb/usb_service_linux.h"
-#else
-#if defined(OS_MAC)
+#elif defined(OS_MAC)
+#include "services/device/usb/usb_service_impl.h"
 #include "services/device/usb/usb_service_mac.h"
 #elif defined(OS_WIN)
 #include "services/device/usb/usb_service_win.h"
 #endif
-#include "services/device/usb/usb_service_impl.h"
-#endif
 
 namespace device {
 
@@ -55,10 +53,7 @@
 #elif defined(USE_UDEV)
   return base::WrapUnique(new UsbServiceLinux());
 #elif defined(OS_WIN)
-  if (base::FeatureList::IsEnabled(kNewUsbBackend))
-    return base::WrapUnique(new UsbServiceWin());
-  else
-    return base::WrapUnique(new UsbServiceImpl());
+  return base::WrapUnique(new UsbServiceWin());
 #elif defined(OS_MAC)
   if (base::FeatureList::IsEnabled(kNewUsbBackend))
     return base::WrapUnique(new UsbServiceMac());
diff --git a/services/device/usb/usb_service_impl.cc b/services/device/usb/usb_service_impl.cc
index 0b38f32..74bfe41d 100644
--- a/services/device/usb/usb_service_impl.cc
+++ b/services/device/usb/usb_service_impl.cc
@@ -31,16 +31,6 @@
 #include "services/device/usb/webusb_descriptors.h"
 #include "third_party/libusb/src/libusb/libusb.h"
 
-#if defined(OS_WIN)
-#define INITGUID
-#include <devpkey.h>
-#include <setupapi.h>
-#include <usbiodef.h>
-
-#include "base/strings/string_util.h"
-#include "device/base/device_info_query_win.h"
-#endif  // OS_WIN
-
 namespace device {
 
 namespace {
@@ -48,42 +38,6 @@
 // Standard USB requests and descriptor types:
 const uint16_t kUsbVersion2_1 = 0x0210;
 
-#if defined(OS_WIN)
-
-bool IsWinUsbInterface(const std::wstring& device_path) {
-  DeviceInfoQueryWin device_info_query;
-  if (!device_info_query.device_info_list_valid()) {
-    USB_PLOG(ERROR) << "Failed to create a device information set";
-    return false;
-  }
-
-  // This will add the device so we can query driver info.
-  if (!device_info_query.AddDevice(device_path)) {
-    USB_PLOG(ERROR) << "Failed to get device interface data for "
-                    << device_path;
-    return false;
-  }
-
-  if (!device_info_query.GetDeviceInfo()) {
-    USB_PLOG(ERROR) << "Failed to get device info for " << device_path;
-    return false;
-  }
-
-  std::string buffer;
-  if (!device_info_query.GetDeviceStringProperty(DEVPKEY_Device_Service,
-                                                 &buffer)) {
-    USB_PLOG(ERROR) << "Failed to get device service property";
-    return false;
-  }
-
-  USB_LOG(DEBUG) << "Driver for " << device_path << " is " << buffer << ".";
-  if (base::StartsWith(buffer, "WinUSB", base::CompareCase::INSENSITIVE_ASCII))
-    return true;
-  return false;
-}
-
-#endif  // OS_WIN
-
 scoped_refptr<UsbContext> InitializeUsbContextBlocking() {
   PlatformUsbContext platform_context = nullptr;
   int rv = libusb_init(&platform_context);
@@ -97,21 +51,10 @@
 }
 
 absl::optional<std::vector<ScopedLibusbDeviceRef>> GetDeviceListBlocking(
-    const std::wstring& new_device_path,
     scoped_refptr<UsbContext> usb_context) {
   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
                                                 base::BlockingType::MAY_BLOCK);
 
-#if defined(OS_WIN)
-  if (!new_device_path.empty()) {
-    if (!IsWinUsbInterface(new_device_path)) {
-      // Wait to call libusb_get_device_list until libusb will be able to find
-      // a WinUSB interface for the device.
-      return absl::nullopt;
-    }
-  }
-#endif  // defined(OS_WIN)
-
   libusb_device** platform_devices = NULL;
   const ssize_t device_count =
       libusb_get_device_list(usb_context->context(), &platform_devices);
@@ -241,7 +184,7 @@
 
 UsbServiceImpl::~UsbServiceImpl() {
   NotifyWillDestroyUsbService();
-  if (hotplug_enabled_)
+  if (context_)
     libusb_hotplug_deregister_callback(context_->context(), hotplug_handle_);
 }
 
@@ -255,40 +198,14 @@
     return;
   }
 
-  if (hotplug_enabled_ && !enumeration_in_progress_) {
-    // The device list is updated live when hotplug events are supported.
-    UsbService::GetDevices(std::move(callback));
-  } else {
+  if (enumeration_in_progress_) {
     pending_enumeration_callbacks_.push_back(std::move(callback));
-    RefreshDevices();
+    return;
   }
+
+  UsbService::GetDevices(std::move(callback));
 }
 
-#if defined(OS_WIN)
-
-void UsbServiceImpl::OnDeviceAdded(const GUID& class_guid,
-                                   const std::wstring& device_path) {
-  // Only the root node of a composite USB device has the class GUID
-  // GUID_DEVINTERFACE_USB_DEVICE but we want to wait until WinUSB is loaded.
-  // This first pass filter will catch anything that's sitting on the USB bus
-  // (including devices on 3rd party USB controllers) to avoid the more
-  // expensive driver check that needs to be done on the FILE thread.
-  if (device_path.find(L"usb") != std::wstring::npos) {
-    pending_path_enumerations_.push(device_path);
-    RefreshDevices();
-  }
-}
-
-void UsbServiceImpl::OnDeviceRemoved(const GUID& class_guid,
-                                     const std::wstring& device_path) {
-  // The root USB device node is removed last.
-  if (class_guid == GUID_DEVINTERFACE_USB_DEVICE) {
-    RefreshDevices();
-  }
-}
-
-#endif  // OS_WIN
-
 void UsbServiceImpl::OnUsbContext(scoped_refptr<UsbContext> context) {
   if (!context) {
     usb_unavailable_ = true;
@@ -304,37 +221,27 @@
       static_cast<libusb_hotplug_flag>(0), LIBUSB_HOTPLUG_MATCH_ANY,
       LIBUSB_HOTPLUG_MATCH_ANY, LIBUSB_HOTPLUG_MATCH_ANY,
       &UsbServiceImpl::HotplugCallback, this, &hotplug_handle_);
-  if (rv == LIBUSB_SUCCESS)
-    hotplug_enabled_ = true;
+  if (rv != LIBUSB_SUCCESS) {
+    usb_unavailable_ = true;
+    context_.reset();
+    return;
+  }
 
   // This will call any enumeration callbacks queued while initializing.
   RefreshDevices();
-
-#if defined(OS_WIN)
-  DeviceMonitorWin* device_monitor = DeviceMonitorWin::GetForAllInterfaces();
-  if (device_monitor)
-    device_observation_.Observe(device_monitor);
-#endif  // OS_WIN
 }
 
 void UsbServiceImpl::RefreshDevices() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-  if (!context_ || enumeration_in_progress_)
-    return;
+  DCHECK(context_);
+  DCHECK(!enumeration_in_progress_);
 
   enumeration_in_progress_ = true;
   DCHECK(devices_being_enumerated_.empty());
 
-  std::wstring device_path;
-  if (!pending_path_enumerations_.empty()) {
-    device_path = pending_path_enumerations_.front();
-    pending_path_enumerations_.pop();
-  }
-
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, kBlockingTaskTraits,
-      base::BindOnce(&GetDeviceListBlocking, device_path, context_),
+      base::BindOnce(&GetDeviceListBlocking, context_),
       base::BindOnce(&UsbServiceImpl::OnDeviceList,
                      weak_factory_.GetWeakPtr()));
 }
@@ -415,10 +322,6 @@
     for (GetDevicesCallback& callback : callbacks)
       std::move(callback).Run(result);
   }
-
-  if (!pending_path_enumerations_.empty()) {
-    RefreshDevices();
-  }
 }
 
 void UsbServiceImpl::EnumerateDevice(ScopedLibusbDeviceRef platform_device,
diff --git a/services/device/usb/usb_service_impl.h b/services/device/usb/usb_service_impl.h
index 21edd890..fcb24e4 100644
--- a/services/device/usb/usb_service_impl.h
+++ b/services/device/usb/usb_service_impl.h
@@ -24,11 +24,6 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/libusb/src/libusb/libusb.h"
 
-#if defined(OS_WIN)
-#include "base/scoped_observation.h"
-#include "device/base/device_monitor_win.h"
-#endif  // OS_WIN
-
 struct libusb_context;
 
 namespace device {
@@ -37,11 +32,7 @@
 
 class UsbDeviceImpl;
 
-class UsbServiceImpl final :
-#if defined(OS_WIN)
-    public DeviceMonitorWin::Observer,
-#endif  // OS_WIN
-    public UsbService {
+class UsbServiceImpl final : public UsbService {
  public:
   UsbServiceImpl();
   ~UsbServiceImpl() override;
@@ -50,14 +41,6 @@
   // device::UsbService implementation
   void GetDevices(GetDevicesCallback callback) override;
 
-#if defined(OS_WIN)
-  // device::DeviceMonitorWin::Observer implementation
-  void OnDeviceAdded(const GUID& class_guid,
-                     const std::wstring& device_path) override;
-  void OnDeviceRemoved(const GUID& class_guid,
-                       const std::wstring& device_path) override;
-#endif  // OS_WIN
-
   void OnUsbContext(scoped_refptr<UsbContext> context);
 
   // Enumerate USB devices from OS and update devices_ map.
@@ -94,14 +77,11 @@
 
   // When available the device list will be updated when new devices are
   // connected instead of only when a full enumeration is requested.
-  // TODO(reillyg): Support this on all platforms. crbug.com/411715
-  bool hotplug_enabled_ = false;
   libusb_hotplug_callback_handle hotplug_handle_;
 
   // Enumeration callbacks are queued until an enumeration completes.
   bool enumeration_ready_ = false;
   bool enumeration_in_progress_ = false;
-  base::queue<std::wstring> pending_path_enumerations_;
   std::vector<GetDevicesCallback> pending_enumeration_callbacks_;
 
   // The map from libusb_device to UsbDeviceImpl. The key is a weak pointer to
@@ -119,11 +99,6 @@
   // UsbDeviceImpl.
   std::set<libusb_device*> devices_being_enumerated_;
 
-#if defined(OS_WIN)
-  base::ScopedObservation<DeviceMonitorWin, DeviceMonitorWin::Observer>
-      device_observation_{this};
-#endif  // OS_WIN
-
   // This WeakPtr is used to safely post hotplug events back to the thread this
   // object lives on.
   base::WeakPtr<UsbServiceImpl> weak_self_;
diff --git a/services/device/usb/usb_service_unittest.cc b/services/device/usb/usb_service_unittest.cc
index 971ec7d4..ada5b04 100644
--- a/services/device/usb/usb_service_unittest.cc
+++ b/services/device/usb/usb_service_unittest.cc
@@ -54,7 +54,7 @@
   }
 }
 
-#if defined(OS_WIN)
+#if defined(OS_MAC)
 TEST_F(UsbServiceTest, GetDevicesNewBackend) {
   base::test::ScopedFeatureList features;
   features.InitAndEnableFeature(device::kNewUsbBackend);
@@ -66,7 +66,7 @@
     loop.Run();
   }
 }
-#endif  // defined(OS_WIN)
+#endif  // defined(OS_MAC)
 
 TEST_F(UsbServiceTest, ClaimGadget) {
   if (!UsbTestGadget::IsTestEnabled() || !usb_service_)
diff --git a/services/device/usb/usb_service_win.cc b/services/device/usb/usb_service_win.cc
index 3b68c55..554c351 100644
--- a/services/device/usb/usb_service_win.cc
+++ b/services/device/usb/usb_service_win.cc
@@ -4,14 +4,16 @@
 
 #include "services/device/usb/usb_service_win.h"
 
+// windows.h must be included first.
+#include <windows.h>
+
+#define INITGUID
+
+#include <devpkey.h>
 #include <objbase.h>
 #include <setupapi.h>
 #include <stdint.h>
 #include <usbiodef.h>
-#include "base/strings/string_piece_forward.h"
-
-#define INITGUID
-#include <devpkey.h>
 
 #include "base/bind.h"
 #include "base/containers/contains.h"
@@ -21,6 +23,7 @@
 #include "base/scoped_generic.h"
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_piece_forward.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/sys_string_conversions.h"
diff --git a/services/network/public/cpp/cookie_manager_mojom_traits.cc b/services/network/public/cpp/cookie_manager_mojom_traits.cc
index 75cba47f..a360c568 100644
--- a/services/network/public/cpp/cookie_manager_mojom_traits.cc
+++ b/services/network/public/cpp/cookie_manager_mojom_traits.cc
@@ -463,6 +463,17 @@
   return true;
 }
 
+bool StructTraits<network::mojom::CookiePartitionKeyDataView,
+                  net::CookiePartitionKey>::
+    Read(network::mojom::CookiePartitionKeyDataView partition_key,
+         net::CookiePartitionKey* out) {
+  net::SchemefulSite site;
+  if (!partition_key.ReadSite(&site))
+    return false;
+  *out = net::CookiePartitionKey(site);
+  return true;
+}
+
 bool StructTraits<
     network::mojom::CanonicalCookieDataView,
     net::CanonicalCookie>::Read(network::mojom::CanonicalCookieDataView cookie,
@@ -503,7 +514,7 @@
   if (!cookie.ReadPriority(&priority))
     return false;
 
-  absl::optional<net::SchemefulSite> partition_key;
+  absl::optional<net::CookiePartitionKey> partition_key;
   if (!cookie.ReadPartitionKey(&partition_key))
     return false;
 
diff --git a/services/network/public/cpp/cookie_manager_mojom_traits.h b/services/network/public/cpp/cookie_manager_mojom_traits.h
index 1cffb4c..4b2914f 100644
--- a/services/network/public/cpp/cookie_manager_mojom_traits.h
+++ b/services/network/public/cpp/cookie_manager_mojom_traits.h
@@ -12,6 +12,7 @@
 #include "net/cookies/cookie_constants.h"
 #include "net/cookies/cookie_inclusion_status.h"
 #include "net/cookies/cookie_options.h"
+#include "net/cookies/cookie_partition_key.h"
 #include "net/cookies/same_party_context.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -176,6 +177,16 @@
 };
 
 template <>
+struct StructTraits<network::mojom::CookiePartitionKeyDataView,
+                    net::CookiePartitionKey> {
+  static const net::SchemefulSite& site(const net::CookiePartitionKey& pk) {
+    return pk.site_;
+  }
+  static bool Read(network::mojom::CookiePartitionKeyDataView partition_key,
+                   net::CookiePartitionKey* out);
+};
+
+template <>
 struct StructTraits<network::mojom::CanonicalCookieDataView,
                     net::CanonicalCookie> {
   static const std::string& name(const net::CanonicalCookie& c) {
@@ -213,7 +224,7 @@
   static bool same_party(const net::CanonicalCookie& c) {
     return c.IsSameParty();
   }
-  static absl::optional<net::SchemefulSite> partition_key(
+  static absl::optional<net::CookiePartitionKey> partition_key(
       const net::CanonicalCookie& c) {
     return c.PartitionKey();
   }
diff --git a/services/network/public/cpp/cookie_manager_mojom_traits_unittest.cc b/services/network/public/cpp/cookie_manager_mojom_traits_unittest.cc
index d07336b..1d90d68 100644
--- a/services/network/public/cpp/cookie_manager_mojom_traits_unittest.cc
+++ b/services/network/public/cpp/cookie_manager_mojom_traits_unittest.cc
@@ -382,8 +382,8 @@
       "__Host-A", "B", "x.y", "/", base::Time(), base::Time(), base::Time(),
       true, false, net::CookieSameSite::NO_RESTRICTION,
       net::COOKIE_PRIORITY_LOW, false,
-      absl::make_optional(
-          net::SchemefulSite::Deserialize("https://toplevelsite.com")),
+      absl::make_optional(net::CookiePartitionKey::FromURLForTesting(
+          GURL("https://toplevelsite.com"))),
       net::CookieSourceScheme::kSecure, 8433);
 
   net::CanonicalCookie copied;
diff --git a/services/network/public/mojom/cookie_manager.mojom b/services/network/public/mojom/cookie_manager.mojom
index bd68604..6c7a74b 100644
--- a/services/network/public/mojom/cookie_manager.mojom
+++ b/services/network/public/mojom/cookie_manager.mojom
@@ -149,6 +149,10 @@
   bool is_in_nontrivial_first_party_set = false;
 };
 
+struct CookiePartitionKey {
+  SchemefulSite site;
+};
+
 // See net/cookies/canonical_cookie.{h,cc} for documentation.
 // Keep defaults here in sync with those files.
 struct CanonicalCookie {
@@ -165,7 +169,7 @@
   CookiePriority priority = MEDIUM;
   CookieSourceScheme source_scheme = kUnset;
   bool same_party = false;
-  SchemefulSite? partition_key;
+  CookiePartitionKey? partition_key;
   // -1 because of url::PORT_UNSPECIFIED
   // url/third_party/mozilla/url_parse.h
   int32 source_port = -1;
diff --git a/storage/browser/file_system/file_system_context.cc b/storage/browser/file_system/file_system_context.cc
index 0ee2e624..c4f9208 100644
--- a/storage/browser/file_system/file_system_context.cc
+++ b/storage/browser/file_system/file_system_context.cc
@@ -99,7 +99,6 @@
 
     case kFileSystemTypeLocalForPlatformApp:
     case kFileSystemTypeLocal:
-    case kFileSystemTypeCloudDevice:
     case kFileSystemTypeProvided:
     case kFileSystemTypeDeviceMediaAsFileStorage:
     case kFileSystemTypeDriveFs:
diff --git a/storage/common/file_system/file_system_types.h b/storage/common/file_system/file_system_types.h
index c171e0f..0677b34c 100644
--- a/storage/common/file_system/file_system_types.h
+++ b/storage/common/file_system/file_system_types.h
@@ -103,9 +103,6 @@
   // given identifier in each origin.
   kFileSystemTypePluginPrivate,
 
-  // A filesystem that is mounted via the Privet storage protocol.
-  kFileSystemTypeCloudDevice,
-
   // A filesystem that is mounted via the FileSystemProvider API.
   kFileSystemTypeProvided,
 
diff --git a/storage/common/file_system/file_system_util.cc b/storage/common/file_system/file_system_util.cc
index be9fcef..dfb3ca95 100644
--- a/storage/common/file_system/file_system_util.cc
+++ b/storage/common/file_system/file_system_util.cc
@@ -284,8 +284,6 @@
       return "TransientFile";
     case kFileSystemTypePluginPrivate:
       return "PluginPrivate";
-    case kFileSystemTypeCloudDevice:
-      return "CloudDevice";
     case kFileSystemTypeProvided:
       return "Provided";
     case kFileSystemTypeDeviceMediaAsFileStorage:
diff --git a/testing/android/native_test/java/AndroidManifest.xml.jinja2 b/testing/android/native_test/java/AndroidManifest.xml.jinja2
index 2ffecbb3..5cd0612 100644
--- a/testing/android/native_test/java/AndroidManifest.xml.jinja2
+++ b/testing/android/native_test/java/AndroidManifest.xml.jinja2
@@ -28,9 +28,16 @@
          breaks test listing. See
          https://developer.android.com/training/data-storage#scoped-storage and
          https://developer.android.com/training/data-storage/compatibility. -->
+    {% if allow_cleartext_traffic == 'true' %}
+    <application android:label="NativeTests"
+            android:usesCleartextTraffic="true"
+            android:requestLegacyExternalStorage="true"
+            android:name="org.chromium.native_test.NativeTestApplication">
+    {% else %}
     <application android:label="NativeTests"
             android:requestLegacyExternalStorage="true"
             android:name="org.chromium.native_test.NativeTestApplication">
+    {% endif %}
         <uses-library android:name="android.test.runner"/>
         {% if use_native_activity == 'true' %}
         <activity android:name=".NativeUnitTestNativeActivity"
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json
index abab8bc..20ceb09 100644
--- a/testing/buildbot/chrome.json
+++ b/testing/buildbot/chrome.json
@@ -20,7 +20,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -59,6 +60,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -103,6 +108,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -136,6 +145,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -173,6 +186,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -206,6 +223,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -240,7 +261,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -277,6 +299,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -312,6 +338,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -346,6 +376,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -379,6 +413,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -412,6 +450,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -445,6 +487,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -478,6 +524,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -511,6 +561,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -547,6 +601,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -580,6 +638,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -613,6 +675,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -649,6 +715,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
@@ -698,6 +768,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -734,6 +808,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -767,6 +845,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -800,6 +882,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -837,6 +923,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -870,6 +960,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -903,6 +997,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -936,6 +1034,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -985,6 +1087,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -1030,7 +1136,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1076,7 +1183,8 @@
         },
         "name": "telemetry_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1122,6 +1230,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -1145,7 +1257,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1173,6 +1286,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -1207,7 +1324,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1240,7 +1358,8 @@
         },
         "name": "telemetry_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1275,6 +1394,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -1298,7 +1421,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1326,6 +1450,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -1360,7 +1488,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1402,7 +1531,8 @@
         },
         "name": "lacros_all_tast_tests_eve",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1431,7 +1561,8 @@
         },
         "name": "chrome_sizes",
         "resultdb": {
-          "enable": false
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index e769bdc..63a5db9 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -31416,6 +31416,77 @@
     "gtest_tests": [
       {
         "args": [
+          "--test-launcher-batch-limit=1",
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "android_sync_integration_tests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-4|e2-standard-4",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android23",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_23_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android23"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "android_sync_integration_tests",
+        "test_id_prefix": "ninja://chrome/test:android_sync_integration_tests/"
+      },
+      {
+        "args": [
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
           "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
@@ -31491,6 +31562,77 @@
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
           "--avd-config=../../tools/android/avd/proto/generic_android23.textpb",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.cc_unittests.filter"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "cc_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-4|e2-standard-4",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android23",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_23_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android23"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "cc_unittests",
+        "test_id_prefix": "ninja://cc:cc_unittests/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb",
           "--git-revision=${got_revision}"
         ],
         "merge": {
@@ -31862,6 +32004,287 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
+            "device_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-4|e2-standard-4",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android23",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_23_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android23"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "device_unittests",
+        "test_id_prefix": "ninja://device:device_unittests/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "display_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-4|e2-standard-4",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android23",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_23_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android23"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "display_unittests",
+        "test_id_prefix": "ninja://ui/display:display_unittests/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "gfx_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-4|e2-standard-4",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android23",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_23_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android23"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "gfx_unittests",
+        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.sandbox_linux_unittests.filter"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "sandbox_linux_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-4|e2-standard-4",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android23",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_23_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android23"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "sandbox_linux_unittests",
+        "test_id_prefix": "ninja://sandbox/linux:sandbox_linux_unittests/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
             "unit_tests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -31921,6 +32344,77 @@
         },
         "test": "unit_tests",
         "test_id_prefix": "ninja://chrome/test:unit_tests/"
+      },
+      {
+        "args": [
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.viz_unittests.filter"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "viz_unittests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-4|e2-standard-4",
+              "os": "Ubuntu-16.04|Ubuntu-18.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android23",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_23_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "optional_dimensions": {
+            "60": [
+              {
+                "caches": "avd_generic_android23"
+              }
+            ]
+          },
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "viz_unittests",
+        "test_id_prefix": "ninja://components/viz:viz_unittests/"
       }
     ],
     "isolated_scripts": [
@@ -32124,77 +32618,6 @@
       },
       {
         "args": [
-          "--test-launcher-batch-limit=1",
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "android_sync_integration_tests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "n1-standard-4|e2-standard-4",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android23",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_23_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android23"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "android_sync_integration_tests",
-        "test_id_prefix": "ninja://chrome/test:android_sync_integration_tests/"
-      },
-      {
-        "args": [
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
           "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
@@ -33024,77 +33447,6 @@
         "args": [
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.cc_unittests.filter"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "cc_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "n1-standard-4|e2-standard-4",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android23",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_23_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android23"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "cc_unittests",
-        "test_id_prefix": "ninja://cc:cc_unittests/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
           "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
         ],
         "merge": {
@@ -33598,146 +33950,6 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "device_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "n1-standard-4|e2-standard-4",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android23",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_23_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android23"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "device_unittests",
-        "test_id_prefix": "ninja://device:device_unittests/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "display_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "n1-standard-4|e2-standard-4",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android23",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_23_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android23"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "display_unittests",
-        "test_id_prefix": "ninja://ui/display:display_unittests/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
             "events_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -33878,76 +34090,6 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "gfx_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "n1-standard-4|e2-standard-4",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android23",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_23_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android23"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "gfx_unittests",
-        "test_id_prefix": "ninja://ui/gfx:gfx_unittests/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
             "gin_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -35067,77 +35209,6 @@
         "args": [
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.sandbox_linux_unittests.filter"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "sandbox_linux_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "n1-standard-4|e2-standard-4",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android23",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_23_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android23"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "sandbox_linux_unittests",
-        "test_id_prefix": "ninja://sandbox/linux:sandbox_linux_unittests/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
           "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
         ],
         "merge": {
@@ -35768,77 +35839,6 @@
         "args": [
           "--gs-results-bucket=chromium-result-details",
           "--recover-devices",
-          "--avd-config=../../tools/android/avd/proto/generic_android23.textpb",
-          "--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.viz_unittests.filter"
-        ],
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
-            "viz_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "resultdb": {
-          "enable": true,
-          "has_native_resultdb_integration": true
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "cpu": "x86-64",
-              "device_os": null,
-              "device_type": null,
-              "machine_type": "n1-standard-4|e2-standard-4",
-              "os": "Ubuntu-16.04|Ubuntu-18.04",
-              "pool": "chromium.tests.avd"
-            }
-          ],
-          "named_caches": [
-            {
-              "name": "avd_generic_android23",
-              "path": ".android"
-            },
-            {
-              "name": "system_images_android_23_google_apis_x86",
-              "path": ".emulator_sdk"
-            }
-          ],
-          "optional_dimensions": {
-            "60": [
-              {
-                "caches": "avd_generic_android23"
-              }
-            ]
-          },
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ],
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test": "viz_unittests",
-        "test_id_prefix": "ninja://components/viz:viz_unittests/"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices",
           "--avd-config=../../tools/android/avd/proto/generic_android23.textpb"
         ],
         "merge": {
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index f6ecf54..d2fd6e9 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -67,6 +67,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -100,6 +104,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -137,6 +145,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -170,6 +182,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -204,7 +220,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -241,6 +258,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -276,6 +297,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -310,6 +335,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -343,6 +372,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -376,6 +409,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -409,6 +446,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -442,6 +483,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -475,6 +520,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -511,6 +560,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -544,6 +597,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -577,6 +634,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -613,6 +674,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
@@ -662,6 +727,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -695,6 +764,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -728,6 +801,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -761,6 +838,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -798,6 +879,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -831,6 +916,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -864,6 +953,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -897,6 +990,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -946,6 +1043,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -991,7 +1092,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1037,7 +1139,8 @@
         },
         "name": "telemetry_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1145,6 +1248,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -1168,7 +1275,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1204,7 +1312,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 90b8b169..3fb63ae952 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -18243,6 +18243,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18276,6 +18280,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18313,6 +18321,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18346,6 +18358,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18380,7 +18396,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -18417,6 +18434,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18452,6 +18473,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18486,6 +18511,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18519,6 +18548,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18552,6 +18585,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18585,6 +18622,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18618,6 +18659,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18651,6 +18696,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18687,6 +18736,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18720,6 +18773,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18753,6 +18810,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18789,6 +18850,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
@@ -18838,6 +18903,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18871,6 +18940,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18904,6 +18977,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18937,6 +19014,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -18974,6 +19055,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19007,6 +19092,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19040,6 +19129,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19073,6 +19166,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19122,6 +19219,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19167,7 +19268,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -19213,7 +19315,8 @@
         },
         "name": "telemetry_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -19316,6 +19419,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19349,6 +19456,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19386,6 +19497,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19419,6 +19534,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19453,7 +19572,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -19490,6 +19610,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19525,6 +19649,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19559,6 +19687,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19592,6 +19724,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19625,6 +19761,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19658,6 +19798,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19691,6 +19835,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19724,6 +19872,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19760,6 +19912,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19793,6 +19949,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19826,6 +19986,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19862,6 +20026,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
@@ -19911,6 +20079,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19944,6 +20116,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -19977,6 +20153,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20010,6 +20190,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20047,6 +20231,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20080,6 +20268,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20113,6 +20305,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20146,6 +20342,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20195,6 +20395,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20240,7 +20444,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -20286,7 +20491,8 @@
         },
         "name": "telemetry_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -20384,6 +20590,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20417,6 +20627,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20454,6 +20668,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20487,6 +20705,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20521,7 +20743,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -20558,6 +20781,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20593,6 +20820,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20627,6 +20858,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20660,6 +20895,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20693,6 +20932,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20726,6 +20969,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20759,6 +21006,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20792,6 +21043,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20828,6 +21083,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20861,6 +21120,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20894,6 +21157,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -20930,6 +21197,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
@@ -20979,6 +21250,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21012,6 +21287,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21045,6 +21324,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21078,6 +21361,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21115,6 +21402,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21148,6 +21439,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21181,6 +21476,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21214,6 +21513,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21263,6 +21566,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -21308,7 +21615,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -21354,7 +21662,8 @@
         },
         "name": "telemetry_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json
index 06e0508..3b004b8 100644
--- a/testing/buildbot/internal.chromeos.fyi.json
+++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -12,7 +12,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -37,6 +38,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -67,6 +72,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -100,6 +109,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -137,6 +150,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -170,6 +187,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -204,7 +225,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -241,6 +263,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -276,6 +302,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -310,6 +340,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -343,6 +377,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -376,6 +414,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -409,6 +451,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -442,6 +488,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -475,6 +525,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -511,6 +565,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -544,6 +602,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -577,6 +639,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -613,6 +679,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "cipd_packages": [
@@ -662,6 +732,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -698,6 +772,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -731,6 +809,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -764,6 +846,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -801,6 +887,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -834,6 +924,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -867,6 +961,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -900,6 +998,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -949,6 +1051,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -994,7 +1100,8 @@
         },
         "name": "telemetry_perf_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1040,7 +1147,8 @@
         },
         "name": "telemetry_unittests",
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1086,6 +1194,10 @@
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -1109,7 +1221,8 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "resultdb": {
-          "enable": true
+          "enable": true,
+          "has_native_resultdb_integration": true
         },
         "swarming": {
           "can_use_on_swarming_builders": true,
@@ -1137,6 +1250,10 @@
         "merge": {
           "script": "//tools/perf/process_perf_results.py"
         },
+        "resultdb": {
+          "enable": true,
+          "has_native_resultdb_integration": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index 16891b4..1ca1f86 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -61,9 +61,11 @@
   },
   'android_sync_integration_tests': {
    'remove_from': [
-     # Remove from CQ bots due to capacity.
-     'android-marshmallow-arm64-rel',
-     'android-lollipop-arm-rel',
+      # Remove from CQ bots due to capacity.
+      'android-marshmallow-arm64-rel',
+      'android-lollipop-arm-rel',
+
+      'android-marshmallow-x86-rel-non-cq', # runs on MM-x86-rel already
    ],
   },
   'android_webview_unittests': {
@@ -768,7 +770,7 @@
           '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_11.cc_unittests.filter',
         ],
       },
-      'android-marshmallow-x86-rel-non-cq': {
+      'android-marshmallow-x86-rel': {
         # https://crbug.com/1039860
         'args': [
           '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.cc_unittests.filter',
@@ -2491,7 +2493,7 @@
           '--shard-timeout=300',
         ],
       },
-      'android-marshmallow-x86-rel-non-cq': {
+      'android-marshmallow-x86-rel': {
         'args': [
           '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.sandbox_linux_unittests.filter',
         ]
@@ -2977,7 +2979,7 @@
           '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_11.viz_unittests.filter',
         ],
       },
-      'android-marshmallow-x86-rel-non-cq': {
+      'android-marshmallow-x86-rel': {
         'args': [
           '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator.viz_unittests.filter',
         ],
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 9e89c110..faefa7d 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -153,11 +153,11 @@
     # MM emulator CQ builder currently has limited capacity so some composition
     # test suites cannot be fullly enabled at once.
     'android_marshmallow_emulator_limited_capacity_gtests': {
-      # Tests from chromium_gtests_for_devices_with_graphical_output
-      'unit_tests': {
-        'android_swarming': {
-          'shards': 2,
-        },
+      # Tests from android_specific_chromium_gtests
+      'android_sync_integration_tests': {
+        'args': [
+          '--test-launcher-batch-limit=1',
+        ],
       },
 
       # Tests from chromium_gtests
@@ -5723,7 +5723,7 @@
 
     # List gtests that run on android-marshmallow-x86-rel builder.
     # Test suites will be gradually moved from
-    # android_marshmallow_wpr_gtests
+    # android_marshmallow_emulator_non_cq_gtests
     # to this one, when there are more GCE capacity.
     'android_marshmallow_emulator_gtests': [
       'android_emulator_specific_chrome_public_tests',
@@ -5736,8 +5736,8 @@
       #'android_specific_chromium_gtests',  # Already includes gl_gtests.
       'android_wpr_record_replay_tests',
       #'chromium_gtests',
-      #'chromium_gtests_for_devices_with_graphical_output',
-      #'linux_flavor_specific_chromium_gtests',
+      'chromium_gtests_for_devices_with_graphical_output',
+      'linux_flavor_specific_chromium_gtests',
       #'weblayer_android_gtests',
       #'weblayer_gtests',
     ],
@@ -5745,14 +5745,13 @@
     # Note that tests here are gradually moved to
     # android_marshmallow_emulator_gtests (crbug.com/1127110)
     #
-    # The diff between android_lollipop_marshmallow_gtests and (
-    # android_marshmallow_wpr_gtests + android_marshmallow_emulator_gtests)
+    # The diff between android_lollipop_marshmallow_gtests and
+    # (android_marshmallow_emulator_non_cq_gtests +
+    # android_marshmallow_emulator_gtests)
     # is android_wpr_record_replay_tests
-    'android_marshmallow_wpr_gtests': [
+    'android_marshmallow_emulator_non_cq_gtests': [
       'android_specific_chromium_gtests',  # Already includes gl_gtests.
       'chromium_gtests',
-      'chromium_gtests_for_devices_with_graphical_output',
-      'linux_flavor_specific_chromium_gtests',
       'weblayer_android_gtests',
       'weblayer_gtests',
     ],
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index b3caf64..d2495c4 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -27,6 +27,7 @@
         },
         'mixins': [
           'chromeos-betty',
+          'has_native_resultdb_integration',
         ],
       },
       'chromeos-betty-pi-arc-chrome': {
@@ -35,6 +36,7 @@
         ],
         'mixins': [
           'chromeos-betty',
+          'has_native_resultdb_integration',
         ],
         'test_suites': {
           'gtest_tests': 'chromeos_vm_gtests',
@@ -45,6 +47,9 @@
         'additional_compile_targets': [
           'chromiumos_preflight',
         ],
+        'mixins': [
+          'has_native_resultdb_integration',
+        ],
         'test_suites': {
           'gtest_tests': 'chromeos_device_gtests',
           'isolated_scripts': 'chromeos_remote_device_isolated_tests',
@@ -64,6 +69,9 @@
         'additional_compile_targets': [
           'chromiumos_preflight',
         ],
+        'mixins': [
+          'has_native_resultdb_integration',
+        ],
         'test_suites': {
           'gtest_tests': 'chromeos_device_gtests',
           'isolated_scripts': 'chromeos_remote_device_isolated_tests',
@@ -89,6 +97,7 @@
         ],
         'mixins': [
           'chrome-swarming-pool',
+          'has_native_resultdb_integration',
         ],
         'test_suites': {
           'gtest_tests': 'lacros_all_tast_tests_eve',
@@ -818,7 +827,7 @@
         ],
         'os_type': 'android',
         'test_suites': {
-          'gtest_tests': 'android_marshmallow_wpr_gtests',
+          'gtest_tests': 'android_marshmallow_emulator_non_cq_gtests',
           'isolated_scripts': 'marshmallow_nougat_pie_isolated_scripts_with_proguard',
         }
       },
@@ -1382,6 +1391,7 @@
         'browser_config': 'cros-chrome',
         'mixins': [
           'chromeos-amd64-generic',
+          'has_native_resultdb_integration',
         ],
         'os_type': 'chromeos',
         'test_suites': {
@@ -1406,6 +1416,7 @@
         ],
         'mixins': [
           'chromeos-kevin',
+          'has_native_resultdb_integration',
         ],
         'test_suites': {
           'gtest_tests': 'chromeos_device_gtests',
@@ -1431,6 +1442,9 @@
         'additional_compile_targets': [
           'chrome',
         ],
+        'mixins': [
+          'has_native_resultdb_integration',
+        ],
         'os_type': 'chromeos'
       },
       'linux-ash-chromium-generator-rel': {
@@ -2750,6 +2764,7 @@
         'browser_config': 'cros-chrome',
         'mixins': [
           'chromeos-amd64-generic',
+          'has_native_resultdb_integration',
         ],
         'os_type': 'chromeos',
         'test_suites': {
@@ -2776,6 +2791,7 @@
         'browser_config': 'cros-chrome',
         'mixins': [
           'chromeos-amd64-generic',
+          'has_native_resultdb_integration',
         ],
         'os_type': 'chromeos',
         'test_suites': {
@@ -2791,6 +2807,7 @@
         'browser_config': 'cros-chrome',
         'mixins': [
           'chromeos-amd64-generic',
+          'has_native_resultdb_integration',
         ],
         'os_type': 'chromeos',
         'test_suites': {
@@ -6471,6 +6488,9 @@
         'additional_compile_targets': [
           'chromiumos_preflight',
         ],
+        'mixins': [
+          'has_native_resultdb_integration',
+        ],
         'test_suites': {
           'gtest_tests': 'chromeos_browser_integration_tests',
         },
@@ -6502,6 +6522,7 @@
         ],
         'mixins': [
           'chromeos-betty',
+          'has_native_resultdb_integration',
         ],
         'test_suites': {
           'gtest_tests': 'chromeos_vm_gtests',
@@ -6512,6 +6533,9 @@
         'additional_compile_targets': [
           'chromiumos_preflight',
         ],
+        'mixins': [
+          'has_native_resultdb_integration',
+        ],
         'test_suites': {
           'gtest_tests': 'chromeos_device_gtests',
         },
diff --git a/testing/test.gni b/testing/test.gni
index 9e45c64..1bcfe83 100644
--- a/testing/test.gni
+++ b/testing/test.gni
@@ -52,6 +52,8 @@
 #   is_xctest: (iOS, optional) whether to build the executable as XCTest.
 #      Similar to the GN arg 'enable_run_ios_unittests_with_xctest' but
 #      for build targets.
+#   allow_cleartext_traffic: (Android, optional) whether to allow cleartext
+#      network requests during the test.
 template("test") {
   # Ensures the rts file exists and if not, creates a dummy file
   if (use_rts) {
@@ -68,6 +70,11 @@
     assert(!defined(invoker.is_xctest) || !invoker.is_xctest,
            "is_xctest can be set only for iOS builds")
   }
+  if (!is_android) {
+    assert(!defined(invoker.allow_cleartext_traffic),
+           "allow_cleartext_traffic can be set only for Android tests")
+  }
+
   if (is_android) {
     assert(!defined(invoker.use_xvfb) || !invoker.use_xvfb)
 
@@ -168,6 +175,7 @@
       _library_target = "${target_name}__library"
       _apk_target = "${target_name}__apk"
       _apk_specific_vars = [
+        "allow_cleartext_traffic",
         "android_manifest",
         "android_manifest_dep",
         "android_manifest_template",
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom
index 22e9591..4d73405 100644
--- a/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -2626,8 +2626,6 @@
   kRubyTextWithNonDefaultTextAlign = 3313,
   kHTMLMetaElementReferrerPolicyOutsideHead = 3314,
   kHTMLMetaElementReferrerPolicyMultipleTokens = 3315,
-  kDynamicImportModuleScriptRelativeClassicSameOrigin = 3318,
-  kDynamicImportModuleScriptRelativeClassicCrossOrigin = 3319,
   kV8WasmBulkMemory = 3320,
   kV8WasmRefTypes = 3321,
   kV8WasmMultiValue = 3322,
diff --git a/third_party/blink/renderer/bindings/core/v8/module_record.cc b/third_party/blink/renderer/bindings/core/v8/module_record.cc
index 30ed787..f776fc4 100644
--- a/third_party/blink/renderer/bindings/core/v8/module_record.cc
+++ b/third_party/blink/renderer/bindings/core/v8/module_record.cc
@@ -76,8 +76,7 @@
 
   if (!V8ScriptRunner::CompileModule(
            isolate, params, text_position, compile_options, no_cache_reason,
-           ReferrerScriptInfo(params.BaseURL(), options,
-                              ReferrerScriptInfo::BaseUrlSource::kOther))
+           ReferrerScriptInfo(params.BaseURL(), options))
            .ToLocal(&module)) {
     DCHECK(try_catch.HasCaught());
     exception_state.RethrowV8Exception(try_catch.Exception());
diff --git a/third_party/blink/renderer/bindings/core/v8/referrer_script_info.cc b/third_party/blink/renderer/bindings/core/v8/referrer_script_info.cc
index 4a3b3807..0dce491 100644
--- a/third_party/blink/renderer/bindings/core/v8/referrer_script_info.cc
+++ b/third_party/blink/renderer/bindings/core/v8/referrer_script_info.cc
@@ -18,7 +18,6 @@
   kNonce,
   kParserState,
   kReferrerPolicy,
-  kBaseUrlSource,
   kLength
 };
 
@@ -67,14 +66,8 @@
           referrer_policy_int32)
           .value_or(network::mojom::ReferrerPolicy::kDefault);
 
-  v8::Local<v8::Primitive> base_url_source_value =
-      host_defined_options->Get(isolate, kBaseUrlSource);
-  SECURITY_CHECK(base_url_source_value->IsUint32());
-  BaseUrlSource base_url_source = static_cast<BaseUrlSource>(
-      base_url_source_value->IntegerValue(context).ToChecked());
-
   return ReferrerScriptInfo(base_url, credentials_mode, nonce, parser_state,
-                            referrer_policy, base_url_source);
+                            referrer_policy);
 }
 
 v8::Local<v8::PrimitiveArray> ReferrerScriptInfo::ToV8HostDefinedOptions(
@@ -110,11 +103,6 @@
   host_defined_options->Set(isolate, HostDefinedOptionsIndex::kReferrerPolicy,
                             referrer_policy_value);
 
-  v8::Local<v8::Primitive> base_url_source_value = v8::Integer::NewFromUnsigned(
-      isolate, static_cast<uint32_t>(base_url_source_));
-  host_defined_options->Set(isolate, HostDefinedOptionsIndex::kBaseUrlSource,
-                            base_url_source_value);
-
   return host_defined_options;
 }
 
diff --git a/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h b/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h
index 279ac3a..84ed3667 100644
--- a/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h
+++ b/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h
@@ -23,33 +23,23 @@
   STACK_ALLOCATED();
 
  public:
-  enum class BaseUrlSource {
-    kClassicScriptCORSSameOrigin,
-    kClassicScriptCORSCrossOrigin,
-    kOther
-  };
   ReferrerScriptInfo() {}
   ReferrerScriptInfo(const KURL& base_url,
                      network::mojom::CredentialsMode credentials_mode,
                      const String& nonce,
                      ParserDisposition parser_state,
-                     network::mojom::ReferrerPolicy referrer_policy,
-                     BaseUrlSource base_url_source)
+                     network::mojom::ReferrerPolicy referrer_policy)
       : base_url_(base_url),
         credentials_mode_(credentials_mode),
         nonce_(nonce),
         parser_state_(parser_state),
-        referrer_policy_(referrer_policy),
-        base_url_source_(base_url_source) {}
-  ReferrerScriptInfo(const KURL& base_url,
-                     const ScriptFetchOptions& options,
-                     BaseUrlSource base_url_source)
+        referrer_policy_(referrer_policy) {}
+  ReferrerScriptInfo(const KURL& base_url, const ScriptFetchOptions& options)
       : ReferrerScriptInfo(base_url,
                            options.CredentialsMode(),
                            options.Nonce(),
                            options.ParserState(),
-                           options.GetReferrerPolicy(),
-                           base_url_source) {}
+                           options.GetReferrerPolicy()) {}
 
   static ReferrerScriptInfo FromV8HostDefinedOptions(
       v8::Local<v8::Context>,
@@ -65,13 +55,11 @@
   network::mojom::ReferrerPolicy GetReferrerPolicy() const {
     return referrer_policy_;
   }
-  BaseUrlSource GetBaseUrlSource() const { return base_url_source_; }
 
   bool IsDefaultValue() const {
     return base_url_.IsNull() &&
            credentials_mode_ == network::mojom::CredentialsMode::kSameOrigin &&
-           nonce_.IsEmpty() && parser_state_ == kNotParserInserted &&
-           base_url_source_ == BaseUrlSource::kOther;
+           nonce_.IsEmpty() && parser_state_ == kNotParserInserted;
   }
 
  private:
@@ -102,9 +90,6 @@
   // https://html.spec.whatwg.org/C/#default-classic-script-fetch-options
   const network::mojom::ReferrerPolicy referrer_policy_ =
       network::mojom::ReferrerPolicy::kDefault;
-
-  // Temporary flag to collect UMA for crbug.com/1082086.
-  const BaseUrlSource base_url_source_ = BaseUrlSource::kOther;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/bindings/core/v8/referrer_script_info_test.cc b/third_party/blink/renderer/bindings/core/v8/referrer_script_info_test.cc
index bf4c59b..3387eb1 100644
--- a/third_party/blink/renderer/bindings/core/v8/referrer_script_info_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/referrer_script_info_test.cc
@@ -15,8 +15,7 @@
   EXPECT_FALSE(ReferrerScriptInfo(KURL("http://example.com"),
                                   network::mojom::CredentialsMode::kInclude, "",
                                   kNotParserInserted,
-                                  network::mojom::ReferrerPolicy::kDefault,
-                                  ReferrerScriptInfo::BaseUrlSource::kOther)
+                                  network::mojom::ReferrerPolicy::kDefault)
                    .IsDefaultValue());
 }
 
@@ -28,10 +27,9 @@
                   .ToV8HostDefinedOptions(scope.GetIsolate())
                   .IsEmpty());
 
-  ReferrerScriptInfo info(
-      url, network::mojom::CredentialsMode::kInclude, "foobar",
-      kNotParserInserted, network::mojom::ReferrerPolicy::kOrigin,
-      ReferrerScriptInfo::BaseUrlSource::kClassicScriptCORSCrossOrigin);
+  ReferrerScriptInfo info(url, network::mojom::CredentialsMode::kInclude,
+                          "foobar", kNotParserInserted,
+                          network::mojom::ReferrerPolicy::kOrigin);
   v8::Local<v8::PrimitiveArray> v8_info =
       info.ToV8HostDefinedOptions(scope.GetIsolate());
 
@@ -44,8 +42,6 @@
   EXPECT_EQ(kNotParserInserted, decoded.ParserState());
   EXPECT_EQ(network::mojom::ReferrerPolicy::kOrigin,
             decoded.GetReferrerPolicy());
-  EXPECT_EQ(ReferrerScriptInfo::BaseUrlSource::kClassicScriptCORSCrossOrigin,
-            decoded.GetBaseUrlSource());
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
index e904f60..09987f7 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
@@ -477,26 +477,8 @@
     const KURL base_url = classic_script->BaseURL();
     KURL stored_base_url = (base_url == source.Url()) ? KURL() : base_url;
 
-    // TODO(hiroshige): Remove this code and related use counters once the
-    // measurement is done.
-    ReferrerScriptInfo::BaseUrlSource base_url_source =
-        ReferrerScriptInfo::BaseUrlSource::kOther;
-    if (source.SourceLocationType() ==
-            ScriptSourceLocationType::kExternalFile &&
-        !base_url.IsNull()) {
-      switch (sanitize_script_errors) {
-        case SanitizeScriptErrors::kDoNotSanitize:
-          base_url_source =
-              ReferrerScriptInfo::BaseUrlSource::kClassicScriptCORSSameOrigin;
-          break;
-        case SanitizeScriptErrors::kSanitize:
-          base_url_source =
-              ReferrerScriptInfo::BaseUrlSource::kClassicScriptCORSCrossOrigin;
-          break;
-      }
-    }
-    const ReferrerScriptInfo referrer_info(
-        stored_base_url, classic_script->FetchOptions(), base_url_source);
+    const ReferrerScriptInfo referrer_info(stored_base_url,
+                                           classic_script->FetchOptions());
 
     v8::Local<v8::Script> script;
 
diff --git a/third_party/blink/renderer/core/css/css_custom_font_data.h b/third_party/blink/renderer/core/css/css_custom_font_data.h
index 697046e..37d259a 100644
--- a/third_party/blink/renderer/core/css/css_custom_font_data.h
+++ b/third_party/blink/renderer/core/css/css_custom_font_data.h
@@ -56,6 +56,10 @@
   bool IsLoadingFallback() const override { return true; }
   void ClearFontFaceSource() override { font_face_source_ = nullptr; }
 
+  bool IsPendingDataUrl() const override {
+    return font_face_source_ && font_face_source_->IsPendingDataUrl();
+  }
+
  private:
   CSSCustomFontData(CSSFontFaceSource* source, FallbackVisibility visibility)
       : font_face_source_(source),
diff --git a/third_party/blink/renderer/core/css/css_font_face_source.h b/third_party/blink/renderer/core/css/css_font_face_source.h
index 5a0b18b9..083cc28e 100644
--- a/third_party/blink/renderer/core/css/css_font_face_source.h
+++ b/third_party/blink/renderer/core/css/css_font_face_source.h
@@ -62,6 +62,8 @@
   // Returns nullptr unless the source is a loaded RemoteFontFaceSource.
   virtual String GetURL() const { return g_null_atom; }
 
+  virtual bool IsPendingDataUrl() const { return false; }
+
   // Returns nullptr unless the source is a loaded RemoteFontFaceSource.
   virtual const FontCustomPlatformData* GetCustomPlaftormData() const {
     return nullptr;
diff --git a/third_party/blink/renderer/core/css/remote_font_face_source.cc b/third_party/blink/renderer/core/css/remote_font_face_source.cc
index c281d14..4fa77545 100644
--- a/third_party/blink/renderer/core/css/remote_font_face_source.cc
+++ b/third_party/blink/renderer/core/css/remote_font_face_source.cc
@@ -423,6 +423,10 @@
   MaySetDataSource(kFromNetwork);
 }
 
+bool RemoteFontFaceSource::IsPendingDataUrl() const {
+  return GetResource() && GetResource()->Url().ProtocolIsData();
+}
+
 void RemoteFontFaceSource::FontLoadHistograms::RecordFallbackTime() {
   if (blank_paint_time_.is_null() || blank_paint_time_recorded_)
     return;
diff --git a/third_party/blink/renderer/core/css/remote_font_face_source.h b/third_party/blink/renderer/core/css/remote_font_face_source.h
index c672015..64ac297d 100644
--- a/third_party/blink/renderer/core/css/remote_font_face_source.h
+++ b/third_party/blink/renderer/core/css/remote_font_face_source.h
@@ -34,6 +34,8 @@
 
   String GetURL() const override { return url_; }
 
+  bool IsPendingDataUrl() const override;
+
   const FontCustomPlatformData* GetCustomPlaftormData() const override {
     return custom_font_data_.get();
   }
diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc
index c27fcf95..bf39e84a 100644
--- a/third_party/blink/renderer/core/frame/reporting_context.cc
+++ b/third_party/blink/renderer/core/frame/reporting_context.cc
@@ -155,7 +155,7 @@
   if (!report_buffer_.Contains(report->type())) {
     report_buffer_.insert(
         report->type(),
-        MakeGarbageCollected<HeapListHashSet<Member<Report>>>());
+        MakeGarbageCollected<HeapLinkedHashSet<Member<Report>>>());
   }
   report_buffer_.find(report->type())->value->insert(report);
 
diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_party/blink/renderer/core/frame/reporting_context.h
index 51bee8b..c2f7760 100644
--- a/third_party/blink/renderer/core/frame/reporting_context.h
+++ b/third_party/blink/renderer/core/frame/reporting_context.h
@@ -61,8 +61,8 @@
   // Send |report| via the Reporting API to |endpoint|.
   void SendToReportingAPI(Report* report, const String& endpoint) const;
 
-  HeapListHashSet<Member<blink::ReportingObserver>> observers_;
-  HeapHashMap<String, Member<HeapListHashSet<Member<Report>>>> report_buffer_;
+  HeapLinkedHashSet<Member<blink::ReportingObserver>> observers_;
+  HeapHashMap<String, Member<HeapLinkedHashSet<Member<Report>>>> report_buffer_;
   Member<ExecutionContext> execution_context_;
 
   // This is declared mutable so that the service endpoint can be cached by
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc
index 07b10223..17a8ad3 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc
@@ -294,6 +294,14 @@
   return false;
 }
 
+bool NGFragmentItem::IsBlockInInline() const {
+  if (Type() != kBox)
+    return false;
+  if (const NGPhysicalBoxFragment* box = BoxFragment())
+    return box->IsBlockInInline();
+  return false;
+}
+
 bool NGFragmentItem::IsFloating() const {
   if (const NGPhysicalBoxFragment* box = BoxFragment())
     return box->IsFloating();
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h
index d93dd03..f0c12aa 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h
@@ -106,6 +106,7 @@
   bool IsContainer() const { return Type() == kBox || Type() == kLine; }
   bool IsInlineBox() const;
   bool IsAtomicInline() const;
+  bool IsBlockInInline() const;
   bool IsFloating() const;
   bool IsEmptyLineBox() const;
   bool IsHiddenForPaint() const { return is_hidden_for_paint_; }
diff --git a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.cc b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.cc
index ac778b2..db7a3e683 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.cc
@@ -531,6 +531,15 @@
     min_max_length_sizes =
         ComputeMinMaxBlockSizes(space, style, border_padding);
 
+    // Manually resolve any intrinsic/content min/max block-sizes.
+    // TODO(crbug.com/1135207): |ComputeMinMaxBlockSizes()| should handle this.
+    if (style.LogicalMinHeight().IsContentOrIntrinsic())
+      min_max_length_sizes.min_size = IntrinsicBlockSizeFunc();
+    if (style.LogicalMaxHeight().IsContentOrIntrinsic())
+      min_max_length_sizes.max_size = IntrinsicBlockSizeFunc();
+    min_max_length_sizes.max_size =
+        std::max(min_max_length_sizes.max_size, min_max_length_sizes.min_size);
+
     // Tables are never allowed to go below their "auto" block-size.
     if (is_table)
       min_max_length_sizes.Encompass(IntrinsicBlockSizeFunc());
diff --git a/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator.cc b/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator.cc
index 0fe65bbe..226014eb 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator.cc
@@ -128,24 +128,20 @@
   alternate_overflow.UniteEvenIfEmpty(AdjustOverflowForScrollOrigin(
       converter.ToPhysical(block_end_padding_rect)));
 
+  if (normal_overflow == alternate_overflow)
+    return normal_overflow;
+
   // We'd like everything to be |normal_overflow|, lets see what the impact
   // would be.
   if (node_.Style().OverflowInlineDirection() == EOverflow::kAuto ||
       node_.Style().OverflowInlineDirection() == EOverflow::kScroll) {
-    if (alternate_overflow.size.width != normal_overflow.size.width) {
-      if (alternate_overflow.size.width != padding_rect_.size.width) {
-        UseCounter::Count(
-            node_.GetDocument(),
-            node_.IsFlexibleBox()
-                ? WebFeature::kNewLayoutOverflowDifferentAndAlreadyScrollsFlex
-                : WebFeature::
-                      kNewLayoutOverflowDifferentAndAlreadyScrollsBlock);
-      } else {
-        UseCounter::Count(node_.GetDocument(),
-                          node_.IsFlexibleBox()
-                              ? WebFeature::kNewLayoutOverflowDifferentFlex
-                              : WebFeature::kNewLayoutOverflowDifferentBlock);
-      }
+    if (alternate_overflow.size.width != padding_rect_.size.width) {
+      UseCounter::Count(
+          node_.GetDocument(),
+          WebFeature::kNewLayoutOverflowDifferentAndAlreadyScrollsBlock);
+    } else {
+      UseCounter::Count(node_.GetDocument(),
+                        WebFeature::kNewLayoutOverflowDifferentBlock);
     }
   }
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator_test.cc b/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator_test.cc
index ba03280..082a3405 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator_test.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_layout_overflow_calculator_test.cc
@@ -9,22 +9,6 @@
 class NGLayoutOverflowCalculatorTest : public RenderingTest {};
 
 TEST_F(NGLayoutOverflowCalculatorTest,
-       DISABLED_NewLayoutOverflowDifferentAndAlreadyScrollsFlex) {
-  if (!RuntimeEnabledFeatures::LayoutNGEnabled())
-    return;
-  SetBodyInnerHTML(R"HTML(
-    <!DOCTYPE html>
-    <div style="display: flex; width: 100px; height: 100px; padding: 10px; overflow: auto;">
-      <div style="min-width: 120px; height: 10px;"></div>
-    </div>
-  )HTML");
-  RunDocumentLifecycle();
-
-  EXPECT_TRUE(GetDocument().IsUseCounted(
-      WebFeature::kNewLayoutOverflowDifferentAndAlreadyScrollsFlex));
-}
-
-TEST_F(NGLayoutOverflowCalculatorTest,
        NewLayoutOverflowDifferentAndAlreadyScrollsBlock) {
   if (!RuntimeEnabledFeatures::LayoutNGEnabled())
     return;
@@ -40,22 +24,6 @@
       WebFeature::kNewLayoutOverflowDifferentAndAlreadyScrollsBlock));
 }
 
-TEST_F(NGLayoutOverflowCalculatorTest,
-       DISABLED_NewLayoutOverflowDifferentFlex) {
-  if (!RuntimeEnabledFeatures::LayoutNGEnabled())
-    return;
-  SetBodyInnerHTML(R"HTML(
-    <!DOCTYPE html>
-    <div style="display: flex; width: 100px; height: 100px; padding: 10px; overflow: auto;">
-      <div style="min-width: 110px; height: 10px;"></div>
-    </div>
-  )HTML");
-  RunDocumentLifecycle();
-
-  EXPECT_TRUE(
-      GetDocument().IsUseCounted(WebFeature::kNewLayoutOverflowDifferentFlex));
-}
-
 TEST_F(NGLayoutOverflowCalculatorTest, NewLayoutOverflowDifferentBlock) {
   if (!RuntimeEnabledFeatures::LayoutNGEnabled())
     return;
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h
index 851f3c40..f8ca812 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h
@@ -18,6 +18,7 @@
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_size.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
+#include "third_party/blink/renderer/core/layout/layout_inline.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_break_token.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_link.h"
@@ -125,6 +126,10 @@
   bool IsAtomicInline() const {
     return IsBox() && BoxType() == NGBoxType::kAtomicInline;
   }
+  bool IsBlockInInline() const {
+    return IsBox() && BoxType() == NGBoxType::kNormalBox && GetLayoutObject() &&
+           IsA<LayoutInline>(GetLayoutObject()->Parent());
+  }
   // True if this fragment is in-flow in an inline formatting context.
   bool IsInline() const { return IsInlineBox() || IsAtomicInline(); }
   bool IsFloating() const {
diff --git a/third_party/blink/renderer/core/layout/ng/svg/layout_ng_svg_text.cc b/third_party/blink/renderer/core/layout/ng/svg/layout_ng_svg_text.cc
index 8e26abe7..f223b2e 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/layout_ng_svg_text.cc
+++ b/third_party/blink/renderer/core/layout/ng/svg/layout_ng_svg_text.cc
@@ -155,8 +155,9 @@
   UpdateNGBlockLayout();
   needs_update_bounding_box_ = true;
 
+  const bool bounds_changed = old_boundaries != ObjectBoundingBox();
   // If our bounds changed, notify the parents.
-  if (UpdateTransformAfterLayout(old_boundaries != ObjectBoundingBox()))
+  if (UpdateTransformAfterLayout(bounds_changed) || bounds_changed)
     SetNeedsBoundariesUpdate();
 }
 
diff --git a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
index f70fa06..2e4a02b 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
+++ b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
@@ -1207,6 +1207,20 @@
     paint_info.context.EndLayer();
 }
 
+void NGBoxFragmentPainter::PaintBoxDecorationBackgroundForBlockInInline(
+    NGInlineCursor* children,
+    const PaintInfo& paint_info,
+    const PhysicalOffset& paint_offset) {
+  for (; *children; children->MoveToNext()) {
+    const NGFragmentItem* item = children->Current().Item();
+    if (item->Type() != NGFragmentItem::kBox)
+      continue;
+    const NGPhysicalBoxFragment* fragment = item->BoxFragment();
+    if (fragment && fragment->IsBlockInInline())
+      PaintBoxItem(*item, *fragment, *children, paint_info, paint_offset);
+  }
+}
+
 void NGBoxFragmentPainter::PaintColumnRules(
     const PaintInfo& paint_info,
     const PhysicalOffset& paint_offset) {
@@ -1454,10 +1468,14 @@
       paint_info.phase != PaintPhase::kTextClip &&
       paint_info.phase != PaintPhase::kMask &&
       paint_info.phase != PaintPhase::kDescendantOutlinesOnly &&
-      paint_info.phase != PaintPhase::kOutline &&
+      paint_info.phase != PaintPhase::kOutline) {
+    if (UNLIKELY(ShouldPaintDescendantBlockBackgrounds(paint_info.phase))) {
       // When block-in-inline, block backgrounds need to be painted.
-      !ShouldPaintDescendantBlockBackgrounds(paint_info.phase))
+      PaintBoxDecorationBackgroundForBlockInInline(children, paint_info,
+                                                   paint_offset);
+    }
     return;
+  }
 
   // The only way an inline could paint like this is if it has a layer.
   const auto* layout_object = box_fragment_.GetLayoutObject();
diff --git a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
index 953857cf..fe8b4c1a 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
@@ -116,6 +116,11 @@
                                             const PhysicalRect& paint_rect,
                                             const DisplayItemClient&);
 
+  void PaintBoxDecorationBackgroundForBlockInInline(
+      NGInlineCursor* children,
+      const PaintInfo&,
+      const PhysicalOffset& paint_offset);
+
   void PaintColumnRules(const PaintInfo&, const PhysicalOffset& paint_offset);
 
   void PaintInternal(const PaintInfo&);
diff --git a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
index 4c57377..d21666d 100644
--- a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
+++ b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
@@ -873,6 +873,16 @@
            child->IsLayoutMultiColumnSpannerPlaceholder());
     child->GetMutableForPainting().ClearPaintFlags();
   }
+
+  // If we missed any nested fixpos elements during fragment traversal, that
+  // means that their containing block lives outside the fragmentation context
+  // root. Walk these missed fixepos elements now.
+  if (!pending_fixedpos_missables_.IsEmpty()) {
+    for (const auto* fixedpos : pending_fixedpos_missables_) {
+      DCHECK(!walked_fixedpos_.Contains(fixedpos));
+      Walk(*fixedpos, context, /* pre_paint_info */ nullptr);
+    }
+  }
 }
 
 void PrePaintTreeWalk::WalkLayoutObjectChildren(
@@ -899,8 +909,11 @@
 
     // If we're in the middle of walking a missed OOF, don't enter nested OOFs
     // (but miss those as well, and handle them via fragment traversal).
-    if (context.is_inside_orphaned_object && child->IsOutOfFlowPositioned())
+    if (context.is_inside_orphaned_object && child->IsOutOfFlowPositioned()) {
+      if (child->IsFixedPositioned() && !walked_fixedpos_.Contains(child))
+        pending_fixedpos_missables_.insert(child);
       continue;
+    }
 
     // Perform an NGPhysicalBoxFragment-accompanied walk of the child
     // LayoutObject tree.
@@ -1000,9 +1013,7 @@
         }
         if (!search_fragment) {
           // Only walk unfragmented legacy-contained OOFs once.
-          if (context.is_inside_orphaned_object ||
-              (context.current_fragmentainer.fragment &&
-               !context.current_fragmentainer.fragment->IsFirstForNode()))
+          if (!parent_fragment->IsFirstForNode())
             continue;
         }
       }
@@ -1149,8 +1160,13 @@
   if (pre_paint_info) {
     physical_fragment = &pre_paint_info->box_fragment;
     if (physical_fragment && (physical_fragment->IsOutOfFlowPositioned() ||
-                              physical_fragment->IsFloating()))
+                              physical_fragment->IsFloating())) {
       pending_missables_.erase(physical_fragment);
+      if (object.IsFixedPositioned()) {
+        pending_fixedpos_missables_.erase(&object);
+        walked_fixedpos_.insert(&object);
+      }
+    }
     is_inside_fragment_child = pre_paint_info->is_inside_fragment_child;
   }
 
diff --git a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
index a311b0e4..7971ae5 100644
--- a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
+++ b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
@@ -227,6 +227,17 @@
   // CollectMissableChildren() and WalkMissedChildren().
   HashSet<const NGPhysicalFragment*> pending_missables_;
 
+  // List of fixedpos objects that may be missed during fragment traversal. This
+  // can happen if a fixedpos is nested in another OOF inside a multicol, and
+  // the OOF parent is a pending missable (see |pending_missables_|). If that
+  // fixedpos' containing block is located outside of the multicol, we can would
+  // miss it during normal fragment traversal.
+  HashSet<const LayoutObject*> pending_fixedpos_missables_;
+
+  // List of fixedpos objects that have already been walked. This helps to avoid
+  // re-walking any fixedpos objects handled by |pending_fixedpos_missables_|.
+  HashSet<const LayoutObject*> walked_fixedpos_;
+
   // TODO(https://crbug.com/841364): Remove is_wheel_event_regions_enabled
   // argument once kWheelEventRegions feature flag is removed.
   bool is_wheel_event_regions_enabled_ = false;
diff --git a/third_party/blink/renderer/core/script/dynamic_module_resolver.cc b/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
index 64b77ea..99e7ff54 100644
--- a/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
+++ b/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
@@ -340,29 +340,6 @@
     return;
   }
 
-  switch (referrer_info.GetBaseUrlSource()) {
-    case ReferrerScriptInfo::BaseUrlSource::kClassicScriptCORSSameOrigin:
-      if (!modulator_
-               ->ResolveModuleSpecifier(module_request.specifier, BlankURL())
-               .IsValid()) {
-        UseCounter::Count(
-            ExecutionContext::From(modulator_->GetScriptState()),
-            WebFeature::kDynamicImportModuleScriptRelativeClassicSameOrigin);
-      }
-      break;
-    case ReferrerScriptInfo::BaseUrlSource::kClassicScriptCORSCrossOrigin:
-      if (!modulator_
-               ->ResolveModuleSpecifier(module_request.specifier, BlankURL())
-               .IsValid()) {
-        UseCounter::Count(
-            ExecutionContext::From(modulator_->GetScriptState()),
-            WebFeature::kDynamicImportModuleScriptRelativeClassicCrossOrigin);
-      }
-      break;
-    case ReferrerScriptInfo::BaseUrlSource::kOther:
-      break;
-  }
-
   // <spec step="4.4">Set fetch options to the descendant script fetch options
   // for referencing script's fetch options.</spec>
   //
diff --git a/third_party/blink/renderer/core/script/dynamic_module_resolver_test.cc b/third_party/blink/renderer/core/script/dynamic_module_resolver_test.cc
index ffd4f6ca..e4f5de7 100644
--- a/third_party/blink/renderer/core/script/dynamic_module_resolver_test.cc
+++ b/third_party/blink/renderer/core/script/dynamic_module_resolver_test.cc
@@ -481,8 +481,7 @@
                                Vector<ImportAssertion>());
   resolver->ResolveDynamically(
       module_request, wrong_base_url,
-      ReferrerScriptInfo(correct_base_url, ScriptFetchOptions(),
-                         ReferrerScriptInfo::BaseUrlSource::kOther),
+      ReferrerScriptInfo(correct_base_url, ScriptFetchOptions()),
       promise_resolver);
 
   v8::MicrotasksScope::PerformCheckpoint(scope.GetIsolate());
diff --git a/third_party/blink/renderer/modules/mediasource/media_source_registry_impl.cc b/third_party/blink/renderer/modules/mediasource/media_source_registry_impl.cc
index 2003129..fb24adf 100644
--- a/third_party/blink/renderer/modules/mediasource/media_source_registry_impl.cc
+++ b/third_party/blink/renderer/modules/mediasource/media_source_registry_impl.cc
@@ -86,7 +86,10 @@
 
   DCHECK(IsMainThread());
   DCHECK(!url.IsEmpty());
-  return media_sources_.at(url);
+  auto iter = media_sources_.find(url);
+  if (iter == media_sources_.end())
+    return nullptr;
+  return iter->value;
 }
 
 MediaSourceRegistryImpl::MediaSourceRegistryImpl() {
diff --git a/third_party/blink/renderer/platform/fonts/custom_font_data.h b/third_party/blink/renderer/platform/fonts/custom_font_data.h
index cd2bc76..3e5fd45 100644
--- a/third_party/blink/renderer/platform/fonts/custom_font_data.h
+++ b/third_party/blink/renderer/platform/fonts/custom_font_data.h
@@ -40,6 +40,7 @@
   virtual bool IsLoadingFallback() const { return false; }
   virtual bool ShouldSkipDrawing() const { return false; }
   virtual void ClearFontFaceSource() {}
+  virtual bool IsPendingDataUrl() const { return false; }
 
  protected:
   CustomFontData() = default;
diff --git a/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h b/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
index bd576bc..3a861d8 100644
--- a/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
+++ b/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
@@ -64,6 +64,10 @@
     return font_data_ && font_data_->IsLoadingFallback();
   }
 
+  bool IsPendingDataUrlCustomFont() const {
+    return font_data_ && font_data_->IsPendingDataUrlCustomFont();
+  }
+
  protected:
   scoped_refptr<SimpleFontData> font_data_;
   scoped_refptr<UnicodeRangeSet> range_set_;
diff --git a/third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc b/third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc
index cd01d8e..470df1c 100644
--- a/third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc
+++ b/third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc
@@ -40,7 +40,10 @@
       // If it's a pending custom font, we need to make sure it can render any
       // new characters, otherwise we may trigger a redundant load. In other
       // cases (already loaded or not a custom font), we can use it right away.
+      // Loading data url fonts doesn't incur extra network cost, so we always
+      // load them.
       if (!segmented_face->IsPendingCustomFont() ||
+          segmented_face->IsPendingDataUrlCustomFont() ||
           !AlreadyLoadingRangeForHintChar(*it))
         return true;
     }
diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.h b/third_party/blink/renderer/platform/fonts/simple_font_data.h
index 99d373a8..dd10806 100644
--- a/third_party/blink/renderer/platform/fonts/simple_font_data.h
+++ b/third_party/blink/renderer/platform/fonts/simple_font_data.h
@@ -143,6 +143,9 @@
   bool IsLoadingFallback() const override {
     return custom_font_data_ ? custom_font_data_->IsLoadingFallback() : false;
   }
+  bool IsPendingDataUrlCustomFont() const {
+    return custom_font_data_ ? custom_font_data_->IsPendingDataUrl() : false;
+  }
   bool IsSegmented() const override;
   bool ShouldSkipDrawing() const override {
     return custom_font_data_ && custom_font_data_->ShouldSkipDrawing();
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index c305f1f..844a8d6 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -914,7 +914,7 @@
     },
     {
       name: "EncryptedMediaSessionClosedReason",
-      status: "test",
+      status: "experimental",
     },
     {
       name: "EnterKeyHintAttribute",
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
index 24b4890c..0178274 100644
--- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
+++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -206,6 +206,7 @@
 crbug.com/591099 external/wpt/css/css-position/position-absolute-center-004.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position/position-absolute-crash-chrome-006.html [ Crash ]
 crbug.com/591099 external/wpt/css/css-position/position-absolute-dynamic-overflow-002.html [ Failure ]
+crbug.com/591099 external/wpt/css/css-position/position-absolute-fit-content.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position/position-absolute-in-inline-003.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position/position-absolute-in-inline-004.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position/position-absolute-replaced-intrinsic-size.tentative.html [ Failure ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 49f975d..ebf4b2f 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -3002,7 +3002,7 @@
 crbug.com/626703 [ Mac11.0 ] external/wpt/webrtc-encoded-transform/RTCPeerConnection-insertable-streams-audio.https.html [ Timeout ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/webrtc/no-media-call.html [ Timeout ]
 crbug.com/626703 [ Mac11.0 ] virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-ondatachannel.html [ Timeout ]
-# crbug.com/626703 [ Mac11.0 ] external/wpt/webrtc/RTCRtpTransceiver.https.html [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/webrtc/RTCRtpTransceiver.https.html [ Timeout ]
 crbug.com/626703 [ Mac11.0 ] virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCDataChannel-close.html [ Timeout ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/webrtc/RTCPeerConnection-perfect-negotiation.https.html [ Timeout ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/webrtc/RTCPeerConnection-iceConnectionState.https.html [ Timeout ]
@@ -4125,8 +4125,6 @@
 crbug.com/1179585 [ Mac ] virtual/layout_ng_svg_text/paint/invalidation/svg/repaint-non-scaling-stroke-text.html [ Failure ]
 crbug.com/1179585 [ Mac ] virtual/layout_ng_svg_text/paint/invalidation/svg/repaint-non-scaling-stroke-text-decoration.html [ Failure ]
 crbug.com/1179585 virtual/layout_ng_svg_text/paint/invalidation/svg/text-match-svg.html [ Failure ]
-crbug.com/1179585 virtual/layout_ng_svg_text/paint/invalidation/svg/text-rescale.html [ Failure ]
-crbug.com/1179585 virtual/layout_ng_svg_text/paint/invalidation/svg/text-viewbox-rescale.html [ Failure ]
 crbug.com/1179585 virtual/layout_ng_svg_text/paint/invalidation/svg/transform-text-element.html [ Failure Pass ]
 crbug.com/1179585 [ Mac ] virtual/layout_ng_svg_text/paint/invalidation/svg/tspan-dynamic-positioning.svg [ Failure ]
 crbug.com/1179585 [ Mac ] virtual/layout_ng_svg_text/paint/invalidation/svg/use-detach.svg [ Failure ]
@@ -7241,9 +7239,6 @@
 crbug.com/1234057 [ Mac ] external/wpt/css/css-paint-api/no-op-animation.https.html [ Failure Pass ]
 crbug.com/1234302 [ Mac ] virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/paint2d-image.https.html [ Failure Pass ]
 
-# Temporary disabling to allow landing https://webrtc-review.googlesource.com/c/src/+/227120
-crbug.com/webrtc/12906 external/wpt/webrtc/RTCRtpTransceiver.https.html [ Failure Pass Timeout ]
-
 # Sheriff 2021-07-29
 crbug.com/626703 [ Mac ] external/wpt/webrtc/simulcast/setParameters-active.https.html [ Failure Pass ]
 crbug.com/626703 http/tests/security/cross-frame-access-put.html [ Failure Pass ]
@@ -7253,7 +7248,10 @@
 crbug.com/626703 virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-non-ascii-name.https.html [ Failure Pass ]
 crbug.com/626703 virtual/oopr-canvas2d/fast/canvas/canvas-composite-canvas.html [ Failure Pass ]
 
-# Sheriff 20121-07-30
+# Sheriff 2021-07-30
 crbug.com/1234619 external/wpt/screen-capture/permissions-policy-audio+video.https.sub.html [ Failure ]
 crbug.com/1234619 external/wpt/screen-capture/permissions-policy-audio.https.sub.html [ Failure ]
 crbug.com/1234619 external/wpt/screen-capture/permissions-policy-video.https.sub.html [ Failure ]
+
+# Sheriff 2021-08-02
+crbug.com/1235685 [ Mac10.14 ] virtual/scroll-unification/plugins/focus-change-4-change-focus-and-blur.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/WebGPUExpectations b/third_party/blink/web_tests/WebGPUExpectations
index 55e7c95..604dabe 100644
--- a/third_party/blink/web_tests/WebGPUExpectations
+++ b/third_party/blink/web_tests/WebGPUExpectations
@@ -34,6 +34,12 @@
 [ Win ] wpt_internal/webgpu/cts.html?q=webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:* [ Slow ]
 [ Win ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,rendering,draw:arguments:* [ Slow ]
 [ Win ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:* [ Slow ]
+# Intel only. Really slow and killed by the GPU watchdog?
+crbug.com/dawn/1046 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="firstVertex";type="float32x4";* [ Slow Crash ]
+crbug.com/dawn/1046 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="instanceCount";type="float32x4";* [ Slow Crash ]
+crbug.com/dawn/1046 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="vertexCount";type="float32x4";* [ Slow Crash ]
+crbug.com/dawn/1046 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="baseVertex";type="float32x4";* [ Slow Crash ]
+crbug.com/dawn/1046 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";* [ Slow Crash ]
 
 ###
 ### Untriaged failures. Please prefer to triage thoroughly and file a bug!
@@ -50,26 +56,6 @@
 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";format="r8unorm";aspect="all";mipLevelCount=5;sampleCount=1;uninitializeMethod="StoreOpClear";layerCount=1;nonPowerOfTwo=false;canaryOnCreation=false;* [ Failure ]
 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";format="rg8unorm";aspect="all";mipLevelCount=5;sampleCount=1;uninitializeMethod="StoreOpClear";layerCount=1;nonPowerOfTwo=false;canaryOnCreation=false;* [ Failure ]
 
-# Mac (Intel and AMD). Possibly nondeterministic.
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="r8snorm";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rg8snorm";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="r32float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rg16float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rgba8snorm";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rg11b10ufloat";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rg32float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rgba16float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rgba32float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="r8snorm";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rg8snorm";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="r32float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rg16float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rgba8snorm";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rg11b10ufloat";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rg32float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rgba16float";* [ Failure ]
-crbug.com/1161355 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rgba32float";* [ Failure ]
-
 ###
 ### Untriaged timeouts
 ###
@@ -110,6 +96,14 @@
 crbug.com/dawn/1003 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rgb9e5ufloat";* [ Failure ]
 crbug.com/dawn/1003 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rgb9e5ufloat";* [ Failure ]
 
+# Precision. Only on Mac Intel
+crbug.com/dawn/1047 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="r8snorm";* [ Failure ]
+crbug.com/dawn/1047 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rg8snorm";* [ Failure ]
+crbug.com/dawn/1047 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:format="rgba8snorm";* [ Failure ]
+crbug.com/dawn/1047 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="r8snorm";* [ Failure ]
+crbug.com/dawn/1047 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rg8snorm";* [ Failure ]
+crbug.com/dawn/1047 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:format="rgba8snorm";* [ Failure ]
+
 # Limits that should be updated.
 # maxStorageTexturePerShaderStage 8 -> 4
 crbug.com/dawn/796 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_pipeline_layout:* [ Failure ]
@@ -118,16 +112,6 @@
 # maxInterStageShaderComponents 64 -> 60 (crbug.com/dawn/759 [ Linux ][ Failure ] on NVIDIA will be recovered after the tests are fixed)
 crbug.com/dawn/802 wpt_internal/webgpu/cts.html?q=webgpu:api,operation,rendering,draw:vertex_attributes,basic:* [ Skip ]
 
-# Robust access tests cause a lot of failures in various systems. Revisit expectations after the tests are fixed.
-crbug.com/dawn/1009 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:* [ Slow Failure ]
-crbug.com/dawn/1009 [ Win ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:* [ Slow Failure ]
-crbug.com/dawn/1018 [ Mac ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:* [ Slow Failure Crash ]
-crbug.com/dawn/1011 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=false;* [ Crash Failure ]
-crbug.com/dawn/1011 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=true;* [ Crash Failure ]
-crbug.com/dawn/1011 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;* [ Crash Failure ]
-crbug.com/dawn/1011 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;* [ Crash Failure ]
-
-
 ###
 ### Test bugs (fixed upstream)
 ###
@@ -147,8 +131,8 @@
 crbug.com/1215024 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,createComputePipeline:enrty_point_name_must_match:stageEntryPoint="main%5Cu0000";* [ Failure ]
 crbug.com/1215024 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,createComputePipeline:enrty_point_name_must_match:stageEntryPoint="main%5Cu0000a";* [ Failure ]
 
-# Fails newly added validation.
-crbug.com/dawn/808 wpt_internal/webgpu/cts.html?q=webgpu:api,operation,vertex_state,index_format:* [ Failure ]
+# Crash when creating the bindgroup. Most likely because we are using an invalid VkImageView
+crbug.com/dawn/1043 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:api,validation,createBindGroup:texture,resource_state:* [ Crash Failure ]
 
 # Failures because 1d, stencil8 and depth16unorm aren't implemented.
 crbug.com/dawn/129 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,createBindGroup:texture_must_have_correct_dimension:viewDimension="1d";* [ Failure ]
@@ -224,7 +208,10 @@
 crbug.com/dawn/995 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,buffer,create:createBuffer_invalid_and_oom:* [ Failure ]
 
 # Validation of max dispatch size isn't implemented for dispatchIndirect
-crbug.com/dawn/1006 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,encoding,cmds,compute_pass:dispatch_sizes:dispatchType="indirect";* [ Skip ]
+crbug.com/dawn/1039 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,encoding,cmds,compute_pass:dispatch_sizes:dispatchType="indirect";* [ Skip ]
+
+# Validation for drawIndexedIndirect isn't implemented
+crbug.com/dawn/809 wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;* [ Skip ]
 
 # Dawn validation requires that aspects of attachments is "all", which the tests don't do.
 # See also crbug.com/dawn/603 for missing resource state D3D12_RESOURCE_STATE_DEPTH_WRITE that happens on the same tests.
@@ -234,9 +221,6 @@
 crbug.com/dawn/812 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="depth24plus-stencil8";aspect1="depth-only";type1="render-target";* [ Failure ]
 crbug.com/dawn/812 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:format="depth24plus-stencil8";aspect1="stencil-only";type1="render-target";* [ Failure ]
 
-# Currently drawIndexedIndirect is disallowed due to missing of index buffer OOB validation. Skip the related tests.
-crbug.com/dawn/809 wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;* [ Skip ]
-
 ###
 ### Mac (Metal) specific
 ###
@@ -290,6 +274,10 @@
 # Crashes or fails with "Backing is being accessed by both GL and Vulkan"
 crbug.com/1234041 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:* [ Skip ]
 
+# VVLs want fillBuffer to be a multiple of 4
+crbug.com/dawn/1011 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;* [ Skip ]
+crbug.com/dawn/1011 [ Linux ] wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;* [ Skip ]
+
 ###
 ### Windows (D3D12) specific
 ###
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/fallback-remote-to-data-url.html b/third_party/blink/web_tests/external/wpt/css/css-fonts/fallback-remote-to-data-url.html
new file mode 100644
index 0000000..2f63312
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/fallback-remote-to-data-url.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test that font fallback from a pending web font to a data url works.</title>
+<link rel=help href="https://drafts.csswg.org/css-fonts-4/#font-matching-algorithm">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=897539">
+<link rel=author href="mailto:xiaochengh@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+// Ahem woff2 encoded as base64
+const src = "url(data:font/woff2;base64,d09GMgABAAAAAAaUAAsAAAAAMMAAAAZCAAEAQgAAAAAAAAAAAAAAAAAAAAAAAAAABmAAjHIREAq0ZJciATYCJAOHVAuDbAAEIAWMaAeEGBtRH6PAbk5OdLL/AvEQU7CfpOgyWiXGtGR2AZzAEBBkvKZsA8ABAAAAAAB2VxThhdLU16r9XGZBLIg+uAYXQbX2b8/s3ieyHCJhU0+GbZwij5oVOXYAbFESy2QNONfaM24ZumkLtuiI3/DN6ufH5TszT6HcVpeWuhTKgZ6BPzsA/N5pZr/wUvFPa1tYWOlXGxzL45XuLMuZkZJOyAJyCF5n9FBf1Mv1FsLQ4N7f3Uf1er8DEciZ9EXfACNfb6/fr9XTeEgimySdTm339nRnkXSmDXZ+eiQxaUTPhCba3COhlJN0FeuUSunEQMVfz6bPYtGsyvinqOvkGLJ8CBsCeTkNwIHBxnFHYoyQ6qBW1d3gzAQ2wCW2Jw2gBws/siy0baIseC8AOdmDiaBGwgLCNfNV6pYswAxakMtxOQTR6doOhHSsg17Z5kS/8UXV6dNvwCCGDBsxasy4CTyBSCJTqDQ6g8lic7jA4wuEIjGJkEob63yIKZfa+phrn/u83w/BCIrhBEnRDMvxgijJiqrphmnZjuv5QQgyiuIkzfKirOqm7fphnOZl3fbjvO7n/X6Rd9shp6CkskdNQ0vnhJ7BFSMTxOzaDQurU+fOrLpkY7fCwcnFzePCklvLvHz24RwSFDJvwZp1m7aERUTdKbToWJFDRwCvFduw7UCJUmXKVahUpVqNWnXAaQ0aNWnWolWbdh06denWoxc+lyNsgx50xiz3QMOI4kV+mQ9zIqdyr7hKVektgwtsSDDgwEeMFj1G5HuxT833zY/PT/mG7/iFv+IN3/i/bPoHtjWwIPUKUTzPL/NhjudUbhaXVGkRGiygepc16evaSwUH+D9px6DJ29Peth3i3xd+rfW/q39e/fIP2uFNgPeX9ejUoELkQwd1He/P7q8D8Pbhfn9lGdLueyeB/Tlxh2w6krs7D2bxX2uuL+6avoPcp0DZIhZ9VAxr23h5jNJqI7eyJ0zS761WrMs4O59pU2Z8OaBMieCpiHsIT5FyXLmaA8n9UuH0wSwectY0P5jgkF4l3WfDNDJZ79U+8IbytMJpi5EA+AlG4CXwljI/ctIdtR0yolCL3pPC06OV4FT7Gb7h3KhiFyfIs4GCDIstb60A/IX4BPyi3Af1otbQhQdMahztWLybUqvq/OmmkVjEPAaBTuL0sflbHhzjuy1hgH94duBnTMHtr3gLHxDqfk34cD/tt6AYtIfjf/StRcEvlzI1+7/Gkv8aLAhw4XuXZVxfV0PWtgsqMTLlRT0Q4KeT7wPodfsDSflbEHFwcjBLAvj7cT8CfAUxuZOm4zeJ65ixC7msJGaU20oRE601rNH61fyOMHaxL6j+KZ/As/hy8gM+p/ITKefyC3auYnX0p/kdWiLsc/TPOAH9O05K6L/tU2hWsICDqZTNcBRuIuCopRBw1FoIOGo3BBx1GwKOegwBR/2Aim3oIJ9jtCMjN+hgQo8EKgLDIoJGmRH7FBYyGcgOtmIeqDMpmDYD5EsGa0VaLjuyx0j+2kAaJZjXMpjyBcvl1hKUFVyYkAqom5VdJZ6VoSJCztbVoMK4gdUcyawDXi1wJanhC8Qh3kAwocFmggi1m00uCAMxqCsTZp5K0dMcsYTP4A2QC1fgZQDMyseIJbkPlfzMK+g58KKNYCZe2rnsrFAZks2u1WTdrKKvYy+57D3HBpujEPH6wFhX2NPX4XoYWge9MLH4F9waNMJYEjKRRUHCiJbBHnqWZs67Cb403EYsH+2ZFBnUlJhv5zdxYZ2x2NiGC5AabmK35AGjkuAF7q0g5do13MEr5SrVqIIgskbXDGCCb4O66EJj7fdKI3vt4KmEMhkuUVzhZSjR9JisNCyJRHpnOnjxAi/IJyG3oigkXCh7a3f2LPvnPEg1yet1gXSj/U4fy4A7N6yuxRDGCdoLoDey1gDL7+L52830I2h1f4FApNQlY6YmOaA+ydVI8EmnQ7KRmUVxZCcP7y97T6EiHxRDUA1ALzCituHHPnfrM6JCtJwybcasOSVSXrRkxaoiSRu00bYdu/bsO6gxculK7TzqrTv3Hjx68uzFqzeADtmyR7lKUUFFkkbp6mMUhmnVGNdvQC8TnwC/Mg4hVp30MhW6LBs0FDgZtW57tWVLnr4sh0dbAAAAAA==) format('woff2')";
+
+// Add the inline font via JS so that we can listen to its load status.
+// Covers digits 0-9 only.
+const dataFont = new FontFace('data-font', src, {unicodeRange: 'U+30-39'});
+document.fonts.add(dataFont);
+</script>
+
+<style>
+@font-face {
+  font-family: remote-font;
+  /* Set a long delay to make sure it doesn't finish loading */
+  src: url('/fonts/Revalia.woff?pipe=trickle(d1)') format('woff');
+}
+
+#target {
+  font: 25px/1 remote-font, data-font, monospace;
+}
+</style>
+<span id="target">0123456789</span>
+<span id="non-target">ABCDEFGHIJ</span>
+<script>
+promise_test(async () => {
+  // The loading of data-font may still be asynchronous. Wait to allow it to load.
+  await dataFont.loaded;
+  assert_false(
+    document.fonts.check('25px/1 remote-font'),
+    'Remote font is still pending');
+  assert_equals(
+    target.offsetWidth, 250,
+    'Digits are in the unicode range of data-font and hence shaped with it');
+  assert_not_equals(
+    document.getElementById('non-target').offsetWidth, 250,
+    'Letters are out of the unicode range of data-font and hence shaped with fallback');
+}, 'We should use the inline custom font to render the page when the primary remote font is loading');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/fixedpos-static-pos-with-viewport-cb-001.html b/third_party/blink/web_tests/external/wpt/css/css-multicol/fixedpos-static-pos-with-viewport-cb-001.html
new file mode 100644
index 0000000..8b71999a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/fixedpos-static-pos-with-viewport-cb-001.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<title>
+  Nested fixedpos static position in a multicol with viewport containing block.
+</title>
+<link rel="help" href="https://www.w3.org/TR/css-position-3/#abspos-breaking">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+  .multicol {
+    column-count: 2;
+    column-fill: auto;
+    column-gap: 0px;
+    width: 50px;
+    height: 100px;
+    margin-top: -100px;
+    margin-left: -175px;
+  }
+  .rel {
+    position: relative;
+  }
+  .abs {
+    position: absolute;
+    width: 25px;
+    height: 400px;
+  }
+  .fixed {
+    position: fixed;
+    width: 100px;
+    height: 100px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="multicol">
+  <div class="rel">
+    <div style="height: 400px;"></div>
+    <div class="abs">
+      <div style="height: 400px;"></div>
+      <div class="fixed" style="background: green;"></div>
+    </div>
+  </div>
+</div>
+<div class="fixed" style="background: red; z-index: -1;"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-multicol/fixedpos-static-pos-with-viewport-cb-002.html b/third_party/blink/web_tests/external/wpt/css/css-multicol/fixedpos-static-pos-with-viewport-cb-002.html
new file mode 100644
index 0000000..c2afef38
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-multicol/fixedpos-static-pos-with-viewport-cb-002.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<title>
+  Nested fixedpos in a multicol with viewport containing block.
+</title>
+<link rel="help" href="https://www.w3.org/TR/css-position-3/#abspos-breaking">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+  .multicol {
+    column-count: 2;
+    column-fill: auto;
+    column-gap: 0px;
+    width: 50px;
+    height: 100px;
+    margin-top: -100px;
+    margin-left: -50px;
+  }
+  .rel {
+    position: relative;
+    height: 300px;
+  }
+  .abs {
+    position: absolute;
+    width: 25px;
+  }
+  .fixed {
+    position: fixed;
+    width: 100px;
+    height: 100px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="multicol">
+  <div class="rel">
+    <div style="height: 100px;"></div>
+    <div class="abs">
+      <div style="height: 200px;"></div>
+      <div class="fixed" style="background: green;"></div>
+    </div>
+  </div>
+</div>
+<div class="fixed" style="background: red; z-index: -1;"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-fit-content.html b/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-fit-content.html
new file mode 100644
index 0000000..a84cc043
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-fit-content.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3973">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1135207">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1232439">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="position: relative; width: 100px; height: 200px;">
+  <div style="position: absolute; top: 0; bottom: 0; left: 0; right: 0; max-height: fit-content; background: green;">
+    <div style="height: 100px;"></div>
+  </div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/inline-event-handlers-UA-code.js b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/inline-event-handlers-UA-code.js
index eaf98f3..3202ce4 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/inline-event-handlers-UA-code.js
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/inline-event-handlers-UA-code.js
@@ -1,3 +1,3 @@
 // import()s in an event handler are resolved relative to the document base.
-window.dummyDiv.setAttribute("onclick", `import('../imports-a.js?label=' + window.label).then(window.continueTest, window.errorTest)`);
+window.dummyDiv.setAttribute("onclick", `import('./imports-a.js?label=' + window.label).then(window.continueTest, window.errorTest)`);
 window.dummyDiv.click(); // different from **on**click()
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/reflected-inline-event-handlers.js b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/reflected-inline-event-handlers.js
index 402219d..923eb7d8 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/reflected-inline-event-handlers.js
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/scripts/reflected-inline-event-handlers.js
@@ -1,3 +1,3 @@
 // import()s in an event handler are resolved relative to the document base.
-window.dummyDiv.setAttribute("onclick", `import('../imports-a.js?label=' + window.label).then(window.continueTest, window.errorTest)`);
+window.dummyDiv.setAttribute("onclick", `import('./imports-a.js?label=' + window.label).then(window.continueTest, window.errorTest)`);
 window.dummyDiv.onclick();
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic-expected.txt
index abfc12f..8e4257e 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic-expected.txt
@@ -1,8 +1,8 @@
 This is a testharness.js-based test.
-FAIL setTimeout should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/imports-a.js?label=setTimeout"
+FAIL setTimeout should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/imports-a.js?label=setTimeout"
 PASS eval should successfully import
 PASS Function should successfully import
-PASS reflected-inline-event-handlers should successfully import
-PASS inline-event-handlers-UA-code should successfully import
+FAIL reflected-inline-event-handlers should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/module/dynamic-import/imports-a.js?label=reflected-inline-event-handlers"
+FAIL inline-event-handlers-UA-code should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/module/dynamic-import/imports-a.js?label=inline-event-handlers-UA-code"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic.html
index 7cf2dac..855705e 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-classic.html
@@ -8,7 +8,18 @@
 
 <div id="dummy"></div>
 
+<base href="scripts/foo/">
 <script>
+// Tweak the base URL of the document here to distinguish:
+// - document URL
+// - document base URL = ../
+// - External scripts' base URL = ./scripts/eval.js etc.
+// - This inline script's base URL = ./scripts/foo/
+document.querySelector("base").remove();
+const base = document.createElement("base");
+base.setAttribute("href", "../");
+document.body.appendChild(base);
+
 function load(scriptSrc) {
   const el = document.createElement("script");
   el.src = scriptSrc;
@@ -41,7 +52,7 @@
     const promise = createTestPromise();
 
     window.label = label;
-    load(`scripts/${label}.js`);
+    load(`dynamic-import/scripts/${label}.js`);
 
     return promise.then(module => {
       assert_true(window.evaluated_imports_a, "The module must have been evaluated");
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module-expected.txt
index abfc12f..8e4257e 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module-expected.txt
@@ -1,8 +1,8 @@
 This is a testharness.js-based test.
-FAIL setTimeout should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/imports-a.js?label=setTimeout"
+FAIL setTimeout should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/imports-a.js?label=setTimeout"
 PASS eval should successfully import
 PASS Function should successfully import
-PASS reflected-inline-event-handlers should successfully import
-PASS inline-event-handlers-UA-code should successfully import
+FAIL reflected-inline-event-handlers should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/module/dynamic-import/imports-a.js?label=reflected-inline-event-handlers"
+FAIL inline-event-handlers-UA-code should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/module/dynamic-import/imports-a.js?label=inline-event-handlers-UA-code"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module.html
index 73986c2..d90af9c 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-external-module.html
@@ -8,7 +8,18 @@
 
 <div id="dummy"></div>
 
+<base href="scripts/foo/">
 <script type="module">
+// Tweak the base URL of the document here to distinguish:
+// - document URL
+// - document base URL = ../
+// - External scripts' base URL = ./scripts/eval.js etc.
+// - This inline script's base URL = ./scripts/foo/
+document.querySelector("base").remove();
+const base = document.createElement("base");
+base.setAttribute("href", "../");
+document.body.appendChild(base);
+
 function load(scriptSrc) {
   const el = document.createElement("script");
   el.type = "module";
@@ -42,7 +53,7 @@
     const promise = createTestPromise();
 
     window.label = label;
-    load(`scripts/${label}.js`);
+    load(`dynamic-import/scripts/${label}.js`);
 
     return promise.then(module => {
       assert_true(window.evaluated_imports_a, "The module must have been evaluated");
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic-expected.txt
index adf45dd..bb78d07 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-PASS setTimeout should successfully import
+FAIL setTimeout should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/imports-a.js?label=setTimeout"
 PASS eval should successfully import
 PASS the Function constructor should successfully import
 FAIL reflected inline event handlers should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/module/dynamic-import/imports-a.js?label=reflected%20inline%20event%20handlers"
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic.html
index 1bd6d7d..2fe1f75 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-classic.html
@@ -3,14 +3,23 @@
 <title>import() inside compiled strings uses the script base URL (= document base URL) inside an inline classic script</title>
 <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
 
-<base href="..">
-
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 
+<body>
 <div id="dummy"></div>
 
+<base href="scripts/foo/">
 <script>
+// Tweak the base URL of the document here to distinguish:
+// - document URL
+// - document base URL = ../
+// - This inline script's base URL = ./scripts/foo/
+document.querySelector("base").remove();
+const base = document.createElement("base");
+base.setAttribute("href", "../");
+document.body.appendChild(base);
+
 function createTestPromise() {
   return new Promise((resolve, reject) => {
     window.continueTest = resolve;
@@ -20,23 +29,7 @@
 
 const dummyDiv = document.querySelector("#dummy");
 
-const evaluators = {
-  setTimeout,
-  eval,
-  "the Function constructor"(x) {
-    Function(x)();
-  },
-  "reflected inline event handlers"(x) {
-    dummyDiv.setAttribute("onclick", x);
-    dummyDiv.onclick();
-  },
-  "inline event handlers triggered via UA code"(x) {
-    dummyDiv.setAttribute("onclick", x);
-    dummyDiv.click(); // different from .**on**click()
-  }
-};
-
-for (const [label, evaluator] of Object.entries(evaluators)) {
+function doTest(label, evaluator, path) {
   promise_test(t => {
     t.add_cleanup(() => {
       dummyDiv.removeAttribute("onclick");
@@ -45,12 +38,36 @@
 
     const promise = createTestPromise();
 
-    evaluator(`import('./imports-a.js?label=${label}').then(window.continueTest, window.errorTest);`);
+    evaluator(`import('${path}/imports-a.js?label=${label}').then(window.continueTest, window.errorTest);`);
 
     return promise.then(module => {
       assert_true(window.evaluated_imports_a, "The module must have been evaluated");
       assert_equals(module.A.from, "imports-a.js", "The module namespace object must be correct");
     });
   }, label + " should successfully import");
-};
+}
+
+// Inline script's base URL should be used.
+doTest("setTimeout", setTimeout, "../../..");
+doTest("eval", eval, "../../..");
+doTest("the Function constructor",
+  (x) => {
+    Function(x)();
+  },
+  "../../..");
+
+// Document's base URL should be used, as there are no active scripts.
+doTest("reflected inline event handlers",
+  (x) => {
+    dummyDiv.setAttribute("onclick", x);
+    dummyDiv.onclick();
+  },
+  ".");
+
+doTest("inline event handlers triggered via UA code",
+  (x) => {
+    dummyDiv.setAttribute("onclick", x);
+    dummyDiv.click(); // different from .**on**click()
+  },
+  ".");
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module-expected.txt
index adf45dd..bb78d07 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-PASS setTimeout should successfully import
+FAIL setTimeout should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/imports-a.js?label=setTimeout"
 PASS eval should successfully import
 PASS the Function constructor should successfully import
 FAIL reflected inline event handlers should successfully import promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch dynamically imported module: http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/module/dynamic-import/imports-a.js?label=reflected%20inline%20event%20handlers"
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module.html
index f5b8574..1691550e 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-base-url-inline-module.html
@@ -3,14 +3,23 @@
 <title>import() inside compiled strings uses the script base URL (= document base URL) inside an inline module script</title>
 <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
 
-<base href="..">
-
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 
+<body>
 <div id="dummy"></div>
 
+<base href="scripts/foo/">
 <script type="module">
+// Tweak the base URL of the document here to distinguish:
+// - document URL
+// - document base URL = ../
+// - This inline script's base URL = ./scripts/foo/
+document.querySelector("base").remove();
+const base = document.createElement("base");
+base.setAttribute("href", "../");
+document.body.appendChild(base);
+
 function createTestPromise() {
   return new Promise((resolve, reject) => {
     window.continueTest = resolve;
@@ -20,23 +29,7 @@
 
 const dummyDiv = document.querySelector("#dummy");
 
-const evaluators = {
-  setTimeout,
-  eval,
-  "the Function constructor"(x) {
-    Function(x)();
-  },
-  "reflected inline event handlers"(x) {
-    dummyDiv.setAttribute("onclick", x);
-    dummyDiv.onclick();
-  },
-  "inline event handlers triggered via UA code"(x) {
-    dummyDiv.setAttribute("onclick", x);
-    dummyDiv.click(); // different from .**on**click()
-  }
-};
-
-for (const [label, evaluator] of Object.entries(evaluators)) {
+function doTest(label, evaluator, path) {
   promise_test(t => {
     t.add_cleanup(() => {
       dummyDiv.removeAttribute("onclick");
@@ -45,12 +38,36 @@
 
     const promise = createTestPromise();
 
-    evaluator(`import('./imports-a.js?label=${label}').then(window.continueTest, window.errorTest);`);
+    evaluator(`import('${path}/imports-a.js?label=${label}').then(window.continueTest, window.errorTest);`);
 
     return promise.then(module => {
       assert_true(window.evaluated_imports_a, "The module must have been evaluated");
       assert_equals(module.A.from, "imports-a.js", "The module namespace object must be correct");
     });
   }, label + " should successfully import");
-};
+}
+
+// Inline script's base URL should be used.
+doTest("setTimeout", setTimeout, "../../..");
+doTest("eval", eval, "../../..");
+doTest("the Function constructor",
+  (x) => {
+    Function(x)();
+  },
+  "../../..");
+
+// Document's base URL should be used, as there are no active scripts.
+doTest("reflected inline event handlers",
+  (x) => {
+    dummyDiv.setAttribute("onclick", x);
+    dummyDiv.onclick();
+  },
+  ".");
+
+doTest("inline event handlers triggered via UA code",
+  (x) => {
+    dummyDiv.setAttribute("onclick", x);
+    dummyDiv.click(); // different from .**on**click()
+  },
+  ".");
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt
deleted file mode 100644
index 1b30fce..0000000
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Test that unresolvable cycles lead to SyntaxError events on window and load events on script assert_array_equals: expected property 2 to be "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'" but got "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable.js'" (expected array ["Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 1, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 2, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 3] got ["Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 1, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable.js'", 2, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 3])
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html
index 8fa2b8b..32f0a4a 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html
@@ -17,8 +17,14 @@
     });
 
     window.addEventListener("load", test_load.step_func_done(ev => {
-      const msg = log[0];
-      assert_array_equals(log, [msg, 1, msg, 2, msg, 3]);
+      assert_equals(log.length, 6, 'Log length');
+      assert_equals(log[1], 1);
+      assert_equals(log[3], 2);
+      assert_equals(log[5], 3);
+      assert_not_equals(log[0], log[2],
+        'Instantiation error objects for different root scripts');
+      assert_equals(log[0], log[4],
+        'Instantiation error objects for the same root script');
     }));
 
     function unreachable() { log.push("unexpected"); }
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt
deleted file mode 100644
index fdde0fa..0000000
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Test that loading a graph in which a module is already errored results in an error. assert_array_equals: expected property 2 to be "Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'" but got "Uncaught SyntaxError: The requested module './instantiation-error-4d.js' does not provide an export named 'something'" (expected array ["Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'", 2] got ["Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-4d.js' does not provide an export named 'something'", 2])
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html
index 238e883..8d3f238 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html
@@ -17,8 +17,11 @@
     });
 
     window.addEventListener("load", test_load.step_func_done(ev => {
-      const msg = log[0];
-      assert_array_equals(log, [msg, 1, msg, 2]);
+      assert_equals(log.length, 4, 'Log length');
+      assert_equals(log[1], 1);
+      assert_equals(log[3], 2);
+      assert_not_equals(log[0], log[2],
+        'Instantiation error objects for different root scripts');
     }));
 
     function unreachable() { log.push("unexpected"); }
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt
deleted file mode 100644
index d60314082..0000000
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Test that loading a graph in which a module is already errored results an error. assert_array_equals: expected property 2 to be "Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'" but got "Uncaught SyntaxError: The requested module './instantiation-error-5e.js' does not provide an export named 'something'" (expected array ["Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'", 2] got ["Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-5e.js' does not provide an export named 'something'", 2])
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html
index de2b6ba..20df0bb 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html
@@ -17,8 +17,11 @@
     });
 
     window.addEventListener("load", test_load.step_func_done(ev => {
-      const msg = log[0];
-      assert_array_equals(log, [msg, 1, msg, 2]);
+      assert_equals(log.length, 4, 'Log length');
+      assert_equals(log[1], 1);
+      assert_equals(log[3], 2);
+      assert_not_equals(log[0], log[2],
+        'Instantiation error objects for different root scripts');
     }));
 
     function unreachable() { log.push("unexpected"); }
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt
index d7dae0f..cba73637 100644
--- a/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt
@@ -37,6 +37,6 @@
 FAIL checkMsectionReuse assert_equals: expected "[{currentDirection:null,mid:null}]" but got "[{currentDirection:\"inactive\",mid:\"0\"}]"
 PASS checkStopAfterCreateOfferWithReusedMsection
 PASS checkAddIceCandidateToStoppedTransceiver
-FAIL checkBundleTagRejected promise_test: Unhandled rejection with value: object "InvalidAccessError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: The m= section with mid='1' should be rejected."
+PASS checkBundleTagRejected
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/virtual/layout_ng_svg_text/paint/invalidation/svg/text-rescale-expected.txt b/third_party/blink/web_tests/flag-specific/composite-after-paint/virtual/layout_ng_svg_text/paint/invalidation/svg/text-rescale-expected.txt
new file mode 100644
index 0000000..399ea51
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/composite-after-paint/virtual/layout_ng_svg_text/paint/invalidation/svg/text-rescale-expected.txt
@@ -0,0 +1,23 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling background of LayoutView #document",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "invalidations": [
+        [0, 114, 192, 46],
+        [0, 14, 192, 46],
+        [310, 114, 91, 46],
+        [310, 14, 91, 46],
+        [210, 114, 91, 46],
+        [210, 14, 91, 46],
+        [0, 3, 9, 2],
+        [9, 3, 4, 2],
+        [6, 3, 4, 2],
+        [0, 0, 1, 1]
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/dedicated-worker-main-script-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/dedicated-worker-main-script-expected.txt
new file mode 100644
index 0000000..e720b4a
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/dedicated-worker-main-script-expected.txt
@@ -0,0 +1,3 @@
+Tests that Fetch.requestPaused is emitted for the main script of dedciated worker
+PASSED: intercepted script
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/dedicated-worker-main-script.js b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/dedicated-worker-main-script.js
new file mode 100644
index 0000000..4eb46e0a
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/dedicated-worker-main-script.js
@@ -0,0 +1,33 @@
+(async function(testRunner) {
+  const {page, session, dp} = await testRunner.startBlank(
+      `Tests that Fetch.requestPaused is emitted for the main script of dedciated worker`);
+
+  await dp.Target.setAutoAttach(
+    {autoAttach: true, waitForDebuggerOnStart: true, flatten: true});
+
+  await dp.Fetch.enable({patterns: [{}]});
+  dp.Fetch.onRequestPaused(event => {
+    if (event.params.request.url.endsWith('/worker.js')) {
+      dp.Fetch.fulfillRequest({
+        requestId: event.params.requestId,
+        responseCode: 200,
+        responseHeaders: [{name: 'Content-Type', value: 'application/x-javascript'}],
+        body: btoa(`console.log('PASSED: intercepted script')`)
+      })
+    }
+  });
+  const consoleMessagePromise = new Promise(resolve => {
+    dp.Target.onAttachedToTarget(async event => {
+      const wdp = session.createChild(event.params.sessionId).protocol;
+      wdp.Runtime.enable();
+      wdp.Runtime.onConsoleAPICalled(e => {
+        resolve(e.params.args[0].value);
+      })
+      wdp.Runtime.runIfWaitingForDebugger();
+    });
+  });
+
+  session.evaluate(`new Worker('/inspector-protocol/network/resources/worker.js')`);
+  testRunner.log(await consoleMessagePromise);
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/paint/invalidation/svg/text-rescale-expected.txt b/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/paint/invalidation/svg/text-rescale-expected.txt
new file mode 100644
index 0000000..f5a870b9
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/paint/invalidation/svg/text-rescale-expected.txt
@@ -0,0 +1,23 @@
+{
+  "layers": [
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "backgroundColor": "#FFFFFF",
+      "invalidations": [
+        [0, 114, 192, 46],
+        [0, 14, 192, 46],
+        [310, 114, 91, 46],
+        [310, 14, 91, 46],
+        [210, 114, 91, 46],
+        [210, 14, 91, 46],
+        [0, 3, 9, 2],
+        [9, 3, 4, 2],
+        [6, 3, 4, 2],
+        [0, 0, 1, 1]
+      ]
+    }
+  ]
+}
+
diff --git a/third_party/blink/web_tests/webgpu/internal_cts_test_splits.pyl b/third_party/blink/web_tests/webgpu/internal_cts_test_splits.pyl
index 2c8f478..9cf64d1 100644
--- a/third_party/blink/web_tests/webgpu/internal_cts_test_splits.pyl
+++ b/third_party/blink/web_tests/webgpu/internal_cts_test_splits.pyl
@@ -28,14 +28,16 @@
   'wpt_internal/webgpu/cts.html?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="2d";readMethod="Sample";format="rgba8unorm";*',
   'wpt_internal/webgpu/cts.html?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:dimension="3d";readMethod="Sample";format="rgba8unorm";*',
 
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=false;drawCallTestParameter="vertexCount"',
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=false;drawCallTestParameter="vertexCount"',
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=true;drawCallTestParameter="vertexCount"',
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=true;drawCallTestParameter="vertexCount"',
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;drawCallTestParameter="indexCount"',
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;drawCallTestParameter="indexCount"',
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;drawCallTestParameter="indexCount"',
-  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;drawCallTestParameter="indexCount"',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="vertexCount";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="instanceCount";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="firstVertex";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="baseVertex";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="indexCount";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="instanceCount";type="float32";*',
+  'wpt_internal/webgpu/cts.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="firstIndex";type="float32";*',
 
   'wpt_internal/webgpu/cts.html?q=webgpu:shader,validation,variable_and_const:initializer_type:variableOrConstant="var";*',
   'wpt_internal/webgpu/cts.html?q=webgpu:shader,validation,variable_and_const:io_shareable_type:storageClass="in";*',
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/cts.html b/third_party/blink/web_tests/wpt_internal/webgpu/cts.html
index 23d6cdf..46bfd60 100644
--- a/third_party/blink/web_tests/wpt_internal/webgpu/cts.html
+++ b/third_party/blink/web_tests/wpt_internal/webgpu/cts.html
@@ -1310,6 +1310,8 @@
 <meta name=variant content='?q=webgpu:api,validation,createBindGroup:texture_must_have_correct_dimension:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroup:buffer_offset_and_size_for_bind_groups_match:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroup:minBindingSize:*'>
+<meta name=variant content='?q=webgpu:api,validation,createBindGroup:buffer,resource_state:*'>
+<meta name=variant content='?q=webgpu:api,validation,createBindGroup:texture,resource_state:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:duplicate_bindings:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:visibility:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:multisampled_validation:*'>
@@ -1356,7 +1358,7 @@
 <meta name=variant content='?q=webgpu:api,validation,createView:creating_cube_map_texture_view:*'>
 <meta name=variant content='?q=webgpu:api,validation,createView:creating_cube_map_texture_view_with_a_non_square_texture:*'>
 <meta name=variant content='?q=webgpu:api,validation,createView:test_the_format_compatibility_rules_when_creating_a_texture_view:*'>
-<meta name=variant content='?q=webgpu:api,validation,createView:it_is_invalid_to_use_a_texture_view_created_from_a_destroyed_texture:*'>
+<meta name=variant content='?q=webgpu:api,validation,createView:texture_state:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_usage_and_aspect:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_buffer_size:*'>
 <meta name=variant content='?q=webgpu:api,validation,encoding,cmds,buffer_texture_copies:depth_stencil_format,copy_buffer_offset:*'>
@@ -1815,24 +1817,46 @@
 <meta name=variant content='?q=webgpu:shader,execution,robust_access:linear_memory:storageClass="workgroup";access="write";atomic=false;baseType="bool";*'>
 <meta name=variant content='?q=webgpu:shader,execution,robust_access:linear_memory:storageClass="workgroup";access="write";atomic=true;baseType="i32";*'>
 <meta name=variant content='?q=webgpu:shader,execution,robust_access:linear_memory:storageClass="workgroup";access="write";atomic=true;baseType="u32";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=false;drawCallTestParameter="vertexCount"'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=false;drawCallTestParameter="instanceCount";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=false;drawCallTestParameter="firstVertex";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=false;drawCallTestParameter="firstInstance";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=true;drawCallTestParameter="vertexCount"'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=true;drawCallTestParameter="instanceCount";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=true;drawCallTestParameter="firstVertex";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=false;indirect=true;drawCallTestParameter="firstInstance";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;drawCallTestParameter="indexCount"'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;drawCallTestParameter="instanceCount";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;drawCallTestParameter="firstIndex";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;drawCallTestParameter="baseVertex";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=false;drawCallTestParameter="firstInstance";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;drawCallTestParameter="indexCount"'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;drawCallTestParameter="instanceCount";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;drawCallTestParameter="firstIndex";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;drawCallTestParameter="baseVertex";*'>
-<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertexAccess:indexed=true;indirect=true;drawCallTestParameter="firstInstance";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="vertexCount";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="vertexCount";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="vertexCount";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="vertexCount";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="instanceCount";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="instanceCount";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="instanceCount";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="instanceCount";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="firstVertex";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="firstVertex";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="firstVertex";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=false;indirect=true;drawCallTestParameter="firstVertex";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="baseVertex";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="baseVertex";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="baseVertex";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="baseVertex";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="indexCount";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="indexCount";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="indexCount";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="indexCount";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="instanceCount";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="instanceCount";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="instanceCount";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="instanceCount";type="float32x4";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="firstIndex";type="float32";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="firstIndex";type="float32x2";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="firstIndex";type="float32x3";*'>
+<meta name=variant content='?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:indexed=true;indirect=true;drawCallTestParameter="firstIndex";type="float32x4";*'>
 <meta name=variant content='?q=webgpu:shader,validation,variable_and_const:initializer_type:variableOrConstant="var";*'>
 <meta name=variant content='?q=webgpu:shader,validation,variable_and_const:initializer_type:variableOrConstant="let";*'>
 <meta name=variant content='?q=webgpu:shader,validation,variable_and_const:io_shareable_type:storageClass="in";*'>
diff --git a/third_party/libusb/BUILD.gn b/third_party/libusb/BUILD.gn
index c60bf106a..c77e2e2 100644
--- a/third_party/libusb/BUILD.gn
+++ b/third_party/libusb/BUILD.gn
@@ -3,7 +3,7 @@
 # found in the LICENSE file.
 
 # libusb is only used by //services/device/usb on Windows and macOS.
-assert(is_win || is_mac)
+assert(is_mac)
 
 import("//build/config/chromeos/ui_mode.gni")
 import("//build/config/features.gni")
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 5d47a964..043413c 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -28324,7 +28324,7 @@
   <int value="1089" label="DELETED_DATAREDUCTIONPROXY_GETDATAUSAGE"/>
   <int value="1090"
       label="DELETED_EASYUNLOCKPRIVATE_SETUPCONNECTIONGETDEVICEADDRESS"/>
-  <int value="1091" label="TABCAPTURE_CAPTUREOFFSCREENTAB"/>
+  <int value="1091" label="DELETED_TABCAPTURE_CAPTUREOFFSCREENTAB"/>
   <int value="1092" label="LANGUAGESETTINGSPRIVATE_ADDSPELLCHECKWORD"/>
   <int value="1093" label="LANGUAGESETTINGSPRIVATE_REMOVESPELLCHECKWORD"/>
   <int value="1094" label="SETTINGSPRIVATE_GETDEFAULTZOOMFUNCTION"/>
@@ -28821,6 +28821,7 @@
   <int value="1564" label="SCRIPTING_GETREGISTEREDCONTENTSCRIPTS"/>
   <int value="1565" label="OS_TELEMETRY_GETVPDINFO"/>
   <int value="1566" label="ACCESSIBILITY_PRIVATE_MAGNIFIERCENTERONPOINT"/>
+  <int value="1567" label="STORAGE_SETACCESSLEVEL"/>
 </enum>
 
 <enum name="ExtensionIconState">
@@ -46699,6 +46700,8 @@
   <int value="-1969636234" label="OmniboxRefinedFocusState:disabled"/>
   <int value="-1966445414" label="StylusBatteryStatus:disabled"/>
   <int value="-1965587041" label="omnibox-tab-switch-suggestions"/>
+  <int value="-1964730371"
+      label="AutofillFillMerchantPromoCodeFields:disabled"/>
   <int value="-1964261747" label="WebVrVsyncAlign:disabled"/>
   <int value="-1963838301"
       label="ShowSyncPausedReasonCookiesClearedOnExit:enabled"/>
@@ -50730,6 +50733,7 @@
   <int value="1276120671" label="AutofillEnableOfferNotification:enabled"/>
   <int value="1276209777" label="ntp-switch-to-existing-tab"/>
   <int value="1277386636" label="QueryInOmnibox:disabled"/>
+  <int value="1278244152" label="AutofillFillMerchantPromoCodeFields:enabled"/>
   <int value="1278512661" label="SmartDimNewMlAgent:disabled"/>
   <int value="1279422279" label="query-tiles-country-code"/>
   <int value="1279584261" label="enable-carrier-switching"/>
@@ -73815,6 +73819,9 @@
 </enum>
 
 <enum name="ServiceWorkerInternalsLinkQuery">
+  <obsolete>
+    Removed 2021-08-03.
+  </obsolete>
   <int value="0" label="Accessed from DevTools"/>
   <int value="1" label="Accessed from outside DevTools"/>
 </enum>
diff --git a/tools/metrics/histograms/metadata/apps/histograms.xml b/tools/metrics/histograms/metadata/apps/histograms.xml
index 775e776..92f40a57 100644
--- a/tools/metrics/histograms/metadata/apps/histograms.xml
+++ b/tools/metrics/histograms/metadata/apps/histograms.xml
@@ -1534,7 +1534,7 @@
 </histogram>
 
 <histogram name="Apps.AppListStateTransitionSource"
-    enum="AppListStateTransitionSource" expires_after="2021-08-09">
+    enum="AppListStateTransitionSource" expires_after="2022-02-09">
   <owner>newcomer@chromium.org</owner>
   <owner>mmourgos@chromium.org</owner>
   <summary>
@@ -1626,7 +1626,7 @@
 </histogram>
 
 <histogram name="Apps.AppsInFolders{AppListFolderExperiment}" units="Apps"
-    expires_after="2021-08-09">
+    expires_after="2022-02-09">
   <owner>mmourgos@chromium.org</owner>
   <owner>newcomer@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml
index a8bccce..69ddb5b 100644
--- a/tools/metrics/histograms/metadata/autofill/histograms.xml
+++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -2251,16 +2251,6 @@
   </summary>
 </histogram>
 
-<histogram name="Autofill.StoredCreditCardCount.Server.WithCardArtImage"
-    units="units" expires_after="M98">
-  <owner>siyua@chromium.org</owner>
-  <owner>payments-autofill-team@google.com</owner>
-  <summary>
-    The number of server cards with a valid card art image, measured at Chrome
-    profile launch.
-  </summary>
-</histogram>
-
 <histogram name="Autofill.StoredCreditCardCount.Server.WithVirtualCardMetadata"
     units="units" expires_after="M98">
   <owner>siyua@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/bluetooth/histograms.xml b/tools/metrics/histograms/metadata/bluetooth/histograms.xml
index d869b20..47917a8 100644
--- a/tools/metrics/histograms/metadata/bluetooth/histograms.xml
+++ b/tools/metrics/histograms/metadata/bluetooth/histograms.xml
@@ -204,7 +204,7 @@
 
 <histogram
     name="Bluetooth.ChromeOS.Pairing.Result.FailureReason{BluetoothTransportTypes}"
-    enum="BluetoothConnectionFailureReason" expires_after="2021-09-19">
+    enum="BluetoothConnectionFailureReason" expires_after="2022-08-01">
   <owner>khorimoto@chromium.org</owner>
   <owner>cros-connectivity@google.com</owner>
   <summary>
@@ -221,7 +221,7 @@
 </histogram>
 
 <histogram name="Bluetooth.ChromeOS.Pairing.Result{BluetoothTransportTypes}"
-    enum="BooleanSuccess" expires_after="2021-09-12">
+    enum="BooleanSuccess" expires_after="2022-08-01">
   <owner>khorimoto@chromium.org</owner>
   <owner>cros-connectivity@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/cross_device/histograms.xml b/tools/metrics/histograms/metadata/cross_device/histograms.xml
index 702c110..8a2da521 100644
--- a/tools/metrics/histograms/metadata/cross_device/histograms.xml
+++ b/tools/metrics/histograms/metadata/cross_device/histograms.xml
@@ -1418,7 +1418,7 @@
 </histogram>
 
 <histogram name="InstantTethering.HostScanResult"
-    enum="InstantTethering_HostScanResult" expires_after="2021-09-12">
+    enum="InstantTethering_HostScanResult" expires_after="2022-08-01">
   <owner>hansberry@chromium.org</owner>
   <owner>better-together-dev@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
index 164e31a..eeda8912 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -6751,6 +6751,9 @@
 </histogram_suffixes>
 
 <histogram_suffixes name="HistogramInconsistencies" separator=".">
+  <obsolete>
+    Removed in 2017.
+  </obsolete>
   <suffix name="Cronet" label="Cronet histograms."/>
   <affected-histogram name="Histogram.InconsistenciesBrowser"/>
   <affected-histogram name="Histogram.InconsistenciesBrowserUnique"/>
diff --git a/tools/metrics/histograms/metadata/media/histograms.xml b/tools/metrics/histograms/metadata/media/histograms.xml
index 8f09da43..7007086 100644
--- a/tools/metrics/histograms/metadata/media/histograms.xml
+++ b/tools/metrics/histograms/metadata/media/histograms.xml
@@ -3271,7 +3271,7 @@
 </histogram>
 
 <histogram name="Media.PipelineStatus.Start" enum="PipelineStatus"
-    expires_after="2021-08-09">
+    expires_after="2022-08-09">
   <owner>xhwang@chromium.org</owner>
   <owner>media-dev@chromium.org</owner>
   <summary>
@@ -5212,6 +5212,9 @@
 
 <histogram name="MediaRouter.CastStreaming.Start.Failure"
     enum="MirrorFailureType" expires_after="2021-08-09">
+  <obsolete>
+    Unused after August 2021.
+  </obsolete>
   <owner>takumif@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
@@ -5406,7 +5409,7 @@
 </histogram>
 
 <histogram name="MediaRouter.PresentationRequest.UrlBySink"
-    enum="PresentationUrlBySink" expires_after="2021-09-05">
+    enum="PresentationUrlBySink" expires_after="2022-02-01">
   <owner>mfoltz@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index 09850a55..8d0901c 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -5930,6 +5930,34 @@
   </summary>
 </histogram>
 
+<histogram name="FamilyUser.ManagedSiteListCount.Approved"
+    units="Number of approved sites" expires_after="2022-07-28">
+  <owner>agawronska@chromium.org</owner>
+  <owner>tobyhuang@chromium.org</owner>
+  <owner>xiqiruan@chromium.org</owner>
+  <owner>cros-families-eng@google.com</owner>
+  <summary>
+    Records number of approved urls and hosts for currently active Family Link
+    user. This metric is recorded at the beginning of first active session daily
+    and when manual hosts and manual urls policies are changed. Ignores the
+    reports during OOBE and sign out.
+  </summary>
+</histogram>
+
+<histogram name="FamilyUser.ManagedSiteListCount.Blocked"
+    units="Number of blocked sites" expires_after="2022-07-28">
+  <owner>agawronska@chromium.org</owner>
+  <owner>tobyhuang@chromium.org</owner>
+  <owner>xiqiruan@chromium.org</owner>
+  <owner>cros-families-eng@google.com</owner>
+  <summary>
+    Records number of blocked urls and hosts for currently active Family Link
+    user. This metric is recorded at the beginning of first active session daily
+    and when manual hosts and manual urls policies are changed. Ignores the
+    reports during OOBE and sign out.
+  </summary>
+</histogram>
+
 <histogram name="FamilyUser.NewUserAdded" enum="NewUserAdded"
     expires_after="2021-12-12">
   <owner>agawronska@chromium.org</owner>
@@ -7567,89 +7595,6 @@
   </summary>
 </histogram>
 
-<histogram name="Histogram.BadConstructionArguments" enum="HistogramNameHash"
-    expires_after="M87">
-  <owner>asvitkine@chromium.org</owner>
-  <owner>bcwhite@chromium.org</owner>
-  <summary>
-    The hash codes of histograms that were found to have bad construction
-    arguments. These would be DCHECK exceptions in debug builds but have simply
-    been logged and corrected as best as possible rather than crash.
-  </summary>
-</histogram>
-
-<histogram name="Histogram.InconsistentSnapshotBrowser" units="units"
-    expires_after="M85">
-  <owner>asvitkine@chromium.org</owner>
-  <summary>
-    The amount of discrepancy found when examining a single histogram's data in
-    the browser process for transmission via UMA. Inconsistent data is NOT
-    transmitted via UMA.
-  </summary>
-</histogram>
-
-<histogram name="Histogram.InconsistentSnapshotChildProcess" units="units"
-    expires_after="M85">
-  <owner>asvitkine@chromium.org</owner>
-  <summary>
-    The amount of discrepancy found when examining a single histogram's data in
-    a child process for transmission via UMA. Inconsistent data is NOT
-    transmitted via UMA.
-  </summary>
-</histogram>
-
-<histogram name="Histogram.MismatchedConstructionArguments"
-    enum="HistogramNameHash" expires_after="M87">
-  <owner>asvitkine@chromium.org</owner>
-  <owner>bcwhite@chromium.org</owner>
-  <summary>
-    The hash codes of histograms that were found to have construction arguments
-    different from a previous instantiation of the same name. Entries here have
-    conflicting definitions and should be investigated. Data collected for the
-    secondary definitions will be silently dropped.
-  </summary>
-</histogram>
-
-<histogram name="Histogram.PendingProcessNotResponding" units="processes"
-    expires_after="M79">
-  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
-  <summary>
-    When metrics services (UMA) ran an update, the number of child processes
-    that did not respond, providing histogram updates, before the timeout.
-  </summary>
-</histogram>
-
-<histogram name="Histogram.PermanentNameChanged" enum="HistogramNameHash"
-    expires_after="M85">
-  <owner>asvitkine@chromium.org</owner>
-  <owner>bcwhite@chromium.org</owner>
-  <summary>
-    The hash codes of histograms of which the external name storage was altered
-    after the histogram was created.
-  </summary>
-</histogram>
-
-<histogram name="Histogram.ReceivedProcessGroupCount" enum="BooleanEnabled"
-    expires_after="M79">
-  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
-  <summary>
-    When metrics services (UMA) ran an update, the number of times the process
-    groups (renderer processes and plugin/gpu processes) did not respond,
-    providing histogram updates, before the timeout.
-  </summary>
-</histogram>
-
-<histogram name="Histogram.TooManyBuckets.1000" enum="HistogramNameHash"
-    expires_after="M78">
-  <owner>asvitkine@chromium.org</owner>
-  <owner>bcwhite@chromium.org</owner>
-  <summary>
-    The hash codes of histograms that were found to request more than 1000
-    buckets. These would be DCHECK exceptions in debug builds if the limit is
-    lowered so are being logged before that change.
-  </summary>
-</histogram>
-
 <histogram name="HostedAppFrame.ContentSettings.ImagePressed"
     enum="ContentSettingImageType" expires_after="2021-02-01">
   <owner>calamity@chromium.org</owner>
@@ -8511,7 +8456,7 @@
 </histogram>
 
 <histogram name="LanguageDetection.TFLiteModel.LanguageDetectionModelState"
-    enum="LanguageDetectionModelState" expires_after="M94">
+    enum="LanguageDetectionModelState" expires_after="M98">
   <owner>mcrouse@chromium.org</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -8521,7 +8466,7 @@
 </histogram>
 
 <histogram name="LanguageDetection.TFLiteModel.WasModelAvailableForDetection"
-    enum="BooleanAvailable" expires_after="M94">
+    enum="BooleanAvailable" expires_after="M98">
   <owner>mcrouse@chromium.org</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
index b1445ae..13fea6b 100644
--- a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
+++ b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
@@ -28,6 +28,13 @@
   <variant name="Voice"/>
 </variants>
 
+<variants name="SignalType">
+  <variant name="HistogramEnum" summary="enum histogram"/>
+  <variant name="HistogramValue" summary="value histogram"/>
+  <variant name="Unknown" summary="unknown"/>
+  <variant name="UserAction" summary="user action"/>
+</variants>
+
 <histogram name="SegmentationPlatform.AdaptiveToolbar.ModelScore.{SegmentID}"
     units="%" expires_after="2022-02-01">
   <owner>shaktisahu@chromium.org</owner>
@@ -72,6 +79,19 @@
   </summary>
 </histogram>
 
+<histogram name="SegmentationPlatform.Signals.ListeningCount.{SignalType}"
+    units="signals" expires_after="2022-02-01">
+  <owner>nyquist@chromium.org</owner>
+  <owner>shaktisahu@chromium.org</owner>
+  <owner>chrome-segmentation-platform@google.com</owner>
+  <summary>
+    Records then number of {SignalType} signals the segmentation platform
+    currently listens to. Recorded whenever we update the set of {SignalType}
+    signals that the segmentation platform is currently listening to.
+  </summary>
+  <token key="SignalType" variants="SignalType"/>
+</histogram>
+
 </histograms>
 
 </histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/service/histograms.xml b/tools/metrics/histograms/metadata/service/histograms.xml
index 9bb7240..0943cb0 100644
--- a/tools/metrics/histograms/metadata/service/histograms.xml
+++ b/tools/metrics/histograms/metadata/service/histograms.xml
@@ -421,6 +421,9 @@
 
 <histogram name="ServiceWorker.InternalsPageAccessed"
     enum="ServiceWorkerInternalsLinkQuery" expires_after="M94">
+  <obsolete>
+    Removed 2021-08-03.
+  </obsolete>
   <owner>bashi@chromium.org</owner>
   <owner>chrome-worker@google.com</owner>
   <summary>
@@ -1104,7 +1107,7 @@
 </histogram>
 
 <histogram name="ServiceWorker.Storage.DeleteAndStartOverResult"
-    enum="ServiceWorkerDeleteAndStartOverResult" expires_after="M94">
+    enum="ServiceWorkerDeleteAndStartOverResult" expires_after="M100">
   <owner>bashi@chromium.org</owner>
   <owner>chrome-worker@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/translate/histograms.xml b/tools/metrics/histograms/metadata/translate/histograms.xml
index 0e140db..0d0201b 100644
--- a/tools/metrics/histograms/metadata/translate/histograms.xml
+++ b/tools/metrics/histograms/metadata/translate/histograms.xml
@@ -1307,7 +1307,7 @@
 
 <histogram
     name="TranslateModelService.LanguageDetectionModel.PendingRequestCallbacks"
-    units="requests" expires_after="M94">
+    units="requests" expires_after="M98">
   <owner>mcrouse@chromium.org</owner>
   <owner>chrome-language@chromium.org</owner>
   <summary>
@@ -1318,7 +1318,7 @@
 </histogram>
 
 <histogram name="TranslateModelService.LanguageDetectionModel.WasLoaded"
-    enum="BooleanLoaded" expires_after="M94">
+    enum="BooleanLoaded" expires_after="M98">
   <owner>mcrouse@chromium.org</owner>
   <owner>chrome-language@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/uma/histograms.xml b/tools/metrics/histograms/metadata/uma/histograms.xml
index 34cfe1bc..7e57485 100644
--- a/tools/metrics/histograms/metadata/uma/histograms.xml
+++ b/tools/metrics/histograms/metadata/uma/histograms.xml
@@ -42,6 +42,107 @@
       summary="For &quot;zygote&quot; process metrics."/>
 </variants>
 
+<histogram name="Histogram.BadConstructionArguments" enum="HistogramNameHash"
+    expires_after="M95">
+  <owner>asvitkine@chromium.org</owner>
+  <owner>bcwhite@chromium.org</owner>
+  <owner>src/base/metrics/OWNERS</owner>
+  <summary>
+    The hash codes of histograms that were found to have bad construction
+    arguments. These would be DCHECK exceptions in debug builds but have simply
+    been logged and corrected as best as possible rather than crash.
+  </summary>
+</histogram>
+
+<histogram name="Histogram.InconsistentSnapshotBrowser" units="units"
+    expires_after="M85">
+  <obsolete>
+    Removed 07/2017.
+  </obsolete>
+  <owner>asvitkine@chromium.org</owner>
+  <summary>
+    The amount of discrepancy found when examining a single histogram's data in
+    the browser process for transmission via UMA. Inconsistent data is NOT
+    transmitted via UMA.
+  </summary>
+</histogram>
+
+<histogram name="Histogram.InconsistentSnapshotChildProcess" units="units"
+    expires_after="M85">
+  <obsolete>
+    Removed 07/2017.
+  </obsolete>
+  <owner>asvitkine@chromium.org</owner>
+  <summary>
+    The amount of discrepancy found when examining a single histogram's data in
+    a child process for transmission via UMA. Inconsistent data is NOT
+    transmitted via UMA.
+  </summary>
+</histogram>
+
+<histogram name="Histogram.MismatchedConstructionArguments"
+    enum="HistogramNameHash" expires_after="M95">
+  <owner>asvitkine@chromium.org</owner>
+  <owner>bcwhite@chromium.org</owner>
+  <owner>src/base/metrics/OWNERS</owner>
+  <summary>
+    The hash codes of histograms that were found to have construction arguments
+    different from a previous instantiation of the same name. Entries here have
+    conflicting definitions and should be investigated. Data collected for the
+    secondary definitions will be silently dropped.
+  </summary>
+</histogram>
+
+<histogram name="Histogram.PendingProcessNotResponding" units="processes"
+    expires_after="M79">
+  <obsolete>
+    Removed 06/2021.
+  </obsolete>
+  <owner>asvitkine@chromium.org</owner>
+  <summary>
+    When metrics services (UMA) ran an update, the number of child processes
+    that did not respond, providing histogram updates, before the timeout.
+  </summary>
+</histogram>
+
+<histogram name="Histogram.PermanentNameChanged" enum="HistogramNameHash"
+    expires_after="M85">
+  <obsolete>
+    No longer in the codebase as of 06/2021.
+  </obsolete>
+  <owner>asvitkine@chromium.org</owner>
+  <owner>bcwhite@chromium.org</owner>
+  <summary>
+    The hash codes of histograms of which the external name storage was altered
+    after the histogram was created.
+  </summary>
+</histogram>
+
+<histogram name="Histogram.ReceivedProcessGroupCount" enum="BooleanEnabled"
+    expires_after="M79">
+  <obsolete>
+    Removed 06/2021.
+  </obsolete>
+  <owner>asvitkine@chromium.org</owner>
+  <summary>
+    When metrics services (UMA) ran an update, the number of times the process
+    groups (renderer processes and plugin/gpu processes) did not respond,
+    providing histogram updates, before the timeout.
+  </summary>
+</histogram>
+
+<histogram name="Histogram.TooManyBuckets.1000" enum="HistogramNameHash"
+    expires_after="M95">
+  <owner>asvitkine@chromium.org</owner>
+  <owner>bcwhite@chromium.org</owner>
+  <owner>src/base/metrics/OWNERS</owner>
+  <summary>
+    The hash codes of histograms that were found to request more than 1000
+    buckets. These would be DCHECK exceptions in debug builds if the limit is
+    lowered so are being logged before that change.
+  </summary>
+</histogram>
+
 <histogram name="UMA.ActualLogUploadInterval" units="minutes"
     expires_after="2021-12-26">
   <owner>asvitkine@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/xr/histograms.xml b/tools/metrics/histograms/metadata/xr/histograms.xml
index 06fdce6..297ec5d3 100644
--- a/tools/metrics/histograms/metadata/xr/histograms.xml
+++ b/tools/metrics/histograms/metadata/xr/histograms.xml
@@ -29,7 +29,7 @@
   </summary>
 </histogram>
 
-<histogram name="VRSessionTime" units="ms" expires_after="2021-09-12">
+<histogram name="VRSessionTime" units="ms" expires_after="2022-03-12">
   <owner>alcooper@chromium.org</owner>
   <owner>xr-dev@chromium.org</owner>
   <summary>
@@ -38,7 +38,7 @@
   </summary>
 </histogram>
 
-<histogram name="VRSessionVideoCount" units="units" expires_after="2021-09-12">
+<histogram name="VRSessionVideoCount" units="units" expires_after="2022-03-12">
   <owner>alcooper@chromium.org</owner>
   <owner>xr-dev@chromium.org</owner>
   <summary>
@@ -47,7 +47,7 @@
   </summary>
 </histogram>
 
-<histogram name="VRSessionVideoTime" units="ms" expires_after="2021-09-12">
+<histogram name="VRSessionVideoTime" units="ms" expires_after="2022-03-12">
   <owner>alcooper@chromium.org</owner>
   <owner>xr-dev@chromium.org</owner>
   <summary>
@@ -57,7 +57,7 @@
   </summary>
 </histogram>
 
-<histogram name="VRViewerType" enum="VRViewerType" expires_after="2021-09-19">
+<histogram name="VRViewerType" enum="VRViewerType" expires_after="2022-03-19">
   <owner>alcooper@chromium.org</owner>
   <owner>xr-dev@chromium.org</owner>
   <summary>The type of headset being used for VR.</summary>
@@ -97,7 +97,7 @@
 </histogram>
 
 <histogram name="XR.WebXR.ReferenceSpace.Succeeded" enum="XRReferenceSpaceType"
-    expires_after="2021-09-19">
+    expires_after="2022-03-19">
   <owner>alcooper@chromium.org</owner>
   <owner>xr-dev@chromium.org</owner>
   <summary>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 53d6dbf..493a4f48 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -10,7 +10,7 @@
         },
         "linux": {
             "hash": "672ed966e2e8072a7d6322367ac35c5fedd1ff9f",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/70e408c9bc8610ab9a8484b2ed91461d8416166e/trace_processor_shell"
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/171e281775914c1c427b926666bf1c0f8070e762/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/tracing/adb_profile_chrome_startup.py b/tools/tracing/adb_profile_chrome_startup.py
index 9adf5e7e..cbe7927 100644
--- a/tools/tracing/adb_profile_chrome_startup.py
+++ b/tools/tracing/adb_profile_chrome_startup.py
@@ -8,9 +8,7 @@
 """
 
 import os
-import subprocess
 import sys
-import webbrowser
 
 _CATAPULT_DIR = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir,
                              'third_party', 'catapult')
@@ -79,32 +77,4 @@
                                        compress=options.compress,
                                        trace_format=options.trace_format)
 
-  if options.view:
-    _DisplayInBrowser(options, trace_file)
-
   return trace_file
-
-
-def _DisplayInBrowser(options, trace_file):
-  """Displays trace in browser.
-
-  Args:
-    options: Command line flags with their specified values as
-        returned by optparse.
-    trace_file: Saved trace filename.
-  """
-  if options.trace_format == 'proto':
-    open_trace_ui_path = os.path.join(
-        os.path.dirname(__file__), os.pardir, os.pardir,
-        'third_party/perfetto/tools/open_trace_in_ui')
-    trace_file_path = os.path.join(os.path.dirname(__file__), os.pardir,
-                                   os.pardir, trace_file)
-    cmd = [open_trace_ui_path, '-i', trace_file_path]
-    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-    stderr = p.communicate()[1]
-    if p.returncode != 0:
-      raise RuntimeError('failed: ' + stderr)
-  elif sys.platform == 'darwin':
-    os.system('/usr/bin/open %s' % os.path.abspath(trace_file))
-  else:
-    webbrowser.open(trace_file)
diff --git a/tools/tracing/display_in_browser.py b/tools/tracing/display_in_browser.py
new file mode 100644
index 0000000..53fee00
--- /dev/null
+++ b/tools/tracing/display_in_browser.py
@@ -0,0 +1,40 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""
+Displays a trace file in a browser.
+"""
+
+import os
+import sys
+import logging
+import subprocess
+import webbrowser
+
+
+def DisplayInBrowser(trace_file, options):
+  """Displays trace in browser.
+
+  Args:
+    options: Command line flags with their specified values as
+        returned by optparse.
+    trace_file: Saved trace filename.
+  """
+  if options.trace_format == 'json':
+    raise Exception('The --view option and --trace_format=json are not'
+                    'supported together')
+  if options.trace_format == 'proto':
+    logging.info('Opening trace in browser')
+    open_trace_ui_path = os.path.join(
+        os.path.dirname(__file__), os.pardir, os.pardir,
+        'third_party/perfetto/tools/open_trace_in_ui')
+    trace_file_path = os.path.abspath(trace_file)
+    cmd = [open_trace_ui_path, '-i', trace_file_path]
+    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    stderr = p.communicate()[1]
+    if p.returncode != 0:
+      raise RuntimeError('failed: ' + stderr)
+  elif sys.platform == 'darwin':
+    os.system('/usr/bin/open %s' % os.path.abspath(trace_file))
+  else:
+    webbrowser.open(trace_file)
diff --git a/tools/tracing/flag_utils.py b/tools/tracing/flag_utils.py
index 090b924..50b06f5 100644
--- a/tools/tracing/flag_utils.py
+++ b/tools/tracing/flag_utils.py
@@ -5,8 +5,12 @@
 This script provides the necessary flags to symbolize proto traces.
 """
 
+import os
+import sys
 import optparse
 import logging
+import webbrowser
+import subprocess
 
 
 def SymbolizeOptions(parser):
diff --git a/tools/tracing/profile_chrome_startup b/tools/tracing/profile_chrome_startup
index 979b41ad..db260ee 100755
--- a/tools/tracing/profile_chrome_startup
+++ b/tools/tracing/profile_chrome_startup
@@ -15,6 +15,7 @@
 import adb_profile_chrome_startup
 import symbolize_trace
 import flag_utils
+import display_in_browser
 
 sys.path.insert(0, os.path.join(os.path.dirname(__file__),
                                 os.pardir, os.pardir, 'third_party',
@@ -116,13 +117,13 @@
     raise Exception('Platform "%s" is not supported. '
                     'Specify platform with the --platform flag.' % (options.platform))
 
-  # TODO(rhuckleberry): Make --view flag show the trace after symbolization, instead
-  # of after finishing tracing.
-
   # Symbolize Trace
   if options.trace_format is None or options.trace_format.lower() != 'proto':
     raise Exception('Symbolization is currently only supported for protos.')
   symbolize_trace.SymbolizeTrace(trace_file=trace_file, options=options)
 
+  if options.view:
+    display_in_browser.DisplayInBrowser(options.output_file, options)
+
 if __name__ == '__main__':
   sys.exit(main())
diff --git a/tools/tracing/rename_breakpad.py b/tools/tracing/rename_breakpad.py
new file mode 100644
index 0000000..2613212
--- /dev/null
+++ b/tools/tracing/rename_breakpad.py
@@ -0,0 +1,98 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""
+Renames breakpad file to the standard module id format. See
+perfetto::profiling::BreakpadSymbolizer for more naming information.
+"""
+
+import os
+import logging
+import shutil
+
+
+def RenameBreakpadFiles(breakpad_dir, breakpad_output_dir):
+  """Move breakpad files to new directory and rename them.
+
+  Breakpad files (files that contain '.breakpad') are renamed
+  to follow a '<module_id>.breakpad' with upper-case hexadecimal
+  naming scheme and moved to the |breakpad_output_dir| directory.
+  See perfetto::profiling::BreakpadSymbolizer for more naming
+  information. All other non-breakpad or misformatted breakpad files
+  remain in the same directory with the same filename.
+
+  Args:
+    breakpad_dir: local directory that stores symbol files in its subtree.
+    breakpad_output_dir: local path to store trace symbol breakpad file.
+
+  Raises:
+    AssertionError: if a file's module_id is None or repeated by
+      another file.
+  """
+  # Runs on every directory in the subtree. Scans directories from top-down
+  # (root to leaves) so that we don't rename files multiple times in the common
+  # case where |breakpad_dir| = |breakpad_output_dir|.
+  logging.debug('Renaming breakpad files.')
+  for subdir_path, _, filenames in os.walk(breakpad_dir, topdown=True):
+    for filename in filenames:
+      file_path = os.path.abspath(os.path.join(subdir_path, filename))
+
+      if not '.breakpad' in filename:
+        logging.debug("File is not a breakpad file: " + file_path)
+        continue
+
+      module_id = _ExtractModuleIdIfValidBreakpad(file_path)
+      if module_id is None:
+        logging.debug("Failed to extract file module id: " + file_path)
+        continue
+
+      new_filename = module_id + '.breakpad'
+      dest_path = os.path.abspath(
+          os.path.join(breakpad_output_dir, new_filename))
+
+      # Ensure all new filenames (module ids) are unique. If there is module id
+      # repetition, the first file with the same module_id has already been
+      # moved.
+      if os.path.exists(dest_path):
+        raise AssertionError(('Symbol file modules ids are not '
+                              'unique: %s\nSee these files: %s, %s' %
+                              (module_id, file_path, dest_path)))
+
+      shutil.move(file_path, dest_path)
+
+  # TODO(rhuckleberry): After moving breakpad files we can be left with empty
+  # dirs. Clean up these empty dirs if user specifies |breakpad_output_dir|.
+  # Doesn't matter if |breakpad_output_dir| is a temporary directory.
+
+
+def _ExtractModuleIdIfValidBreakpad(file_path):
+  """Extracts breakpad file's module id if the file is valid.
+
+  A breakpad file is valid for extracting its module id if it
+  has a valid MODULE record, formatted like so:
+  MODULE operatingsystem architecture id name
+
+  For example:
+  MODULE mac x86_64 1240DF90E9AC39038EF400 Chrome Name
+
+  See this for more information:
+  https://chromium.googlesource.com/breakpad/breakpad/+/HEAD/docs/symbol_files.md#records-1
+
+  Args:
+    file_path: Path to breakpad file to extract module id from.
+
+  Returns:
+    Module id if file is a valid breakpad file; None, otherwise.
+  """
+  module_id = None
+  with open(file_path, 'r') as file_handle:
+    # Reads a maximum of 200 bytes/characters. Malformed file or binary will
+    # not have '\n' character.
+    first_line = file_handle.readline(200)
+    fragments = first_line.rstrip().split()
+    if fragments and fragments[0] == 'MODULE' and len(fragments) >= 5:
+      # Symbolization script's input file format requires module id hexadecimal
+      # to be upper case.
+      module_id = fragments[3].upper()
+
+  return module_id
diff --git a/tools/tracing/rename_breakpad_unittest.py b/tools/tracing/rename_breakpad_unittest.py
new file mode 100755
index 0000000..2616d93
--- /dev/null
+++ b/tools/tracing/rename_breakpad_unittest.py
@@ -0,0 +1,321 @@
+#!/usr/bin/env vpython3
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from logging import exception
+import os
+import sys
+import unittest
+import tempfile
+import shutil
+
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), os.pardir, 'perf'))
+
+from core import path_util
+path_util.AddPyUtilsToPath()
+path_util.AddTracingToPath()
+import py_utils
+
+import rename_breakpad
+import mock
+
+
+class RenameBreakpadFilesTestCase(unittest.TestCase):
+  def setUp(self):
+    self.breakpad_dir = tempfile.mkdtemp()
+    self.breakpad_output_dir = tempfile.mkdtemp()
+
+    # Directory to unzipped breakpad files.
+    self.breakpad_unzip_dir = tempfile.mkdtemp(dir=self.breakpad_dir)
+
+  def tearDown(self):
+    shutil.rmtree(self.breakpad_dir)
+    shutil.rmtree(self.breakpad_output_dir)
+
+  def _listSubtree(self, root):
+    """Returns absolute paths of files and dirs in root subtree.
+    """
+    files = set()
+    dirs = set()
+    for root, subdirs, filenames in os.walk(root):
+      for filename in filenames:
+        files.add(os.path.join(root, filename))
+      for subdir in subdirs:
+        dirs.add(os.path.join(root, subdir))
+    return dirs, files
+
+  def _assertFilesInInputDir(self,
+                             expected_unmoved_files=frozenset(),
+                             expected_unmoved_dirs=frozenset()):
+    """Ensures that |RenameBreakpadFiles| doesn't move files/dirs.
+
+    Automatically adds |self.breakpad_unzip_dir| to
+    |expected_unmoved_dirs| since this file should never be moved.
+    """
+    breakpad_unzip_dir = {self.breakpad_unzip_dir}
+    expected_unmoved_dirs = expected_unmoved_dirs.union(breakpad_unzip_dir)
+
+    unmoved_dirs, unmoved_files = self._listSubtree(self.breakpad_dir)
+    self.assertEqual(expected_unmoved_files, unmoved_files)
+    self.assertEqual(expected_unmoved_dirs, unmoved_dirs)
+
+  def _assertFilesInOutputDir(self, expected_moved_files=frozenset()):
+    """Ensures that |RenameBreakpadFiles| correctly moves files.
+    """
+    moved_files = set(os.listdir(self.breakpad_output_dir))
+    self.assertEqual(expected_moved_files, moved_files)
+
+  def testRenameBreakpadFiles(self):
+    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
+    breakpad_file2 = os.path.join(self.breakpad_unzip_dir, 'file2.breakpad')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
+    with open(breakpad_file2, 'w') as file2:
+      file2.write('MODULE mac x86_64 29e6f9a7ce00f name2.so')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_output_dir)
+
+    self._assertFilesInInputDir()
+
+    expected_moved_files = {'34984AB4EF948C.breakpad', '29E6F9A7CE00F.breakpad'}
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesUpperCaseName(self):
+    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE Linux x86_64 12a345b6c7def890 name1.so')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_output_dir)
+
+    self._assertFilesInInputDir()
+
+    expected_moved_files = {'12A345B6C7DEF890.breakpad'}
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesLinuxx86_64(self):
+    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad.x64')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_output_dir)
+
+    self._assertFilesInInputDir()
+
+    expected_moved_files = {'34984AB4EF948C.breakpad'}
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesMultipleSubdirs(self):
+    subdir1 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
+    subdir2 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
+    breakpad_file1 = os.path.join(subdir1, 'file1.breakpad')
+    breakpad_file2 = os.path.join(subdir2, 'file2.breakpad')
+    breakpad_file3 = os.path.join(self.breakpad_unzip_dir, 'file3.breakpad')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE Linux x86_64 48537ABD name1.so')
+    with open(breakpad_file2, 'w') as file2:
+      file2.write('MODULE mac x86_64 38ABC9F name2.so')
+    with open(breakpad_file3, 'w') as file3:
+      file3.write('MODULE mac x86_64 45DFE name3.so')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_output_dir)
+
+    expected_unmoved_dirs = {subdir1, subdir2}
+    self._assertFilesInInputDir(expected_unmoved_dirs=expected_unmoved_dirs)
+
+    expected_moved_files = {
+        '48537ABD.breakpad', '38ABC9F.breakpad', '45DFE.breakpad'
+    }
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesNonBreakpad(self):
+    valid_file = os.path.join(self.breakpad_unzip_dir, 'valid.breakpad')
+    fake_file = os.path.join(self.breakpad_unzip_dir, 'fake.gz')
+    empty_file = os.path.join(self.breakpad_unzip_dir, 'empty.json')
+    random_dir = tempfile.mkdtemp(dir=self.breakpad_dir)
+    non_breakpad_file = os.path.join(random_dir, 'random.txt')
+
+    with open(valid_file, 'w') as file1:
+      file1.write('MODULE mac x86_64 329FDEA987BC name.so')
+    with open(fake_file, 'w') as file2:
+      file2.write('random text blah blah blah')
+    with open(empty_file, 'w'):
+      pass
+    with open(non_breakpad_file, 'w') as file3:
+      file3.write('MODULE mac x86_64 329FDEA987BC name.so')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_output_dir)
+
+    expected_unmoved_files = {fake_file, empty_file, non_breakpad_file}
+    expected_unmoved_dirs = {random_dir}
+    self._assertFilesInInputDir(expected_unmoved_files, expected_unmoved_dirs)
+
+    expected_moved_files = {'329FDEA987BC.breakpad'}
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesInvalidBreakpad(self):
+    valid_file = os.path.join(self.breakpad_unzip_dir, 'valid.breakpad')
+    empty_file = os.path.join(self.breakpad_unzip_dir, 'empty.breakpad')
+    no_module_file = os.path.join(self.breakpad_unzip_dir, 'no-module.breakpad')
+    short_file = os.path.join(self.breakpad_unzip_dir, 'short.breakpad')
+
+    with open(valid_file, 'w') as file1:
+      file1.write('MODULE mac x86_64 1240DF90E9AC39038EF400 Chrome Name')
+    with open(empty_file, 'w'):
+      pass
+    with open(no_module_file, 'w') as file2:
+      file2.write('NOTMODULE mac x86_64 1240DF90E9AC39038EF400 name')
+    with open(short_file, 'w') as file3:
+      file3.write('MODULE mac 1240DF90E9AC39038EF400 name')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_output_dir)
+
+    expected_unmoved_files = {empty_file, no_module_file, short_file}
+    self._assertFilesInInputDir(expected_unmoved_files)
+
+    expected_moved_files = {'1240DF90E9AC39038EF400.breakpad'}
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesOnlyNonBreakpadAndMisformat(self):
+    fake_file = os.path.join(self.breakpad_unzip_dir, 'fake.breakpad')
+    empty_file = os.path.join(self.breakpad_unzip_dir, 'empty.breakpad')
+    no_module_file = os.path.join(self.breakpad_unzip_dir, 'no-module.breakpad')
+    short_file = os.path.join(self.breakpad_unzip_dir, 'short.breakpad')
+    random_dir = tempfile.mkdtemp(dir=self.breakpad_dir)
+    non_breakpad_file = os.path.join(random_dir, 'random.txt')
+
+    with open(fake_file, 'w') as file1:
+      file1.write('random text blah blah blah')
+    with open(empty_file, 'w'):
+      pass
+    with open(no_module_file, 'w') as file2:
+      file2.write('NOTMODULE mac x86_64 1240DF90E9AC39038EF400 name')
+    with open(short_file, 'w') as file3:
+      file3.write('MODULE mac 1240DF90E9AC39038EF400 name')
+    with open(non_breakpad_file, 'w') as file4:
+      file4.write('MODULE mac x86_64 1240DF90E9AC39038EF400 Chrome Name')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_output_dir)
+
+    expected_unmoved_files = {
+        fake_file, non_breakpad_file, empty_file, no_module_file, short_file
+    }
+    expected_unmoved_dirs = {random_dir}
+    self._assertFilesInInputDir(expected_unmoved_files, expected_unmoved_dirs)
+
+    self._assertFilesInOutputDir()
+
+  def testRenameBreakpadFilesRepeatedModuleID(self):
+    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
+    breakpad_file2 = os.path.join(self.breakpad_unzip_dir, 'file2.breakpad')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE mac x86_64 12ABC8987DE name.so')
+    with open(breakpad_file2, 'w') as file2:
+      file2.write('MODULE mac x86_64 12ABC8987DE name.so')
+
+    # Check that the right exception is raised.
+    exception_msg = ('Symbol file modules ids are not unique')
+
+    with self.assertRaises(AssertionError) as e:
+      rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                          self.breakpad_output_dir)
+    self.assertIn(exception_msg, str(e.exception))
+
+    # Check breakpad file with repeated module id is not moved. More
+    # complicated because either of the breakpad files could be moved.
+    self.assertTrue(
+        os.path.isfile(breakpad_file1) ^ os.path.isfile(breakpad_file2))
+
+    # Ensure one of the breakpad module files got moved. No matter which
+    # breakpad file got moved, it will have the same new module-based filename.
+    expected_moved_files = {'12ABC8987DE.breakpad'}
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesRepeatedModuleIDMultipleSubdirs(self):
+    subdir1 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
+    subdir2 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
+    breakpad_file1 = os.path.join(subdir1, 'file1.breakpad')
+    breakpad_file2 = os.path.join(subdir2, 'file2.breakpad')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE mac x86_64 ABCE4853004895 name.so')
+    with open(breakpad_file2, 'w') as file2:
+      file2.write('MODULE mac x86_64 ABCE4853004895 name.so')
+
+    # Check that the right exception is raised.
+    exception_msg = ('Symbol file modules ids are not unique')
+    with self.assertRaises(AssertionError) as e:
+      rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                          self.breakpad_output_dir)
+    self.assertIn(exception_msg, str(e.exception))
+
+    # Check breakpad file with repeated module id is not moved. More
+    # complicated because either of the breakpad files could be moved.
+    self.assertTrue(
+        os.path.isfile(breakpad_file1) ^ os.path.isfile(breakpad_file2))
+
+    # Ensure one of the breakpad module files got moved. No matter which
+    # breakpad file got moved, it will have the same new module-based filename.
+    expected_moved_files = {'ABCE4853004895.breakpad'}
+    self._assertFilesInOutputDir(expected_moved_files)
+
+  def testRenameBreakpadFilesInputDirEqualsOutputDir(self):
+    subdir = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
+    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
+    breakpad_file2 = os.path.join(subdir, 'file2.breakpad')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
+    with open(breakpad_file2, 'w') as file2:
+      file2.write('MODULE mac x86_64 29e6f9a7ce00f name2.so')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir, self.breakpad_dir)
+
+    # All files should be moved into |self.breakpad_dir|.
+    moved_breakpad1 = os.path.join(self.breakpad_dir, '34984AB4EF948C.breakpad')
+    moved_breakpad2 = os.path.join(self.breakpad_dir, '29E6F9A7CE00F.breakpad')
+    expected_files = {moved_breakpad1, moved_breakpad2}
+    expected_unmoved_dirs = {subdir}
+    self._assertFilesInInputDir(expected_files, expected_unmoved_dirs)
+
+    # No files should be moved to |self.breakpad_output_dir|.
+    self._assertFilesInOutputDir()
+
+  def testRenameBreakpadFilesAllUnmoved(self):
+    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
+    breakpad_file2 = os.path.join(self.breakpad_unzip_dir, 'file2.breakpad')
+
+    with open(breakpad_file1, 'w') as file1:
+      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
+    with open(breakpad_file2, 'w') as file2:
+      file2.write('MODULE mac x86_64 29e6f9a7ce00f name2.so')
+
+    rename_breakpad.RenameBreakpadFiles(self.breakpad_dir,
+                                        self.breakpad_unzip_dir)
+
+    # All files should be renamed but not moved.
+    unmoved_breakpad1 = os.path.join(self.breakpad_unzip_dir,
+                                     '34984AB4EF948C.breakpad')
+    unmoved_breakpad2 = os.path.join(self.breakpad_unzip_dir,
+                                     '29E6F9A7CE00F.breakpad')
+    expected_renamed_files = {unmoved_breakpad1, unmoved_breakpad2}
+    self._assertFilesInInputDir(expected_renamed_files)
+
+    # No files should be moved to |self.breakpad_output_dir|.
+    self._assertFilesInOutputDir()
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/tools/tracing/symbol_fetcher.py b/tools/tracing/symbol_fetcher.py
index 06cbdfa0..3e93c05 100644
--- a/tools/tracing/symbol_fetcher.py
+++ b/tools/tracing/symbol_fetcher.py
@@ -9,12 +9,12 @@
 import sys
 import zipfile
 import logging
-import shutil
 
 import py_utils.cloud_storage as cloud_storage
 import metadata_extractor
 from metadata_extractor import OSName
 import breakpad_file_extractor
+import rename_breakpad
 
 ANDROID_X86_FOLDERS = {'x86', 'x86_64', 'next-x86', 'next-x86_64'}
 ANDROID_ARM_FOLDERS = {'arm', 'arm_64', 'next-arm', 'next-arm_64'}
@@ -55,13 +55,15 @@
   if metadata.os_name == OSName.ANDROID:
     _GetAndroidSymbols(cloud_storage_bucket, metadata, breakpad_output_dir)
     _ConvertSymbolsToBreakpad(breakpad_output_dir, dump_syms_path)
-    RenameBreakpadFiles(breakpad_output_dir, breakpad_output_dir)
+    rename_breakpad.RenameBreakpadFiles(breakpad_output_dir,
+                                        breakpad_output_dir)
   elif metadata.os_name == OSName.WINDOWS:
     raise Exception(
         'Windows platform is not currently supported for symbolization.')
   elif metadata.os_name == OSName.LINUX or metadata.os_name == OSName.MAC:
     _FetchBreakpadSymbols(cloud_storage_bucket, metadata, breakpad_output_dir)
-    RenameBreakpadFiles(breakpad_output_dir, breakpad_output_dir)
+    rename_breakpad.RenameBreakpadFiles(breakpad_output_dir,
+                                        breakpad_output_dir)
   else:
     raise Exception('Trace OS "%s" is not supported: %s' %
                     (metadata.os_name, metadata.trace_file))
@@ -294,96 +296,3 @@
   """
   with zipfile.ZipFile(zip_file, 'r') as zip_f:
     zip_f.extractall(output_dir)
-
-
-def RenameBreakpadFiles(breakpad_dir, breakpad_output_dir):
-  """Move breakpad files to new directory and rename them.
-
-  Breakpad files (files that contain '.breakpad') are renamed
-  to follow a '<module_id>.breakpad' with upper-case hexadecimal
-  naming scheme and moved to the |breakpad_output_dir| directory.
-  See perfetto::profiling::BreakpadSymbolizer for more naming
-  information. All other non-breakpad or misformatted breakpad files
-  remain in the same directory with the same filename.
-
-  Args:
-    breakpad_dir: local directory that stores symbol files in its subtree.
-    breakpad_output_dir: local path to store trace symbol breakpad file.
-
-  Raises:
-    AssertionError: if a file's module_id is None or repeated by
-      another file.
-  """
-  # TODO(rhuckleberry): Move this function to the script
-  # |breakpad_file_extractor_unittests.py|.
-
-  # Runs on every directory in the subtree. Scans directories from top-down
-  # (root to leaves) so that we don't rename files multiple times in the common
-  # case where |breakpad_dir| = |breakpad_output_dir|.
-  logging.debug('Renaming breakpad files.')
-  for subdir_path, _, filenames in os.walk(breakpad_dir, topdown=True):
-    for filename in filenames:
-      file_path = os.path.abspath(os.path.join(subdir_path, filename))
-
-      if not '.breakpad' in filename:
-        logging.debug("File is not a breakpad file: " + file_path)
-        continue
-
-      module_id = _ExtractModuleIdIfValidBreakpad(file_path)
-      if module_id is None:
-        logging.debug("Failed to extract file module id: " + file_path)
-        continue
-
-      new_filename = module_id + '.breakpad'
-      dest_path = os.path.abspath(
-          os.path.join(breakpad_output_dir, new_filename))
-
-      # Ensure all new filenames (module ids) are unique. If there is module id
-      # repetition, the first file with the same module_id has already been
-      # moved.
-      if os.path.exists(dest_path):
-        raise AssertionError(('Symbol file modules ids are not '
-                              'unique: %s\nSee these files: %s, %s' %
-                              (module_id, file_path, dest_path)))
-
-      shutil.move(file_path, dest_path)
-
-  # TODO(rhuckleberry): After moving breakpad files we can be left with empty
-  # dirs. Clean up these empty dirs if user specifies |breakpad_output_dir|.
-  # Doesn't matter if |breakpad_output_dir| is a temporary directory.
-
-
-def _ExtractModuleIdIfValidBreakpad(file_path):
-  """Extracts breakpad file's module id if the file is valid.
-
-  A breakpad file is valid for extracting its module id if it
-  has a valid MODULE record, formatted like so:
-  MODULE operatingsystem architecture id name
-
-  For example:
-  MODULE mac x86_64 1240DF90E9AC39038EF400 Chrome Name
-
-  See this for more information:
-  https://chromium.googlesource.com/breakpad/breakpad/+/HEAD/docs/symbol_files.md#records-1
-
-  Args:
-    file_path: Path to breakpad file to extract module id from.
-
-  Returns:
-    Module id if file is a valid breakpad file; None, otherwise.
-  """
-  # TODO(rhuckleberry): Move this function to the script
-  # |breakpad_file_extractor_unittests.py|.
-
-  module_id = None
-  with open(file_path, 'r') as file_handle:
-    # Reads a maximum of 200 bytes/characters. Malformed file or binary will
-    # not have '\n' character.
-    first_line = file_handle.readline(200)
-    fragments = first_line.rstrip().split()
-    if fragments and fragments[0] == 'MODULE' and len(fragments) >= 5:
-      # Symbolization script's input file format requires module id hexadecimal
-      # to be upper case.
-      module_id = fragments[3].upper()
-
-  return module_id
diff --git a/tools/tracing/symbol_fetcher_unittest.py b/tools/tracing/symbol_fetcher_unittest.py
index b687f33..1fdfb64 100755
--- a/tools/tracing/symbol_fetcher_unittest.py
+++ b/tools/tracing/symbol_fetcher_unittest.py
@@ -21,7 +21,7 @@
 import symbol_fetcher
 from symbol_fetcher import ANDROID_X86_FOLDERS, ANDROID_ARM_FOLDERS, GCS_SYMBOLS
 import breakpad_file_extractor
-
+import rename_breakpad
 import mock
 
 
@@ -54,10 +54,10 @@
     self.FetchGCSFile_stash = symbol_fetcher._FetchGCSFile
     self.FetchAndUnzipGCSFile_stash = symbol_fetcher._FetchAndUnzipGCSFile
     self.RunDumpSyms_stash = breakpad_file_extractor._RunDumpSyms
-    self.RenameBreakpadFiles_stash = symbol_fetcher.RenameBreakpadFiles
+    self.RenameBreakpadFiles_stash = rename_breakpad.RenameBreakpadFiles
 
     # Ignore this function. It is tested separately.
-    symbol_fetcher.RenameBreakpadFiles = mock.MagicMock()
+    rename_breakpad.RenameBreakpadFiles = mock.MagicMock()
 
   def tearDown(self):
     shutil.rmtree(self.breakpad_output_dir)
@@ -70,7 +70,7 @@
     symbol_fetcher._FetchGCSFile = self.FetchGCSFile_stash
     symbol_fetcher._FetchAndUnzipGCSFile = self.FetchAndUnzipGCSFile_stash
     breakpad_file_extractor._RunDumpSyms = self.RunDumpSyms_stash
-    symbol_fetcher.RenameBreakpadFiles = self.RenameBreakpadFiles_stash
+    rename_breakpad.RenameBreakpadFiles = self.RenameBreakpadFiles_stash
 
   def _createMetadataExtractor(self,
                                version_number=None,
@@ -86,7 +86,7 @@
     return metadata
 
   def _ensureRenameCalled(self):
-    symbol_fetcher.RenameBreakpadFiles.assert_called_once_with(
+    rename_breakpad.RenameBreakpadFiles.assert_called_once_with(
         self.breakpad_output_dir, self.breakpad_output_dir)
 
   def testNoOSName(self):
@@ -309,7 +309,7 @@
 
   def _ensureRunDumpSymsAndRenameNotCalled(self):
     breakpad_file_extractor._RunDumpSyms.assert_not_called()
-    symbol_fetcher.RenameBreakpadFiles.assert_not_called()
+    rename_breakpad.RenameBreakpadFiles.assert_not_called()
 
   def _mockVersionCodeFetcher(self, match_arch_folder, metadata):
     """Sets GCS folder's 'version_codes.txt' file to match trace's version code.
@@ -613,303 +613,5 @@
     self._ensureRunDumpSymsAndRenameNotCalled()
 
 
-class RenameBreakpadFilesTestCase(unittest.TestCase):
-  # TODO(rhuckleberry): Move these tests to the script
-  # |breakpad_file_extractor_unittests.py|.
-  def setUp(self):
-    self.breakpad_dir = tempfile.mkdtemp()
-    self.breakpad_output_dir = tempfile.mkdtemp()
-
-    # Directory to unzipped breakpad files.
-    self.breakpad_unzip_dir = tempfile.mkdtemp(dir=self.breakpad_dir)
-
-  def tearDown(self):
-    shutil.rmtree(self.breakpad_dir)
-    shutil.rmtree(self.breakpad_output_dir)
-
-  def _listSubtree(self, root):
-    """Returns absolute paths of files and dirs in root subtree.
-    """
-    files = set()
-    dirs = set()
-    for root, subdirs, filenames in os.walk(root):
-      for filename in filenames:
-        files.add(os.path.join(root, filename))
-      for subdir in subdirs:
-        dirs.add(os.path.join(root, subdir))
-    return dirs, files
-
-  def _assertFilesInInputDir(self,
-                             expected_unmoved_files=frozenset(),
-                             expected_unmoved_dirs=frozenset()):
-    """Ensures that |RenameBreakpadFiles| doesn't move files/dirs.
-
-    Automatically adds |self.breakpad_unzip_dir| to
-    |expected_unmoved_dirs| since this file should never be moved.
-    """
-    breakpad_unzip_dir = {self.breakpad_unzip_dir}
-    expected_unmoved_dirs = expected_unmoved_dirs.union(breakpad_unzip_dir)
-
-    unmoved_dirs, unmoved_files = self._listSubtree(self.breakpad_dir)
-    self.assertEqual(expected_unmoved_files, unmoved_files)
-    self.assertEqual(expected_unmoved_dirs, unmoved_dirs)
-
-  def _assertFilesInOutputDir(self, expected_moved_files=frozenset()):
-    """Ensures that |RenameBreakpadFiles| correctly moves files.
-    """
-    moved_files = set(os.listdir(self.breakpad_output_dir))
-    self.assertEqual(expected_moved_files, moved_files)
-
-  def testRenameBreakpadFiles(self):
-    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
-    breakpad_file2 = os.path.join(self.breakpad_unzip_dir, 'file2.breakpad')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
-    with open(breakpad_file2, 'w') as file2:
-      file2.write('MODULE mac x86_64 29e6f9a7ce00f name2.so')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_output_dir)
-
-    self._assertFilesInInputDir()
-
-    expected_moved_files = {'34984AB4EF948C.breakpad', '29E6F9A7CE00F.breakpad'}
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesUpperCaseName(self):
-    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE Linux x86_64 12a345b6c7def890 name1.so')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_output_dir)
-
-    self._assertFilesInInputDir()
-
-    expected_moved_files = {'12A345B6C7DEF890.breakpad'}
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesLinuxx86_64(self):
-    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad.x64')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_output_dir)
-
-    self._assertFilesInInputDir()
-
-    expected_moved_files = {'34984AB4EF948C.breakpad'}
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesMultipleSubdirs(self):
-    subdir1 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
-    subdir2 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
-    breakpad_file1 = os.path.join(subdir1, 'file1.breakpad')
-    breakpad_file2 = os.path.join(subdir2, 'file2.breakpad')
-    breakpad_file3 = os.path.join(self.breakpad_unzip_dir, 'file3.breakpad')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE Linux x86_64 48537ABD name1.so')
-    with open(breakpad_file2, 'w') as file2:
-      file2.write('MODULE mac x86_64 38ABC9F name2.so')
-    with open(breakpad_file3, 'w') as file3:
-      file3.write('MODULE mac x86_64 45DFE name3.so')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_output_dir)
-
-    expected_unmoved_dirs = {subdir1, subdir2}
-    self._assertFilesInInputDir(expected_unmoved_dirs=expected_unmoved_dirs)
-
-    expected_moved_files = {
-        '48537ABD.breakpad', '38ABC9F.breakpad', '45DFE.breakpad'
-    }
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesNonBreakpad(self):
-    valid_file = os.path.join(self.breakpad_unzip_dir, 'valid.breakpad')
-    fake_file = os.path.join(self.breakpad_unzip_dir, 'fake.gz')
-    empty_file = os.path.join(self.breakpad_unzip_dir, 'empty.json')
-    random_dir = tempfile.mkdtemp(dir=self.breakpad_dir)
-    non_breakpad_file = os.path.join(random_dir, 'random.txt')
-
-    with open(valid_file, 'w') as file1:
-      file1.write('MODULE mac x86_64 329FDEA987BC name.so')
-    with open(fake_file, 'w') as file2:
-      file2.write('random text blah blah blah')
-    with open(empty_file, 'w'):
-      pass
-    with open(non_breakpad_file, 'w') as file3:
-      file3.write('MODULE mac x86_64 329FDEA987BC name.so')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_output_dir)
-
-    expected_unmoved_files = {fake_file, empty_file, non_breakpad_file}
-    expected_unmoved_dirs = {random_dir}
-    self._assertFilesInInputDir(expected_unmoved_files, expected_unmoved_dirs)
-
-    expected_moved_files = {'329FDEA987BC.breakpad'}
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesInvalidBreakpad(self):
-    valid_file = os.path.join(self.breakpad_unzip_dir, 'valid.breakpad')
-    empty_file = os.path.join(self.breakpad_unzip_dir, 'empty.breakpad')
-    no_module_file = os.path.join(self.breakpad_unzip_dir, 'no-module.breakpad')
-    short_file = os.path.join(self.breakpad_unzip_dir, 'short.breakpad')
-
-    with open(valid_file, 'w') as file1:
-      file1.write('MODULE mac x86_64 1240DF90E9AC39038EF400 Chrome Name')
-    with open(empty_file, 'w'):
-      pass
-    with open(no_module_file, 'w') as file2:
-      file2.write('NOTMODULE mac x86_64 1240DF90E9AC39038EF400 name')
-    with open(short_file, 'w') as file3:
-      file3.write('MODULE mac 1240DF90E9AC39038EF400 name')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_output_dir)
-
-    expected_unmoved_files = {empty_file, no_module_file, short_file}
-    self._assertFilesInInputDir(expected_unmoved_files)
-
-    expected_moved_files = {'1240DF90E9AC39038EF400.breakpad'}
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesOnlyNonBreakpadAndMisformat(self):
-    fake_file = os.path.join(self.breakpad_unzip_dir, 'fake.breakpad')
-    empty_file = os.path.join(self.breakpad_unzip_dir, 'empty.breakpad')
-    no_module_file = os.path.join(self.breakpad_unzip_dir, 'no-module.breakpad')
-    short_file = os.path.join(self.breakpad_unzip_dir, 'short.breakpad')
-    random_dir = tempfile.mkdtemp(dir=self.breakpad_dir)
-    non_breakpad_file = os.path.join(random_dir, 'random.txt')
-
-    with open(fake_file, 'w') as file1:
-      file1.write('random text blah blah blah')
-    with open(empty_file, 'w'):
-      pass
-    with open(no_module_file, 'w') as file2:
-      file2.write('NOTMODULE mac x86_64 1240DF90E9AC39038EF400 name')
-    with open(short_file, 'w') as file3:
-      file3.write('MODULE mac 1240DF90E9AC39038EF400 name')
-    with open(non_breakpad_file, 'w') as file4:
-      file4.write('MODULE mac x86_64 1240DF90E9AC39038EF400 Chrome Name')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_output_dir)
-
-    expected_unmoved_files = {
-        fake_file, non_breakpad_file, empty_file, no_module_file, short_file
-    }
-    expected_unmoved_dirs = {random_dir}
-    self._assertFilesInInputDir(expected_unmoved_files, expected_unmoved_dirs)
-
-    self._assertFilesInOutputDir()
-
-  def testRenameBreakpadFilesRepeatedModuleID(self):
-    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
-    breakpad_file2 = os.path.join(self.breakpad_unzip_dir, 'file2.breakpad')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE mac x86_64 12ABC8987DE name.so')
-    with open(breakpad_file2, 'w') as file2:
-      file2.write('MODULE mac x86_64 12ABC8987DE name.so')
-
-    # Check that the right exception is raised.
-    exception_msg = ('Symbol file modules ids are not unique')
-
-    with self.assertRaises(AssertionError) as e:
-      symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                         self.breakpad_output_dir)
-    self.assertIn(exception_msg, str(e.exception))
-
-    # Check breakpad file with repeated module id is not moved. More
-    # complicated because either of the breakpad files could be moved.
-    self.assertTrue(
-        os.path.isfile(breakpad_file1) ^ os.path.isfile(breakpad_file2))
-
-    # Ensure one of the breakpad module files got moved. No matter which
-    # breakpad file got moved, it will have the same new module-based filename.
-    expected_moved_files = {'12ABC8987DE.breakpad'}
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesRepeatedModuleIDMultipleSubdirs(self):
-    subdir1 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
-    subdir2 = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
-    breakpad_file1 = os.path.join(subdir1, 'file1.breakpad')
-    breakpad_file2 = os.path.join(subdir2, 'file2.breakpad')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE mac x86_64 ABCE4853004895 name.so')
-    with open(breakpad_file2, 'w') as file2:
-      file2.write('MODULE mac x86_64 ABCE4853004895 name.so')
-
-    # Check that the right exception is raised.
-    exception_msg = ('Symbol file modules ids are not unique')
-    with self.assertRaises(AssertionError) as e:
-      symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                         self.breakpad_output_dir)
-    self.assertIn(exception_msg, str(e.exception))
-
-    # Check breakpad file with repeated module id is not moved. More
-    # complicated because either of the breakpad files could be moved.
-    self.assertTrue(
-        os.path.isfile(breakpad_file1) ^ os.path.isfile(breakpad_file2))
-
-    # Ensure one of the breakpad module files got moved. No matter which
-    # breakpad file got moved, it will have the same new module-based filename.
-    expected_moved_files = {'ABCE4853004895.breakpad'}
-    self._assertFilesInOutputDir(expected_moved_files)
-
-  def testRenameBreakpadFilesInputDirEqualsOutputDir(self):
-    subdir = tempfile.mkdtemp(dir=self.breakpad_unzip_dir)
-    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
-    breakpad_file2 = os.path.join(subdir, 'file2.breakpad')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
-    with open(breakpad_file2, 'w') as file2:
-      file2.write('MODULE mac x86_64 29e6f9a7ce00f name2.so')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir, self.breakpad_dir)
-
-    # All files should be moved into |self.breakpad_dir|.
-    moved_breakpad1 = os.path.join(self.breakpad_dir, '34984AB4EF948C.breakpad')
-    moved_breakpad2 = os.path.join(self.breakpad_dir, '29E6F9A7CE00F.breakpad')
-    expected_files = {moved_breakpad1, moved_breakpad2}
-    expected_unmoved_dirs = {subdir}
-    self._assertFilesInInputDir(expected_files, expected_unmoved_dirs)
-
-    # No files should be moved to |self.breakpad_output_dir|.
-    self._assertFilesInOutputDir()
-
-  def testRenameBreakpadFilesAllUnmoved(self):
-    breakpad_file1 = os.path.join(self.breakpad_unzip_dir, 'file1.breakpad')
-    breakpad_file2 = os.path.join(self.breakpad_unzip_dir, 'file2.breakpad')
-
-    with open(breakpad_file1, 'w') as file1:
-      file1.write('MODULE Linux x86_64 34984AB4EF948C name1.so')
-    with open(breakpad_file2, 'w') as file2:
-      file2.write('MODULE mac x86_64 29e6f9a7ce00f name2.so')
-
-    symbol_fetcher.RenameBreakpadFiles(self.breakpad_dir,
-                                       self.breakpad_unzip_dir)
-
-    # All files should be renamed but not moved.
-    unmoved_breakpad1 = os.path.join(self.breakpad_unzip_dir,
-                                     '34984AB4EF948C.breakpad')
-    unmoved_breakpad2 = os.path.join(self.breakpad_unzip_dir,
-                                     '29E6F9A7CE00F.breakpad')
-    expected_renamed_files = {unmoved_breakpad1, unmoved_breakpad2}
-    self._assertFilesInInputDir(expected_renamed_files)
-
-    # No files should be moved to |self.breakpad_output_dir|.
-    self._assertFilesInOutputDir()
-
-
 if __name__ == '__main__':
   unittest.main()
diff --git a/tools/tracing/symbolize_trace b/tools/tracing/symbolize_trace
index 752f8ee..66c06161 100755
--- a/tools/tracing/symbolize_trace
+++ b/tools/tracing/symbolize_trace
@@ -7,11 +7,19 @@
 This executable script symbolizes proto perfetto traces.
 """
 
+import os
 import optparse
 import sys
 
 import symbolize_trace
 import flag_utils
+import display_in_browser
+
+sys.path.insert(0, os.path.join(os.path.dirname(__file__),
+                                os.pardir, os.pardir, 'third_party',
+                                'catapult', 'systrace'))
+
+from profile_chrome import flags
 
 
 def _CreateOptionParser():
@@ -23,6 +31,7 @@
 
   parser = flag_utils.AddLoggingOptions(parser)
   parser.add_option_group(flag_utils.SymbolizeOptions(parser))
+  parser.add_option_group(flags.OutputOptions(parser))
 
   return parser
 
@@ -44,5 +53,8 @@
   # Symbolize Trace
   symbolize_trace.SymbolizeTrace(trace_file=trace_file, options=options)
 
+  if options.view:
+    display_in_browser.DisplayInBrowser(options.output_file, options)
+
 if __name__ == '__main__':
   sys.exit(main())
diff --git a/tools/tracing/symbolize_trace.py b/tools/tracing/symbolize_trace.py
index 9bc3990..33acdc1 100644
--- a/tools/tracing/symbolize_trace.py
+++ b/tools/tracing/symbolize_trace.py
@@ -21,6 +21,7 @@
 import metadata_extractor
 import symbol_fetcher
 import breakpad_file_extractor
+import rename_breakpad
 
 
 def SymbolizeTrace(trace_file, options):
@@ -100,8 +101,8 @@
           (options.local_build_dir,
            os.path.join(options.local_build_dir, 'lib.unstripped')))
 
-    symbol_fetcher.RenameBreakpadFiles(options.breakpad_output_dir,
-                                       options.breakpad_output_dir)
+    rename_breakpad.RenameBreakpadFiles(options.breakpad_output_dir,
+                                        options.breakpad_output_dir)
     return
 
   # Extract Metadata
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml
index 60531d2..0a750fd 100644
--- a/tools/traffic_annotation/summary/annotations.xml
+++ b/tools/traffic_annotation/summary/annotations.xml
@@ -379,6 +379,7 @@
  <item id="webstore_installer" added_in_milestone="62" hash_code="18764319" type="0" content_hash_code="70871152" os_list="linux,windows" file_path="chrome/browser/extensions/webstore_installer.cc"/>
  <item id="webui_content_scripts_download" added_in_milestone="62" hash_code="100545943" type="0" content_hash_code="119898059" os_list="linux,windows" file_path="extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.cc"/>
  <item id="well_known_path_that_should_not_exist" added_in_milestone="86" hash_code="134618785" type="0" content_hash_code="55913167" os_list="linux,windows" file_path="components/password_manager/core/browser/well_known_change_password_state.cc"/>
+ <item id="whats_new_handler" added_in_milestone="94" hash_code="127739401" type="0" content_hash_code="94869759" os_list="linux,windows" file_path="chrome/browser/ui/webui/whats_new/whats_new_handler.cc"/>
  <item id="worker_script_load" added_in_milestone="72" hash_code="72087791" type="0" content_hash_code="24889169" os_list="linux,windows" file_path="content/browser/worker_host/worker_script_fetcher.cc"/>
  <item id="xmpp_signal_strategy" added_in_milestone="66" hash_code="88906454" type="0" deprecated="2019-07-16" content_hash_code="88958321" file_path=""/>
 </annotations>
diff --git a/tools/traffic_annotation/summary/grouping.xml b/tools/traffic_annotation/summary/grouping.xml
index d2362db..29e1354 100644
--- a/tools/traffic_annotation/summary/grouping.xml
+++ b/tools/traffic_annotation/summary/grouping.xml
@@ -421,5 +421,8 @@
     <sender name="Memories">
       <traffic_annotation unique_id="memories_remote_model_request"/>
     </sender>
+    <sender name="Whats New">
+      <traffic_annotation unique_id="whats_new_handler"/>
+    </sender>
   </group>
 </groups>
diff --git a/ui/webui/resources/cr_elements/mwb_shared_vars.html b/ui/webui/resources/cr_elements/mwb_shared_vars.html
index bb868d0..81c802d 100644
--- a/ui/webui/resources/cr_elements/mwb_shared_vars.html
+++ b/ui/webui/resources/cr_elements/mwb_shared_vars.html
@@ -11,7 +11,7 @@
       --mwb-list-item-hover-background-color: rgba(var(--google-grey-900-rgb), 0.1);
       --mwb-list-item-selected-background-color: rgba(var(--google-grey-900-rgb), 0.14);
       --mwb-list-section-title-font-size: 11px;
-      --mwb-list-section-title-height: 36px;
+      --mwb-list-section-title-height: 40px;
       --mwb-primary-text-font-size: 13px;
       --mwb-scrollbar-thumb-color: var(--google-grey-refresh-300);
       --mwb-scrollbar-thumb-hover-color: var(--google-grey-refresh-500);
